Add FishHookStateChangeEvent (#12165)

This commit is contained in:
Namiu/うにたろう
2025-05-16 03:17:32 +09:00
committed by GitHub
parent a25258190b
commit d683970d40
4 changed files with 80 additions and 0 deletions

View File

@@ -0,0 +1,52 @@
package io.papermc.paper.event.entity;
import org.bukkit.entity.FishHook;
import org.bukkit.event.HandlerList;
import org.bukkit.event.entity.EntityEvent;
import org.bukkit.event.player.PlayerFishEvent;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
/**
* Called just before a {@link FishHook}'s {@link FishHook.HookState} is changed.
*
* <p>If you want to monitor a player's fishing state transition, you can use {@link PlayerFishEvent}.</p>
*/
@NullMarked
public final class FishHookStateChangeEvent extends EntityEvent {
private static final HandlerList HANDLER_LIST = new HandlerList();
private final FishHook.HookState newHookState;
@ApiStatus.Internal
public FishHookStateChangeEvent(final FishHook entity, final FishHook.HookState newHookState) {
super(entity);
this.newHookState = newHookState;
}
/**
* Get the <strong>new</strong> hook state of the {@link FishHook}.
*
* <p>Refer to {@link FishHook#getState()} to get the current hook state.</p>
*
* @return the <strong>new</strong> hook state
*/
public FishHook.HookState getNewHookState() {
return this.newHookState;
}
@Override
public FishHook getEntity() {
return (FishHook) super.getEntity();
}
@Override
public HandlerList getHandlers() {
return HANDLER_LIST;
}
public static HandlerList getHandlerList() {
return HANDLER_LIST;
}
}

View File

@@ -1,6 +1,7 @@
package org.bukkit.entity;
import org.bukkit.inventory.EquipmentSlot;
import io.papermc.paper.event.entity.FishHookStateChangeEvent;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -306,6 +307,7 @@ public interface FishHook extends Projectile {
/**
* Represents a state in which a fishing hook may be.
* State transitions can be listened for using {@link FishHookStateChangeEvent}
*/
public enum HookState {

View File

@@ -1,5 +1,6 @@
package org.bukkit.event.player;
import io.papermc.paper.event.entity.FishHookStateChangeEvent;
import org.bukkit.entity.Entity;
import org.bukkit.entity.FishHook;
import org.bukkit.entity.Player;
@@ -12,6 +13,8 @@ import org.jetbrains.annotations.Nullable;
/**
* Thrown when a player is fishing
*
* <p>If you want to monitor a fishhooks state transition, you can use {@link FishHookStateChangeEvent}.</p>
*/
public class PlayerFishEvent extends PlayerEvent implements Cancellable {