Interface ToolComponent
- All Superinterfaces:
ConfigurationSerializable
Represents a component which can turn any item into a tool.
-
Nested Class Summary
Modifier and TypeInterfaceDescriptionstatic interface
A rule governing use of this tool and overriding attributes per-block. -
Method Summary
Modifier and TypeMethodDescriptionaddRule
(@NotNull Collection<Material> blocks, @Nullable Float speed, @Nullable Boolean correctForDrops) Add a new rule to this tool component, which provides further information about a collection of block types.Add a new rule to this tool component, which provides further information about a specific block type.Add a new rule to this tool component, which provides further information about a collection of block types represented by a blockTag
.int
Get the amount of durability to be removed from the tool each time a block is broken.float
Get the default mining speed of this tool.getRules()
Get the list ofToolRules
that apply to this tool.boolean
Remove the givenToolComponent.ToolRule
from this tool.void
setDamagePerBlock
(int damage) Set the amount of durability to be removed from the tool each time a block is broken.void
setDefaultMiningSpeed
(float speed) Set the default mining speed of this tool.void
setRules
(@NotNull List<ToolComponent.ToolRule> rules) Set the list ofToolRules
to apply to this tool.Methods inherited from interface org.bukkit.configuration.serialization.ConfigurationSerializable
serialize
-
Method Details
-
getDefaultMiningSpeed
float getDefaultMiningSpeed()Get the default mining speed of this tool. This value is used by the tool if no rule explicitly overrides it. 1.0 is standard mining speed.- Returns:
- the default mining speed
- See Also:
-
setDefaultMiningSpeed
void setDefaultMiningSpeed(float speed) Set the default mining speed of this tool. This value is used by the tool if no rule explicitly overrides it. 1.0 is standard mining speed.- Parameters:
speed
- the speed to set
-
getDamagePerBlock
int getDamagePerBlock()Get the amount of durability to be removed from the tool each time a block is broken.- Returns:
- the damage per block
-
setDamagePerBlock
void setDamagePerBlock(int damage) Set the amount of durability to be removed from the tool each time a block is broken.- Parameters:
damage
- the damage to set. Must be 0 or a positive integer
-
getRules
Get the list ofToolRules
that apply to this tool.- Returns:
- all tool rules. The mutability of the returned list cannot be guaranteed, but its contents are mutable and can have their values changed
-
setRules
Set the list ofToolRules
to apply to this tool. This will remove any existing tool rules.- Parameters:
rules
- the rules to set
-
addRule
@NotNull @NotNull ToolComponent.ToolRule addRule(@NotNull @NotNull Material block, @Nullable @Nullable Float speed, @Nullable @Nullable Boolean correctForDrops) Add a new rule to this tool component, which provides further information about a specific block type.- Parameters:
block
- the block type to which the rule appliesspeed
- the mining speed to use when mining the block, or null to use the default mining speedcorrectForDrops
- whether or not this tool, when mining the block, is considered the optimal tool for the block and will drop its items when broken, or null to use the default tool checking behavior defined by Minecraft- Returns:
- the
ToolComponent.ToolRule
instance that was added to this tool
-
addRule
@NotNull @NotNull ToolComponent.ToolRule addRule(@NotNull @NotNull Collection<Material> blocks, @Nullable @Nullable Float speed, @Nullable @Nullable Boolean correctForDrops) Add a new rule to this tool component, which provides further information about a collection of block types.- Parameters:
blocks
- the block types to which the rule appliesspeed
- the mining speed to use when mining one of the blocks, or null to use the default mining speedcorrectForDrops
- whether or not this tool, when mining one of the blocks, is considered the optimal tool for the block and will drop its items when broken, or null to use the default tool checking behavior defined by Minecraft- Returns:
- the
ToolComponent.ToolRule
instance that was added to this tool
-
addRule
@NotNull @NotNull ToolComponent.ToolRule addRule(@NotNull @NotNull Tag<Material> tag, @Nullable @Nullable Float speed, @Nullable @Nullable Boolean correctForDrops) Add a new rule to this tool component, which provides further information about a collection of block types represented by a blockTag
.- Parameters:
tag
- the block tag containing block types to which the rule applies.speed
- the mining speed to use when mining one of the blocks, or null to use the default mining speedcorrectForDrops
- whether or not this tool, when mining one of the blocks, is considered the optimal tool for the block and will drop its items when broken, or null to use the default tool checking behavior defined by Minecraft- Returns:
- the
ToolComponent.ToolRule
instance that was added to this tool - Throws:
IllegalArgumentException
- if the passedtag
is not a block tag
-
removeRule
Remove the givenToolComponent.ToolRule
from this tool.- Parameters:
rule
- the rule to remove- Returns:
- true if the rule was removed, false if this component did not contain a matching rule
-