Better container checks (#564)
This commit is contained in:
39
Spigot-Server-Patches/Better-container-checks.patch
Normal file
39
Spigot-Server-Patches/Better-container-checks.patch
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Michael Himing <mhiming@gmail.com>
|
||||||
|
Date: Tue, 3 Jan 2017 08:54:00 +1100
|
||||||
|
Subject: [PATCH] Better container checks
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/net/minecraft/server/Container.java b/src/main/java/net/minecraft/server/Container.java
|
||||||
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||||
|
--- a/src/main/java/net/minecraft/server/Container.java
|
||||||
|
+++ b/src/main/java/net/minecraft/server/Container.java
|
||||||
|
@@ -0,0 +0,0 @@ public abstract class Container {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
+ public boolean canPlayerUse(EntityHuman entityhuman) { return a(entityhuman); } // Paper - OBFHELPER
|
||||||
|
public abstract boolean a(EntityHuman entityhuman);
|
||||||
|
|
||||||
|
protected boolean a(ItemStack itemstack, int i, int j, boolean flag) {
|
||||||
|
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
|
||||||
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||||
|
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
|
||||||
|
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
|
||||||
|
@@ -0,0 +0,0 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable {
|
||||||
|
PlayerConnectionUtils.ensureMainThread(packetplayinwindowclick, this, this.player.x());
|
||||||
|
if (this.player.isFrozen()) return; // CraftBukkit
|
||||||
|
this.player.resetIdleTimer();
|
||||||
|
+ if (!this.player.activeContainer.canPlayerUse(this.player)) return; // Paper - check if player is able to use this container
|
||||||
|
if (this.player.activeContainer.windowId == packetplayinwindowclick.a() && this.player.activeContainer.c(this.player)) {
|
||||||
|
boolean cancelled = this.player.isSpectator(); // CraftBukkit - see below if
|
||||||
|
if (false/*this.player.isSpectator()*/) { // CraftBukkit
|
||||||
|
@@ -0,0 +0,0 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable {
|
||||||
|
public void a(PacketPlayInTransaction packetplayintransaction) {
|
||||||
|
PlayerConnectionUtils.ensureMainThread(packetplayintransaction, this, this.player.x());
|
||||||
|
if (this.player.isFrozen()) return; // CraftBukkit
|
||||||
|
+ if (!this.player.activeContainer.canPlayerUse(this.player)) return; // Paper - check if player is able to use this container
|
||||||
|
Short oshort = (Short) this.k.get(this.player.activeContainer.windowId);
|
||||||
|
|
||||||
|
if (oshort != null && packetplayintransaction.b() == oshort.shortValue() && this.player.activeContainer.windowId == packetplayintransaction.a() && !this.player.activeContainer.c(this.player) && !this.player.isSpectator()) {
|
||||||
|
--
|
||||||
Reference in New Issue
Block a user