SPIGOT-4113: Make EntityDismountEvent implement Cancellable

This commit is contained in:
md_5 2018-07-23 12:00:55 +10:00
parent ed1cec9ae9
commit 5eb39219b1
12 changed files with 68 additions and 49 deletions

View file

@ -1,4 +1,4 @@
From 2da0d0f020bf7354b1c2922b7f9872d9d7b86042 Mon Sep 17 00:00:00 2001
From 2123a0c6a6a2d94fff6c46e2e7fcae218e9b66dc Mon Sep 17 00:00:00 2001
From: md_5 <md_5@live.com.au>
Date: Tue, 2 Jul 2013 20:32:53 +1000
Subject: [PATCH] Entity Mount and Dismount Events
@ -6,13 +6,14 @@ Subject: [PATCH] Entity Mount and Dismount Events
diff --git a/src/main/java/org/spigotmc/event/entity/EntityDismountEvent.java b/src/main/java/org/spigotmc/event/entity/EntityDismountEvent.java
new file mode 100644
index 00000000..24d4942a
index 00000000..4110d3bb
--- /dev/null
+++ b/src/main/java/org/spigotmc/event/entity/EntityDismountEvent.java
@@ -0,0 +1,39 @@
@@ -0,0 +1,52 @@
+package org.spigotmc.event.entity;
+
+import org.bukkit.entity.Entity;
+import org.bukkit.event.Cancellable;
+import org.bukkit.event.HandlerList;
+import org.bukkit.event.entity.EntityEvent;
+
@ -20,7 +21,7 @@ index 00000000..24d4942a
+ * Called when an entity stops riding another entity.
+ *
+ */
+public class EntityDismountEvent extends EntityEvent
+public class EntityDismountEvent extends EntityEvent implements Cancellable
+{
+
+ private static final HandlerList handlers = new HandlerList();
@ -39,6 +40,18 @@ index 00000000..24d4942a
+ }
+
+ @Override
+ public boolean isCancelled()
+ {
+ return cancelled;
+ }
+
+ @Override
+ public void setCancelled(boolean cancel)
+ {
+ this.cancelled = cancel;
+ }
+
+ @Override
+ public HandlerList getHandlers()
+ {
+ return handlers;

View file

@ -1,4 +1,4 @@
From c6ee921767b320a3e46279bb4c5118f257371904 Mon Sep 17 00:00:00 2001
From d54f2d5aa988c8017b7bd5694a99dd7b5780796c Mon Sep 17 00:00:00 2001
From: md_5 <md_5@live.com.au>
Date: Sun, 2 Jun 2013 15:10:56 +1000
Subject: [PATCH] Skeleton API Implementations
@ -141,7 +141,7 @@ index 64e346d84..194d830e1 100644
+ // Spigot end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 042287e44..7a3313084 100644
index c41294ffc..02bf84009 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1575,4 +1575,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@ -180,10 +180,10 @@ index c8654c68f..0c1bca2bd 100644
+ // Spigot end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
index 891e7c339..091d1c1fd 100644
index ff7ec7e2b..8acc6397b 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
@@ -965,4 +965,16 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable {
@@ -966,4 +966,16 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable {
return HANDLED_TAGS;
}
}

View file

@ -1,14 +1,14 @@
From 2925c88ed26107938b8321c8e6b29ba3fc3a49fb Mon Sep 17 00:00:00 2001
From 9a23b9d645501b3a7b16a10ec627377be31ecead Mon Sep 17 00:00:00 2001
From: md_5 <md_5@live.com.au>
Date: Mon, 4 Mar 2013 18:45:52 +1100
Subject: [PATCH] PlayerItemDamageEvent
diff --git a/src/main/java/net/minecraft/server/ItemStack.java b/src/main/java/net/minecraft/server/ItemStack.java
index 80fd1c07b..8184ef0d9 100644
index 2b36beeaf..f5e311f2a 100644
--- a/src/main/java/net/minecraft/server/ItemStack.java
+++ b/src/main/java/net/minecraft/server/ItemStack.java
@@ -342,6 +342,18 @@ public final class ItemStack {
@@ -352,6 +352,18 @@ public final class ItemStack {
}
i -= k;

View file

@ -1,4 +1,4 @@
From afc7d64ef2ca1466092c7244a814ba493019bf44 Mon Sep 17 00:00:00 2001
From f9c567fac70730fe2e78ffd0880c1166d4eff8ee Mon Sep 17 00:00:00 2001
From: md_5 <md_5@live.com.au>
Date: Thu, 27 Jun 2013 17:26:09 +1000
Subject: [PATCH] Properly Close Inventories
@ -6,10 +6,10 @@ Subject: [PATCH] Properly Close Inventories
Properly close inventories when unloading and switching worlds.
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index bc9bf0041..7f18563e7 100644
index a45387427..daa126825 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -783,6 +783,18 @@ public class Chunk implements IChunkAccess {
@@ -780,6 +780,18 @@ public class Chunk implements IChunkAccess {
while (iterator.hasNext()) {
TileEntity tileentity = (TileEntity) iterator.next();
@ -28,7 +28,7 @@ index bc9bf0041..7f18563e7 100644
this.world.b(tileentity);
}
@@ -796,6 +808,18 @@ public class Chunk implements IChunkAccess {
@@ -793,6 +805,18 @@ public class Chunk implements IChunkAccess {
java.util.Iterator<Entity> iter = newList.iterator();
while (iter.hasNext()) {
Entity entity = iter.next();

View file

@ -1,11 +1,11 @@
From 860d9ff29fccf8a4cf62fda4595decc61b59cfba Mon Sep 17 00:00:00 2001
From bbb72c1953d66f834814e2f71801ee9f8568a9ce Mon Sep 17 00:00:00 2001
From: md_5 <git@md-5.net>
Date: Sat, 27 Feb 2016 10:07:58 +1100
Subject: [PATCH] Entity Mount and Dismount Events
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 855f7ff0a..0e90fd362 100644
index 855f7ff0a..44ecaf5ec 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -2005,6 +2005,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener {
@ -22,11 +22,17 @@ index 855f7ff0a..0e90fd362 100644
if (!this.world.isClientSide && entity instanceof EntityHuman && !(this.bO() instanceof EntityHuman)) {
this.passengers.add(0, entity);
} else {
@@ -2034,6 +2041,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener {
@@ -2034,6 +2041,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener {
}
}
// CraftBukkit end
+ Bukkit.getPluginManager().callEvent( new org.spigotmc.event.entity.EntityDismountEvent(entity.getBukkitEntity(), this.getBukkitEntity())); // Spigot
+ // Spigot start
+ org.spigotmc.event.entity.EntityDismountEvent event = new org.spigotmc.event.entity.EntityDismountEvent(entity.getBukkitEntity(), this.getBukkitEntity());
+ Bukkit.getPluginManager().callEvent(event);
+ if (event.isCancelled()) {
+ return;
+ }
+ // Spigot end
this.passengers.remove(entity);
entity.k = 60;
}

View file

@ -1,4 +1,4 @@
From 3601e4b8cca85b621936b3a6fd09df3a7a5d54f1 Mon Sep 17 00:00:00 2001
From 8cbe3a8af73893827d99807cdb902dcb5eecebeb Mon Sep 17 00:00:00 2001
From: md_5 <git@md-5.net>
Date: Sun, 12 Jan 2014 21:07:18 +1100
Subject: [PATCH] Improve AutoSave Mechanism
@ -11,10 +11,10 @@ Instead we will mimic the save-all command in its behaviour, which is both safe
Also, only save modified chunks, or chunks with entities after 4 auto save passes
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index 7f18563e7..d5aaf872a 100644
index daa126825..78bfd9fe9 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -904,7 +904,7 @@ public class Chunk implements IChunkAccess {
@@ -901,7 +901,7 @@ public class Chunk implements IChunkAccess {
if (this.w && this.world.getTime() != this.lastSaved || this.y) {
return true;
}

View file

@ -1,4 +1,4 @@
From fdfcd39df2821b2492a34f163e29eb7d230782c8 Mon Sep 17 00:00:00 2001
From 7205aa13a7f9c507d7b87c7a433cdc5f4a35602b Mon Sep 17 00:00:00 2001
From: Thinkofdeath <thinkofdeath@spigotmc.org>
Date: Wed, 2 Jul 2014 23:35:51 +0100
Subject: [PATCH] Better item validation
@ -58,10 +58,10 @@ index 0c1bca2bd..600538b11 100644
}
}
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
index 091d1c1fd..c26a8549b 100644
index 8acc6397b..ecdb4eaa5 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
@@ -52,6 +52,10 @@ import java.util.logging.Logger;
@@ -53,6 +53,10 @@ import net.minecraft.server.ChatComponentText;
import net.minecraft.server.NBTCompressedStreamTools;
import org.apache.commons.codec.binary.Base64;
@ -72,7 +72,7 @@ index 091d1c1fd..c26a8549b 100644
/**
* Children must include the following:
*
@@ -273,7 +277,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable {
@@ -274,7 +278,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable {
if (display.hasKey(NAME.NBT)) {
try {
@ -81,7 +81,7 @@ index 091d1c1fd..c26a8549b 100644
} catch (JsonParseException ex) {
// Ignore (stripped like Vanilla)
}
@@ -281,7 +285,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable {
@@ -282,7 +286,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable {
if (display.hasKey(LOCNAME.NBT)) {
try {
@ -90,7 +90,7 @@ index 091d1c1fd..c26a8549b 100644
} catch (JsonParseException ex) {
// Ignore (stripped like Vanilla)
}
@@ -292,7 +296,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable {
@@ -293,7 +297,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable {
lore = new ArrayList<String>(list.size());
for (int index = 0; index < list.size(); index++) {

View file

@ -1,4 +1,4 @@
From 0dba71b1d82a28cfb789bec9588a79fd90ff305f Mon Sep 17 00:00:00 2001
From c741db14c2bad4475ed839ddfbfc1def6bf023ee Mon Sep 17 00:00:00 2001
From: Thinkofdeath <thinkofdeath@spigotmc.org>
Date: Thu, 31 Jul 2014 17:48:20 +0100
Subject: [PATCH] Filter attribute modifiers which cause the attribute to go
@ -6,10 +6,10 @@ Subject: [PATCH] Filter attribute modifiers which cause the attribute to go
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
index c26a8549b..022b7a14c 100644
index ecdb4eaa5..650e38324 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
@@ -54,6 +54,8 @@ import org.apache.commons.codec.binary.Base64;
@@ -55,6 +55,8 @@ import org.apache.commons.codec.binary.Base64;
// Spigot start
import static org.spigotmc.ValidateUtils.*;
@ -18,7 +18,7 @@ index c26a8549b..022b7a14c 100644
// Spigot end
/**
@@ -322,6 +324,123 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable {
@@ -323,6 +325,123 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable {
NBTTagList save = null;
NBTTagList nbttaglist = tag.getList(ATTRIBUTES.NBT, CraftMagicNumbers.NBT.TAG_COMPOUND);

View file

@ -1,14 +1,14 @@
From 947b2deb410d5d966243776626435e0e55b0d0ad Mon Sep 17 00:00:00 2001
From 42b489742b65379473b7b7b91f2748797ec49b80 Mon Sep 17 00:00:00 2001
From: drXor <mcyoung@mit.edu>
Date: Fri, 15 Aug 2014 18:11:09 -0400
Subject: [PATCH] Remove uneeded validation
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
index 022b7a14c..7ac76fb70 100644
index 650e38324..fd2ba3069 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
@@ -257,7 +257,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable {
@@ -258,7 +258,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable {
this.lore = new ArrayList<String>(meta.lore);
}
@ -17,7 +17,7 @@ index 022b7a14c..7ac76fb70 100644
this.enchantments = new HashMap<Enchantment, Integer>(meta.enchantments);
}
@@ -645,7 +645,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable {
@@ -646,7 +646,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable {
}
static void applyEnchantments(Map<Enchantment, Integer> enchantments, NBTTagCompound tag, ItemMetaKey key) {
@ -26,7 +26,7 @@ index 022b7a14c..7ac76fb70 100644
return;
}
@@ -751,7 +751,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable {
@@ -752,7 +752,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable {
public boolean removeEnchant(Enchantment ench) {
Validate.notNull(ench, "Enchantment cannot be null");

View file

@ -1,14 +1,14 @@
From 6f77da20222b669e9e96e18ebee4e18275ddc108 Mon Sep 17 00:00:00 2001
From a7751233a43af41736aca18423b1e021c28de65e Mon Sep 17 00:00:00 2001
From: libraryaddict <redwarfare@live.com>
Date: Fri, 22 Aug 2014 05:35:16 -0400
Subject: [PATCH] Added isUnbreakable and setUnbreakable to ItemMeta
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
index 7ac76fb70..86ae0a4b6 100644
index fd2ba3069..b2190b01d 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
@@ -1099,6 +1099,17 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable {
@@ -1100,6 +1100,17 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable {
// Spigot start
private final Spigot spigot = new Spigot()
{

View file

@ -1,11 +1,11 @@
From 2c2cd33599dad0d0c745f3952c82734c7375897a Mon Sep 17 00:00:00 2001
From 36e4a106937308a374f6c30cfe29a9b7b9400705 Mon Sep 17 00:00:00 2001
From: md_5 <git@md-5.net>
Date: Fri, 20 Feb 2015 21:33:36 +1100
Subject: [PATCH] Use Standard List for EntitySlices.
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index d5aaf872a..af0426b24 100644
index 78bfd9fe9..411ab6061 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -41,7 +41,7 @@ public class Chunk implements IChunkAccess {
@ -35,7 +35,7 @@ index d5aaf872a..af0426b24 100644
}
this.g = abiomebase;
@@ -766,11 +766,11 @@ public class Chunk implements IChunkAccess {
@@ -763,11 +763,11 @@ public class Chunk implements IChunkAccess {
public void addEntities() {
this.j = true;
this.world.b(this.tileEntities.values());
@ -49,7 +49,7 @@ index d5aaf872a..af0426b24 100644
this.world.a((Collection) entityslice);
}
@@ -799,7 +799,7 @@ public class Chunk implements IChunkAccess {
@@ -796,7 +796,7 @@ public class Chunk implements IChunkAccess {
this.world.b(tileentity);
}
@ -58,7 +58,7 @@ index d5aaf872a..af0426b24 100644
int i = aentityslice.length;
for (int j = 0; j < i; ++j) {
@@ -886,12 +886,12 @@ public class Chunk implements IChunkAccess {
@@ -883,12 +883,12 @@ public class Chunk implements IChunkAccess {
j = MathHelper.clamp(j, 0, this.entitySlices.length - 1);
for (int k = i; k <= j; ++k) {
@ -73,7 +73,7 @@ index d5aaf872a..af0426b24 100644
list.add((T) entity); // Fix decompile error
}
}
@@ -1046,7 +1046,7 @@ public class Chunk implements IChunkAccess {
@@ -1043,7 +1043,7 @@ public class Chunk implements IChunkAccess {
return this.tileEntities;
}

View file

@ -1,4 +1,4 @@
From 35da8b9979a7ed561f705dba0161753ee872614c Mon Sep 17 00:00:00 2001
From 1d26957f16c414ef822753573c81cc0557cc0715 Mon Sep 17 00:00:00 2001
From: md_5 <git@md-5.net>
Date: Sun, 22 Feb 2015 12:27:40 +1100
Subject: [PATCH] Use FastMatches for ItemStack Dirty Check
@ -35,10 +35,10 @@ index 0ae0b5ed8..e86ffb4dc 100644
}
diff --git a/src/main/java/net/minecraft/server/ItemStack.java b/src/main/java/net/minecraft/server/ItemStack.java
index 8184ef0d9..3f0c5d7dd 100644
index f5e311f2a..1e27433b9 100644
--- a/src/main/java/net/minecraft/server/ItemStack.java
+++ b/src/main/java/net/minecraft/server/ItemStack.java
@@ -434,6 +434,18 @@ public final class ItemStack {
@@ -444,6 +444,18 @@ public final class ItemStack {
return itemstack.isEmpty() && itemstack1.isEmpty() ? true : (!itemstack.isEmpty() && !itemstack1.isEmpty() ? (itemstack.tag == null && itemstack1.tag != null ? false : itemstack.tag == null || itemstack.tag.equals(itemstack1.tag)) : false);
}