diff --git a/common/src/main/java/me/lojosho/hibiscuscommons/api/events/HibiscusPlayerEmoteEndEvent.java b/common/src/main/java/me/lojosho/hibiscuscommons/api/events/HibiscusPlayerEmoteEndEvent.java new file mode 100644 index 0000000..f1744f7 --- /dev/null +++ b/common/src/main/java/me/lojosho/hibiscuscommons/api/events/HibiscusPlayerEmoteEndEvent.java @@ -0,0 +1,31 @@ +package me.lojosho.hibiscuscommons.api.events; + +import lombok.Getter; +import me.lojosho.hibiscuscommons.hooks.Hook; +import org.bukkit.entity.Player; +import org.bukkit.event.HandlerList; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +public class HibiscusPlayerEmoteEndEvent extends HibiscusHookPlayerEvent { + + private static final HandlerList handlers = new HandlerList(); + @Getter + private final String emoteName; + + public HibiscusPlayerEmoteEndEvent(Hook hook, Player player, @Nullable String emoteName) { + super(hook, player); + this.emoteName = emoteName; + } + + @NotNull + @Override + public HandlerList getHandlers() { + return handlers; + } + + @NotNull + public static HandlerList getHandlerList() { + return handlers; + } +} diff --git a/common/src/main/java/me/lojosho/hibiscuscommons/api/events/HibiscusPlayerEmotePlayEvent.java b/common/src/main/java/me/lojosho/hibiscuscommons/api/events/HibiscusPlayerEmotePlayEvent.java new file mode 100644 index 0000000..976e430 --- /dev/null +++ b/common/src/main/java/me/lojosho/hibiscuscommons/api/events/HibiscusPlayerEmotePlayEvent.java @@ -0,0 +1,45 @@ +package me.lojosho.hibiscuscommons.api.events; + +import lombok.Getter; +import me.lojosho.hibiscuscommons.hooks.Hook; +import org.bukkit.entity.Player; +import org.bukkit.event.Cancellable; +import org.bukkit.event.HandlerList; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +public class HibiscusPlayerEmotePlayEvent extends HibiscusHookPlayerEvent implements Cancellable { + + private static final HandlerList handlers = new HandlerList(); + + private boolean cancel = false; + @Getter + private final String emoteName; + + public HibiscusPlayerEmotePlayEvent(Hook hook, Player player, @Nullable String emoteName) { + super(hook, player); + this.emoteName = emoteName; + } + + @NotNull + @Override + public HandlerList getHandlers() { + return handlers; + } + + @NotNull + public static HandlerList getHandlerList() { + return handlers; + } + + @Override + public boolean isCancelled() { + return cancel; + } + + @Override + public void setCancelled(boolean cancel) { + this.cancel = cancel; + } + +} diff --git a/common/src/main/java/me/lojosho/hibiscuscommons/hooks/items/HookItemAdder.java b/common/src/main/java/me/lojosho/hibiscuscommons/hooks/items/HookItemAdder.java index 5ccb40e..c00070f 100644 --- a/common/src/main/java/me/lojosho/hibiscuscommons/hooks/items/HookItemAdder.java +++ b/common/src/main/java/me/lojosho/hibiscuscommons/hooks/items/HookItemAdder.java @@ -2,7 +2,10 @@ package me.lojosho.hibiscuscommons.hooks.items; import dev.lone.itemsadder.api.CustomStack; import dev.lone.itemsadder.api.Events.ItemsAdderLoadDataEvent; +import dev.lone.itemsadder.api.Events.PlayerEmoteEndEvent; +import dev.lone.itemsadder.api.Events.PlayerEmotePlayEvent; import me.lojosho.hibiscuscommons.api.events.HibiscusHookReload; +import me.lojosho.hibiscuscommons.api.events.HibiscusPlayerEmotePlayEvent; import me.lojosho.hibiscuscommons.hooks.Hook; import me.lojosho.hibiscuscommons.hooks.HookFlag; import org.bukkit.Bukkit; @@ -45,6 +48,19 @@ public class HookItemAdder extends Hook { Bukkit.getPluginManager().callEvent(newEvent); } + @EventHandler(priority = EventPriority.MONITOR) + public void onPlayerEmotePlay(PlayerEmotePlayEvent event) { + HibiscusPlayerEmotePlayEvent newEvent = new HibiscusPlayerEmotePlayEvent(this, event.getPlayer(), event.getEmoteName()); + Bukkit.getPluginManager().callEvent(newEvent); + if (newEvent.isCancelled()) event.setCancelled(true); + } + + @EventHandler + public void onPlayerEmoteEnd(PlayerEmoteEndEvent event) { + HibiscusPlayerEmotePlayEvent newEvent = new HibiscusPlayerEmotePlayEvent(this, event.getPlayer(), event.getEmoteName()); + Bukkit.getPluginManager().callEvent(newEvent); + } + public String getItemString(ItemStack itemStack) { if (itemStack == null) return null; if (!itemStack.hasItemMeta()) return null;