mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-27 19:37:35 +01:00
19b4f78b55
Replaces the "use-chunk-inhabited-timer" config option with the options "use-fixed-chunk-inhabited-time" and "fixed-chunk-inhabited-time". When using "use-fixed-chunk-inhabited-time=false" everything will be the same like it was with "use-chunk-inhabited-timer=true". When using "use-fixed-chunk-inhabited-time=true" and "fixed-chunk-inhabited-time=0" everything will be the same like it was with "use-chunk-inhabited-timer=false". Instead of just using 0 when all chunks should be treated equally this allows to fine-tune vanilla gameplay.
44 lines
2.2 KiB
Diff
44 lines
2.2 KiB
Diff
From e97bd3b2054b415121bdc5eb131ccd3e207da94e Mon Sep 17 00:00:00 2001
|
|
From: Aikar <aikar@aikar.co>
|
|
Date: Mon, 30 Apr 2018 17:15:26 -0400
|
|
Subject: [PATCH] Block Enderpearl Travel Exploit
|
|
|
|
Players are able to use alt accounts and enderpearls to travel
|
|
long distances utilizing the pearls in unloaded chunks and loading
|
|
the chunk later when convenient.
|
|
|
|
This disables that by not saving the thrower when the chunk is unloaded.
|
|
|
|
This is mainly useful for survival servers that do not allow freeform teleporting.
|
|
|
|
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
|
index 6bb54fcbd..9aba755a4 100644
|
|
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
|
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
|
@@ -419,4 +419,10 @@ public class PaperWorldConfig {
|
|
private void disableSprintInterruptionOnAttack() {
|
|
disableSprintInterruptionOnAttack = getBoolean("game-mechanics.disable-sprint-interruption-on-attack", false);
|
|
}
|
|
+
|
|
+ public boolean disableEnderpearlExploit = true;
|
|
+ private void disableEnderpearlExploit() {
|
|
+ disableEnderpearlExploit = getBoolean("game-mechanics.disable-unloaded-chunk-enderpearl-exploit", disableEnderpearlExploit);
|
|
+ log("Disable Unloaded Chunk Enderpearl Exploit: " + (disableEnderpearlExploit ? "enabled" : "disabled"));
|
|
+ }
|
|
}
|
|
diff --git a/src/main/java/net/minecraft/server/EntityProjectile.java b/src/main/java/net/minecraft/server/EntityProjectile.java
|
|
index 431afaf2f..8d41efe8f 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityProjectile.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityProjectile.java
|
|
@@ -242,6 +242,7 @@ public abstract class EntityProjectile extends Entity implements IProjectile {
|
|
if (nbttagcompound.hasKeyOfType("owner", 10)) {
|
|
this.shooterId = GameProfileSerializer.b(nbttagcompound.getCompound("owner"));
|
|
}
|
|
+ if (this instanceof EntityEnderPearl && this.world != null && this.world.paperConfig.disableEnderpearlExploit) { this.shooterId = null; } // Paper - Don't store shooter name for pearls to block enderpearl travel exploit
|
|
|
|
}
|
|
|
|
--
|
|
2.20.0
|
|
|