Change Log

- 0.4 Localization

  • Created localization file for english, locale_enUS.yml
  • Fixed a bunch of typos and grammar errors
  • Fixed bug in player enemy adding
  • Fixed bug causing NPE in explosions and Fire detection
  • Fixed bug in player skull counts caused by above NPE explosion bug
  • Crazed and Devious skulls will no longer target pets or mobs on leashes / with custom names.
  • Updated Entity List for Rabbit, Guardian and Endermite
  • Allow all wood type fences to be used for crazed and devious skulls. Spruce, Dark Oak, etc.

- 0.323 Factions 2.7 update

  • Updated for compatibility with Factions 2.7.5

- 0.322 Spigot 1.8 fixes

  • Changed Wizard skulls so they no longer use EnderPearls as their projectile. Spigot does not allow spawning EP's without Living Entity Reference and throws NPE because of that.
  • Wizard skulls now use snowball as their projectile. Hopefully those wont change like EnderPearls did.
  • Changed Skull placement detection to use Deprecated Data byte value because Spigot has no way to detect Wall placed skulls. Maybe this will be fixed in sponge?

- 0.321 Bug fix

  • fixed bug in custom entities that could cause Stack overflow if entity name and custom name were the same (console spam and would fail updating enemy target lists)
  • fixed bug in removing a custom name from skull friend lists (would display error instead of remove)
  • fixed bug in info message after removing friend from global skulls (would not display message at all)

- 0.32 UUID, Features and bug fixes

  • UUID:
    • Modified UUID online check to allow plugin to check online but only after checking the server first. Saves on time if Player was already known by the server. No online check needed in this case.
    • Fixed Disguisecraft support for players disguised as skull owners to use UUID.
    • Fixed Vanish support so it uses UUID
    • Fixed Factions support to use UUID
    • Fixed Towny support to use UUID
    • Added config option profile_url
      • Allows for the changing of the profile url for UUID. In case at some time it changes, its not hardcoded
    • PerPlayerSettings and Skull database are updated automatically
    • Old skullbooks are now invalid because of the UUID change and must be recreated from their respective skulls
    • Added config option online_uuid_check: true
      • true allows server to check online for player UUID, false only asks the Bukkit server for UUID
      • Could be Useful for offline servers
    • Skin updates for skulls are off the main thread now
  • Bug Fixes:
    • Fixed offline bug in Towny.
    • Fixed bug in Towny friends detection. If a resident is a friend of a player who owns skulls those skulls will ignore that friend.
    • Fixed another bug in factions for offline players. Seems UPlayer.getFaction() returns Wilderness if UPlayer is offline.
    • Fixed bug in offline player detection when using offline_players_skulls_offline config option
    • Fixed bug causing offline mode to not work correctly. Skulls would not target players.
    • Fixed bug in factions detection, faction owned by a player who was offline would break skull targeting
    • Fixed bug in setting skull skins if the username entered did not exist. Would cause unhandled exception and break setting skull turret skins until plugin restart
      • Updated error messages to reflect not being able to set skin to non-existant users
    • /sk rotate command now will update the skulls internal facing direction so that if a skull is allowed to patrol again it will start at the rotated direction not where it last ended a patrol cycle
    • Fixed bug in Skull's fire/miss intelligence causing all skulls to believe they missed the target if one skull missed the same target. Groups of Skulls targeting the same mob should be much more willing to shoot now
    • Wizard skulls will now pick a new target or wait 5 seconds if they miss a shot like master turrets do
    • Fix bug causing players who are op and have Per player settings. Will nolonger have their setting erased because Op meant they were in all groups available. Per Player Settings in this case will override Groups if the player is an Op
    • Fixed a test for skull placement. It is no longer possable to place a Crazed, devious, master or wizard against a fence instead of on top. Would result in a Wall skull instead of a Ground skull.
    • Fixed bug in player Skull count if skulls destructed or were removed in some other way that was not a block break event
    • If a player exceeds their max placed turret amount and are in creative the placed skull will no longer drop
    • Multi-Skull crafting now updates the inventory correctly and wont leave ghost items in the crafting matrix
    • Fixed bug in Mob checks for adding mobs to wizard / master skulls
    • Fixed a bug in add/rem friend/enemy commands that didnt allow "PLAYER" as a mob type. This was also fixed for global commands. The bug caused an error message about invalid mobs
    • Fixed bug with skulls targeting players
    • Fixed bug in Per Player Settings resulting in firing range not being update with maxRange changes
    • Fixed bug with Player groups resulting in players who where offline and somehow had maxrange/skullamount added to a per player setting overriding the group config. This could confuse the skullturret init
  • Towny Changes:
    • Nomads can no longer place skulls in towns
    • towny Players who are not a member of any town are valid targets for skulls
    • Towny Embassies are now considered when skulls are picking targets. If a player is not a member of any town and owns an Embassy plot in a town. The skull will ignore that player. Embassy plot ownership is ignored if the plot owner is a member of another town.
    • Added Towny config options
      • nomads_can_place_skulls: true - allows nomads to place skulls in wilderness
      • nationless_towns_can_place_skulls: true - allows nationless town residents to place skulls
      • skulls_respect_pvp_rule: false - towns without nations will respect pvp rules and skulls will attack based on pvp
      • skulls_ignore_embassy_owners: true - if a nomad owns a embassy plot then skulls will ignore that nomad
      • town_skulls_ignore_nomads: false - if true town skulls will ignore nomads
      • skulls_in_wilderness_target_everyone: true - if true any skull placed in the wilderness will target any player reguardless of nation or town
      • allow_towny_skulls_destruct: true - if false skulls will go offline instead of self destruct / skulls can still self destruct if skulls area allowed to be damaged by players
  • Factions Changes:
    • Updated to Factions 2.5, Imports changed, 2.4 and below are nolonger supported. I see no way to support both at the same time like I could with 1.8 and 2.0. Sorry.
    • Removed faction 1.8 support, UUID changes prevents this from working now.
    • Added config options to factions support
      • target_neutral: false
      • target_truce: false
      • target_enemy: true
      • target_ally: false
      • target_peaceful: false
      • target_unaffiliated: true
      • allow_placement_enemy_territory: false
      • allow_placement_neutral_territory: false
      • allow_placement_truce_territory: false
      • allow_placement_own_territory: true
      • allow_placement_ally_territory: true
      • allow_placement_peaceful_territory: true
      • allow_placement_wilderness: true
        • Above Values are pretty self explanatory, target config options allows a skull to target that player type, placement config options allow skulls to be placed in that territory type
      • use_faction_power_to_limit_player_skulls: false
        • Will allow skull placement limits based on the amount of power a faction has
      • faction_power_per_skull: 1.0
        • Sets the faction power required per skull.
        • Example: Faction Alpha has 10 power, if each skull costs 1 point a piece then the faction can have 10 skulls per player. If there are 3 members then each member can have 10 skulls for a total of 30 skulls for that faction
        • This was done this way so that no one faction member can hog all the skulls available to the faction.
        • Default power cost is not balanced in any way and should be set before use
        • Value should not be a negative number or zero
        • If a faction looses power and the faction players have too many skulls active, then those players in the faction with too many skulls will have some of their skulls go offline until the faction has enough power to support the skulls those players own.
        • If faction power is used to limit players then the config option skulls_per_player sets the absolute max a player can have. Example, if a factions power allows players to have 10 skulls each but skulls_per_player is set to 5 then a factions members can have no more then 5 skulls active. This keeps powerful factions from having ridiculous amounts of turrets.
        • Per player groups and Per Player settings will override factions skull limits
      • allow_faction_skulls_destruct: true - if false skulls will go offline instead of self destruct / skulls can still self destruct if skulls are allowed to be damaged by players
  • Other Changes:
    • Crazed and Devious Skulls no long target Golems or NPCs
    • Crazed skulls now respect line of site (No more shooting walls/floors if a mob is on the other side)
    • Removed MC 1.5.2 support
    • Removed Line of site workaround for old Bukkit bug in 1.6 builds
    • Removed delimiter tests for very old skullturret database versions.
    • Monster and Animal are now able to be used as valid mob types for remove commands
    • Changed database to use GZip
    • Made wizard skull adjustments to make the skull type better, more effective and deadly
      • Adjusted wizard-skull intelligence so they nolonger fire same potion if the target is already under effect of that potion.
      • Wizard skulls will now pick a new target if all available potion effects are already applied to the target
      • Wizard skulls now pick from all chests not just first chest found to have potions
      • Changed wizard-skulls from using Arrows as the firing entity to Ender Pearl entity (Looks better, doesnt leave arrow litter and has same functionality. Win win)
      • Adjusted wizard-skull firing entity velocity to be slightly slower, less glitchy/blinky look
    • Cleaned up general help command a little to be more clear
    • /sk ammo command now accepts "fireball" as well as firecharge (same thing different names) ex: /sk ammo fireball
    • Removed access to Deprecated methods in YMLConfig implementation Requires 1.7.9R2 or greater CraftBukkit
    • Added config option crazed_devious_target_players: false
      • True allows Crazed and Devious skulls to target all players except their owners
  • New Features:
  • Vault based economy support
    • Added command /sk buy <item><amount>
      • Valid items are Crazed (c), Devious (d), Master (m), Wizard (w), Bow (b)
    • Added command /sk costs
      • Shows the prices of all items a player has permission to buy from Skullturret item list
    • Added permissions:
      • skullturret.buy - super node for all below nodes
      • skullturret.buy.crazed - allows purchase of crazed skulls
      • skullturret.buy.devious - allows purchase of devious skulls
      • skullturret.buy.master - allows purchase of master skulls
      • skullturret.buy.wizard - allows purchase of wizard skulls
      • skullturret.buy.bow - allows purchase of skull bows
    • Updated help command for /sk buy and /sk costs
    • Added config options:
      • use_vault_economy: false - Setting to enable Vault based economy support
      • econ_bow_price: 2.0
      • econ_crazed_skull_price: 1.0
      • econ_devious_skull_price: 2.0
      • econ_master_skull_price: 3.0
      • econ_wizard_skull_price: 4.0
      • Prices are not balanced and should be changed before use.
  • Configurable Crafting Recipes
    • Added recipes.yml for customizing skull and skull bow recipes
    • Added the ability to customize the Skull and Skull Bow recipes. Default Examples in the recipes.yml
    • Added option Enabled to recipe.yml
      • Turns off the individual recipes for crafting skulls, this does not affect the give command
    • Add ability to set a custom amount of items to be returned from the crafting of a skull
    • Added config option CraftedAmount to recipe.yml
      • Default is 1, setting can be no less then 1 and no more then 64
      • Allows a user to recieve more then 1 item per craft of a skull turret item
      • Settings can be changed for, Crazed, Devious, Master and Wizard Skulls. Also Skull Bow.
  • Configurable Entity Targets
    • Added ability to configure targetable entities. Default examples in the entities.yml
      • Mainly for future-proofing wizard skulls and target priorities because skulls can already target any valid living entity
    • Added ability to configure custom entity names. Default examples at bottom of entities.yml
      • This is used as a convenience to aggregate groups of mobs under a single mob type
      • IE animals would contain pigs, sheep, cows etc. So using the command /sk add enemy animals would put pigs, sheep, and cows into the a skulls enemy list.
  • Damagable Skulls
    • Added ability to harm Skulls with configurable weapons and bows
    • Enabled damaged skulls to destruct after a configurable time limit
    • Added ability to repair skulls with a configurable item
    • Added Permissions:
      • skullturret.attack.bow - allows users to attack with bow
      • skullturret.attack.weapon - allows users to attack with weapons specified in config
      • skullturret.attack - permissions node for both above permissions
      • skullturret.repair - allows users to repair skulls with item specified in config
    • Added new config options:
      • allow_skull_damage - (default: false) This setting allows skulls to take damage from players
      • allow_damaged_skull_destruct - (default: false) This setting allows damaged skulls to be destroyed
      • allow_skull_retaliate - (default: false) Like pig zombies, If you attack a skull all skulls owned by that skulls owner will choose you as a target. However, unlike pig zombies skulls forget after a minute of not being attacked
      • skull_destruct_timer - (default: 90000) This setting is used to set the time before a skull destructs from damage. Time is in milliseconds
      • crazed_repair_item - (default: STICK) items that can be used to repair a skull
      • devious_repair_item - (default: BONE) items that can be used to repair a skull
      • master_repair_item - (default: DIAMOND) items that can be used to repair a skull
      • wizard_repair_item - (default: GOLD_INGOT) items that can be used to repair a skull
      • consume_repair_item - (default: true) This setting is used to set if the repair consumes the repair item
      • skull_repair_amount - (default: 5) This is the amount of health that is readded to the skulls health per repair hit
      • skull_damage_recovery_time (default: 15000) This setting sets the amount of time before a slightly damaged skull will recover. If a skull is damaged but does not have a health of 0 then the Skull naturally recovers all health after 15 seconds of not being attacked. Time is in milliseconds
      • crazed_health - (default: 30)
      • devious_health - (default: 40)
      • master_health - (default: 60)
      • wizard_health - (default: 50)
      • allow_arrow_damage - (default: true) This setting enables or disables skulls taking damage from player bow shots. Arrow damage is scaled based on force (fully charged = 9.0 no charge = 1.0) No random chance for 10 Damage based on minecraft wiki http://minecraft.gamepedia.com/Arrow This setting is seperate from allow_skull_damage
      • weapons - This is a list of weapons that will hurt Skulls and their damage values Note Air is for an empty hand A list of valid materials are found here http://jd.bukkit.org/rb/apidocs/org/bukkit/Material.html Defaults are in the config file
      • If config option offline_players is true the skulls can not take damage, since the skull cant fight back
  • Temporary Turrets
    • Added two new Types of Skulls which can be placed temporarly
      • Temporary Devious Skull added
        • Recipe: 1 Devious Skull, 1 Wood Fence, at least 1 arrow, up to 7 stacks of 64 arrows
      • Temporary Master Skull added
        • Recipe: 1 Master Skull, 1 Nether Fence, at least 1 arrow, up to 7 stacks of 64 arrows
      • These recipes are shapeless and must include the arrows that will be used for the skull to fire
        • Up to 448 arrows can be used in the recipe (7 stacks of 64 arrows)
      • Added permissions:
        • Added permission skullturret.use.tempturret - for allowing players to place temporary turrets
        • skullturret.create.tempdevious - allows players to create Temporary Devious Skull Turrets
        • skullturret.create.tempmaster - Allows Players to create Temporary Master Skull Turrets
      • added config option allow_temp_skull_rearm
        • Default is true, right clicking a Temporary Skull with a stack of arrows will reload the skull with those arrows up to a max of 448
        • If false temporary skulls will self-destruct when they run out of ammo and can not be reloaded
      • Left clicking a Temporary skull with arrows in hand will display the current arrows left in the skull
      • Global and defaults do not work on Temporary Turrets
      • The ammo for a temporary skull can not be changed from arrows, /sk ammo command will not work on temp skulls
      • Added config option allow_craft_temp_turrets
        • If enabled allows crafting of temporary skull turrets
        • If disabled temporary skull turret recipes are not loaded
    • updated /sk give command to allow for giving temporary skulls
      • /sk give [tempdevious|tempmaster] (player) <amount> <Ammo-amount>
      • updated command to accept item abreviations:
      • c = crazed skull
      • d = devious skull
      • m = master skull
      • w = wizard skull
      • td = temporary devious skull
      • tm = temporary master skull
      • b = skull bow
      • Example: /sk give c johndoe 5
      • would give johndoe 5 crazed skulls

- 0.314 The offline bug annihilation version

  • Towny Bug Fixes:
    • Fixed another bug in offline detection for towny.
    • Players who are not a member of any town are valid targets for skulls
    • Towny Embassies are now considered when skulls are picking targets. If a player is not a member of any town and owns an Embassy plot in a town. The skull will ignore that player. Embassy plot ownership is ignored if the plot owner is a member of another town.
    • Fixed bug in Towny friends detection. If a resident is a friend of a player who owns skulls those skulls will ignore that friend.
    • Fixed bug allowing Nomads to place and have turrets in any town.
    • Fixed towny bug with skulls in enemy towns and if the skull owner was offline then their skulls might not selfdestruct/disable like they should.
  • Fixed offline player bug in factions 1.8 support
  • Fixed another offline bug in Factions 2.0 support
  • Factions 1.8, Factions 2.0 AND Towny have now been thoroughly tested for the offline bug. Offline is working now. Chalk this up to Factions 2.0 returning Wilderness as the faction for Offline Faction members. Smells like a factions bug to me.

- 0.313 Bug Fix

  • Crazed and Devious skulls no longer target Golems
  • Fixed bug in player detection if players were offline. This should fix issues with factions, towny and config option offline_players_skulls_offline option
  • Fixed bug in player Skull count if skulls destructed or were removed in some other way that was not a block break event

- 0.312 Bug Fix

  • fixed bug with ammo chests and wizard skulls. bug caused wizard skulls not to fire if ammo chests were enabled
    • fixing this bug also means that wizard skulls now need arrows to complete a kill using their final shot arrow if ammo chests are enabled
    • infinity bows also work for the final shot arrow
  • Fixed bug with skulls targeting players

- 0.311 Bug fix

  • Fixed bug in ammo chests.

- 0.31 Features

  • Implemented a way to set all player owned skulls at once
    • Simply use a command that would usually need a selected skull without selecting a skull and all owned skulls will be update with that setting
    • special permission required
    • Commands effected: add friend/enemy, rem friend/enemy, patrol, redstone, ammo, skin
  • Added skullturret.multiskullupdate
    • Gives permission to update all owned skulls at once with commands that normally require skull selection
    • Member of Admin permission node
  • Added ability to set defaults for wizard and master skulls
    • Added new command: (Ticket - 8)
    • /skull default <reset (w/m)>
      • Used to set defaults for master and wizard skulls
      • can also use Master or Wizard instead of M and W
      • If setting defaults for wizard skulls use /skull default and click the wizard skull with a wizard skull item
      • If setting defaults for master skulls user /skull default and click the master skull with a master skull item
      • If you wish to reset default for a skull type use /skull default reset and click a skull like above
      • Alternativly you can use w or m as a argument for resetting wizard and master skull defaults
      • IE. /skull default reset w - would reset your wizard skull defaults
    • Added permission node skullturret.default
      • Used to allow players to save skull default settings
    • Master skulls settings saved include, Skin type, patrol, redstone, and ammo type
    • Wizard skulls settings saved include, Skin type, patrol, and redstone
    • Help command updated with new command help for /skull default
  • Added per group settings
    • Groups are set up in the groupinfo.yml file
    • Each group in the yml file is used to set a permission
    • EX:
Groups:
  members:
    MaxTurrets: 5
    MaxRange: 21

In this case a player with the permission skullturret.members would be in the group members and all the settings for that group would apply to them overridding any per player settings they have

  • Added the config option allow_infinite_bow
    • Allows skulls to use bows enchanted with infinite to shoot unlimited arrows. Must have at least 1 arrow in the chest to shoot infinitely
    • Changed bow_durability_per_shot config option to control durability for all bow types in ammo chests

- 0.30 Performance / Bug Fixes for 1.7mc

  • (/skull add player) & (/skull rem player) now automatically reinitializes the skulls for the selected player.
    • Removes need for (/skull reload) command when adding, editing or removing a player from per player settings.
  • Fixed null pointer exception in disguise craft (player disguise detection) Fixes(Ticket-05)
  • Removed SoundFX from skulls. Fixes (Ticket-07)
    • The Breath Sound was removed from the game and there are no other compelling or good sounding FX for the skulls now. Maybe at some point this will be re-enabled if a good sound effect is added to the game in the future.

- 0.29 VanishNoPacket Support, Bug fixes, config addition

  • Added VanishNoPacket support
    • If a player is vanished no skull will target the player
  • Added config option vanishnopacket_support
    • default false, enabled allows vanish support
  • Updated DisguiseCraft support to allow for players disguised as other players
  • Minor change to the permission check to remove direct calls to permissions plugins. Alpha code fix.
  • Fixed logic bug preventing skulls from ever dropping anywhere
  • Fixed bug that would prevent skull drops if drop chance set to 1
  • Added negative and div by 0 catch to drop chance
  • Added config option NO_SKULL_DROP_WORLD_LIST
    • Prevents skulls dropping in blacklist worlds

- 0.28 DisguiseCraft Support, Bug fixes, reverse compatibility mode

  • Added skullturret.target.monster && skullturret.target.animal to special permissions in book target parsing method
  • Fixed some possible cast exceptions in meta data checks
  • Fixed bug in player targeting
  • Forget previous target if skullturret is set to listen to redstone and is depowered while targetingt
  • Added config option mc_1.5.2_compatibility
    • Default false disabled
    • Allows skullturret to run on servers using version 1.5.2 without errors
    • UNSUPPORTED MODE: This mode was tested on 1.5.2 and I saw no issues. However, I wont respond to bug reports with this mode enabled.
  • Changed from checking for squids specifically in targeting to checking for WaterMobs. Future proof?
  • Added DisguiseCraft 4.9 support
    • Targets will be chosen based on disguise
    • Blocks are not considered valid targets
    • Players disguised as other players are not supported and will be targeted as if not disguised
    • All animal and Monster disguise types are valid targets
    • Skulls will continue to target players if they change disguise while a target of a skullturret
  • Added config option disguisecraft_support
    • Default false disabled
    • Enabled allows for use of disguisecraft disguises to fool skullturrets
  • Update factions support to include Factions 1.8.2
    • Because I've seen a lot of hate for 2.0
    • Only support is for factions version 1.8.2, Version 2 and above.
    • SkullTurret will smartly choose which factions api to use if factions is enabled in config.

- 0.27 Towny Support, Bug fixes, Feature changes/additions

  • Removed last deprecated method call
  • Fixed couple possible NPE bugs in skullturret itemMeta detections
  • Fixed bug causing skulls to on occasion self delete on chunk unload (thanks Raptor96)
  • Switched delimiters in database from @ to ASCII 31
  • Cancel plugin tasks on disable
  • Changed /skull give to /skull give <itemType> (playerName) (amount)
    • Works in game and in console now
    • player name and amount are optional in game
  • Added /skull destruct <playerName> command
    • Works in game and in console
    • Destroys all specified players skulls
  • Help updated for new commands
  • Added permission skullturret.destruct
    • Give permissions for destruct command
    • Member of skullturret.* and skullturret.admin nodes
  • Added permissions nodes for target types
    • skullturret.target.*
      • Allows all target types to be added
    • skullturret.target.<entityType>
      • Allows specified target to be added to skull target list (friend and enemy)
      • Example: skullturret.target.cow
      • Above example would allow players to add cows to skull target lists
    • skullturret.target.* is a member of skullturret.admin node and skullturret.* node
  • Added basic Towny 0.84.0.0 Support.
    • Using /skaddenemy PLAYER all players will be assessed for town affiliation and potential for targeting
    • Skulls will target Enemy residents who can be targeted
    • Skulls will not target residents who are on the owners friend list
    • Skulls will target residents who are declared enemy
    • Skulls will function in wilderness
    • Skulls will function in Ally towns if you are both allies with each other
    • Skulls in towns with which you not allied with will go offline
    • Skulls which are offline will emit smoke VFX for 2 minutes
    • Skulls which are offline will self destruct after 2 minutes
    • Skulls which are offline will explode after 2 minutes (cosmetic only, non-damaging)
      • Note: it is recommended to add skulls as a block that is not regenerated after unclaim
      • Skullsturrets placed in the wilderness and then claimed through the claim process could potentially
      • self destruct. Unclaiming will restore the skull but skullturret will have lost track of the skull.
      • With wizard skulls this would mean a player could retrieve free witherskulls
  • Added config option towny_support
    • Default false disabled
    • Enabled allows for towny support

- 0.26 | Factions Support, Bug Fixes and Command Changes

  • Cancel commands on player quit
  • Resolved some issues keeping skull chunks loaded unnecessarily
  • Removed config option redstone_block_id to convert from using Obsolete typeId to Material type name
  • Added new config option redstone_block_mat
    • Same function as old config option redstone_block_id but uses material names instead
    • Accepts any valid block material name
    • Valid material type names can be found at the below website
    • http://jd.bukkit.org/rb/apidocs/org/bukkit/Material.html
    • Material name AIR is valid and replaces 0 to designate any block type

- 0.25 -beta | Bug fixes, Cleanup

  • Fixed some bugs in console command help
  • Fixed bug in command /sk give
  • Fixed static factions relations access causing NoClassDefFoundError if factions was not loaded
  • added amount arg to give command
    • /skull give <item> (amount)
    • valid amounts between 1 and 64

- 0.24 -alpha | Command Structure changes

  • Changed the command layout for better readability of commands (Should be the final command restructure)
    • Old commands still work for the time being
    • Permissions for new commands are the same as for the old commands (No change planned)
    • New Commands are as follows:
    • alias: /sk
    • /skull add <friend/enemy> <entityType> (playerName)
    • /skull add <player> <playerName> <maxTurret> <maxRange>
    • /skull rem <friend/enemy> <entityType> (playerName)
    • /skull rem <player> <playerName>
    • /skull done
    • /skull rotate
    • /skull redstone
    • /skull patrol
    • /skull ammo <ammoType>
    • /skull skin (skinName)
    • /skull reload (yes/no)
    • /skull give <item>
    • /skull list
    • /skull listall
    • /skull edit
    • /skull (?/help) (command)
  • Added command /skull (?/help) (command)
    • Provides in game / in console command information
  • Added more help info to command error messages
  • Code cleanup / typo fixes here and there
  • Adjusted permissions error messages

- 0.23 -alpha | Bug fixes, Features

  • Fixed bug in command cancel not fully canceling out of commands
  • Added event cancel respect
  • Added small workaround for reverted splash potions. Bukkit Bug extending instant potions.
  • Fixed small bug in potion damage for endermen
  • Changed up some methods to bring the plugin closer to compliance with Bukkit Team's new "Deprecate all the things!" policy
  • Simple Faction 2.0 Support added for Master & Wizard Skulls
    • Using /skaddenemy PLAYER all players will be assessed for faction affiliation and potential for targeting
    • Skulls will target Enemy Alliances
    • Skulls will target Players with no faction
    • Skulls will not target Peaceful flags
    • Skulls will not target Neutral or Truce
    • Skulls will not function inside Enemy, Neutral or Truce territory
    • Skulls will function in wilderness and Ally territories
    • Skulls in enemy territory will go offline
    • Skulls in enemy territory will emit smoke VFX for 2 minutes
    • Skulls in enemy territory will self destruct after 2 minutes
    • Skulls in enemy territory will explode after 2 minutes
      • Visual Effect non-damaging
    • Skulls can not be placed in enemy territory
  • Added config option factions_support
    • Default (false) ignore factions

- 0.22 -Release | Bug fixes, Feature

  • Fixed bug in player IFF targeting. Master/Wizard Skulls were not ignoring players who are in neither friend or enemy list.
  • Added small ping sound effect to Skull Bow when target is hit by arrow
  • Fixed bug in skull bow targeting. Players are no longer targets after death / respawn
  • Fixed friendly fire calculations to work with Skull Bow
  • Changed to a more exact form of player get method

- 0.21 -beta | Bug fixes, Features

  • Removed workaround for Entity hasLineOfSight() bug(BUKKIT-4634) - Requires CraftBukkit 1.6.2-R0.2 build #2860 and up
    • Config option line_of_sight_workaround added to re-enable this workaround
    • (Only needed for servers running Craftbukkit builds lower then the build it was fixed in)
  • Put Null Pointer check for offline players should prevent future NPE's
  • Squids are now considered animals for Crazed and Devious Skulls and will not be targeted by those types of skulls.
  • Added config option only_use_bow_for_targets
    • If enabled all skull types only respond to Skull bow and will only target Living Entities shot by skull bows
    • No skulls can have their targets set if this is enabled
    • Crazed and Devious skulls will still not shoot animals or players.
    • 1 minute target timer still applies

- 0.2 -beta | Bug fixes, minor changes

  • Fixed a bug in target rating sub system causing NPE.
    • Was checking legs instead of feet for feet armor detection.
  • Added a few more null checks through-out the code
  • Added / changed colors for some commands chat info
  • Changed /skrotate command to use right click to counter clockwise rotate, and left click to clockwise rotate skulls

- 0.19 -beta | Bug fixes, Features

  • Fixed a bug in book parsing from skulls that had a named player enemy but no friends
  • Fixed a parsing error in skull database for skulls with named players and/or named friends
  • Cleaned up targeting code some for arrows.
  • Fixed some issues with crazed skulls and target detection
  • Fixed bug in /skammo command prevented skulls changed to fire arrow from changing back to non fire arrow
  • Fixed bug in /akammo if command didnt have correct arguments would cause Index out of bounds exception
  • Skulls will no longer target enemies if they cant path a rotational direction to them
    • Fixes skulls placed in alcoves swiveling around and facing a wall to shoot at something and getting stuck
  • Fixed bug in /skaddenemy player <playerName> For real this time
    • Owner of the skull was being tested against player name instead of target name
  • Fixed bug in /skaddfriend player <playerName> For real this time
    • Owner of the skull was being tested against player name instead of target name
  • Fixed bug in /skaddenemy & /skaddfriend that allowed editing of crazed and devious skull targets
  • Sped up skull patrol time by 200ms
  • Decreased wizard fire delay by 1000ms
  • Removed target miss check code for wizard skulls
  • /skrotate command can be canceled by typing either /skdone or retyping /skrotate
  • Fixed maxRange save issue if per user settings were removed for skull owner
  • Added firecharge soundFX for skulls that shoot firecharge
  • Added snowball soundFX for skulls that shoot snowballs
  • Added bow shoot soundFX for skulls that shoot arrows.
  • Added a soundFX for wizard skulls firing potions
  • Added Headers to config file options
  • Added config option allow_mob_loot
    • If disabled, Mobs that are shot by skulls will not drop loot or exp. Regardless of who got the kill
  • Added config option fire_charge_is_incendiary
    • If enabled allows fire charges to spread fire
  • Added /skaddplayer /skremplayer /sklistallplayer to console commands
  • Code cleanup in command structure
  • Added permission skullturret.reload
    • Gives permission to use /skreload command
    • Member of admin super node
  • Added confirmation dialog to /skreload command
    • /skreload yes or /skreload no when prompted
    • Reloading datafiles can cause temporary server lag if large numbers of skulls are in play because of initial range calculations
  • Use normal skull intel name instead of enum name for interact event
  • Disconnected velocity from arrow damage.
    • Updated velocities to comply with disconnected damage change
  • Added new config option crazed_damage_mod
    • Sets crazed skull arrow damage
  • Added new config option devious_damage_mod
    • Sets devious skull arrow damage
  • Added new config option master_damage_mod
    • Set master skull arrow damage
  • Added new config option wizard_damage_mod
    • Sets wizard skull arrow damage
  • Added new config option crazed_accuracy_mod
    • Sets crazed skull arrow accuracy
  • Added new config option devious_accuracy_mod
    • Sets devious skull arrow accuracy
  • Added new config option master_accuracy_mod
    • Sets master skull arrow accuracy
  • Added new config option wizard_accuracy_mod
    • Sets wizard skull arrow accuracy
  • Added new config option crazed_fire_speed
    • Sets crazed skull fire speed
  • Added new config option devious_fire_speed
    • Sets devious skull fire speed
  • Added new config option master_fire_speed
    • Sets master skull fire speed
  • Added new config option wizard_fire_speed
    • Sets wizard skull fire speed
  • Added new config option crazed_firerange_mod
    • Sets crazed skull firing range
  • Added new config option devious_firerange_mod
    • Sets devious skull firing range
  • Added new config option master_firerange_mod
    • Sets master skull firing range
  • Added new config option wizard_firerange_mod
    • Sets wizard skull firing range
  • Added new config option patrol_timer
    • Sets the time a skull remains looking in a direction

- 0.18 -alpha | Bug fixes, Features

  • Fixed bug that kept trapped chests from being detected as valid ammo boxes
  • Added new skull type Wizard
    • Crafted using Master Skull, magma cream, glowstone dust, gray dye and nether wart
    • Skull requires ammo chest to function regardless of config setting for ammo chests
    • Skull uses ammo chest to hold splash Potions
    • Randomly chooses a potion from the chest to attack with
    • Will use 5 types of Splash potions (Weakness, Slow, Poison, Heal, Harm)
    • Skull will not choose potions that cant harm target. IE Zombies are attacked with heal potion, Spiders wont be poisoned etc.
    • Same stats as a Master skull but Fires slightly slower.
    • Will attack with a fire arrow if its target is near death
    • Can not have its skin changed
    • Can not have its ammo type directly set
    • Will use arrows from chest for fire arrows if ammo chests are enabled
    • Will not consume potions. They are simply used to determine what effect will be used on a target
      • Because potions cant stack, the chests would be emptied too quickly
    • The exact effects of the potion chosen as ammo are applied to the target (Duration, Level, Effect, Damage)
    • Skull bows also are usable with Wizard skulls because they inherit skills from master skulls
    • Only skull type that can successfully harm a enderman
  • Added permission skullturret.create.wizard
    • Allows players to create wizard skulls

- 0.17 -alpha | Bug fixes, Features

  • Removed some debugging message that might spam console
  • Fixed bug allowing players to place skulls on the side of fence's. The skull would not work and would not break returning a turret skull.
  • Fixed command help info for /skgive (was showing old early testing skull types)
  • Changed default use_ammo_chests to false in config.
  • Fixed a bug in patrol could cause skull to jump 1 extra rotational direction upon server restart.
    • Would make a skull sometimes get stuck looking at walls
  • Skulls will no longer target players in creative mode
  • Added new permissions skullturret.ignoreme
    • Anyone with this permissions will be immune to skull targeting
    • If nopermissions config option is enabled, this permission is ignored
  • Added Skull Bow item
    • (Subject to change) uses Slime Ball, Bow and Eye of Ender as crafting items
    • Any Living Entity shot with this bow will be a target of all owned Master skulls in range of the target
    • Skulls will attempt to target as soon as they are able
    • Skulls will continue to target as long as enemy is in range
    • Skulls will forget the target after 1 minute of time even if target re-enters range
    • Target Timer is reset each time Target is shot
    • skullturret.ignoreme permissions makes target immune
    • (Subject to change) Does not require ammo at this time (Bow has Infinity arrow enchant)
    • Bow does not do damage to target that is shot
  • Added /skgive bow to list of skgive items
  • Added permission skullturret.create.bow
    • Allows permission to craft skull bows
  • Added permission skullturret.use.bow
    • Allows permission to use skull bows
  • Fixed a couple lore check issues

- 0.16 -alpha | Bug fixes, Features

  • Fixed typo in config option bow_durability_per_shot (was bow_duribility_per_shot: 5)
  • Added per user config playerinfo.yml
    • All player information pertaining to Skull Amounts and Ranges are stored in this file
    • Contains default example
    • Replaces Config setting custom_ranges in config.yml
  • Added command /skaddplayer <playerName> <maxTurrets> <maxRange>
    • Allows users with permission to set per player settings for max range and turret limit
    • Command can be used to both update and add new players
    • All arguments listed are required
    • Ranges must be multiples of 3
  • Added command /skremplayer <playerName>
    • Allows users with permission to remove players from per player setting
  • Added command /sklistallplayer
    • Lists all players currently in per player list with their individual settings
  • Added command /sklistplayer
    • Lists a players individual settings
  • Added permission skullturret.addplayer
    • Allows permission to add players to per player list
  • Added permission skullturret.remplayer
    • Allows permission to remove players from per player list
  • Added permission skullturret.listplayer
    • Allows permission to list all players in per player list
  • Added permissions skullturret.listallplayer
  • Added config option disable_permissions_checks
    • All permissions checks are disabled same as having skullturret.* permission
  • Added config option allow_per_player_settings
    • Enables per player settings
    • If disabled all per player settings commands are also disabled.
    • Per player database will not be read, saved or created if disabled
  • Added super node skullturret.perplayer
    • Contains all permissions for per player settings skullturret.(addplayer, remplayer, listallplayer)
    • Admin super node also inherits from this super node
  • Fixed a bug in knowledge book owner detection
    • Prevented anyone without admin permission or skulls skin was not the owners skin from editing skulls with books.
  • Fixed a bug in book detection that would allow players to keep getting books from the same skull over and over

- 0.15 -alpha | Bug fixes, Features

  • Added command /skammo <arrow, firearrow, firecharge, snowball>
    • Allows users with permission to change default ammo type for skulls that do not use ammo chests
    • Valid values are arrow, firearrow, firecharge, snowball
    • Fire ticks for firearrows are taken from the plugin config fire_arrow_ticks
    • Must select a skull first before command can be used
    • Will override firebow settings.
  • Added permission skullturret.changeammo
    • allows users to change default ammo type for skulls not using ammo chests
    • Member of skullturret.admin supernode
  • Enabled config option mob_drops
    • Allows Skeletons to drop skulls when killed
    • Skeletons will not drop skulls if shot by a skull turret
  • Added config option skull_drop_chance
    • Default value is 50 (or a 1 in 50 chance a skeleton killed will drop a skull)
  • Added command /skskin <username>
    • Changes the skulls skin to the username entered
    • Using /skskin without a username resets the skull back to a skeleton head
  • Added permission: skullturret.skin
    • Allows players to set their skulls skin
    • Member of skullturret.admin supernode
  • Books now contain skin information and will update other skulls with that skin
    • Skull books without skin info will reset skulls skin clicked with that book to default skeleton
  • Added config option offline_players_skulls_offline
    • If true players who are offline their skulls will also be offline and will neither patrol nor target and fire.
    • Permissions override skullturret.admin
  • Added range setting custom_ranges
    • Must be Multiples of 3
    • values must be playerName,range format
    • Example in config
  • Fixed bug in Config reloading that was not clearing and reloading config properly
  • Put a check in place to make sure that Range values are multiples of 3. Must be this way because MATH!
  • Fixed small database save issue.

- 0.14 -alpha | Bug fixes, Features

  • Config option drop_book_on_break
    • Allows the knowledge book to be dropped with the skull when it is broken.
    • break_skull_drop option set to false will prevent book drop
    • Books from broken skulls do not have owner info and can be used on any skull owned by anyone.
    • Only skulls owned by the player can be updated with these books. Admin permission override
    • Wont drop a book if skull has no targets
  • Removed intelligence limits for /skrotate command
  • Clicking with a knowledge book the same skull that that knowledge book came from will update the skull not the book now.
  • If player already has clicked skulls knowledge book in their inventory they cant get another from that skull.
  • Added ammo boxes.
    • Only accepts Arrows, Snowballs, or firecharges.
    • Settings for each in config
    • Ammo boxes are placed below the fencepost the skull is sitting on
    • Ammo boxes are also checked for below and to the north south east and west of the fencepost
  • Added config option use_ammo_chests
    • Sets skulls to use ammo chests
  • Added config option allow_fire_charge
    • Allows skulls to pull fire charges from ammo chests
  • Added config option allow_arrows
    • Allows skulls to pull arrows from ammo chests
  • Added config option allow_snowballs
    • Allows skulls to pull snowballs from ammo chests
  • Added config option allow_fire_bow
    • Placing a fire enchanted bow into an ammo chest with arrows will shoot fire arrows
  • Added config option fire_arrow_ticks
    • Sets the amount of game ticks a entity will burn if hit by a fire bow (default 100 or 5 seconds)
  • Added config option bow_durability_per_shot
    • Sets the amount of damage to do to the bow per shot fired. (Default 5)
    • Can accept 0 as a value, the bow will not be damaged.
  • Added lava and water protection to skulls
  • Changed /skreload to work with the console
  • Changed /skreload to not resave default config values

- 0.13 -alpha | Features, Bug Fixes

  • Fixed bug preventing any skull block from being destroyed.
  • Fixed bug allowing players to select and edit target lists for crazed and devious skulls.
  • refined skull target firing solution method to use eye height instead of block location
  • refined skull eye location for line of sight
  • fixed bug in player detection if all players were not added to enemy list.
  • fixed bug in addfiends if admin tried to add self to target lists of another players skull
  • Updated saving methods
  • /skreload command added
    • permission: skullturret.admin
    • reloads datafiles (database and config)
  • Config option drop_books_on_death
    • Skull Knowledge Books normally will vanish when they are thrown out. This prevents that on death of a player.
  • /skpatrol command added
    • permission: skullturret.edit
    • Toggles skull patrol and rotating to target
  • /skrotate command added
    • permission: skullturret.edit
    • Rotates skull clockwise on its axis.
    • wont rotate skulls not owned by player (admin override)
    • wont rotate skulls on patrol
  • added redstone detection.
    • First Block under the fence post the skull is sitting on will be tested for redstone power
    • Skulls listening for Redstone power and are powered will show VFX if enabled.
    • Skulls listening for Redstone power and are not powered will not patrol
    • A block can be powered both directly and indirectly. Both are detected.
  • added config option allow_redstone_detect
    • allows skulls to detect redstone power
  • added config option redstone_block_id
    • default block id 22 (lapis lazuli block)
    • sets the required block for redstone detection
    • Can be 0 (air) for any block
  • /skredstone command added
    • permission: skullturret.edit
    • toggles selected skulls redstone detection
    • skulls listening for redstone will not target or fire at anything
    • ANY skull type can be set to listen for redstone signals

- 0.12 -alpha | Bug Fixes, Permissions added

  • Minor drag event change for efficiency
  • Skull selection now checks for owner (admin permission override)
  • Players can not destroy skulls they do not own (admin permission override)
  • Permissions:
  • skullturret.debug - Ability to use debug commands *for internal testing (Alpha)
  • skullturret.give - Ability to use the /skgive command
  • skullturret.edit - Ability to select and edit skulls
  • skullturret.use - Ability to place skulls, remove skulls and get knowledge books for skulls
  • skullturret.create - Super node for crafting (includes skullturret.use and skullturret.edit)
  • skullturret.create.crazed - Ability to craft crazed skulls
  • skullturret.create.devious - Ability to craft devious skulls
  • skullturret.create.master - Ability to craft master skulls
  • skullturret.admin - Ability to destroy other players skulls, override max skull count and set other players skull targets
    • (includes everything in skullturret.create supernode)

- 0.11 -alpha | First release

  • first release