mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-27 11:27:35 +01:00
Add PlayerItemCooldownEvent
This commit is contained in:
parent
5fa4ae1e90
commit
60d243ecc4
@ -0,0 +1,34 @@
|
||||
package io.papermc.paper.event.player;
|
||||
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.NamespacedKey;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.HandlerList;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jspecify.annotations.NullMarked;
|
||||
|
||||
/**
|
||||
* Fired when a player receives an item cooldown when using an item.
|
||||
*
|
||||
* @see PlayerItemGroupCooldownEvent for a more general event when applied to a group of items
|
||||
*/
|
||||
@NullMarked
|
||||
public class PlayerItemCooldownEvent extends PlayerItemGroupCooldownEvent {
|
||||
|
||||
private final Material type;
|
||||
|
||||
@ApiStatus.Internal
|
||||
public PlayerItemCooldownEvent(final Player player, final Material type, final NamespacedKey cooldownGroup, final int cooldown) {
|
||||
super(player, cooldownGroup, cooldown);
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the material of the item affected by the cooldown.
|
||||
*
|
||||
* @return material affected by the cooldown
|
||||
*/
|
||||
public Material getType() {
|
||||
return this.type;
|
||||
}
|
||||
}
|
@ -0,0 +1,81 @@
|
||||
package io.papermc.paper.event.player;
|
||||
|
||||
import com.google.common.base.Preconditions;
|
||||
import org.bukkit.NamespacedKey;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.Cancellable;
|
||||
import org.bukkit.event.HandlerList;
|
||||
import org.bukkit.event.player.PlayerEvent;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jspecify.annotations.NullMarked;
|
||||
|
||||
/**
|
||||
* Fired when a player receives an item cooldown.
|
||||
*
|
||||
* @see PlayerItemCooldownEvent for a more specific event when applied to a specific item.
|
||||
*/
|
||||
@NullMarked
|
||||
public class PlayerItemGroupCooldownEvent extends PlayerEvent implements Cancellable {
|
||||
|
||||
private static final HandlerList HANDLER_LIST = new HandlerList();
|
||||
|
||||
private final NamespacedKey cooldownGroup;
|
||||
private int cooldown;
|
||||
|
||||
private boolean cancelled;
|
||||
|
||||
@ApiStatus.Internal
|
||||
public PlayerItemGroupCooldownEvent(final Player player, final NamespacedKey cooldownGroup, final int cooldown) {
|
||||
super(player);
|
||||
this.cooldownGroup = cooldownGroup;
|
||||
this.cooldown = cooldown;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the cooldown group as defined by an item's {@link org.bukkit.inventory.meta.components.UseCooldownComponent}.
|
||||
*
|
||||
* @return cooldown group
|
||||
*/
|
||||
public NamespacedKey getCooldownGroup() {
|
||||
return this.cooldownGroup;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the cooldown in ticks.
|
||||
*
|
||||
* @return cooldown in ticks
|
||||
*/
|
||||
public int getCooldown() {
|
||||
return this.cooldown;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the cooldown of the material in ticks.
|
||||
* Setting the cooldown to 0 results in removing an already existing cooldown for the material.
|
||||
*
|
||||
* @param cooldown cooldown in ticks, has to be a positive number
|
||||
*/
|
||||
public void setCooldown(final int cooldown) {
|
||||
Preconditions.checkArgument(cooldown >= 0, "The cooldown has to be equal to or greater than 0!");
|
||||
this.cooldown = cooldown;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isCancelled() {
|
||||
return this.cancelled;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setCancelled(final boolean cancel) {
|
||||
this.cancelled = cancel;
|
||||
}
|
||||
|
||||
@Override
|
||||
public HandlerList getHandlers() {
|
||||
return HANDLER_LIST;
|
||||
}
|
||||
|
||||
public static HandlerList getHandlerList() {
|
||||
return HANDLER_LIST;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user