Update from upstream SpigotMC

Abridged: Force close player inventories when they move/interact
This prevents modified clients from using the 2x2 crafting square as permanent storage

Force Close Inventory On Move SpigotMC/Spigot@db78a70788
Only close once, if needed SpigotMC/Spigot@b652de8e7f
Move to interact event closing SpigotMC/Spigot@b5378850d3
Disregard arm swings - racy SpigotMC/Spigot@f86634e280
This commit is contained in:
Zach Brown 2014-08-10 00:21:18 -05:00
parent 0eb966c2a9
commit 3727c00bdd
3 changed files with 57 additions and 4 deletions

View file

@ -0,0 +1,52 @@
From c9d9a1ae8bc827c6b3128bf8fa74cc260ac9adec Mon Sep 17 00:00:00 2001
From: md_5 <git@md-5.net>
Date: Sun, 10 Aug 2014 11:01:02 +1000
Subject: [PATCH] Force Close Inventory On Move
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
index 0e2bc03..e8bfc41 100644
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
@@ -489,6 +489,12 @@ public class PlayerConnection implements PacketPlayInListener {
public void a(PacketPlayInBlockDig packetplayinblockdig) {
if (this.player.dead) return; // CraftBukkit
+ // Spigot start
+ if ( player.activeContainer != player.defaultContainer )
+ {
+ getPlayer().closeInventory();
+ }
+ // Spigot end
WorldServer worldserver = this.minecraftServer.getWorldServer(this.player.dimension);
this.player.v();
@@ -615,6 +621,12 @@ public class PlayerConnection implements PacketPlayInListener {
// a notch bug where the item doesn't update correctly.
boolean always = false;
// CraftBukkit end
+ // Spigot start
+ if ( player.activeContainer != player.defaultContainer )
+ {
+ getPlayer().closeInventory();
+ }
+ // Spigot end
ItemStack itemstack = this.player.inventory.getItemInHand();
boolean flag = false;
@@ -1118,6 +1130,12 @@ public class PlayerConnection implements PacketPlayInListener {
return;
}
// Spigot End
+ // Spigot start
+ if ( player.activeContainer != player.defaultContainer )
+ {
+ getPlayer().closeInventory();
+ }
+ // Spigot end
this.player.v();
if (entity != null) {
--
1.9.1

View file

@ -1,8 +1,9 @@
From bbdcf22da6baf9b023003bf2ba541638ba2269d8 Mon Sep 17 00:00:00 2001
From 2b64890ac075c7e7125b05ca2eb164c6736ad347 Mon Sep 17 00:00:00 2001
From: Zach Brown <Zbob750@live.com>
Date: Mon, 21 Jul 2014 18:46:53 -0500
Subject: [PATCH] Invisible players don't have rights
diff --git a/src/main/java/net/minecraft/server/EntityArrow.java b/src/main/java/net/minecraft/server/EntityArrow.java
index de8dda7..dbb420b 100644
--- a/src/main/java/net/minecraft/server/EntityArrow.java

View file

@ -1,14 +1,14 @@
From 6960ce33320bd8116f780e553b8dcbd3dcdd7c5d Mon Sep 17 00:00:00 2001
From 2e6771696e929e2f7ed3005f221c2145fe356546 Mon Sep 17 00:00:00 2001
From: Zach Brown <Zbob750@live.com>
Date: Tue, 5 Aug 2014 17:56:02 -0500
Subject: [PATCH] Toggle for player interact limiter
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
index 97037ff..f78824c 100644
index e8bfc41..7f7cc13 100644
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
@@ -581,7 +581,8 @@ public class PlayerConnection implements PacketPlayInListener {
@@ -587,7 +587,8 @@ public class PlayerConnection implements PacketPlayInListener {
public void a(PacketPlayInBlockPlace packetplayinblockplace) {
boolean throttled = false;