public interface Ability
CoreAbility
provides a default implementation for a few of these
methods, but most will need to be specified by each Ability individually.Modifier and Type | Method and Description |
---|---|
long |
getCooldown() |
java.lang.String |
getDescription()
The description of an ability is a few sentences used to describe how the
player can fully utilize the ability.
|
Element |
getElement()
Specifies the Element used to represent this type of ability, favoring
SubElements over Elements.
|
org.bukkit.Location |
getLocation()
Specifies the Location of the ability, which may be slightly inaccurate
depending on the Ability implementation.
|
java.lang.String |
getName()
The name of the ability is used for commands such as /bending
display and /bending help.
|
org.bukkit.entity.Player |
getPlayer()
Returns the player that caused this ability to be initiated.
|
boolean |
isEnabled()
Returns true if the ability is enabled through the config.yml.
|
boolean |
isExplosiveAbility()
Determines if this ability can cause explosions.
|
boolean |
isHarmlessAbility()
Determines if this ability is considered harmless against other players.
|
boolean |
isHiddenAbility()
A hidden ability is an ability that should not be shown by commands such
as /bending display and /bending help.
|
boolean |
isIgniteAbility()
Determines if this ability can ignite blocks.
|
boolean |
isSneakAbility()
Determines if this ability uses the
PlayerToggleSneakEvent as a
controlling mechanism. |
void |
progress()
Causes the ability to be updated.
|
void |
remove()
Causes the ability to be removed from existence.
|
void progress()
void remove()
boolean isSneakAbility()
PlayerToggleSneakEvent
as a
controlling mechanism. Currently WaterPassive
will not work while
the player has a sneak ability bound.boolean isHarmlessAbility()
boolean isIgniteAbility()
boolean isExplosiveAbility()
FireBlastCharged
boolean isHiddenAbility()
boolean isEnabled()
long getCooldown()
org.bukkit.entity.Player getPlayer()
CoreAbility.getAbility(String)
, or if an ability decided to set
player to null.java.lang.String getName()
BendingPlayer.addCooldown(Ability)
, therefore if two abilities
have the same name they will also share cooldowns. If two classes share
the same name (SurgeWall/SurgeWave) but need to have independent
cooldowns, then BendingPlayer.addCooldown(String, long)
should be
called explicitly.java.lang.String getDescription()
CoreAbility.getConfig()
.HelpCommand
,
CoreAbility.getDescription()
Element getElement()
Element.LIGHTNING
instead of Element.FIRE
.Element.SubElement.getParentElement()
org.bukkit.Location getLocation()
TorrentWave
could not be fully specified by a single location,
while it is possible for an EarthBlast
. The location is useful
for making sure that the player is currently in the same world as the
ability.BendingPlayer.canBend(CoreAbility)