From 93c003bbce3a59a91e3f4182a0f3bac248f62d5d Mon Sep 17 00:00:00 2001
From: HaHaWTH <102713261+HaHaWTH@users.noreply.github.com>
Date: Sat, 4 Jan 2025 18:23:31 -0800
Subject: [PATCH] Expand api event
---
.../api/bukkit/event/ForgeEvent.java | 38 +++++++++++++++++++
.../command/internal/CommandCatserver.java | 5 ---
.../java/org/bukkit/plugin/EventExecutor.java | 4 +-
3 files changed, 40 insertions(+), 7 deletions(-)
diff --git a/src/main/java/catserver/api/bukkit/event/ForgeEvent.java b/src/main/java/catserver/api/bukkit/event/ForgeEvent.java
index 425f45fe6..7c1920f35 100644
--- a/src/main/java/catserver/api/bukkit/event/ForgeEvent.java
+++ b/src/main/java/catserver/api/bukkit/event/ForgeEvent.java
@@ -4,6 +4,13 @@
import org.bukkit.Bukkit;
import org.bukkit.event.HandlerList;
+import javax.annotation.Nonnull;
+
+/**
+ * A Bukkit side wrapper for Forge events.
+ * This wrapper event is optionally cancellable.
+ */
+@SuppressWarnings("unused")
public class ForgeEvent extends org.bukkit.event.Event {
private static final HandlerList handlers = new HandlerList();
private final Event forgeEvent;
@@ -13,10 +20,41 @@ public ForgeEvent(Event forgeEvent) {
this.forgeEvent = forgeEvent;
}
+ @Nonnull
public Event getForgeEvent() {
return this.forgeEvent;
}
+ /**
+ * Try to set the cancelled state of the wrapped Forge event.
+ * @param cancelled The cancelled state to set.
+ * @return Whether the cancelled state was successfully set.
+ */
+ public boolean trySetCancelled(boolean cancelled) {
+ if (this.forgeEvent.isCancelable()) {
+ this.forgeEvent.setCanceled(cancelled);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * Get the cancelled state of the wrapped Forge event.
+ * @return Whether the wrapped Forge event is cancelled.
+ * If the wrapped Forge event is not cancellable, this will always return false.
+ */
+ public boolean isCancelled() {
+ return this.forgeEvent.isCanceled();
+ }
+
+ /**
+ * Get whether the wrapped Forge event is cancellable.
+ * @return Whether the wrapped Forge event is cancellable.
+ */
+ public boolean isCancellable() {
+ return this.forgeEvent.isCancelable();
+ }
+
@Override
public HandlerList getHandlers() {
return handlers;
diff --git a/src/main/java/catserver/server/command/internal/CommandCatserver.java b/src/main/java/catserver/server/command/internal/CommandCatserver.java
index b05970b10..46b8e680b 100644
--- a/src/main/java/catserver/server/command/internal/CommandCatserver.java
+++ b/src/main/java/catserver/server/command/internal/CommandCatserver.java
@@ -1,12 +1,9 @@
package catserver.server.command.internal;
import catserver.server.CatServer;
-// CatRoom start - Dump item command
import catserver.server.utils.ItemStackUtils;
import net.md_5.bungee.api.chat.ClickEvent;
import net.md_5.bungee.api.chat.TextComponent;
-import net.minecraft.item.ItemStack;
-// CatRoom end - Dump item command
import net.minecraft.world.World;
import net.minecraftforge.common.DimensionManager;
import org.bukkit.Bukkit;
@@ -14,10 +11,8 @@
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.craftbukkit.v1_12_R1.CraftServer;
-// CatRoom start - Dump item command
import org.bukkit.craftbukkit.v1_12_R1.entity.CraftPlayer;
import org.bukkit.entity.Player;
-// CatRoom end - Dump item command
public class CommandCatserver extends Command {
public CommandCatserver(String name) {
diff --git a/src/main/java/org/bukkit/plugin/EventExecutor.java b/src/main/java/org/bukkit/plugin/EventExecutor.java
index 5e6ed79ce..ceadbac0e 100644
--- a/src/main/java/org/bukkit/plugin/EventExecutor.java
+++ b/src/main/java/org/bukkit/plugin/EventExecutor.java
@@ -12,11 +12,9 @@
import com.google.common.base.Preconditions;
-// CatRoom start
import catserver.server.executor.hiddenclass.BukkitEventExecutorFactory;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.Bukkit;
-// CatRoom end
/**
* Interface which defines the class for event call backs to plugins
@@ -24,6 +22,7 @@
public interface EventExecutor {
public void execute(Listener listener, Event event) throws EventException;
+ /*
ConcurrentMap> eventExecutorMap = new ConcurrentHashMap>() {
@Override
public Class extends EventExecutor> computeIfAbsent(Method key, Function super Method, ? extends Class extends EventExecutor>> mappingFunction) {
@@ -41,6 +40,7 @@ public Class extends EventExecutor> computeIfAbsent(Method key, Function sup
}
}
};
+ */ // CatRoom - Use hidden class for event executors
public static EventExecutor create(Method m, Class extends Event> eventClass) {
Preconditions.checkNotNull(m, "Null method");