From b9d98ad6e8f68a2d8a3340eb62ae56b2e8c25cee Mon Sep 17 00:00:00 2001 From: Nik Gil Date: Mon, 1 Feb 2016 23:57:27 -0700 Subject: [PATCH] Make EntityDismountEvent Cancellable --- ...Made-EntityDismountEvent-Cancellable.patch | 47 +++++++++++++ ...Made-EntityDismountEvent-Cancellable.patch | 68 +++++++++++++++++++ 2 files changed, 115 insertions(+) create mode 100644 Spigot-API-Patches/0016-Made-EntityDismountEvent-Cancellable.patch create mode 100644 Spigot-Server-Patches/0087-Made-EntityDismountEvent-Cancellable.patch diff --git a/Spigot-API-Patches/0016-Made-EntityDismountEvent-Cancellable.patch b/Spigot-API-Patches/0016-Made-EntityDismountEvent-Cancellable.patch new file mode 100644 index 0000000000..0a0c7941de --- /dev/null +++ b/Spigot-API-Patches/0016-Made-EntityDismountEvent-Cancellable.patch @@ -0,0 +1,47 @@ +From 09b55d7828f2499a4179e60f0be9dbb6b7888ba8 Mon Sep 17 00:00:00 2001 +From: Nik Gil +Date: Mon, 1 Feb 2016 23:36:31 -0700 +Subject: [PATCH] Made EntityDismountEvent Cancellable + + +diff --git a/src/main/java/org/spigotmc/event/entity/EntityDismountEvent.java b/src/main/java/org/spigotmc/event/entity/EntityDismountEvent.java +index 24d4942..b35c7c1 100644 +--- a/src/main/java/org/spigotmc/event/entity/EntityDismountEvent.java ++++ b/src/main/java/org/spigotmc/event/entity/EntityDismountEvent.java +@@ -4,11 +4,15 @@ import org.bukkit.entity.Entity; + import org.bukkit.event.HandlerList; + import org.bukkit.event.entity.EntityEvent; + ++// PaperSpigot start ++import org.bukkit.event.Cancellable; ++// PaperSpigot end ++ + /** + * Called when an entity stops riding another entity. + * + */ +-public class EntityDismountEvent extends EntityEvent ++public class EntityDismountEvent extends EntityEvent implements Cancellable // PaperSpigot - implement Cancellable + { + + private static final HandlerList handlers = new HandlerList(); +@@ -36,4 +40,16 @@ public class EntityDismountEvent extends EntityEvent + { + return handlers; + } ++ ++ // PaperSpigot start - implement Cancellable methods ++ @Override ++ public boolean isCancelled() { ++ return cancelled; ++ } ++ ++ @Override ++ public void setCancelled(boolean cancelled) { ++ this.cancelled = cancelled; ++ } ++ // PaperSpigot end + } +-- +2.7.0 + diff --git a/Spigot-Server-Patches/0087-Made-EntityDismountEvent-Cancellable.patch b/Spigot-Server-Patches/0087-Made-EntityDismountEvent-Cancellable.patch new file mode 100644 index 0000000000..c95f84b83a --- /dev/null +++ b/Spigot-Server-Patches/0087-Made-EntityDismountEvent-Cancellable.patch @@ -0,0 +1,68 @@ +From 640d9af4079afb008d0e871446e87af89ff81387 Mon Sep 17 00:00:00 2001 +From: Nik Gil +Date: Mon, 1 Feb 2016 23:47:24 -0700 +Subject: [PATCH] Made EntityDismountEvent Cancellable + + +diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java +index ef59b40..2da303f 100644 +--- a/src/main/java/net/minecraft/server/Entity.java ++++ b/src/main/java/net/minecraft/server/Entity.java +@@ -33,6 +33,10 @@ import org.bukkit.event.entity.EntityPortalEvent; + import org.bukkit.plugin.PluginManager; + // CraftBukkit end + ++// PaperSpigot start ++import org.spigotmc.event.entity.EntityDismountEvent; ++// PaperSpigot end ++ + public abstract class Entity implements ICommandListener { + + // CraftBukkit start +@@ -1576,7 +1580,11 @@ public abstract class Entity implements ICommandListener { + } + } + // CraftBukkit end +- pluginManager.callEvent( new org.spigotmc.event.entity.EntityDismountEvent( this.getBukkitEntity(), this.vehicle.getBukkitEntity() ) ); // Spigot ++ // PaperSpigot start - make EntityDismountEvent cancellable ++ EntityDismountEvent dismountEvent = new EntityDismountEvent(this.getBukkitEntity(), this.vehicle.getBukkitEntity()); // Spigot ++ pluginManager.callEvent(dismountEvent); ++ if (dismountEvent.isCancelled()) return; ++ // PaperSpigot end + this.setPositionRotation(this.vehicle.locX, this.vehicle.getBoundingBox().b + (double) this.vehicle.length, this.vehicle.locZ, this.yaw, this.pitch); + this.vehicle.passenger = null; + } +diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java +index 19a743c..c8b4e29 100644 +--- a/src/main/java/net/minecraft/server/EntityLiving.java ++++ b/src/main/java/net/minecraft/server/EntityLiving.java +@@ -25,6 +25,11 @@ import org.bukkit.event.vehicle.VehicleExitEvent; + + import co.aikar.timings.SpigotTimings; // Spigot + ++// PaperSpigot start ++import org.bukkit.Bukkit; ++import org.spigotmc.event.entity.EntityDismountEvent; ++// PaperSpigot end ++ + public abstract class EntityLiving extends Entity { + + private static final UUID a = UUID.fromString("662A6B8D-DA3E-4C1C-8813-96EA6097278D"); +@@ -1709,8 +1714,12 @@ public abstract class EntityLiving extends Entity { + } + } + // CraftBukkit end +- org.bukkit.Bukkit.getPluginManager().callEvent( new org.spigotmc.event.entity.EntityDismountEvent( this.getBukkitEntity(), this.vehicle.getBukkitEntity() ) ); // Spigot +- ++ // PaperSpigot start - make dismountEvent cancellable ++ EntityDismountEvent dismountEvent = new EntityDismountEvent(this.getBukkitEntity(), this.vehicle.getBukkitEntity()); // Spigot ++ Bukkit.getPluginManager().callEvent(dismountEvent); ++ if (dismountEvent.isCancelled()) return; ++ // PaperSpigot end ++ + if (!this.world.isClientSide) { + this.q(this.vehicle); + } +-- +2.7.0 +