aboutsummaryrefslogtreecommitdiffhomepage
path: root/Spigot-Server-Patches/0186-IllegalPacketEvent.patch
diff options
context:
space:
mode:
Diffstat (limited to 'Spigot-Server-Patches/0186-IllegalPacketEvent.patch')
-rw-r--r--Spigot-Server-Patches/0186-IllegalPacketEvent.patch71
1 files changed, 71 insertions, 0 deletions
diff --git a/Spigot-Server-Patches/0186-IllegalPacketEvent.patch b/Spigot-Server-Patches/0186-IllegalPacketEvent.patch
new file mode 100644
index 0000000000..5c439cf905
--- /dev/null
+++ b/Spigot-Server-Patches/0186-IllegalPacketEvent.patch
@@ -0,0 +1,71 @@
+From d9570be2a290ff85ba97c0239f95fdaccc56d587 Mon Sep 17 00:00:00 2001
+From: Aikar <[email protected]>
+Date: Thu, 23 Jun 2016 23:33:57 -0400
+Subject: [PATCH] IllegalPacketEvent
+
+Fired for invalid data from players that represents hacking attempts
+
+diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
+index 51d27351d..437575003 100644
+--- a/src/main/java/net/minecraft/server/PlayerConnection.java
++++ b/src/main/java/net/minecraft/server/PlayerConnection.java
+@@ -56,6 +56,7 @@ import org.bukkit.inventory.CraftingInventory;
+ import org.bukkit.inventory.EquipmentSlot;
+ import org.bukkit.inventory.InventoryView;
+ import org.bukkit.util.NumberConversions;
++import com.destroystokyo.paper.event.player.IllegalPacketEvent; // Paper
+ import co.aikar.timings.MinecraftTimings; // Paper
+ // CraftBukkit end
+
+@@ -2236,8 +2237,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable {
+ CraftEventFactory.handleEditBookEvent(player, itemstack1); // CraftBukkit
+ }
+ } catch (Exception exception) {
+- PlayerConnection.LOGGER.error("Couldn\'t handle book info", exception);
+- this.disconnect("Invalid book data!"); // CraftBukkit
++ IllegalPacketEvent.process(player.getBukkitEntity(), "InvalidBookEdit", "Invalid book data!", exception); // Paper
+ }
+ } else {
+ String s1;
+@@ -2286,8 +2286,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable {
+ CraftEventFactory.handleEditBookEvent(player, itemstack2); // CraftBukkit
+ }
+ } catch (Exception exception1) {
+- PlayerConnection.LOGGER.error("Couldn\'t sign book", exception1);
+- this.disconnect("Invalid book data!"); // CraftBukkit
++ IllegalPacketEvent.process(player.getBukkitEntity(), "InvalidBookSign", "Invalid book data!", exception1); // Paper
+ }
+ } else if ("MC|TrSel".equals(s)) {
+ try {
+@@ -2298,8 +2297,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable {
+ ((ContainerMerchant) container).d(j);
+ }
+ } catch (Exception exception2) {
+- PlayerConnection.LOGGER.error("Couldn\'t select trade", exception2);
+- this.disconnect("Invalid trade data!"); // CraftBukkit
++ IllegalPacketEvent.process(player.getBukkitEntity(), "InvalidTrade", "Invalid trade data!", exception2); // Paper
+ }
+ } else {
+ TileEntity tileentity;
+@@ -2440,8 +2438,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable {
+ iinventory.update();
+ }
+ } catch (Exception exception5) {
+- PlayerConnection.LOGGER.error("Couldn\'t set beacon", exception5);
+- this.disconnect("Invalid beacon data!"); // CraftBukkit
++ IllegalPacketEvent.process(player.getBukkitEntity(), "InvalidBeacon", "Invalid beacon data!", exception5); // Paper
+ }
+ }
+ } else if ("MC|ItemName".equals(s)) {
+@@ -2540,7 +2537,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable {
+ this.player.playerConnection.sendPacket(new PacketPlayOutSetSlot(-2, k, this.player.inventory.getItem(k)));
+ this.player.playerConnection.sendPacket(new PacketPlayOutHeldItemSlot(this.player.inventory.itemInHandIndex));
+ } catch (Exception exception7) {
+- PlayerConnection.LOGGER.error("Couldn\'t pick item", exception7);
++ IllegalPacketEvent.process(player.getBukkitEntity(), "InvalidPickItem", "Invalid PickItem", exception7); // Paper
+ }
+ }
+ // CraftBukkit start
+--
+2.12.2
+