geforkt von Mirrors/Paper
fe18b38aea
I misread the code and thought the code kept looping until the mob spawn cap was hit. Upon furthur review, this is not true, so this patch doesn't do anything sane.
90 Zeilen
4.2 KiB
Diff
90 Zeilen
4.2 KiB
Diff
From df91c49a8a8472b88e89ad0634954ee2b495b793 Mon Sep 17 00:00:00 2001
|
|
From: willies952002 <admin@domnian.com>
|
|
Date: Sat, 23 Apr 2016 19:51:19 -0400
|
|
Subject: [PATCH] Reimplement PlayerEditBookEvent
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
|
|
index 4d471ec..cf27086 100644
|
|
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
|
|
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
|
|
@@ -2207,6 +2207,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable {
|
|
ItemStack itemstack;
|
|
ItemStack itemstack1;
|
|
|
|
+ try { // Paper - Reimplement BookEditEvent
|
|
if ("MC|BEdit".equals(s)) {
|
|
packetdataserializer = new PacketDataSerializer(Unpooled.wrappedBuffer(packetplayincustompayload.b()));
|
|
|
|
@@ -2224,12 +2225,14 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable {
|
|
if (itemstack1 != null) {
|
|
if (itemstack.getItem() == Items.WRITABLE_BOOK && itemstack.getItem() == itemstack1.getItem()) {
|
|
itemstack1.a("pages", (NBTBase) itemstack.getTag().getList("pages", 8));
|
|
+ CraftEventFactory.handleEditBookEvent(player, itemstack1); // Paper
|
|
}
|
|
|
|
return;
|
|
}
|
|
} catch (Exception exception) {
|
|
PlayerConnection.LOGGER.error("Couldn\'t handle book info", exception);
|
|
+ this.disconnect("Invalid Book Data!"); // Paper
|
|
return;
|
|
} finally {
|
|
packetdataserializer.release();
|
|
@@ -2269,12 +2272,14 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable {
|
|
|
|
itemstack1.a("pages", (NBTBase) nbttaglist);
|
|
itemstack1.setItem(Items.WRITTEN_BOOK);
|
|
+ CraftEventFactory.handleEditBookEvent(player, itemstack1); // Paper
|
|
}
|
|
|
|
return;
|
|
}
|
|
} catch (Exception exception1) {
|
|
PlayerConnection.LOGGER.error("Couldn\'t sign book", exception1);
|
|
+ this.disconnect("Invalid Book Data!"); // Paper
|
|
return;
|
|
} finally {
|
|
packetdataserializer.release();
|
|
@@ -2340,6 +2345,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable {
|
|
}
|
|
} catch (Exception exception3) {
|
|
PlayerConnection.LOGGER.error("Couldn\'t set command block", exception3);
|
|
+ this.disconnect("Invalid Command Block Data!"); // Paper
|
|
} finally {
|
|
packetdataserializer.release();
|
|
}
|
|
@@ -2409,6 +2415,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable {
|
|
}
|
|
} catch (Exception exception4) {
|
|
PlayerConnection.LOGGER.error("Couldn\'t set command block", exception4);
|
|
+ this.disconnect("Invalid Command Block Data!"); // Paper
|
|
} finally {
|
|
packetdataserializer.release();
|
|
}
|
|
@@ -2434,6 +2441,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable {
|
|
}
|
|
} catch (Exception exception5) {
|
|
PlayerConnection.LOGGER.error("Couldn\'t set beacon", exception5);
|
|
+ this.disconnect("Invalid Beacon Data!"); // Paper
|
|
}
|
|
}
|
|
} else if ("MC|ItemName".equals(s)) {
|
|
@@ -2536,6 +2544,13 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable {
|
|
}
|
|
}
|
|
}
|
|
+ // Paper start
|
|
+ } finally {
|
|
+ if (packetplayincustompayload.b().refCnt() > 0) {
|
|
+ packetplayincustompayload.b().release();
|
|
+ }
|
|
+ }
|
|
+ // Paper end
|
|
|
|
}
|
|
|
|
--
|
|
2.7.4 (Apple Git-66)
|
|
|