Details
Supported Bukkit Versions
Changelog
v2.38 - 5/13/14
- Changed MCCore from a soft dependency to a hard dependency
- Moved commands over to MCCore's ConfigurableCommand API
- Fixed a bug with old health bars not applying correctly
- Fixed skill bars not saving correctly
v2.37 - 5/8/14
- Added a configurable message on gaining experience
- Changed PlayerSkills to match MCCore's new StatBoard for efficiency
- Fixed a bug with passive abilities
- Fixed being able to damage tamable animals owned by allies
v2.36 - 5/6/14
- Added the Cone and Summon skill types
- Added text buttons to the help command for players in Bukkit v1.7.9+
- Fixed help screen in the console
- Fixed commands targeting players via names
- Fixed cooldowns not being entirely accurate
- Fixed being able to assign level 0 skills to the skill bar
- Fixed being able to cast skills after downgrading them to level 0 from the skill bar
v2.35 - 4/27/14
- Added UUID support for 1.7.x and up
- Added a logging message for loading player data for levels 2 and up
- Added VersionPlayer class for cross-version support of getting player data
- Added overloads for the getPlayer method in SkillAPI using Player, OfflinePlayer, HumanEntity, and VersionPlayer
- Added 1.7.5, 1.7.8, and 1.7.9 to the VersionManager version ID constants for both Bukkit and Spigot
- Changed the Bukkit build SkillAPI uses from 1.6.2 to 1.7.9
- Fixed coded skills not loading decimal attributes correctly
- Removed the Breath and Hurt sound options
v2.34 - 3/6/14
- Fixed a bug with skill bars
v2.33 - 2/15/14
- Fixed registering listeners on mechanics
- Fixed crashing when loading individual classes
v2.32 - 2/9/14
- Added an option to change the root command (/class by default)
- Added support for class mana names to the skill tree
- Added the Health effect
- Fixed skill bars
v2.31 - 2/2/14
- Added an option for the health of classless players
- Added an option to display a player's class with their name
- Added an option to display a player's level below their name
- Added support for multiple classes in the Quests custom requirement
- Added a "Particle Height" option
- Added EntityEffect particles to the Particle effect
- Changed the config.yml layout (old settings will be automatically converted)
- Fixed the Value Condition effect
- Fixed loading class inheritance
v2.30 - 1/30/14
- Fixed a bug with the Sound mechanic
v2.29 - 1/29/14
- Added a config option for log messages on load
- Fixed server build number comparisons
v2.28 - 1/28/14
- Added support for Quests
- Added the Value Condition effect
- Added skillapi.reset permission for the reset command
- Added an option for a default class
- Fixed passive skill errors when resetting your class
- Fixed the "Old Health Bars" option from not working sometimes
v2.27 - 1/16/14
- Added skill bar casting
- Added the Cooldown effect
- Added support for multiple potions for the Potion effect
- Added support for multiple statuses for the Status effect
- Added 39 new conditions for the Condition effect
- Added a loaded flag to skills.yml and classes.yml
- Added individual file support for dynamic skills and classes
- Added skillapi.stats permission to allow seeing other player stats
- Added a config option to disable skill downgrading
- Changed the PlayerUpgradeSkillEvent to be cancellable and include the cost
- Changed loading skills.yml and classes.yml to generate individual files
- Fixed passive effects persisting when downgrading a skill to level 0
- Fixed loading decimal health/mana values from class configs
v2.26 - 1/13/14
- Added the Teleport Location effect
- Added the Command effect
- Added the Mana Percent effect
- Added the Health Damage effect
- Added the Heal Percent effect
- Added an option to Mana Damage effect to base off of max mana
- Added permission requirements for skills
- Added giving permissions for unlocking skills
- Added giving permissions for professing as a class
- Added double support for the PlayerStatusEvent constructor
- Added the points command to give skill points to a player
- Changed how class permissions work so it's easier to set up
- Changed all damaging effects to not activate the Minecraft 0.5 second invincibility
- Fixed attack imbuements activating from skill damage
- Fixed the chance for attack imbuements not functioning quite right
- Fixed item requirements for dynamic skills
- Fixed an issue with passive skills for coded projects
- Fixed the duration on statuses for players
- Fixed DOT effects not working with other damage sources
- Fixed commands for the console
- Fixed new values in the language config not showing up
v2.25 - 1/7/14
- Added Cone target type
- Added an option to lose experience on death
- Added 'offset' and 'interval' values to class configs to control click combos
- Added the ParticleProjectileLaunchEvent
- Added methods to ProjectileHelper to launch Particle Projectiles with embed data
- Fixed a minor math error for linear targeting
- Fixed the Particle Projectile effect not applying embed effects properly
v2.24 - 1/3/14
- Added Area, Self, and Linear skill types
- Added double support for the rainProjectiles method's radius in ProjectileHelper
- Added an option to make custom items deal 1 damage (default they deal normal damage)
- Added an option to use custom keys for SkillMeta
- Added a method to SkillMeta to check if it has an attribute
- Added a method to SkillMeta to retrieve the skill that applied it
- Fixed skill level requirements not checking the correct value
v2.23 - 1/2/14
- Added an option to use items with the Projectile effect (e.g. using 1 arrow for the skill)
- Fixed a bug involving gaining multiple levels not requiring the right amount of experience
- Fixed being able to downgrade skills required by other skills past the required level
- Fixed the Teleport mechanic to work more reliably
v2.22 - 12/29/13
- Added methods to ParticleHelper to play individual particles at a location
- Added a helper class for particle projectiles (projectiles that are just particle effects that can hit things)
- Added double support for ProjectileHelper's rain method
- Added methods to ProjectileHelper to launch the new particle projectiles
- Added a ParticleProjectile effect
- Changed the SkillAPI damage events to only trigger when damage will actually happen instead of every time the Bukkit event fires
- Fixed an error when dynamic classes don't have a Health or Mana attribute set
- Fixed 'other' type particles from playing only at the target location rather than filling the area properly
- Fixed skills not awarding the caster with experience on killing an enemy
v2.21 - 12/21/13
- Added messages for when skills are cast
- Added a method to get the caster from SkillMeta
- Added an optional chance attribute for AttackModifier effects
- Added a DefenseModifier effect
- Added item requirements for weapons (set damage to 1 if a player cannot use it)
- Added a cancellable PlayerCastSkillEvent
- Added compatibility with 1.5.2 without a separate file
- Fixed a problem while logging out with less than the default health
- Fixed issues when other plugins set a player's class to a class that doesn't exist
- Fixed the Teleport effect not going the correct distance when diagonal
- Fixed passive dynamic skills canceling effects for all players if any player dies, quits, downgrades, or upgrades the skill
- Fixed issues with starting passive skill on respawn
- Removed the "Breath" and "Hurt" sounds from the Sound effect for 1.7.2 (Still works for 1.6.4 and earlier servers)
v2.20 - 12/19/13
- Added an option to gain experience through exp orbs rather than from the options
- Fixed a cast exception when damaging things with projectiles
v2.19 - 12/14/13
- Added a TimedEffect helper class
- Added an option to block experience while in Creative mode
- Fixed coded skills not loading attributes from the config properly
- Fixed /class unbind not working
- Fixed the name formatting in /class info
- Fixed being able to cast skills through binds after downgrading it to level 0
v2.18 - 12/11/13
- Added a getPlayer() method in PlayerSkills
- Added a startPassiveAbilities() method in PlayerSkills
- Added a new option to the Particle mechanic to access the new particle effects
- Added a build compatible with CraftBukkit 1.5.2
- Changed APIListener to SkillListener to fix a weird issue
- Changed custom projectile damage to take materials instead of classes
- Changed the default period attribute for dynamic skills to 3 (+0) from 3 (+1)
- Changed the new particles to run more efficiently
- Fixed projectile damage not applying properly
- Fixed dynamic classes defaulting to false for gaining mana
- Fixed passives not working after death
- Fixed SkillMeta static methods not working
- Fixed the Target Area target type from not loading correctly from the tool
- Fixed the new particles not working in 1.7.2
v2.17 - 12/8/13
- Added a skill*friendly option for DOTs
- Added 35 new particle effects
- Changed skill indicators to ItemStacks instead of Materials
- Changed the Status mechanic to apply max slow potion to mobs for stun and root instead of do nothing
- Fixed invincible enemies begin considered allies
- Fixed all enemies being considered allies when class damage is less than normal damage
- Fixed tamed creatures from being considered enemies
- Fixed the caster from being considered an enemy sometimes
- Fixed DOTs running 20x slower than they should
- Fixed projectiles not firing the correct amount
- Fixed the class name formatting upon profession
- Fixed the AttackModifier mechanic not applying to the targets
v2.16 - 11/30/13
- Added the ability to downgrade skills on right click
- Added PlayerHealEvent
- Added PlayerSkillHealEvent
- Added PlayerSkillDowngradeEvent
- Added config option to disable checks for lore requirements
- Added a heal method in PlayerSkills for specifying the skill and healer
- Changed lore requirements not function in creative mode due to issues
- Fixed PlayerSkills.heal not behaving correctly with old health bars
- Fixed skill points not subtracting the correct amounts on upgrade
- Fixed a click combo of all left clicks from not being possible
- Fixed strictly passive dynamic skills still receiving a click combo
- Worked on comments
v2.15 - 11/26/13
- Added support for double values with attributes
- Added a method to PlayerSkills to get a player's max mana
- Added a rainProjectiles method to ProjectileHelper
- Fixed dynamic skills with multiple effects not working properly
- Fixed weapon damage modifying skill damage
- Fixed custom items dealing 1 damage
- Fixed Cleanse effects from not retrieving the right value
- Fixed Condition effects from not retrieving the right value
v2.14 - 11/24/13
- Added the Chance effect
- Added the Cleanse effect
- Added the Condition effect
- Added the Delay effect
- Added how many levels were gained in PlayerLevelUpEvent
- Added the hasStatuses() method to StatusHolder
- Changed PlayerOnHitEvent and PlayerOnDamagedEvent to be called every damage attempt
- Changed roots to allow turning
- Fixed multiple dynamic effects not working
- Fixed setting a class to an invalid, but non-null class from other plugins
- Fixed class health not applying when old health bars are enabled
- Fixed the Sound effect not retrieving the right value for its volume
- Fixed AttackModifier effects not working passively or when embedded
- Fixed DOT effects not working passively or when embedded
- Fixed HOT effects not working passively or when embedded
- Fixed projectile mechanics not registering their embedded usage
- Removed a reference to MCCore that caused problems when it isn't installed
- Reworked SkillMeta to work with multiple skills and be easier to use
v2.13 - 11/21/13
- Added the "Skill" AttackType for when skills deal damage
- Added the PlayerOnSkillHitEvent
- Added the SpecialEntityDamagedByEntityEvent
- Added the beginUsage() and stopUsage() methods to ClassSkill to work with the new events
- Added multiple requirement support for armor requirement lores
- Fixed SoundMechanic not working
- Fixed DamageMechanic not giving credit to the caster
- Fixed when the PlayerOnAttackEvent and PlayerOnHitEvents were called
v2.12 - 11/20/13
- Fixed the double .yml suffix on the dynamic configs
v2.11 - 11/120/13
- Added blocking mob spawner experience
- Added blocking mob egg experience
- Added an IStatus interface for custom statuses
- Changed PlayerSkills.heal(int) to now accept a double
- Changed StatusHolder to use IStatus
- Fixed damage modifiers not expiring correctly (thanks ct63960)
- Moved registration/accessors for classes/skills into a manager
- Removed an unwanted MCCore reference
v2.10 - 11/17/13
- Added permission checks for experience gain, skill usage, damage modification, and a few other mechanics
- Added an option to show player level/exp in the enchanting level bar
- Added an option to use click combos along with binds
- Added a CooldownManager utility class in case someone needs cooldowns outside of the provided one
- Fixed the comment not displaying the right formula for experience requirements
v2.9 - 11/16/13
- Added the DOT effect
- Added the HOT effect
- Added a DOT helper class accessible through SkillAPI.getDOTHelper()
- Added helper methods for saving player data
- Added methods to increase or decrease skill cooldowns by a number of seconds
- Fixed SkillAPI.getPlayer(String) from returning null sometimes
- Fixed the reload command from breaking when players didn't have a class
- Fixed experience formula not being the correct format
- Fixed PlayerSkills.addMaxHeath(int) giving all players with the same class health
- Made significant changes to the comments
- Removed the SkillAPI.addPlayer(PlayerSkills) method
v2.8 - 11/15/13
- Added Sound effect
- Added support for setting the damage of custom projectiles for classes in code
- Fixed classes not saving mana variables
v2.7 - 11/14/13
- Added Attack Modifier effect
- Added Lightning effect
- Added "Potion Break" option to particle effects (value is 3)
- Added a data value to particle effects for the potion break particle
- Added custom item support for setting class damage in code
- Added a data option to the ParticleHelper methods
- Added an attack type to the PlayerOnHitEvent and PlayerOnDamagedEvent
- Added class armor exclusion
- Fixed potion effects not having the right duration
- Fixed the default damage amounts for tools
v2.6 - 11/12/13
- Added a Circle option to Projectile effects (non-horizontal)
- Added a ProjectileHelper class for firing projectiles
- Fixed problems with the join event
- Fixed projectile damage events
- Moved the horizontal circle implementation in the Projectile effect into the new helper class
v2.5 - 11/11/13
- Added Particle mechanic
- Fixed bug with colorless prefixes
v2.4 - 11/7/13
- Added Basic Vertical tree arrangement
- Added Level Vertical tree arrangement
- Added Level Horizontal tree arrangement
- Added option to disable passive mana gain for specific classes
- Added option to change the display name of mana for specific classes
- Fixed loading in some values from dynamic configs from the external tool
v2.3 - 10/31/13
- Added a new skill tree arrangement
- Added a config option for skill tree arrangement
- Added projectile type value for dynamic projectile effects
- Added teleport effect
- Added teleport target effect
- Changed default profess-reset option to false from true
- Fixed implementation for old health bars so it is more compatible with other plugins
- Fixed player damage events from calling on each attempt at damage, rather than when damage is dealt
- Moved skill tree mechanics from CustomClass into the SkillTree class
v2.2 - 10/26/13
- Added damage reduction effect
- Added damage percent reduction effect
- Added projectile effect
- Added embedded mechanics (only used by projectile effects so far)
- Added item requirements for skills
- Fixed passive abilities not registering attributes correctly
- Fixed enemy group including the caster
v2.1 - 10/24/13
- Added Mana effect
- Added Mana Damage effect
- Fixed Damage Bonus effects and Damage Percent mechanics from not being detected
- Fixed an incorrect import causing problems when not using MCCore
v2.0 - 10/22/13
- Added dynamic skills
- Added dynamic classes
- Added a restriction on skill tree size to prevent glitched skill tree menus
- Added a StatusHolder class for players and mobs
- Added statuses working on mobs
- Added damage bonuses and multipliers for players and mobs
- Added a hasClass helper method to PlayerSkills
- Changed return type of PlayerSkillUnlockEvent.getUnlockedSkill() to ClassSkill
- Changed return type of PlayerSkillUpgradeEvent.getUpgradedSkill() to ClassSkill
- Changed return type of SkillAPI.getSkill(String) to ClassSkill
- Changed return type of SkillAPI.getClass(String) to CustomClass
- Fixed class names being displayed as how you entered them
- Fixed custom mana amounts not working
- Fixed errors when a skill was removed from a class
- Fixed resetting on profession not refunding skill points
- Fixed professing into a class, that doesn't inherit the previous class, not refunding skill points
- Fixed passive abilities not being cancelled when professing into a class without the skill
- Fixed class inheritance
- Moved PlayerSkills from com.sucy.skill.skill to com.sucy.skill.api
- Moved SkillTreeException from com.sucy.skill.skill to com.sucy.skill.api
- Removed player damage bonuses from CustomClass
- Removed Skill class and moved functionality into ClassSkill
- Removed SkillTree class and moved functionality into CustomClass
v1.4 - 10/14/13
- Added dynamic values to players (setValue, getValue, addValue, subtractValue, and hasValue methods)
- Added getLivingTargets method to TargetHelper to get all targets along a players vision line
- Changed the return type of PlayerSkills.getSkills from Hashtable to HashMap
- Fixed TargetHelper.getLivingTarget from getting a random target instead of the closest one
- Fixed the output filter for the options command
v1.3 - 10/12/13
- Added a config option for skill points gained per level
- Added an addMaxHealth(int) method for giving players more health
- Added an API reference to ClassSkill so all skills can easily access the API
- Fixed settings config values not showing up in older config files
- Renamed PlayerSkills.setMaxHealth(int) to PlayerSkills.applyMaxHealth(int)
v1.2 - 10/10/13
- Added built-in statuses with language options
- Added a PlayerStatusEvent
- Added a heal(int) method to PlayerSkills
v1.1 - 10/9/13
- Added an option to use the old health bar mechanics
- Added a cast method to the PlayerSkills class to easily cast skills
- Added a reload admin command
- Added permissions per class
- Fixed hybrid spells that used PassiveSkill to not work with /cast
v1.0 - 10/8/13
- Added lore equipment requirements
- Fixed skills having separate cooldowns on two items for the same skill
- Fixed an NPE when calculating custom damage
- Fixed the reset command
- Moved ManaTask from com.sucy.skill.skills to com.sucy.skill.tasks
v0.8 - 10/4/13
- Added compatibility for target skills with the /cast command
- Added the Range default attribute for target skills
- Added a TargetHelper class to get a target the player is looking at
- Added methods to ClassSkill to manage cooldowns
- Added a method to ClassSkill to get the status of the skill for a player
- Added maximum levels for classes
- Added an admin command to give player levels
- Added messages in the language config
- Fixed skill requirements not showing up in the skill tree
- Fixed skill requirements not being checked while leveling up skills
- Fixed skill attributes showing stats past the max level
- Fixed cooldown and mana not being checked or applied in the /cast command
- Renamed TreeValues to ClassValues
v0.7 - 10/3/13
- Fixed another problem when MCCore is not installed
v0.6 - 10/3/13
- Added a particle effect helper class
- Fixed an error when MCcore is not installed
- Fixed an error on plugin disable
- Moved the AttributeHelper class functions into the Attributed class
- Renamed DefaultAttributes to SkillAttributes
- Removed some accessor methods from the Skill class
v0.5 - 10/3/13
- Added an abstract Attributed class that now works with the AttributeHelper class
- Added checks to make sure registration is happening correctly
- Added checks to make sure attributes aren't being re-defined
- Added many comments and clarifications for the Javadocs
- Changed health and mana for classes to attributes
- Changed ClassSkill to extend Attributed (has the same methods though)
- Changed CustomClass to extend Attributed (get/set health/mana is now different)
- Moved the configured health/mana data into CustomClass
- Renamed Class back to SkillTree
v0.4 - 10/2/13
- Added the scoreboard titles to the language config
- Added level up, cooldown, and mana messages to the language config
- Added the PlayerClassChangeEvent
- Added the PlayerExperienceGainEvent
- Added the PlayerLevelUpEvent
- Added the PlayerManaGainEvent
- Added the PlayerManaUseEvent
- Added the PlayerSkillUnlockEvent
- Added the PlayerSkillUpgradeEvent
- Added controlling health in CustomClass
- Added controlling mana in CustomClass
- Fixed a bug with saving/loading player data
- Removed debug messages for the skill tree generation
v0.3 - 10/2/13
- Added a Protection utility class to determine allies from enemies
- Added command messages to the language configuration
- Changed the name of the Default class to DefaultAttributes
- Changed the DefaultAttributes to be strings rather than enum values
- Changed packages around (likely won't happen again)
- Changed player arguments to not be case-sensitive
- Fixed the API requiring MCCore when it should be optional
- Fixed a bug with instantiating player data
- Renamed SkillTree to Class
v0.2 - 10/1/13
- Added the stopEffects(Player, int) method to the PassiveSkill interface
- Made the skill description in skill trees configurable
v0.1 - 9/29/13