mirror of
https://github.com/PaperMC/Paper.git
synced 2024-11-22 18:45:54 +01:00
89d51d5f29
Because this exploit has been widely known for years and has not been fixed by Mojang, we decided that it was worth allowing people to toggle it on/off due to how easy it is to make it configurable. It should be noted that this decision does not promise all future exploits will be configurable.
50 lines
1.7 KiB
Diff
50 lines
1.7 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Alfie Smith <alfie@alfiesmith.net>
|
|
Date: Sat, 7 Nov 2020 01:20:33 +0000
|
|
Subject: [PATCH] Item no age & no player pickup
|
|
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java
|
|
index 5620a0849fda49313c68edfd747fedd09641a3d5..4a15c3786edbfeae3367c0b20fb6aee11d62aea6 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java
|
|
@@ -9,6 +9,11 @@ import org.bukkit.inventory.ItemStack;
|
|
|
|
public class CraftItem extends CraftEntity implements Item {
|
|
|
|
+ // Paper start
|
|
+ private final static int NO_AGE_TIME = (int) Short.MIN_VALUE;
|
|
+ private final static int NO_PICKUP_TIME = (int) Short.MAX_VALUE;
|
|
+ // Paper end
|
|
+
|
|
public CraftItem(CraftServer server, ItemEntity entity) {
|
|
super(server, entity);
|
|
}
|
|
@@ -73,6 +78,26 @@ public class CraftItem extends CraftEntity implements Item {
|
|
public void setCanMobPickup(boolean canMobPickup) {
|
|
this.getHandle().canMobPickup = canMobPickup;
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public boolean canPlayerPickup() {
|
|
+ return this.getHandle().pickupDelay != NO_PICKUP_TIME;
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public void setCanPlayerPickup(boolean canPlayerPickup) {
|
|
+ this.getHandle().pickupDelay = canPlayerPickup ? 0 : NO_PICKUP_TIME;
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public boolean willAge() {
|
|
+ return this.getHandle().age != NO_AGE_TIME;
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public void setWillAge(boolean willAge) {
|
|
+ this.getHandle().age = willAge ? 0 : NO_AGE_TIME;
|
|
+ }
|
|
// Paper end
|
|
|
|
@Override
|