From 54a84c6c795930eff2052caa287d3045e1bfcff9 Mon Sep 17 00:00:00 2001 From: CraftBukkit/Spigot Date: Sun, 22 Sep 2013 19:10:53 +1000 Subject: [PATCH] Item Despawn Rate By: md_5 --- .../world/entity/item/ItemEntity.java.patch | 15 +++++++++++++-- .../main/java/org/spigotmc/SpigotWorldConfig.java | 7 +++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/paper-server/patches/sources/net/minecraft/world/entity/item/ItemEntity.java.patch b/paper-server/patches/sources/net/minecraft/world/entity/item/ItemEntity.java.patch index 1d52eb82c4..54a286345b 100644 --- a/paper-server/patches/sources/net/minecraft/world/entity/item/ItemEntity.java.patch +++ b/paper-server/patches/sources/net/minecraft/world/entity/item/ItemEntity.java.patch @@ -94,11 +94,13 @@ this.hasImpulse |= this.updateInWaterStateAndDoFluidPushing(); if (!this.level().isClientSide) { -@@ -202,7 +215,13 @@ +@@ -201,8 +214,14 @@ + } } - if (!this.level().isClientSide && this.age >= 6000) { +- if (!this.level().isClientSide && this.age >= 6000) { - this.discard(); ++ if (!this.level().isClientSide && this.age >= this.level().spigotConfig.itemDespawnRate) { // Spigot + // CraftBukkit start - fire ItemDespawnEvent + if (CraftEventFactory.callItemDespawnEvent(this).isCancelled()) { + this.age = 0; @@ -233,3 +235,12 @@ itemstack.setCount(i); } +@@ -492,7 +564,7 @@ + + public void makeFakeItem() { + this.setNeverPickUp(); +- this.age = 5999; ++ this.age = this.level().spigotConfig.itemDespawnRate - 1; // Spigot + } + + public static float getSpin(float f, float f1) { diff --git a/paper-server/src/main/java/org/spigotmc/SpigotWorldConfig.java b/paper-server/src/main/java/org/spigotmc/SpigotWorldConfig.java index ce623c0081..7d1d2a4d32 100644 --- a/paper-server/src/main/java/org/spigotmc/SpigotWorldConfig.java +++ b/paper-server/src/main/java/org/spigotmc/SpigotWorldConfig.java @@ -187,4 +187,11 @@ public class SpigotWorldConfig this.mobSpawnRange = (byte) this.getInt( "mob-spawn-range", 6 ); this.log( "Mob Spawn Range: " + this.mobSpawnRange ); } + + public int itemDespawnRate; + private void itemDespawnRate() + { + this.itemDespawnRate = this.getInt( "item-despawn-rate", 6000 ); + this.log( "Item Despawn Rate: " + this.itemDespawnRate ); + } }