From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Mon, 10 Jan 2022 10:04:31 -0600 Subject: [PATCH] Configurable player pickup exp delay diff --git a/src/main/java/net/minecraft/world/entity/ExperienceOrb.java b/src/main/java/net/minecraft/world/entity/ExperienceOrb.java index 68072fae050fb83735725f3dc2525bfc9c0cc159..8515eddddb84b44afdbfeacc22bc1cd53fc06572 100644 --- a/src/main/java/net/minecraft/world/entity/ExperienceOrb.java +++ b/src/main/java/net/minecraft/world/entity/ExperienceOrb.java @@ -301,7 +301,7 @@ public class ExperienceOrb extends Entity { public void playerTouch(Player player) { if (!this.level.isClientSide) { if (player.takeXpDelay == 0 && new com.destroystokyo.paper.event.player.PlayerPickupExperienceEvent(((net.minecraft.server.level.ServerPlayer) player).getBukkitEntity(), (org.bukkit.entity.ExperienceOrb) this.getBukkitEntity()).callEvent()) { // Paper - player.takeXpDelay = 2; + player.takeXpDelay = this.level.purpurConfig.playerExpPickupDelay; // Purpur player.take(this, 1); int i = this.repairPlayerItems(player, this.value); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java index 4bdd91dc2cd76525af4ba2f6d361e10efdf6fda3..15c023807a3f5ae3139294d28c5c672a4f111817 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -412,6 +412,7 @@ public class PurpurWorldConfig { public boolean playerRidableInWater = false; public boolean playerRemoveBindingWithWeakness = false; public int shiftRightClickRepairsMendingPoints = 0; + public int playerExpPickupDelay = 2; private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); @@ -440,6 +441,7 @@ public class PurpurWorldConfig { playerRidableInWater = getBoolean("gameplay-mechanics.player.ridable-in-water", playerRidableInWater); playerRemoveBindingWithWeakness = getBoolean("gameplay-mechanics.player.curse-of-binding.remove-with-weakness", playerRemoveBindingWithWeakness); shiftRightClickRepairsMendingPoints = getInt("gameplay-mechanics.player.shift-right-click-repairs-mending-points", shiftRightClickRepairsMendingPoints); + playerExpPickupDelay = getInt("gameplay-mechanics.player.exp-pickup-delay-ticks", playerExpPickupDelay); } public int snowballDamage = -1;