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 computeIfAbsent(Method key, Function> mappingFunction) { @@ -41,6 +40,7 @@ public Class computeIfAbsent(Method key, Function eventClass) { Preconditions.checkNotNull(m, "Null method");