Anvil API

This commit is contained in:
William Blake Galbreath
2025-01-05 11:51:38 -08:00
committed by granny
parent 0a46145697
commit 30672ed8f7
11 changed files with 375 additions and 414 deletions

View File

@@ -0,0 +1,50 @@
package org.purpurmc.purpur.event.inventory;
import org.bukkit.entity.HumanEntity;
import org.bukkit.entity.Player;
import org.bukkit.event.HandlerList;
import org.bukkit.event.inventory.InventoryEvent;
import org.bukkit.inventory.AnvilInventory;
import org.bukkit.inventory.InventoryView;
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
/**
* Called when a player takes the result item out of an anvil
*/
@NullMarked
public class AnvilTakeResultEvent extends InventoryEvent {
private static final HandlerList handlers = new HandlerList();
private final Player player;
private final ItemStack result;
@ApiStatus.Internal
public AnvilTakeResultEvent(HumanEntity player, InventoryView view, ItemStack result) {
super(view);
this.player = (Player) player;
this.result = result;
}
public Player getPlayer() {
return player;
}
public ItemStack getResult() {
return result;
}
@Override
public AnvilInventory getInventory() {
return (AnvilInventory) super.getInventory();
}
@Override
public HandlerList getHandlers() {
return handlers;
}
public static HandlerList getHandlerList() {
return handlers;
}
}

View File

@@ -0,0 +1,35 @@
package org.purpurmc.purpur.event.inventory;
import org.bukkit.event.HandlerList;
import org.bukkit.event.inventory.InventoryEvent;
import org.bukkit.inventory.AnvilInventory;
import org.bukkit.inventory.InventoryView;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
/**
* Called when anvil slots change, triggering the result slot to be updated
*/
@NullMarked
public class AnvilUpdateResultEvent extends InventoryEvent {
private static final HandlerList handlers = new HandlerList();
@ApiStatus.Internal
public AnvilUpdateResultEvent(InventoryView view) {
super(view);
}
@Override
public AnvilInventory getInventory() {
return (AnvilInventory) super.getInventory();
}
@Override
public HandlerList getHandlers() {
return handlers;
}
public static HandlerList getHandlerList() {
return handlers;
}
}