Updated Upstream (Paper, Tuinity, & Airplane)

Upstream has released updates that appear to apply and compile correctly

Paper Changes:
8c74d3126 Updated Upstream (Bukkit) (#5359)
fd3c66a91 bug #5362 - correctly pass "render type" when registering a new scoreboard objective
39c487b37 Add per-command perms for paper command
cdbf2578c Add Item Rarity API (#5352)
d80e43647 [CI-SKIP] Removal from the MIT list (#5345)

Tuinity Changes:
aea6b8347 Merge dev/playerchunkloading
722c7ca8a Use hash table for maintaing changed block set
98ae59d85 Custom table implementation for blockstate state lookups
8b8704fb6 Oprimise map impl for tracked players
ea71d6ba4 Optimise snow & ice in chunk ticking
9871d4ce5 Remove chunk lookup & lambda allocation from counting mobs
5a4a35f3e Add patreon
7d93d9618 Refactor data management for region manager
c3035219f Change license from MIT to LGPLv3

Airplane Changes:
580f380b6 Updated Upstream (Tuinity)
82253fd36 Early return optimization for target finding
9572643bb Cache entityhuman display name
5df98254f Remove iterators from inventory contains
18d2be193 Merge pull request #14 from violetwtf/patch-1
f716d4c33 Merge pull request #13 from violetwtf/master
128cbe519 Reduce entity chunk ticking checks from 3 to 1
03ac0933b Skip copying unloading tile entities
97dd027b5 Smaller pool size for tracking
9e9f57be4 Only set up Flare if token is available
This commit is contained in:
BillyGalbreath
2021-03-14 18:21:29 -05:00
parent 37591fe604
commit 3dd9f46453
52 changed files with 4045 additions and 932 deletions

2
Paper

Submodule Paper updated: 808bd91986...8c74d31264

View File

@@ -169,7 +169,7 @@ permanent authorization for you to choose that version for the
Library.
diff --git a/pom.xml b/pom.xml
index ff3894bfa4ddb54b56c28792debaf2218ee3a044..821df3413345c613eccff158f8081cf9ba848a14 100644
index bba9d7a8a61018f2fc8b9059ad012d43810599dc..feaa36dc9a113c5b0c45eed2c3b8a3d10e8b4ca7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,18 +3,18 @@
@@ -216,3 +216,106 @@ index f3e27d2d02a9407bb1b091b8c1125ad5abf99e55..b3e7b2a8eaa3980e34bc74a846320b78
/**
* Sends the component to the player
*
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
index 064497506e6a5ab89ca43b99968ca79d51d67c46..5848c8c03a1520b95c9f494e0820e075f1757fc6 100644
--- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java
@@ -3508,6 +3508,26 @@ public interface World extends PluginMessageRecipient, Metadatable, net.kyori.ad
* @param viewDistance view distance in [2, 32]
*/
void setNoTickViewDistance(int viewDistance);
+
+ // Tuinity start - add view distances
+ /**
+ * Gets the sending view distance for this world.
+ * <p>
+ * Sending view distance is the view distance where chunks will load in for players in this world.
+ * </p>
+ * @return The sending view distance for this world.
+ */
+ public int getSendViewDistance();
+
+ /**
+ * Sets the sending view distance for this world.
+ * <p>
+ * Sending view distance is the view distance where chunks will load in for players in this world.
+ * </p>
+ * @param viewDistance view distance in [2, 32] or -1
+ */
+ public void setSendViewDistance(int viewDistance);
+ // Tuinity end - add view distances
// Paper end - view distance api
// Spigot start
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 2ea531eaef8c455fdd503f0c0258813fe9136085..a84ea92d02d34cd48174152e0391f1af6c6b5def 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -1768,23 +1768,63 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* Gets the view distance for this player
*
* @return the player's view distance
- * @deprecated This is unimplemented and <i>will</i> throw an exception at runtime. The {@link org.bukkit.World World}-based methods still work.
+ * // Tuinity - implemented
* @see org.bukkit.World#getViewDistance()
* @see org.bukkit.World#getNoTickViewDistance()
*/
- @Deprecated
+ //@Deprecated // Tuinity - implemented
public int getViewDistance();
/**
* Sets the view distance for this player
*
* @param viewDistance the player's view distance
- * @deprecated This is unimplemented and <i>will</i> throw an exception at runtime. The {@link org.bukkit.World World}-based methods still work.
+ * // Tuinity - implemented
* @see org.bukkit.World#setViewDistance(int)
* @see org.bukkit.World#setNoTickViewDistance(int)
*/
- @Deprecated
+ //@Deprecated // Tuinity - implemented
public void setViewDistance(int viewDistance);
+
+ // Tuinity start - add view distances api
+ /**
+ * Gets the no-ticking view distance for this player.
+ * <p>
+ * No-tick view distance is the view distance where chunks will load, however the chunks and their entities will not
+ * be set to tick.
+ * </p>
+ * @return The no-tick view distance for this player.
+ */
+ public int getNoTickViewDistance();
+
+ /**
+ * Sets the no-ticking view distance for this player.
+ * <p>
+ * No-tick view distance is the view distance where chunks will load, however the chunks and their entities will not
+ * be set to tick.
+ * </p>
+ * @param viewDistance view distance in [2, 32] or -1
+ */
+ public void setNoTickViewDistance(int viewDistance);
+
+ /**
+ * Gets the sending view distance for this player.
+ * <p>
+ * Sending view distance is the view distance where chunks will load in for players.
+ * </p>
+ * @return The sending view distance for this player.
+ */
+ public int getSendViewDistance();
+
+ /**
+ * Sets the sending view distance for this player.
+ * <p>
+ * Sending view distance is the view distance where chunks will load in for players.
+ * </p>
+ * @param viewDistance view distance in [2, 32] or -1
+ */
+ public void setSendViewDistance(int viewDistance);
+ // Tuinity end - add view distances api
// Paper end
/**

View File

@@ -81,10 +81,10 @@ index 0000000000000000000000000000000000000000..0c8b3e5e4ba412624357ea5662a78862
+ }
+}
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 2ea531eaef8c455fdd503f0c0258813fe9136085..53e10ef71fcd904d59c9c9825b2a736b6b35027c 100644
index a84ea92d02d34cd48174152e0391f1af6c6b5def..023ca23e8c91a6525cc31d483d873dfe14e97da3 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -2076,4 +2076,25 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -2116,4 +2116,25 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@Override
Spigot spigot();
// Spigot end

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Player invulnerabilities
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 53e10ef71fcd904d59c9c9825b2a736b6b35027c..117a073dcff9c6d00c54cf5214b92bd50cd67f2c 100644
index 023ca23e8c91a6525cc31d483d873dfe14e97da3..88bda8c25ad746ccc584c7d490bd3257a74a6a20 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -2096,5 +2096,26 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -2136,5 +2136,26 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* Reset the idle timer back to 0
*/
void resetIdleTimer();

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] ItemStack convenience methods
diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java
index 7b77c7132723a01e8c38ddaa616b363be300b653..c6b1131b1700797e0515045f4e5c81f85aa3449f 100644
index 0a31a5321ac519568db936c94394f71b2e2fcec1..42a77a5f5b8968351a737cb1fd7cebf160b13245 100644
--- a/src/main/java/org/bukkit/Material.java
+++ b/src/main/java/org/bukkit/Material.java
@@ -8649,4 +8649,36 @@ public enum Material implements Keyed {
@@ -8660,4 +8660,36 @@ public enum Material implements Keyed {
// </editor-fold>
}
}

View File

@@ -490,7 +490,7 @@ index 28a1fe3af1546daa779df46468e0ff8ad823f9ca..7a3be414ef9d54d7a852ba92d704011f
@NotNull
diff --git a/src/main/java/org/bukkit/UnsafeValues.java b/src/main/java/org/bukkit/UnsafeValues.java
index f486d7c819f6330223980793c9b086fded0af059..632e53338c4d902aea7e8589152b1c1b6e6dde6a 100644
index 7f90ef2fd1c87c5b8b69f2e9dba3ad8e6e9ce3ec..85f77a58bf6c21da815b6652c7b50d578951a14c 100644
--- a/src/main/java/org/bukkit/UnsafeValues.java
+++ b/src/main/java/org/bukkit/UnsafeValues.java
@@ -81,6 +81,8 @@ public interface UnsafeValues {
@@ -950,10 +950,10 @@ index a6a7429ed2e1eefb2b12b7480ed74fcc3963a864..e8027e1d505dda6effbb1698550016e8
NORMAL(false),
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 117a073dcff9c6d00c54cf5214b92bd50cd67f2c..0d1edff31a725f88f203fe3066ef1daf9c9a051e 100644
index 88bda8c25ad746ccc584c7d490bd3257a74a6a20..1f667efd4b9bf00c0be8707849a6927483aef7ca 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -1898,6 +1898,8 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -1938,6 +1938,8 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
void resetCooldown();
/**
@@ -962,7 +962,7 @@ index 117a073dcff9c6d00c54cf5214b92bd50cd67f2c..0d1edff31a725f88f203fe3066ef1daf
* @return the client option value of the player
*/
@NotNull
@@ -1937,6 +1939,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -1977,6 +1979,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
// Paper end
// Spigot start

View File

@@ -17,12 +17,12 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
diff --git a/src/main/java/org/bukkit/UnsafeValues.java b/src/main/java/org/bukkit/UnsafeValues.java
index 632e53338c4d902aea7e8589152b1c1b6e6dde6a..e64d28359c6f5180f1dfd3896a5ba99fd30a943c 100644
index 85f77a58bf6c21da815b6652c7b50d578951a14c..59a91250d80e6f67a32cb4c7a216f1389338ddbf 100644
--- a/src/main/java/org/bukkit/UnsafeValues.java
+++ b/src/main/java/org/bukkit/UnsafeValues.java
@@ -136,4 +136,28 @@ public interface UnsafeValues {
public int nextEntityId();
@@ -152,4 +152,28 @@ public interface UnsafeValues {
*/
public io.papermc.paper.inventory.ItemRarity getItemStackRarity(ItemStack itemStack);
// Paper end
+
+ // Purpur start

File diff suppressed because it is too large Load Diff

View File

@@ -709,7 +709,7 @@ index c56e7fb18f9a56c8025eb70a524f028b5942da37..f39452535b2807a226ada095f5c21b19
TimingsManager.privacy = getBoolean("timings.server-name-privacy", false);
TimingsManager.hiddenConfigs = getList("timings.hidden-config-entries", Lists.newArrayList("database", "settings.bungeecord-addresses", "settings.velocity-support.secret"));
diff --git a/src/main/java/com/destroystokyo/paper/PaperVersionFetcher.java b/src/main/java/com/destroystokyo/paper/PaperVersionFetcher.java
index 7063f1da3654b382e26b0093ad5d0ff04a2b38c2..dd2a1b1c72426c4172cfbd20f0c84ffd073df484 100644
index 7063f1da3654b382e26b0093ad5d0ff04a2b38c2..b9c5479e5561f8fe68ea8f94fbf4e64de8a53bf9 100644
--- a/src/main/java/com/destroystokyo/paper/PaperVersionFetcher.java
+++ b/src/main/java/com/destroystokyo/paper/PaperVersionFetcher.java
@@ -28,8 +28,8 @@ public class PaperVersionFetcher implements VersionFetcher {
@@ -718,8 +718,8 @@ index 7063f1da3654b382e26b0093ad5d0ff04a2b38c2..dd2a1b1c72426c4172cfbd20f0c84ffd
public Component getVersionMessage(@Nonnull String serverVersion) {
- String[] parts = serverVersion.substring("git-Tuinity-".length()).split("[-\\s]"); // Tuinity
- final Component updateMessage = getUpdateStatusMessage("Spottedleaf/Tuinity", GITHUB_BRANCH_NAME, parts[0]); // Tuinity
+ String[] parts = serverVersion.substring("git-Airplane-".length()).split("[-\\s]"); // Airplane // Tuinity
+ final Component updateMessage = getUpdateStatusMessage("TECHNOVE/Airplane", GITHUB_BRANCH_NAME, parts[0]); // Airplane // Tuinity
+ String[] parts = serverVersion.substring("git-Airplane-".length()).split("[-\\s]"); // Tuinity
+ final Component updateMessage = getUpdateStatusMessage("TECHNOVE/Airplane", GITHUB_BRANCH_NAME, parts[0]); // Tuinity
final Component history = getHistory();
return history != null ? TextComponent.ofChildren(updateMessage, Component.newline(), history) : updateMessage;
@@ -800,10 +800,10 @@ index 0000000000000000000000000000000000000000..1fa9b40e2f89272fa8bc9d927a9a852b
+}
diff --git a/src/main/java/gg/airplane/AirplaneConfig.java b/src/main/java/gg/airplane/AirplaneConfig.java
new file mode 100644
index 0000000000000000000000000000000000000000..e183b6cae23935823fa9e0f767e499a8102b0ad1
index 0000000000000000000000000000000000000000..424325ada75b788ce390378d8df0116e5c50cf3d
--- /dev/null
+++ b/src/main/java/gg/airplane/AirplaneConfig.java
@@ -0,0 +1,104 @@
@@ -0,0 +1,107 @@
+package gg.airplane;
+
+import gg.airplane.manual.ManualParser;
@@ -891,6 +891,9 @@ index 0000000000000000000000000000000000000000..e183b6cae23935823fa9e0f767e499a8
+
+ accessToken = manual.get("web-services.token", "");
+ // todo lookup token (off-thread) and let users know if their token is valid
+ if (accessToken.length() > 0) {
+ gg.airplane.flare.FlareSetup.init(); // Airplane
+ }
+ }
+
+
@@ -1034,10 +1037,10 @@ index 0000000000000000000000000000000000000000..f4976428bc721319d2926e97cbe0f64c
+}
diff --git a/src/main/java/gg/airplane/flare/FlareCommand.java b/src/main/java/gg/airplane/flare/FlareCommand.java
new file mode 100644
index 0000000000000000000000000000000000000000..81f5267d287138f6b47aa0a1f1d59d2d91a7e34a
index 0000000000000000000000000000000000000000..e3ef62ae97b8b92459e1c405525790ba2172df01
--- /dev/null
+++ b/src/main/java/gg/airplane/flare/FlareCommand.java
@@ -0,0 +1,158 @@
@@ -0,0 +1,159 @@
+package gg.airplane.flare;
+
+import com.google.common.collect.ImmutableList;
@@ -1062,6 +1065,7 @@ index 0000000000000000000000000000000000000000..81f5267d287138f6b47aa0a1f1d59d2d
+
+public class FlareCommand extends Command {
+
+ private static final String BASE_URL = "https://blog.airplane.gg/flare-tutorial/#setting-the-access-token";
+ private static final ChatColor HEX = ChatColor.of("#6a7eda");
+ private static final BaseComponent[] PREFIX = new ComponentBuilder("Flare ✈ ")
+ .color(HEX)
@@ -1087,10 +1091,10 @@ index 0000000000000000000000000000000000000000..81f5267d287138f6b47aa0a1f1d59d2d
+ public boolean execute(CommandSender sender, String commandLabel, String[] args) {
+ if (!testPermission(sender)) return true;
+ if (AirplaneConfig.accessToken.length() == 0) {
+ BaseComponent clickable = new TextComponent("https://blog.airplane.gg/flare");
+ BaseComponent clickable = new TextComponent(BASE_URL);
+ clickable.setUnderlined(true);
+ clickable.setColor(HEX);
+ clickable.setClickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, "https://blog.airplane.gg/flare"));
+ clickable.setClickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, BASE_URL));
+
+ sender.sendMessage(create(new ComponentBuilder("Flare currently requires an access token to use. To learn more, visit ")
+ .color(HEX)
@@ -1637,7 +1641,7 @@ index 0000000000000000000000000000000000000000..ace29adb0f140d99a8d85ac824654bed
+}
diff --git a/src/main/java/gg/airplane/structs/TrackQueue.java b/src/main/java/gg/airplane/structs/TrackQueue.java
new file mode 100644
index 0000000000000000000000000000000000000000..601694aa6d36ce230d84cc6b55231d2fc3af30e9
index 0000000000000000000000000000000000000000..e72229128285e1a48b9b461620620976ca0dc0a4
--- /dev/null
+++ b/src/main/java/gg/airplane/structs/TrackQueue.java
@@ -0,0 +1,84 @@
@@ -1658,7 +1662,7 @@ index 0000000000000000000000000000000000000000..601694aa6d36ce230d84cc6b55231d2f
+public class TrackQueue {
+
+ private final IteratorSafeOrderedReferenceSet<Chunk> chunks;
+ private final ForkJoinPool pool = ForkJoinPool.commonPool();
+ private final ForkJoinPool pool = new ForkJoinPool(Math.max(4, Runtime.getRuntime().availableProcessors() >> 2));
+ private final AtomicInteger taskIndex = new AtomicInteger();
+
+ private final ConcurrentLinkedQueue<Runnable> mainThreadTasks;
@@ -1762,10 +1766,10 @@ index 19f8cf4384ff7a1515ad33a5f573ea0061bab93d..e6507a9bef705e1496497ad6b58a5463
private static EntityVillager a(EntityVillager entityvillager, EntityVillager entityvillager1) {
diff --git a/src/main/java/net/minecraft/server/BehaviorFindPosition.java b/src/main/java/net/minecraft/server/BehaviorFindPosition.java
index 8d445e9c0875db6cf45e4d8bcfce7cd3d5094d94..0594b0bb12c553edbb6284b48328a3dcf5a64ba4 100644
index 83702e07dff72b639af32c8ba9e831e58da92a10..a48f2f82517bc391d5d5b7961e3c7a75175abb65 100644
--- a/src/main/java/net/minecraft/server/BehaviorFindPosition.java
+++ b/src/main/java/net/minecraft/server/BehaviorFindPosition.java
@@ -278,6 +278,7 @@ public class BehaviorFindPosition extends Behavior<EntityCreature> {
@@ -57,6 +57,7 @@ public class BehaviorFindPosition extends Behavior<EntityCreature> {
protected void a(WorldServer worldserver, EntityCreature entitycreature, long i) {
this.f = i + 20L + (long) worldserver.getRandom().nextInt(20);
@@ -1812,7 +1816,7 @@ index 2291135eaef64c403183724cb6e413cd7e472672..72ee5fe0ca25844cbcd8f1bbbbd6a7f8
@Override
public BlockPosition shift(EnumDirection enumdirection, int i) {
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index 8fda4702764e80dae93ef9c0eb53abc198642ab1..1d65d884d1f31a73333e4cf6a9ce30d7863dab9f 100644
index 8e59a794f6190930cb7bb81a2fe1a1d374dacce7..6cde93d62c4c324a6544401cabe045cbb80f465e 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -53,6 +53,38 @@ public class Chunk implements IChunkAccess {
@@ -1863,10 +1867,10 @@ index 8fda4702764e80dae93ef9c0eb53abc198642ab1..1d65d884d1f31a73333e4cf6a9ce30d7
public org.bukkit.Chunk bukkitChunk;
diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java
index e26389d8d9ee4fedb32767fce3aed071af412304..9cf3cd69661a140d34d17195c2cd6dc299c95ddf 100644
index b55f7dece329dbb3ff27d57a39c32c69e5baea74..5897d462d350dfbd1464feb92ecf77725651c694 100644
--- a/src/main/java/net/minecraft/server/ChunkProviderServer.java
+++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java
@@ -974,6 +974,7 @@ public class ChunkProviderServer extends IChunkProvider {
@@ -975,6 +975,7 @@ public class ChunkProviderServer extends IChunkProvider {
}
// Paper end - optimize isOutisdeRange
this.world.getMethodProfiler().enter("pollingChunks");
@@ -1926,16 +1930,15 @@ index 73163b417af7e522a4509bf9c1ab56d6499be622..2855a2757c35afc5751a7ca6f3a12cc2
for (int j = 0; j < 4096; ++j) {
T t1 = this.a(j);
diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java
index 2644b190813cc934914aeab78fbd6515d1a37c4a..2ee781604868a508d81585a68da811ea366a21b2 100644
index 2644b190813cc934914aeab78fbd6515d1a37c4a..665d2d03676fde8d7e7d09fef3fd9cc13110d98d 100644
--- a/src/main/java/net/minecraft/server/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/DedicatedServer.java
@@ -176,6 +176,9 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
@@ -176,6 +176,8 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
com.destroystokyo.paper.VersionHistoryManager.INSTANCE.getClass(); // load version history now
// Paper end
com.tuinity.tuinity.config.TuinityConfig.init((java.io.File) options.valueOf("tuinity-settings")); // Tuinity - Server Config
+ gg.airplane.AirplaneConfig.load(); // Airplane - config
+ gg.airplane.commands.AirplaneCommands.init(); // Airplane - command
+ gg.airplane.flare.FlareSetup.init(); // Airplane
this.setPVP(dedicatedserverproperties.pvp);
this.setAllowFlight(dedicatedserverproperties.allowFlight);
@@ -2051,6 +2054,34 @@ index f6797925365836b6c2d3d2c48c746a4d58e28bf3..7bd22c81d75368697113915a97c7fbe5
}
@Override
diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java
index f034977f4666385d6e7c7288e453d058c270be01..48a820e34d45623432a3dc3b01d0bba8824c6414 100644
--- a/src/main/java/net/minecraft/server/EntityHuman.java
+++ b/src/main/java/net/minecraft/server/EntityHuman.java
@@ -65,7 +65,8 @@ public abstract class EntityHuman extends EntityLiving {
protected int bG;
protected final float bH = 0.02F;
private int g;
- private GameProfile bJ; public final void setProfile(final GameProfile profile) { this.bJ = profile; } // Paper - OBFHELPER
+ private IChatBaseComponent displayName; // Airplane - cache displayName
+ private GameProfile bJ; public final void setProfile(final GameProfile profile) { this.bJ = profile; this.displayName = null; } // Paper - OBFHELPER // Airplane - use to reset displayName
private ItemStack bL;
private final ItemCooldown bM;
@Nullable
@@ -1731,7 +1732,12 @@ public abstract class EntityHuman extends EntityLiving {
@Override
public IChatBaseComponent getDisplayName() {
- return new ChatComponentText(this.bJ.getName());
+ // Airplane start - cache display name
+ if (this.displayName == null) {
+ this.displayName = new ChatComponentText(this.getProfile().getName());
+ }
+ return this.displayName;
+ // Airplane end
}
public InventoryEnderChest getEnderChest() {
diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java
index a47217c020d2c2a3caddafa0549dc827373798dd..81a91d63dd26a940c381b5a4f18eb60d42bbd61e 100644
--- a/src/main/java/net/minecraft/server/EntityInsentient.java
@@ -2152,7 +2183,7 @@ index ca7f9dc54ed2e58f521613b5d8027494bd20edd2..682b241ae0e2859aa57faea8a4521c1c
@Override
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
index f40c24b6e2f7bea21d1cb2b58ed3da45ffcfc866..9851b7cf8f60be12cfba9787eabe210661344414 100644
index c086579073c785b3b7cd556bbb629b91560bd449..90d64eb2a7e318c8501b7efb2314d2049441bd6f 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -52,7 +52,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@@ -2426,10 +2457,10 @@ index 2e7721a650c5a351b3584665bd236f92ef577761..b3c2b461b2a654a9e37a57f2f62b3ba8
return d0 == 0.0D ? 0 : (d0 > 0.0D ? 1 : -1);
}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 7ac34a8959a797bf2af96f3f402fa65cffe3d666..965f186f4efd808cc92b4570e7426ffb25650e29 100644
index afc22e545df03a38c801362d308d135df90361e2..ec6ef20e93af2298bdb3953b15e1ec24e8c72261 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1520,7 +1520,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -1524,7 +1524,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
}
public String getServerModName() {
@@ -2439,7 +2470,7 @@ index 7ac34a8959a797bf2af96f3f402fa65cffe3d666..965f186f4efd808cc92b4570e7426ffb
public CrashReport b(CrashReport crashreport) {
diff --git a/src/main/java/net/minecraft/server/NavigationAbstract.java b/src/main/java/net/minecraft/server/NavigationAbstract.java
index b92ca4a6de01f3f86367fb8dfe3591b08a3e9218..87172af0b007f93bbb0474bc8f3789ed396258f8 100644
index 6aec5098d346c1b7498fd8b800154cd31ce08a97..be243d411abf68686e75d46023c93fb8bb5c84e0 100644
--- a/src/main/java/net/minecraft/server/NavigationAbstract.java
+++ b/src/main/java/net/minecraft/server/NavigationAbstract.java
@@ -411,6 +411,7 @@ public abstract class NavigationAbstract {
@@ -2472,11 +2503,35 @@ index 9cad895c7d008487ce885cbcc2c3966645df4c19..2ce5e07f4dcd0c76073840c35be66b7c
}
public boolean hasTasks() {
for (PathfinderGoalWrapped task : getTasks()) {
diff --git a/src/main/java/net/minecraft/server/PathfinderTargetCondition.java b/src/main/java/net/minecraft/server/PathfinderTargetCondition.java
index 3ebe3d0dc4c2c6aee6ea349006a74cbe5aa8e78f..7b80f6f08f274fd1adff114a81919bf41bf2cd53 100644
--- a/src/main/java/net/minecraft/server/PathfinderTargetCondition.java
+++ b/src/main/java/net/minecraft/server/PathfinderTargetCondition.java
@@ -80,9 +80,17 @@ public class PathfinderTargetCondition {
}
if (this.b > 0.0D) {
+ // Airplane start - try to return early
+ double range = (useFollowRange ? getFollowRange(entityliving) : this.b);
+ double d2 = entityliving.h(entityliving1.locX(), entityliving1.locY(), entityliving1.locZ()); // move up here to use early
+
+ if (d2 > range * range) { // if they're further than the absolute furthest allowed, they don't match
+ return false;
+ }
+
double d0 = this.g ? entityliving1.A(entityliving) : 1.0D;
- double d1 = Math.max((useFollowRange ? getFollowRange(entityliving) : this.b) * d0, 2.0D); // Paper
- double d2 = entityliving.h(entityliving1.locX(), entityliving1.locY(), entityliving1.locZ());
+ double d1 = Math.max(range * d0, 2.0D); // Paper // Airplane - reuse range calculated above
+ // Airplane end
if (d2 > d1 * d1) {
return false;
diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java
index 285e976d4a655fb61e70883ae89f974812be7152..d7a17689ce44ccb8281906fb6ac7ba2ae53161e5 100644
index 3e0bf6df7c4608a5b19024612db52558fd722f4b..e5e8d066661a0dee1c07ba0c855204cb81459da5 100644
--- a/src/main/java/net/minecraft/server/PlayerChunkMap.java
+++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java
@@ -642,7 +642,9 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
@@ -651,7 +651,9 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
return d2 * d2 + d3 * d3;
}
@@ -2487,7 +2542,7 @@ index 285e976d4a655fb61e70883ae89f974812be7152..d7a17689ce44ccb8281906fb6ac7ba2a
int i;
int j;
@@ -656,12 +658,16 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
@@ -665,12 +667,16 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
j = MathHelper.floor(entityplayer.locZ() / 16.0D);
}
@@ -2508,7 +2563,7 @@ index 285e976d4a655fb61e70883ae89f974812be7152..d7a17689ce44ccb8281906fb6ac7ba2a
return Math.max(Math.abs(k), Math.abs(l));
}
@@ -722,6 +728,11 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
@@ -731,6 +737,11 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
return (PlayerChunk) (this.hasPendingVisibleUpdate ? this.pendingVisibleChunks.get(i) : ((ProtectedVisibleChunksMap)this.visibleChunks).safeGet(i));
// Paper end
}
@@ -2520,7 +2575,7 @@ index 285e976d4a655fb61e70883ae89f974812be7152..d7a17689ce44ccb8281906fb6ac7ba2a
protected final IntSupplier getPrioritySupplier(long i) { return c(i); } // Paper - OBFHELPER
protected IntSupplier c(long i) {
@@ -2124,10 +2135,30 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
@@ -2134,10 +2145,30 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
entity.tracker = null; // Paper - We're no longer tracked
}
@@ -2551,7 +2606,7 @@ index 285e976d4a655fb61e70883ae89f974812be7152..d7a17689ce44ccb8281906fb6ac7ba2a
com.tuinity.tuinity.util.maplist.IteratorSafeOrderedReferenceSet.Iterator<Chunk> iterator = this.world.getChunkProvider().entityTickingChunks.iterator();
try {
while (iterator.hasNext()) {
@@ -2389,7 +2420,7 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially
@@ -2403,7 +2434,7 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially
public class EntityTracker {
final EntityTrackerEntry trackerEntry; // Paper - private -> package private
@@ -2560,7 +2615,7 @@ index 285e976d4a655fb61e70883ae89f974812be7152..d7a17689ce44ccb8281906fb6ac7ba2a
private final int trackingDistance;
private SectionPosition e;
// Paper start
@@ -2408,7 +2439,9 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially
@@ -2422,7 +2453,9 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially
// Paper start - use distance map to optimise tracker
com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet<EntityPlayer> lastTrackerCandidates;
@@ -2571,7 +2626,7 @@ index 285e976d4a655fb61e70883ae89f974812be7152..d7a17689ce44ccb8281906fb6ac7ba2a
com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet<EntityPlayer> oldTrackerCandidates = this.lastTrackerCandidates;
this.lastTrackerCandidates = newTrackerCandidates;
@@ -2449,7 +2482,13 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially
@@ -2463,7 +2496,13 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially
return this.tracker.getId();
}
@@ -2586,7 +2641,7 @@ index 285e976d4a655fb61e70883ae89f974812be7152..d7a17689ce44ccb8281906fb6ac7ba2a
Iterator iterator = this.trackedPlayers.iterator();
while (iterator.hasNext()) {
@@ -2461,6 +2500,12 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially
@@ -2475,6 +2514,12 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially
}
public void broadcastIncludingSelf(Packet<?> packet) {
@@ -2599,7 +2654,7 @@ index 285e976d4a655fb61e70883ae89f974812be7152..d7a17689ce44ccb8281906fb6ac7ba2a
this.broadcast(packet);
if (this.tracker instanceof EntityPlayer) {
((EntityPlayer) this.tracker).playerConnection.sendPacket(packet);
@@ -2487,8 +2532,8 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially
@@ -2501,8 +2546,8 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially
}
@@ -2610,7 +2665,7 @@ index 285e976d4a655fb61e70883ae89f974812be7152..d7a17689ce44ccb8281906fb6ac7ba2a
if (entityplayer != this.tracker) {
// Paper start - remove allocation of Vec3D here
//Vec3D vec3d = entityplayer.getPositionVector().d(this.tracker.getPositionVector()); // MC-155077, SPIGOT-5113
@@ -2503,11 +2548,17 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially
@@ -2517,11 +2562,17 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially
boolean flag1 = this.tracker.attachedToPlayer;
if (!flag1) {
@@ -2623,14 +2678,14 @@ index 285e976d4a655fb61e70883ae89f974812be7152..d7a17689ce44ccb8281906fb6ac7ba2a
+ long chunkcoordintpair = ChunkCoordIntPair.pair(x, z);
+ PlayerChunk playerchunk = PlayerChunkMap.this.trackerGetVisibleChunk(chunkcoordintpair); // Airplane
if (playerchunk != null && playerchunk.getSendingChunk() != null) { // Paper - no-tick view distance
if (playerchunk != null && playerchunk.getSendingChunk() != null && PlayerChunkMap.this.playerChunkManager.isChunkSent(entityplayer, MathHelper.floor(this.tracker.locX()) >> 4, MathHelper.floor(this.tracker.locZ()) >> 4)) { // Paper - no-tick view distance // Tuinity - don't broadcast in chunks the player hasn't received
- flag1 = PlayerChunkMap.b(chunkcoordintpair, entityplayer, false) <= PlayerChunkMap.this.viewDistance;
+ flag1 = PlayerChunkMap.someDistanceCalculation(x, z, entityplayer, false) <= PlayerChunkMap.this.viewDistance;
+ // Airplane end
}
}
@@ -2537,8 +2588,10 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially
@@ -2551,8 +2602,10 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially
}
private int b() {
@@ -2642,7 +2697,7 @@ index 285e976d4a655fb61e70883ae89f974812be7152..d7a17689ce44ccb8281906fb6ac7ba2a
Iterator iterator = collection.iterator();
while (iterator.hasNext()) {
@@ -2550,6 +2603,8 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially
@@ -2564,6 +2617,8 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially
i = j;
}
}
@@ -2651,6 +2706,40 @@ index 285e976d4a655fb61e70883ae89f974812be7152..d7a17689ce44ccb8281906fb6ac7ba2a
return this.a(i);
}
diff --git a/src/main/java/net/minecraft/server/PlayerInventory.java b/src/main/java/net/minecraft/server/PlayerInventory.java
index 3b65711b91c51ac7b4b5b2b0144ffd279fe60eeb..478f33dbbd0b5a9b81ee420f77c97fa8c40e27d6 100644
--- a/src/main/java/net/minecraft/server/PlayerInventory.java
+++ b/src/main/java/net/minecraft/server/PlayerInventory.java
@@ -609,6 +609,8 @@ public class PlayerInventory implements IInventory, INamableTileEntity {
}
public boolean h(ItemStack itemstack) {
+ // Airplane start - skip using abstract iterators and stuff, they're generic and slow and allocating them sucks
+ /*
Iterator iterator = this.f.iterator();
while (iterator.hasNext()) {
@@ -623,6 +625,20 @@ public class PlayerInventory implements IInventory, INamableTileEntity {
}
}
}
+ */
+ List<NonNullList<ItemStack>> components = this.getComponents();
+ for (int i = 0; i < components.size(); i++) {
+ List<ItemStack> list = components.get(i);
+
+ for (int j = 0; j < list.size(); j++) {
+ ItemStack itemstack1 = list.get(j);
+
+ if (!itemstack1.isEmpty() && itemstack1.doMaterialsMatch(itemstack)) {
+ return true;
+ }
+ }
+ }
+ // Airplane end
return false;
}
diff --git a/src/main/java/net/minecraft/server/ShapelessRecipes.java b/src/main/java/net/minecraft/server/ShapelessRecipes.java
index ecd63281912ae0ed93c5eb5ccb4249833cb23ab1..97825ec914709ca037159c46ecee218a6013ff58 100644
--- a/src/main/java/net/minecraft/server/ShapelessRecipes.java
@@ -2702,10 +2791,10 @@ index ecd63281912ae0ed93c5eb5ccb4249833cb23ab1..97825ec914709ca037159c46ecee218a
int i = 0;
diff --git a/src/main/java/net/minecraft/server/SpawnerCreature.java b/src/main/java/net/minecraft/server/SpawnerCreature.java
index a77b1d61b9dcb0a2a27d7e50357eaf44c99a661e..3406ffde3c56d9c35ec18a76af8fb258d4131417 100644
index 53fd0549c965b2252ad80648d61ff1f7cd2b837a..c7573e1271288bd2b9dfe9801ea8f8804089f6ce 100644
--- a/src/main/java/net/minecraft/server/SpawnerCreature.java
+++ b/src/main/java/net/minecraft/server/SpawnerCreature.java
@@ -372,7 +372,10 @@ public final class SpawnerCreature {
@@ -381,7 +381,10 @@ public final class SpawnerCreature {
}
private static List<BiomeSettingsMobs.c> a(WorldServer worldserver, StructureManager structuremanager, ChunkGenerator chunkgenerator, EnumCreatureType enumcreaturetype, BlockPosition blockposition, @Nullable BiomeBase biomebase) {
@@ -2784,9 +2873,18 @@ index 2598ae3710d46c2cfd2be5d6be2a56e59ceef6ea..fd1f1e2d7e4be227697f534bdc6d9c52
// Paper end
}
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 970c1be5477a01ab9c6d79e84c519e22775564ff..3c968c6133c42c3690fe554d5993d237de82c162 100644
index bf06ef09cfd4d7618365249d1332d264d8ff1377..996fa5b4652f847f4e64d4cd191fe5a597471afe 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -44,7 +44,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
//public final List<TileEntity> tileEntityList = Lists.newArrayList(); // Paper - remove unused list
public final List<TileEntity> tileEntityListTick = Lists.newArrayList();
protected final List<TileEntity> tileEntityListPending = Lists.newArrayList();
- protected final java.util.Set<TileEntity> tileEntityListUnload = com.google.common.collect.Sets.newHashSet();
+ protected final java.util.Set<TileEntity> tileEntityListUnload = java.util.Collections.newSetFromMap(new java.util.IdentityHashMap<>()); // Airplane - use set with faster contains
public final Thread serverThread;
private final boolean debugWorld;
private int d;
@@ -318,6 +318,91 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
return null;
}
@@ -2879,7 +2977,25 @@ index 970c1be5477a01ab9c6d79e84c519e22775564ff..3c968c6133c42c3690fe554d5993d237
public static boolean isValidLocation(BlockPosition blockposition) {
return blockposition.isValidLocation(); // Paper - use better/optimized check
}
@@ -956,19 +1041,19 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -839,12 +924,17 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
gameprofilerfiller.enter("blockEntities");
timings.tileEntityTick.startTiming(); // Spigot
if (!this.tileEntityListUnload.isEmpty()) {
+ // Airplane start - we just use the identitymap as the basis for the unload set now instead of copying
+ /*
// Paper start - Use alternate implementation with faster contains
java.util.Set<TileEntity> toRemove = java.util.Collections.newSetFromMap(new java.util.IdentityHashMap<>());
toRemove.addAll(tileEntityListUnload);
this.tileEntityListTick.removeAll(toRemove);
// Paper end
//this.tileEntityList.removeAll(this.tileEntityListUnload); // Paper - remove unused list
+ */
+ this.tileEntityListTick.removeAll(this.tileEntityListUnload);
+ // Airplane end
this.tileEntityListUnload.clear();
}
@@ -956,19 +1046,19 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
public void a(Consumer<Entity> consumer, Entity entity) {
try {
@@ -2903,10 +3019,24 @@ index 970c1be5477a01ab9c6d79e84c519e22775564ff..3c968c6133c42c3690fe554d5993d237
// Paper start - Prevent armor stands from doing entity lookups
@Override
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
index 9c77be805eb71c409a5d41c2730338583527e447..0dc8399d419067403e786b604ca52d0752533419 100644
index a77fceac7c9e79a6bac05becc21bcb6bf2a1a7c7..f4eb878f9a66fd3404ddde5a14924bb419a351db 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -992,7 +992,28 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -968,11 +968,12 @@ public class WorldServer extends World implements GeneratorAccessSeed {
// CraftBukkit end */
gameprofilerfiller.enter("checkDespawn");
+ boolean entityTickingChunk = false; if (!entity.dead) entityTickingChunk = this.getChunkProvider().isInEntityTickingChunk(entity); // Airplane - check once, chunks won't unload ticking entities
if (!entity.dead) {
entity.checkDespawn();
// Tuinity start - optimise notify()
if (entity.inChunk && entity.valid) {
- if (this.getChunkProvider().isInEntityTickingChunk(entity)) {
+ if (entityTickingChunk) { // Airplane - reuse
this.updateNavigatorsInRegion(entity);
}
} else {
@@ -992,7 +993,28 @@ public class WorldServer extends World implements GeneratorAccessSeed {
gameprofilerfiller.enter("tick");
if (!entity.dead && !(entity instanceof EntityComplexPart)) {
@@ -2916,7 +3046,7 @@ index 9c77be805eb71c409a5d41c2730338583527e447..0dc8399d419067403e786b604ca52d07
+ */
+ boolean doMidTick = false; // usually there's a returns in the catch, so treat it like that
+ try {
+ this.entityJoinedWorld(entity);
+ this.entityJoinedWorld(entity, entityTickingChunk); // Airplane - reuse
+ doMidTick = true;
+ } catch (Throwable throwable) {
+ if (throwable instanceof ThreadDeath) throw throwable; // Paper
@@ -2935,16 +3065,25 @@ index 9c77be805eb71c409a5d41c2730338583527e447..0dc8399d419067403e786b604ca52d07
}
gameprofilerfiller.exit();
@@ -1084,6 +1105,8 @@ public class WorldServer extends World implements GeneratorAccessSeed {
private final com.destroystokyo.paper.util.math.ThreadUnsafeRandom randomTickRandom = new com.destroystokyo.paper.util.math.ThreadUnsafeRandom();
// Paper end
@@ -1002,7 +1024,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
this.entitiesById.remove(entity.getId()); // Tuinity
this.unregisterEntity(entity);
} else if (entity.inChunk && entity.valid) { // Tuinity start - optimise notify()
- if (this.getChunkProvider().isInEntityTickingChunk(entity)) {
+ if (entityTickingChunk) { // Airplane - reuse
this.updateNavigatorsInRegion(entity);
}
} else {
@@ -1087,6 +1109,8 @@ public class WorldServer extends World implements GeneratorAccessSeed {
private final BiomeBase[] biomeBaseCache = new BiomeBase[1];
// Tuinity end - optimise chunk ice snow ticking
+ private int currentIceAndSnowTick = 0; protected void resetIceAndSnowTick() { this.currentIceAndSnowTick = this.randomTickRandom.nextInt(16); } // Airplane
+
public void a(Chunk chunk, int i) { final int randomTickSpeed = i; // Paper
ChunkCoordIntPair chunkcoordintpair = chunk.getPos();
boolean flag = this.isRaining();
@@ -1094,7 +1117,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -1097,7 +1121,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
gameprofilerfiller.enter("thunder");
final BlockPosition.MutableBlockPosition blockposition = this.chunkTickMutablePosition; // Paper - use mutable to reduce allocation rate, final to force compile fail on change
@@ -2953,16 +3092,36 @@ index 9c77be805eb71c409a5d41c2730338583527e447..0dc8399d419067403e786b604ca52d07
blockposition.setValues(this.a(this.a(j, 0, k, 15))); // Paper
if (this.isRainingAt(blockposition)) {
DifficultyDamageScaler difficultydamagescaler = this.getDamageScaler(blockposition);
@@ -1118,7 +1141,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -1121,7 +1145,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
}
gameprofilerfiller.exitEnter("iceandsnow");
- if (!this.paperConfig.disableIceAndSnow && this.randomTickRandom.nextInt(16) == 0) { // Paper - Disable ice and snow // Paper - optimise random ticking
+ if (!this.paperConfig.disableIceAndSnow && (this.currentIceAndSnowTick++ & 15) == 0) { // Paper - Disable ice and snow // Paper - optimise random ticking // Airplane - optimize further random ticking
// Paper start - optimise chunk ticking
this.getRandomBlockPosition(j, 0, k, 15, blockposition);
int normalY = chunk.getHighestBlockY(HeightMap.Type.MOTION_BLOCKING, blockposition.getX() & 15, blockposition.getZ() & 15);
@@ -1328,9 +1351,14 @@ public class WorldServer extends World implements GeneratorAccessSeed {
// Tuinity start - optimise chunk ice snow ticking
BiomeBase[] biomeCache = this.biomeBaseCache;
@@ -1301,7 +1325,9 @@ public class WorldServer extends World implements GeneratorAccessSeed {
}
// Tuinity end - log detailed entity tick information
- public void entityJoinedWorld(Entity entity) {
+ // Airplane start - reuse check for in entity ticking chunk
+ public void entityJoinedWorld(Entity entity) { entityJoinedWorld(entity, this.getChunkProvider().isInEntityTickingChunk(entity)); }
+ public void entityJoinedWorld(Entity entity, boolean entityTickingChunk) { // Airplane end
// Tuinity start - log detailed entity tick information
com.tuinity.tuinity.util.TickThread.ensureTickThread("Cannot tick an entity off-main");
try {
@@ -1309,7 +1335,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
currentlyTickingEntity.lazySet(entity);
}
// Tuinity end - log detailed entity tick information
- if (!(entity instanceof EntityHuman) && !this.getChunkProvider().a(entity)) {
+ if (!(entity instanceof EntityHuman) && !entityTickingChunk) { // Airplane - reuse
this.chunkCheck(entity);
} else {
++TimingHistory.entityTicks; // Paper - timings
@@ -1335,9 +1361,14 @@ public class WorldServer extends World implements GeneratorAccessSeed {
++entity.ticksLived;
GameProfilerFiller gameprofilerfiller = this.getMethodProfiler();

View File

@@ -48,10 +48,10 @@ index 229c3b0f0c650b501f31147adaa17194af57fedd..f88cf526d272fe47b5a474c0b344b748
throwable = throwable1;
throw throwable1;
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 965f186f4efd808cc92b4570e7426ffb25650e29..2f2b8a0412195f4060b97ef23449102a18411c74 100644
index ec6ef20e93af2298bdb3953b15e1ec24e8c72261..576a344b8bd66d69e3fd438b254f772b678471ba 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1520,7 +1520,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -1524,7 +1524,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
}
public String getServerModName() {
@@ -199,7 +199,7 @@ index ec8ad7a51f62c699588b5804331a5d33ab1fa5a7..a3cea65ab086fac48c68578c6be70b0f
private final String bukkitVersion = Versioning.getBukkitVersion();
private final Logger logger = Logger.getLogger("Minecraft");
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
index 00e53d577b1dcaccb409e62d35165ee015de9330..7de7afae711800154735411947ff140c76d5171f 100644
index 57d56ff1b41582f0d249b24165d5b08b02b0f9fe..81cff601a5161c30df90de3cefc18d72cd7ee347 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
@@ -377,7 +377,7 @@ public final class CraftMagicNumbers implements UnsafeValues {

View File

@@ -45,7 +45,7 @@ index f39452535b2807a226ada095f5c21b19ea238e5c..ad7df9e8a2cfc6fe65b193adfb65c7b3
config.save(CONFIG_FILE);
} catch (IOException ex) {
diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java
index 2ee781604868a508d81585a68da811ea366a21b2..a85a844a4766cde16eea9e814abfec29d8935c0f 100644
index 665d2d03676fde8d7e7d09fef3fd9cc13110d98d..b8a45c80b6691214e513286262f31b7b5b1dd5eb 100644
--- a/src/main/java/net/minecraft/server/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/DedicatedServer.java
@@ -173,6 +173,15 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
@@ -65,7 +65,7 @@ index 2ee781604868a508d81585a68da811ea366a21b2..a85a844a4766cde16eea9e814abfec29
// Paper end
com.tuinity.tuinity.config.TuinityConfig.init((java.io.File) options.valueOf("tuinity-settings")); // Tuinity - Server Config
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 3c968c6133c42c3690fe554d5993d237de82c162..50548761bc94b06af7aaf9b2f91da54eb070df01 100644
index 996fa5b4652f847f4e64d4cd191fe5a597471afe..068d303853572519efc16bb9cd3b799e458e39e7 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -95,6 +95,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Timings stuff
diff --git a/src/main/java/co/aikar/timings/TimingsExport.java b/src/main/java/co/aikar/timings/TimingsExport.java
index 5dfa0658838c4801cdf260eae8b98163f729e5af..dae2e5d70756c5b61163d57099b65f7e415b288c 100644
index 35810f42d7a0cd50a4cbe90e8d698fe57914c889..5e672a0660d0aceffcdb26d185590ca18aa4f023 100644
--- a/src/main/java/co/aikar/timings/TimingsExport.java
+++ b/src/main/java/co/aikar/timings/TimingsExport.java
@@ -227,10 +227,14 @@ public class TimingsExport extends Thread {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] AFK API
diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java
index f034977f4666385d6e7c7288e453d058c270be01..390aae2733e397ac5c6c457c76bf75f9c8dcd873 100644
index 48a820e34d45623432a3dc3b01d0bba8824c6414..a3aa2c8760b43e09f77f2790d6e21b8a2dc9dd3c 100644
--- a/src/main/java/net/minecraft/server/EntityHuman.java
+++ b/src/main/java/net/minecraft/server/EntityHuman.java
@@ -84,6 +84,15 @@ public abstract class EntityHuman extends EntityLiving {
@@ -85,6 +85,15 @@ public abstract class EntityHuman extends EntityLiving {
}
// CraftBukkit end
@@ -25,7 +25,7 @@ index f034977f4666385d6e7c7288e453d058c270be01..390aae2733e397ac5c6c457c76bf75f9
super(EntityTypes.PLAYER, world);
this.bL = ItemStack.b;
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
index 9851b7cf8f60be12cfba9787eabe210661344414..90024417dcb66716590de523dcbfb5034cf0ac20 100644
index 90d64eb2a7e318c8501b7efb2314d2049441bd6f..9be41dab47230046e576f4472c4c1c23523aa28c 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -1940,8 +1940,54 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@@ -193,7 +193,7 @@ index 9146b60cff0aa06e2f6b6003bfe9e2be9d2f0d56..bba8dc8fd10dc34179ca3c8cf471fbb3
if (from.getX() != Double.MAX_VALUE) {
Location oldTo = to.clone();
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
index 0dc8399d419067403e786b604ca52d0752533419..c8b20f6789d8f2403a00a8c2d3b0869f0ba8718d 100644
index f4eb878f9a66fd3404ddde5a14924bb419a351db..8ac7efc7a99a740f4c3078f926b626b38e15bb74 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -887,7 +887,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -205,7 +205,7 @@ index 0dc8399d419067403e786b604ca52d0752533419..c8b20f6789d8f2403a00a8c2d3b0869f
})) {
// CraftBukkit start
long l = this.worldData.getDayTime() + 24000L;
@@ -1247,7 +1247,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -1255,7 +1255,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
while (iterator.hasNext()) {
EntityPlayer entityplayer = (EntityPlayer) iterator.next();
@@ -263,10 +263,10 @@ index 361f7857e461578e90cb71e15027dadaf794cb69..2578a4677d1ee060f687be531e696b7c
+ }
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index f965b071cd2f6a70a216679e4f19956115edee4f..8e69ad39102b8a91e664b31a7f07c5212822e961 100644
index b3636032fd36efe2e7e546dbebdfd5c1208f9951..abf2a6b9d18f04baa077ededa3562a30dbaa4fe4 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -2427,4 +2427,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -2482,4 +2482,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return spigot;
}
// Spigot end

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Configurable server mod name
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 2f2b8a0412195f4060b97ef23449102a18411c74..fc88aa4982711a7fcd027cd684443b2c1a2829b7 100644
index 576a344b8bd66d69e3fd438b254f772b678471ba..eafff4dcf1088b77ecae317a28b5d65dec997a7b 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1520,7 +1520,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -1524,7 +1524,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
}
public String getServerModName() {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Lagging threshold
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index fc88aa4982711a7fcd027cd684443b2c1a2829b7..ce829ab8f5ae0f2d231ab7b0aaabdf2392b4f108 100644
index eafff4dcf1088b77ecae317a28b5d65dec997a7b..5e647afa74950bcb09de630ac641b9d178ef71c2 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -167,6 +167,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Player invulnerabilities
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
index 90024417dcb66716590de523dcbfb5034cf0ac20..876c728a460860ee1881c2cce2220157bd66a4e5 100644
index 9be41dab47230046e576f4472c4c1c23523aa28c..2660a87fcfbed135c834acc13db6c758a66ccf8c 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -154,6 +154,8 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@@ -79,7 +79,7 @@ index bba8dc8fd10dc34179ca3c8cf471fbb3739fa7b4..c586005b34c59710cf398e30924ff365
this.server.getPluginManager().callEvent(new PlayerResourcePackStatusEvent(getPlayer(), packStatus));
// Paper end
diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
index d03d0c13cca1762078617744253a9757b388958f..00db0f5fb098a4db4092f8ab75a4489cf466baac 100644
index a12e58668e74f2287ddff5bedc00daf2b0a416c1..7f784709ab8c560fd2dae551b6c8c234a2d134c6 100644
--- a/src/main/java/net/minecraft/server/PlayerList.java
+++ b/src/main/java/net/minecraft/server/PlayerList.java
@@ -914,6 +914,8 @@ public abstract class PlayerList {
@@ -108,10 +108,10 @@ index 2578a4677d1ee060f687be531e696b7c7be89e84..c441fcea9b2b5a77b801c8a69541cf42
+ }
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 8e69ad39102b8a91e664b31a7f07c5212822e961..ca15efea5da7be1717a211b9b3556c755788561a 100644
index abf2a6b9d18f04baa077ededa3562a30dbaa4fe4..8bf29aca4b5aa0d51ed3cda25b37d30e6c986848 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -2443,5 +2443,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -2498,5 +2498,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
public void resetIdleTimer() {
getHandle().resetIdleTimer();
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Zombie horse naturally spawn
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
index c8b20f6789d8f2403a00a8c2d3b0869f0ba8718d..96d0735649476bac0581145c255c702941a17c0e 100644
index 8ac7efc7a99a740f4c3078f926b626b38e15bb74..87113eff62442f350f8d97340ab868b9af721739 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -1124,12 +1124,18 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -1128,12 +1128,18 @@ public class WorldServer extends World implements GeneratorAccessSeed {
boolean flag1 = this.getGameRules().getBoolean(GameRules.DO_MOB_SPAWNING) && this.random.nextDouble() < (double) difficultydamagescaler.b() * paperConfig.skeleHorseSpawnChance; // Paper
if (flag1) {

View File

@@ -62,7 +62,7 @@ index 5e17868a76ea8e3f105c11d496d6da12afa0da41..5a0f8779672a9e34f6970045361630ab
}
diff --git a/src/main/java/net/minecraft/server/VillagePlace.java b/src/main/java/net/minecraft/server/VillagePlace.java
index fce9967912628c232fe41ccc17fe2296f001ec61..44063d599e39e087b3eccfe204ef2fd79c3364e5 100644
index 245bdedd17b844dcd13aa0b60dffb1cac6a5bdb8..64e251fb63e67b9ebf11779580b1bff6def6d1c6 100644
--- a/src/main/java/net/minecraft/server/VillagePlace.java
+++ b/src/main/java/net/minecraft/server/VillagePlace.java
@@ -178,6 +178,7 @@ public class VillagePlace extends RegionFileSection<VillagePlaceSection> {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Ender dragon always drop full exp
diff --git a/src/main/java/net/minecraft/server/EntityEnderDragon.java b/src/main/java/net/minecraft/server/EntityEnderDragon.java
index 7289d6c706b6c845584bac616c9babea80f8e885..f777aea69dc9949aae3251e9a530b8cffb251bad 100644
index 50b93c93cfede2d64a996a22b811994b352149af..de025a48c7ca08d8ae71d2d9239121dc4a86a339 100644
--- a/src/main/java/net/minecraft/server/EntityEnderDragon.java
+++ b/src/main/java/net/minecraft/server/EntityEnderDragon.java
@@ -564,7 +564,7 @@ public class EntityEnderDragon extends EntityInsentient implements IMonster {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Signs allow color codes
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
index 876c728a460860ee1881c2cce2220157bd66a4e5..82268359f340eac0c0dd171c1ef9fe950fc0afb5 100644
index 2660a87fcfbed135c834acc13db6c758a66ccf8c..e03c80f4b61e211c104e809d52d16a400b713f00 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -1449,6 +1449,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {

View File

@@ -106,7 +106,7 @@ index be859a1b41254b299a507d03e453dc8efee6f3dd..4de2877f30a9b231a5c8bbd173941699
this.move(EnumMoveType.SELF, this.getMot());
if (!this.onGround) {
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
index 82268359f340eac0c0dd171c1ef9fe950fc0afb5..75612f2e5489694e11c12bb232b5701e83375d1d 100644
index e03c80f4b61e211c104e809d52d16a400b713f00..b05137eb7de2d5b236d9195db37b613733b99cf2 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -1002,6 +1002,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Players should not cram to death
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
index 75612f2e5489694e11c12bb232b5701e83375d1d..c7b42907a522c81904f4f297daa5ac564f6180b1 100644
index b05137eb7de2d5b236d9195db37b613733b99cf2..ec5248d7d472aa6868a5a3763ded267a919b3e58 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -1426,7 +1426,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Add permission for F3+N debug
diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
index 00db0f5fb098a4db4092f8ab75a4489cf466baac..86f534c871a3c9b9ca71b20daa7780dfdab9e76d 100644
index 7f784709ab8c560fd2dae551b6c8c234a2d134c6..f9043744ad0a622c6aa5e5bd3986fb9f60cab4c3 100644
--- a/src/main/java/net/minecraft/server/PlayerList.java
+++ b/src/main/java/net/minecraft/server/PlayerList.java
@@ -1073,6 +1073,7 @@ public abstract class PlayerList {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Configurable TPS Catchup
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index ce829ab8f5ae0f2d231ab7b0aaabdf2392b4f108..c16ca6108f196bfaba887eb46479b225ed5abc39 100644
index 5e647afa74950bcb09de630ac641b9d178ef71c2..bbc92489fd2e9037834fdea3a4514b5687ae86d7 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1010,7 +1010,13 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add player death exp control options
diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java
index 390aae2733e397ac5c6c457c76bf75f9c8dcd873..ab2ad054ce8d896e38ab4eb6ed38d8ea73d42954 100644
index a3aa2c8760b43e09f77f2790d6e21b8a2dc9dd3c..0f7b60642c44630000d47f0e1fdebad15e14a810 100644
--- a/src/main/java/net/minecraft/server/EntityHuman.java
+++ b/src/main/java/net/minecraft/server/EntityHuman.java
@@ -85,6 +85,8 @@ public abstract class EntityHuman extends EntityLiving {
@@ -86,6 +86,8 @@ public abstract class EntityHuman extends EntityLiving {
// CraftBukkit end
// Purpur start
@@ -17,7 +17,7 @@ index 390aae2733e397ac5c6c457c76bf75f9c8dcd873..ab2ad054ce8d896e38ab4eb6ed38d8ea
public void setAfk(boolean setAfk){
}
@@ -1716,9 +1718,18 @@ public abstract class EntityHuman extends EntityLiving {
@@ -1717,9 +1719,18 @@ public abstract class EntityHuman extends EntityLiving {
@Override
protected int getExpValue(EntityHuman entityhuman) {
if (!this.world.getGameRules().getBoolean(GameRules.KEEP_INVENTORY) && !this.isSpectator()) {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Add 5 second tps average in /tps
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index c16ca6108f196bfaba887eb46479b225ed5abc39..1a721e28c757971b1a5c2521ad55f0845dbafd20 100644
index bbc92489fd2e9037834fdea3a4514b5687ae86d7..e46705e7ab5d5c69e5d2bdd29d5066c4b2d60675 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -166,7 +166,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas

View File

@@ -221,10 +221,10 @@ index 4e3f01bc79b6ed2a322155f29f1d0dcf298c8b82..ac1ea2f0c15bccf94f203194a5a7b10e
}
}
diff --git a/src/main/java/net/minecraft/server/SpawnerCreature.java b/src/main/java/net/minecraft/server/SpawnerCreature.java
index 3406ffde3c56d9c35ec18a76af8fb258d4131417..1016305a571a2fc211cd0e58b7210d8cfb4461d5 100644
index c7573e1271288bd2b9dfe9801ea8f8804089f6ce..b5b0f295d63eb245a6221f88110f1bb1694c641c 100644
--- a/src/main/java/net/minecraft/server/SpawnerCreature.java
+++ b/src/main/java/net/minecraft/server/SpawnerCreature.java
@@ -388,6 +388,7 @@ public final class SpawnerCreature {
@@ -397,6 +397,7 @@ public final class SpawnerCreature {
return new BlockPosition(i, l, j);
}
@@ -233,10 +233,10 @@ index 3406ffde3c56d9c35ec18a76af8fb258d4131417..1016305a571a2fc211cd0e58b7210d8c
return iblockdata.r(iblockaccess, blockposition) ? false : (iblockdata.isPowerSource() ? false : (!fluid.isEmpty() ? false : (iblockdata.a((Tag) TagsBlock.PREVENT_MOB_SPAWNING_INSIDE) ? false : !entitytypes.a(iblockdata))));
}
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 50548761bc94b06af7aaf9b2f91da54eb070df01..f83afe7eb84309849e2271a917ab476b4250f3ef 100644
index 068d303853572519efc16bb9cd3b799e458e39e7..ad7360cd5ae79e4d031ae866bf911fb87a2c0cdf 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1682,6 +1682,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -1687,6 +1687,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
return new DifficultyDamageScaler(this.getDifficulty(), this.getDayTime(), i, f);
}

View File

@@ -49,10 +49,10 @@ index 223361a1a8b41ebe91e0db39f40cf12a4968b1b4..07f23572bdf15c57a53e32646f2fc64f
return true;
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index f83afe7eb84309849e2271a917ab476b4250f3ef..bcd52f77e575fb8cac042c30a09332204588513d 100644
index ad7360cd5ae79e4d031ae866bf911fb87a2c0cdf..404fcc307454e7f00dcc180dda53677c5a0f43e8 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1757,4 +1757,14 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -1762,4 +1762,14 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
public final boolean isDebugWorld() {
return this.debugWorld;
}

View File

@@ -17,7 +17,7 @@ index 4b7909a0c7e41cf41d4219ba7dda79519c0ee3c6..2de7fbd9651a7143802507d9cbed1484
}
}
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
index c7b42907a522c81904f4f297daa5ac564f6180b1..ca7ec1f237af347c3c5b2b5250948c072304e33c 100644
index ec5248d7d472aa6868a5a3763ded267a919b3e58..c69ff970f4afe5c860fa8794b9be1f6b818ac395 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -2425,4 +2425,26 @@ public class EntityPlayer extends EntityHuman implements ICrafting {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Populator seed controls
diff --git a/src/main/java/co/aikar/timings/TimingsExport.java b/src/main/java/co/aikar/timings/TimingsExport.java
index dae2e5d70756c5b61163d57099b65f7e415b288c..55b67f1057224101272f9d6023a93872c4423405 100644
index 5e672a0660d0aceffcdb26d185590ca18aa4f023..4b171a2a60e24947e884f8988920f335bd99a471 100644
--- a/src/main/java/co/aikar/timings/TimingsExport.java
+++ b/src/main/java/co/aikar/timings/TimingsExport.java
@@ -293,7 +293,7 @@ public class TimingsExport extends Thread {
@@ -18,7 +18,7 @@ index dae2e5d70756c5b61163d57099b65f7e415b288c..55b67f1057224101272f9d6023a93872
}
final Object val = config.get(key);
diff --git a/src/main/java/com/tuinity/tuinity/config/TuinityConfig.java b/src/main/java/com/tuinity/tuinity/config/TuinityConfig.java
index 63dfad42c372a33b35c585aaa7ed24d8f16d44e0..3583efb41f80eac7b6dba3a8479ec74c5f60549c 100644
index d1308b8cbb9490f1ccdc5514763e62bc5d66981b..f11d07f6e388dedc318868ffa95e80ae2d89119e 100644
--- a/src/main/java/com/tuinity/tuinity/config/TuinityConfig.java
+++ b/src/main/java/com/tuinity/tuinity/config/TuinityConfig.java
@@ -1,5 +1,6 @@
@@ -28,7 +28,7 @@ index 63dfad42c372a33b35c585aaa7ed24d8f16d44e0..3583efb41f80eac7b6dba3a8479ec74c
import com.destroystokyo.paper.util.SneakyThrow;
import net.minecraft.server.MinecraftServer;
import net.minecraft.server.TicketType;
@@ -382,6 +383,19 @@ public final class TuinityConfig {
@@ -401,6 +402,19 @@ public final class TuinityConfig {
this.spawnLimitAmbient = this.getInt(path + ".ambient", -1);
}
@@ -50,10 +50,10 @@ index 63dfad42c372a33b35c585aaa7ed24d8f16d44e0..3583efb41f80eac7b6dba3a8479ec74c
}
\ No newline at end of file
diff --git a/src/main/java/net/minecraft/server/BiomeBase.java b/src/main/java/net/minecraft/server/BiomeBase.java
index 0854ac9ef586b378420d9899f3afd2755e6f9f33..df6874c1cf5fc5764dc575866aab87883b6cf035 100644
index 3fc101552e3c229076c91a1cfa45206b4cc7a04c..60d5c08706dc8b2f895ff7083d3a611a73ac19d2 100644
--- a/src/main/java/net/minecraft/server/BiomeBase.java
+++ b/src/main/java/net/minecraft/server/BiomeBase.java
@@ -189,6 +189,10 @@ public final class BiomeBase {
@@ -227,6 +227,10 @@ public final class BiomeBase {
return this.k;
}
@@ -64,7 +64,7 @@ index 0854ac9ef586b378420d9899f3afd2755e6f9f33..df6874c1cf5fc5764dc575866aab8788
public void a(StructureManager structuremanager, ChunkGenerator chunkgenerator, RegionLimitedWorldAccess regionlimitedworldaccess, long i, SeededRandom seededrandom, BlockPosition blockposition) {
List<List<Supplier<WorldGenFeatureConfigured<?, ?>>>> list = this.k.c();
int j = WorldGenStage.Decoration.values().length;
@@ -225,12 +229,24 @@ public final class BiomeBase {
@@ -263,12 +267,24 @@ public final class BiomeBase {
}
}

View File

@@ -22,7 +22,7 @@ index 829d4a7508e1656dbdc912096b7eafcf30cbb5b2..6aea156d7c7a9ca8a357aad6a6781d72
}
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
index 96d0735649476bac0581145c255c702941a17c0e..aac44aa00a0cf8216a98bddb23f35244360ff6f1 100644
index 87113eff62442f350f8d97340ab868b9af721739..cc022113d68574b025142deede4219f81326d62f 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -418,14 +418,14 @@ public class WorldServer extends World implements GeneratorAccessSeed {

View File

@@ -1175,7 +1175,7 @@ index 1a102816921fa3b40f6d364bb826db4459f68eb2..125eab60f2b4657e52a71eddf7586c57
@Override
diff --git a/src/main/java/net/minecraft/server/EntityEnderDragon.java b/src/main/java/net/minecraft/server/EntityEnderDragon.java
index f777aea69dc9949aae3251e9a530b8cffb251bad..497d05996ab84f599aa0a02f853149f074e4d3cb 100644
index de025a48c7ca08d8ae71d2d9239121dc4a86a339..81e63fe1b8252e2b5abcbf9051190cd0214b534c 100644
--- a/src/main/java/net/minecraft/server/EntityEnderDragon.java
+++ b/src/main/java/net/minecraft/server/EntityEnderDragon.java
@@ -46,6 +46,7 @@ public class EntityEnderDragon extends EntityInsentient implements IMonster {
@@ -2099,10 +2099,10 @@ index 0e98173607c810e0e74552a2ba8febf292357c39..559ba50977147b8e2a0e7c1e7dc281fa
+ protected void eV() { if (world.purpurConfig.zombieHorseCanSwim) goalSelector.a(0, new PathfinderGoalFloat(this)); } // Purpur
}
diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java
index ab2ad054ce8d896e38ab4eb6ed38d8ea73d42954..3a7dc584bd2b88415a238f9c0cb7f85968fb8dfb 100644
index 0f7b60642c44630000d47f0e1fdebad15e14a810..fc51d6f9cd8c6ca61ae70b07cff817c5d871ab48 100644
--- a/src/main/java/net/minecraft/server/EntityHuman.java
+++ b/src/main/java/net/minecraft/server/EntityHuman.java
@@ -2155,4 +2155,15 @@ public abstract class EntityHuman extends EntityLiving {
@@ -2161,4 +2161,15 @@ public abstract class EntityHuman extends EntityLiving {
return this.g;
}
}
@@ -3148,7 +3148,7 @@ index a3a428da99574c485fcf2b8c7944e0d8354146ee..cf7de0127166f6175a6246062c8664e6
this.targetSelector.a(2, new PathfinderGoalNearestAttackableTarget<>(this, EntityHuman.class, true));
this.targetSelector.a(3, new PathfinderGoalNearestAttackableTarget<>(this, EntityVillagerAbstract.class, false));
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
index ca7ec1f237af347c3c5b2b5250948c072304e33c..565cec043a00bc683bbab5874f5887b0df048170 100644
index c69ff970f4afe5c860fa8794b9be1f6b818ac395..da4943389fee9b8a8d03ad5c518806d85cc639db 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -512,6 +512,15 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@@ -4423,7 +4423,7 @@ index ca3c5150bcfe2a92b49ad5a27c23dd37a7054fbb..323d79a99402b0f6952b4fb873170069
this.targetSelector.a(2, this.br);
this.targetSelector.a(3, this.bs);
diff --git a/src/main/java/net/minecraft/server/EntityWither.java b/src/main/java/net/minecraft/server/EntityWither.java
index b1159f0258eca2bee52ec0939ba86792d24a1f99..f149eeb4dd2be51ef028998c0ec6398cb9b3f4bb 100644
index 3230c5454ccc39a2e3c89fdf8ca015cf7a15f380..87b7d52bdba357fa59c7b6397cb49286fd8cc8ec 100644
--- a/src/main/java/net/minecraft/server/EntityWither.java
+++ b/src/main/java/net/minecraft/server/EntityWither.java
@@ -32,6 +32,7 @@ public class EntityWither extends EntityMonster implements IRangedEntity {
@@ -4843,7 +4843,7 @@ index dc9f2a1a132b3a7925bd62aa1da0512afd90b8b1..b7e540dfeeabb13227596ecfc6eddabf
Entity entity1 = this.getShooter();
// Paper start - Cancel hit for vanished players
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 1a721e28c757971b1a5c2521ad55f0845dbafd20..de69589a8e88d9330365decccc9e3bceb337b354 100644
index e46705e7ab5d5c69e5d2bdd29d5066c4b2d60675..4f589ca6cfc770bd26d0046736f7100272d7e48e 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1418,6 +1418,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -4926,10 +4926,10 @@ index b2c64b31440389db5abe2322f7e31b328f590f6c..515ba50aec81497d27297e4b6c642e86
Vec3D vec3d = entity.getMot();
World world = entity.world;
diff --git a/src/main/java/net/minecraft/server/Vec3D.java b/src/main/java/net/minecraft/server/Vec3D.java
index 5af554870bcf36e47aef43b966b141b9eda6c4d5..c59305ef7dd7847e204d4c4ed79758bf9d66e91e 100644
index 7190316a38e6b4edf5501bfedbb12be79e990797..4469fdc932d725b8e6fa4f8e3ec15c22a88ca5e7 100644
--- a/src/main/java/net/minecraft/server/Vec3D.java
+++ b/src/main/java/net/minecraft/server/Vec3D.java
@@ -39,6 +39,7 @@ public class Vec3D implements IPosition {
@@ -45,6 +45,7 @@ public class Vec3D implements IPosition {
return new Vec3D(vec3d.x - this.x, vec3d.y - this.y, vec3d.z - this.z);
}
@@ -4937,7 +4937,7 @@ index 5af554870bcf36e47aef43b966b141b9eda6c4d5..c59305ef7dd7847e204d4c4ed79758bf
public Vec3D d() {
double d0 = (double) MathHelper.sqrt(this.x * this.x + this.y * this.y + this.z * this.z);
@@ -98,6 +99,7 @@ public class Vec3D implements IPosition {
@@ -104,6 +105,7 @@ public class Vec3D implements IPosition {
return d3 * d3 + d4 * d4 + d5 * d5;
}
@@ -4945,7 +4945,7 @@ index 5af554870bcf36e47aef43b966b141b9eda6c4d5..c59305ef7dd7847e204d4c4ed79758bf
public Vec3D a(double d0) {
return this.d(d0, d0, d0);
}
@@ -106,6 +108,7 @@ public class Vec3D implements IPosition {
@@ -112,6 +114,7 @@ public class Vec3D implements IPosition {
return this.d(vec3d.x, vec3d.y, vec3d.z);
}
@@ -4954,10 +4954,10 @@ index 5af554870bcf36e47aef43b966b141b9eda6c4d5..c59305ef7dd7847e204d4c4ed79758bf
return new Vec3D(this.x * d0, this.y * d1, this.z * d2);
}
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index bcd52f77e575fb8cac042c30a09332204588513d..808c9b298e1738797b42c14093b549e25333d287 100644
index 404fcc307454e7f00dcc180dda53677c5a0f43e8..bb7cf83027ad0d0679fb208147f3481dbe280a82 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1766,5 +1766,10 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -1771,5 +1771,10 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
public boolean isTheEnd() {
return getWorld().getEnvironment() == org.bukkit.World.Environment.THE_END;
}
@@ -4969,7 +4969,7 @@ index bcd52f77e575fb8cac042c30a09332204588513d..808c9b298e1738797b42c14093b549e2
// Purpur end
}
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
index aac44aa00a0cf8216a98bddb23f35244360ff6f1..3124941f6310fb1074c92793dfe14873e64966a1 100644
index cc022113d68574b025142deede4219f81326d62f..b7a17eafe7355b9c9247a9c79495134b43971aaf 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -102,6 +102,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {

View File

@@ -6,7 +6,7 @@ Subject: [PATCH] Customizable wither health and healing
Adds the ability to customize the health of the wither, as well as the amount that it heals, and how often.
diff --git a/src/main/java/net/minecraft/server/EntityWither.java b/src/main/java/net/minecraft/server/EntityWither.java
index f149eeb4dd2be51ef028998c0ec6398cb9b3f4bb..cc4b0945fb9186c6975136d48ce8dfc12b4d4230 100644
index 87b7d52bdba357fa59c7b6397cb49286fd8cc8ec..edc58c5cb178ea9a53f960bd4a460f394b13ab64 100644
--- a/src/main/java/net/minecraft/server/EntityWither.java
+++ b/src/main/java/net/minecraft/server/EntityWither.java
@@ -150,6 +150,11 @@ public class EntityWither extends EntityMonster implements IRangedEntity {

View File

@@ -29,7 +29,7 @@ index 341af7474690b929cfa3e35cd464bbbbacb6685e..ad00ff2bd525768e4f06631d16b912c6
if (SpawnerCreature.a(EntityPositionTypes.Surface.ON_GROUND, iworldreader, blockposition2, EntityTypes.WANDERING_TRADER)) {
blockposition1 = blockposition2;
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 808c9b298e1738797b42c14093b549e25333d287..553cf944e25f5d24f4d1af54bfb06a390a740974 100644
index bb7cf83027ad0d0679fb208147f3481dbe280a82..42e06121f20b5366627b9612994187066c73328f 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -187,7 +187,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -42,7 +42,7 @@ index 808c9b298e1738797b42c14093b549e25333d287..553cf944e25f5d24f4d1af54bfb06a39
this.generator = gen;
this.world = new CraftWorld((WorldServer) this, gen, env);
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
index 3124941f6310fb1074c92793dfe14873e64966a1..c6e243b66a88054cba234113591491a701ed5f08 100644
index b7a17eafe7355b9c9247a9c79495134b43971aaf..5508211d5922ef8072d929a5eb38c4d34f04c686 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -436,7 +436,24 @@ public class WorldServer extends World implements GeneratorAccessSeed {

View File

@@ -18,7 +18,7 @@ index 1b9b43ee696575d986c25cafec07d863acb951a7..e837db171545ceacbc84a2b360cf0d95
public PacketPlayOutUpdateTime() {}
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
index c6e243b66a88054cba234113591491a701ed5f08..6ba05e0d1bb800416e5602a44394936f601a57e9 100644
index 5508211d5922ef8072d929a5eb38c4d34f04c686..f33b3ef2bf54eba4aa29447426f744a4f42d4b53 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -94,6 +94,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -37,7 +37,7 @@ index c6e243b66a88054cba234113591491a701ed5f08..6ba05e0d1bb800416e5602a44394936f
}
// Tuinity start - optimise collision
@@ -1090,7 +1092,21 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -1091,7 +1093,21 @@ public class WorldServer extends World implements GeneratorAccessSeed {
this.nextTickListBlock.nextTick(); // Paper
this.nextTickListFluid.nextTick(); // Paper
this.worldDataServer.u().a(this.server, i);
@@ -60,7 +60,7 @@ index c6e243b66a88054cba234113591491a701ed5f08..6ba05e0d1bb800416e5602a44394936f
this.setDayTime(this.worldData.getDayTime() + 1L);
}
@@ -1099,6 +1115,12 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -1100,6 +1116,12 @@ public class WorldServer extends World implements GeneratorAccessSeed {
public void setDayTime(long i) {
this.worldDataServer.setDayTime(i);

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Add tablist suffix option for afk
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
index 565cec043a00bc683bbab5874f5887b0df048170..3478de27261ec5a9f48a5128d774e4eca4ed5489 100644
index da4943389fee9b8a8d03ad5c518806d85cc639db..f4e0a0714fa17c370202f6ea02412dc7afb0af97 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -1991,7 +1991,11 @@ public class EntityPlayer extends EntityHuman implements ICrafting {

View File

@@ -33,7 +33,7 @@ index b290218e506d5e4ddd1af17f91de19a588bbcfbd..cf9be4be18e913e49e9150358c66138b
int experience = this.getRandom().nextInt(7) + 1;
org.bukkit.event.entity.EntityBreedEvent entityBreedEvent = org.bukkit.craftbukkit.event.CraftEventFactory.callEntityBreedEvent(entityageable, this, entityanimal, entityplayer, this.breedItem, experience);
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 553cf944e25f5d24f4d1af54bfb06a390a740974..8c162c5fdeaffccc9a28b592e030971fe51cafb3 100644
index 42e06121f20b5366627b9612994187066c73328f..e13c5c97b91994c86161c86e5f03aca1545af676 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -104,6 +104,48 @@ public abstract class World implements GeneratorAccess, AutoCloseable {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add critical hit check to EntityDamagedByEntityEvent
diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java
index 3a7dc584bd2b88415a238f9c0cb7f85968fb8dfb..7ce46b53ad9fbaf7baf198557565b2467ab43c09 100644
index fc51d6f9cd8c6ca61ae70b07cff817c5d871ab48..84fdb4710331791dfb180ce401f1da6962635b54 100644
--- a/src/main/java/net/minecraft/server/EntityHuman.java
+++ b/src/main/java/net/minecraft/server/EntityHuman.java
@@ -73,6 +73,7 @@ public abstract class EntityHuman extends EntityLiving {
@@ -74,6 +74,7 @@ public abstract class EntityHuman extends EntityLiving {
// Paper start
public boolean affectsSpawning = true;
// Paper end
@@ -16,7 +16,7 @@ index 3a7dc584bd2b88415a238f9c0cb7f85968fb8dfb..7ce46b53ad9fbaf7baf198557565b246
// CraftBukkit start
public boolean fauxSleeping;
@@ -1066,6 +1067,7 @@ public abstract class EntityHuman extends EntityLiving {
@@ -1067,6 +1068,7 @@ public abstract class EntityHuman extends EntityLiving {
flag2 = flag2 && !world.paperConfig.disablePlayerCrits; // Paper
flag2 = flag2 && !this.isSprinting();
if (flag2) {
@@ -24,7 +24,7 @@ index 3a7dc584bd2b88415a238f9c0cb7f85968fb8dfb..7ce46b53ad9fbaf7baf198557565b246
f *= 1.5F;
}
@@ -1102,6 +1104,7 @@ public abstract class EntityHuman extends EntityLiving {
@@ -1103,6 +1105,7 @@ public abstract class EntityHuman extends EntityLiving {
Vec3D vec3d = entity.getMot();
boolean flag5 = entity.damageEntity(DamageSource.playerAttack(this), f);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Origami - Fix ProtocolLib issues on Java 15
diff --git a/src/main/java/net/minecraft/server/NetworkManager.java b/src/main/java/net/minecraft/server/NetworkManager.java
index 65de374d485f31f8cd6f4e03941173565074ea0e..ea86843fa0313da15b905cbd712c15e7b217daa4 100644
index d93634391501da01cb1afe70fedd5247c654e8fc..53b5063b43e42f09c2ef335251c91d2051676972 100644
--- a/src/main/java/net/minecraft/server/NetworkManager.java
+++ b/src/main/java/net/minecraft/server/NetworkManager.java
@@ -394,9 +394,9 @@ public class NetworkManager extends SimpleChannelInboundHandler<Packet<?>> {
@@ -416,9 +416,9 @@ public class NetworkManager extends SimpleChannelInboundHandler<Packet<?>> {
// note: since the type is not dynamic here, we need to actually copy the old executor code
// into two branches. On conflict, just re-copy - no changes were made inside the executor code.
if (flush) {
@@ -20,7 +20,7 @@ index 65de374d485f31f8cd6f4e03941173565074ea0e..ea86843fa0313da15b905cbd712c15e7
}
// Paper start
@@ -406,7 +406,7 @@ public class NetworkManager extends SimpleChannelInboundHandler<Packet<?>> {
@@ -428,7 +428,7 @@ public class NetworkManager extends SimpleChannelInboundHandler<Packet<?>> {
}
try {
// Paper end
@@ -29,7 +29,7 @@ index 65de374d485f31f8cd6f4e03941173565074ea0e..ea86843fa0313da15b905cbd712c15e7
if (genericfuturelistener != null) {
@@ -426,12 +426,12 @@ public class NetworkManager extends SimpleChannelInboundHandler<Packet<?>> {
@@ -448,12 +448,12 @@ public class NetworkManager extends SimpleChannelInboundHandler<Packet<?>> {
packet.onPacketDispatchFinish(player, null);
}
// Paper end
@@ -45,7 +45,7 @@ index 65de374d485f31f8cd6f4e03941173565074ea0e..ea86843fa0313da15b905cbd712c15e7
}
// Paper start
@@ -441,7 +441,7 @@ public class NetworkManager extends SimpleChannelInboundHandler<Packet<?>> {
@@ -463,7 +463,7 @@ public class NetworkManager extends SimpleChannelInboundHandler<Packet<?>> {
}
try {
// Paper end
@@ -54,7 +54,7 @@ index 65de374d485f31f8cd6f4e03941173565074ea0e..ea86843fa0313da15b905cbd712c15e7
if (genericfuturelistener != null) {
@@ -461,7 +461,7 @@ public class NetworkManager extends SimpleChannelInboundHandler<Packet<?>> {
@@ -483,7 +483,7 @@ public class NetworkManager extends SimpleChannelInboundHandler<Packet<?>> {
packet.onPacketDispatchFinish(player, null);
}
// Paper end

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Add boat fall damage config
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
index 3478de27261ec5a9f48a5128d774e4eca4ed5489..3f00d66685479f3bec8cccb7a0b0988584122436 100644
index f4e0a0714fa17c370202f6ea02412dc7afb0af97..5a602de5b9ff436e7cfb70c39475be34beddfb8d 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -1011,7 +1011,16 @@ public class EntityPlayer extends EntityHuman implements ICrafting {

View File

@@ -79,7 +79,7 @@ index 00e3ed9374f9962ea619a104892a4c32b2638876..b4719669d5dcfbc34dd37595be403e18
long i = this.bC + 12000L;
long j = this.world.getTime();
diff --git a/src/main/java/net/minecraft/server/NavigationAbstract.java b/src/main/java/net/minecraft/server/NavigationAbstract.java
index 87172af0b007f93bbb0474bc8f3789ed396258f8..b5ea7997040b5bfd98925a146e446aa3c56574da 100644
index be243d411abf68686e75d46023c93fb8bb5c84e0..88368ae1633cf8bfb845d52b38110a6828fcf699 100644
--- a/src/main/java/net/minecraft/server/NavigationAbstract.java
+++ b/src/main/java/net/minecraft/server/NavigationAbstract.java
@@ -101,6 +101,7 @@ public abstract class NavigationAbstract {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Spread out and optimise player list ticks
diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
index 86f534c871a3c9b9ca71b20daa7780dfdab9e76d..d454b6c61c1a7d0ae9d6c2979cb865531acf405f 100644
index f9043744ad0a622c6aa5e5bd3986fb9f60cab4c3..4415d081983d46bcece9b80bad6f3b5cdc624a4e 100644
--- a/src/main/java/net/minecraft/server/PlayerList.java
+++ b/src/main/java/net/minecraft/server/PlayerList.java
@@ -68,7 +68,7 @@ public abstract class PlayerList {
@@ -56,7 +56,7 @@ index 86f534c871a3c9b9ca71b20daa7780dfdab9e76d..d454b6c61c1a7d0ae9d6c2979cb86553
public void sendAll(Packet<?> packet) {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index ca15efea5da7be1717a211b9b3556c755788561a..400e26c96f00e9f8895a45e70f22552ec17f2436 100644
index 8bf29aca4b5aa0d51ed3cda25b37d30e6c986848..7b5ffe92430121eebe2866ac33b37a840eed90f1 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1435,7 +1435,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {

View File

@@ -188,7 +188,7 @@ index 638efc67d66001ee085957d4698f51a7daac77fc..a766910663e47b05d1e38908b5db7471
@Override
diff --git a/src/main/java/net/minecraft/server/EntityEnderDragon.java b/src/main/java/net/minecraft/server/EntityEnderDragon.java
index 497d05996ab84f599aa0a02f853149f074e4d3cb..29c8e1b67396df160cdb7ecf4e1a563fc1acd5ac 100644
index 81e63fe1b8252e2b5abcbf9051190cd0214b534c..75e834caaf7bb64a3d51d793e86aa702f6ccb0ae 100644
--- a/src/main/java/net/minecraft/server/EntityEnderDragon.java
+++ b/src/main/java/net/minecraft/server/EntityEnderDragon.java
@@ -97,6 +97,11 @@ public class EntityEnderDragon extends EntityInsentient implements IMonster {

View File

@@ -17,7 +17,7 @@ index b5cc099746e9f05ea69bc438bda22a5ac3ebc3c5..bbd17231a4f7ad0ddde6eb5e589a6c40
if (commanddispatcher_servertype.d) {
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index de69589a8e88d9330365decccc9e3bceb337b354..f328fb6d9d7d3c4362c06a4aa06d379263ca087d 100644
index 4f589ca6cfc770bd26d0046736f7100272d7e48e..c8c4c4e7acd05768d2dc7dc3096cb208abcda0f3 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -472,6 +472,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -37,7 +37,7 @@ index de69589a8e88d9330365decccc9e3bceb337b354..f328fb6d9d7d3c4362c06a4aa06d3792
this.isRestarting = isRestarting;
this.hasLoggedStop = true; // Paper
diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
index d454b6c61c1a7d0ae9d6c2979cb865531acf405f..f80371ce1665d0760ad0553a2a057a955c56669c 100644
index 4415d081983d46bcece9b80bad6f3b5cdc624a4e..3a4165efa33cce86457092c29d2cf2aced42f43d 100644
--- a/src/main/java/net/minecraft/server/PlayerList.java
+++ b/src/main/java/net/minecraft/server/PlayerList.java
@@ -513,6 +513,8 @@ public abstract class PlayerList {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Full netherite armor grants fire resistance
diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java
index 7ce46b53ad9fbaf7baf198557565b2467ab43c09..5581e9f1b8656bd2ee0dd338ffd17ac8297df94f 100644
index 84fdb4710331791dfb180ce401f1da6962635b54..708f9c5d0b6e30512b3d3ea45ec2b2baf9482669 100644
--- a/src/main/java/net/minecraft/server/EntityHuman.java
+++ b/src/main/java/net/minecraft/server/EntityHuman.java
@@ -236,6 +236,16 @@ public abstract class EntityHuman extends EntityLiving {
@@ -237,6 +237,16 @@ public abstract class EntityHuman extends EntityLiving {
this.addEffect(new MobEffect(MobEffects.WATER_BREATHING, 200, 0, false, false, true), org.bukkit.event.entity.EntityPotionEffectEvent.Cause.TURTLE_HELMET); // CraftBukkit
}

View File

@@ -58,7 +58,7 @@ index 0f147dc938cef428452bd3137c68b52a78f9fbde..276aac9afd5d987cf388a87718453c47
return true;
// Purpur end
diff --git a/src/main/java/net/minecraft/server/EntityEnderDragon.java b/src/main/java/net/minecraft/server/EntityEnderDragon.java
index 29c8e1b67396df160cdb7ecf4e1a563fc1acd5ac..fd019a7d8940150ba776e211fe5f7ecb4ffbc89c 100644
index 75e834caaf7bb64a3d51d793e86aa702f6ccb0ae..e2377c6e8a98be431953533bf0b2060028caad45 100644
--- a/src/main/java/net/minecraft/server/EntityEnderDragon.java
+++ b/src/main/java/net/minecraft/server/EntityEnderDragon.java
@@ -489,7 +489,7 @@ public class EntityEnderDragon extends EntityInsentient implements IMonster {
@@ -246,7 +246,7 @@ index 1dd13dfea91a05b1e83b065328092a17d41a605f..eb6344a5671408ae9fdd6013774baa13
}
diff --git a/src/main/java/net/minecraft/server/EntityWither.java b/src/main/java/net/minecraft/server/EntityWither.java
index cc4b0945fb9186c6975136d48ce8dfc12b4d4230..0b6cb7c3c55f4b0951fde643a898bd67a08e08af 100644
index edc58c5cb178ea9a53f960bd4a460f394b13ab64..27bfef57cfa1386e81c6409be49ea6898057e631 100644
--- a/src/main/java/net/minecraft/server/EntityWither.java
+++ b/src/main/java/net/minecraft/server/EntityWither.java
@@ -323,7 +323,7 @@ public class EntityWither extends EntityMonster implements IRangedEntity {

View File

@@ -123,7 +123,7 @@ index 5471422d23d261a06c67f9374cae933430ec03a0..4c592f6d4d6cbeb4c3225e7794f4b1d6
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 400e26c96f00e9f8895a45e70f22552ec17f2436..ec450146f82b656616c8b60cc05d727437eaa0b6 100644
index 7b5ffe92430121eebe2866ac33b37a840eed90f1..98f4407848347dfc46b70d1c1fe466dce10f54b7 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -117,6 +117,7 @@ import org.bukkit.entity.EntityType;

View File

@@ -25,7 +25,7 @@ index 4b7ab2405a7d49ae085d64e482d4a851f18263d6..c27ce317c7acaf7ddd926c982d08e053
this.inPortal = true;
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
index 3f00d66685479f3bec8cccb7a0b0988584122436..5c01d6609403c7aa8fe6e31faae485910db74a03 100644
index 5a602de5b9ff436e7cfb70c39475be34beddfb8d..5cf4a2b41d7f088eeb7c8003b8b889f370a4d214 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -1161,6 +1161,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {

View File

@@ -46,7 +46,7 @@ index 4c592f6d4d6cbeb4c3225e7794f4b1d6c8d62394..b441dac8f31b679aa7e36d23848d34e2
// Purpur end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
index 7de7afae711800154735411947ff140c76d5171f..b14e9a2cd6e849fe91a2512f379036a284323420 100644
index 81cff601a5161c30df90de3cefc18d72cd7ee347..980696490709d04741c1617f528357100696d0e5 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
@@ -390,9 +390,14 @@ public final class CraftMagicNumbers implements UnsafeValues {

View File

@@ -18,7 +18,7 @@ index c27ce317c7acaf7ddd926c982d08e0539e045e28..426bebc5cd67ffcc72ee56d437cc13f6
}
diff --git a/src/main/java/net/minecraft/server/EntityEnderDragon.java b/src/main/java/net/minecraft/server/EntityEnderDragon.java
index fd019a7d8940150ba776e211fe5f7ecb4ffbc89c..9e27d3ccfd6a5ee00cac72c3137189b1be1f81fb 100644
index e2377c6e8a98be431953533bf0b2060028caad45..a495c14b9f168884a0bba6b95d28c9ecfa9dfdab 100644
--- a/src/main/java/net/minecraft/server/EntityEnderDragon.java
+++ b/src/main/java/net/minecraft/server/EntityEnderDragon.java
@@ -1023,6 +1023,7 @@ public class EntityEnderDragon extends EntityInsentient implements IMonster {
@@ -30,7 +30,7 @@ index fd019a7d8940150ba776e211fe5f7ecb4ffbc89c..9e27d3ccfd6a5ee00cac72c3137189b1
}
diff --git a/src/main/java/net/minecraft/server/EntityWither.java b/src/main/java/net/minecraft/server/EntityWither.java
index 0b6cb7c3c55f4b0951fde643a898bd67a08e08af..b6663cd71e2e0ec0c4dd27095160298f081c4ec5 100644
index 27bfef57cfa1386e81c6409be49ea6898057e631..a8cda33da336f7c24a341f67a88681690d5a29a6 100644
--- a/src/main/java/net/minecraft/server/EntityWither.java
+++ b/src/main/java/net/minecraft/server/EntityWither.java
@@ -673,6 +673,7 @@ public class EntityWither extends EntityMonster implements IRangedEntity {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Config to ignore nearby mobs when sleeping
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
index 5c01d6609403c7aa8fe6e31faae485910db74a03..453f1b9eb3e8a878f0645d1daa956de7810cbbac 100644
index 5cf4a2b41d7f088eeb7c8003b8b889f370a4d214..c3833ea72c34efc9357706dac7afa2dbb768cf6a 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -1311,7 +1311,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {

View File

@@ -1,68 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Ben Kerllenevich <me@notom3ga.me>
Date: Sat, 13 Mar 2021 17:21:49 -0500
Subject: [PATCH] Use no-tick-view-distance for tracker
diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java
index d7a17689ce44ccb8281906fb6ac7ba2ae53161e5..11140f89cb2b1837aa09a77d4f4fa8eb6ffbebbb 100644
--- a/src/main/java/net/minecraft/server/PlayerChunkMap.java
+++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java
@@ -213,7 +213,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
com.destroystokyo.paper.util.misc.PlayerAreaMap trackMap = this.playerEntityTrackerTrackMaps[i];
int trackRange = this.entityTrackerTrackRanges[i];
- trackMap.add(player, chunkX, chunkZ, Math.min(trackRange, this.getEffectiveViewDistance()));
+ trackMap.add(player, chunkX, chunkZ, Math.min(trackRange, player.world.purpurConfig.useNoTickForTracker ? this.getEffectiveNoTickViewDistance() : this.getEffectiveViewDistance())); // Purpur
}
// Paper end - use distance map to optimise entity tracker
// Paper start - optimise PlayerChunkMap#isOutsideRange
@@ -268,7 +268,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
com.destroystokyo.paper.util.misc.PlayerAreaMap trackMap = this.playerEntityTrackerTrackMaps[i];
int trackRange = this.entityTrackerTrackRanges[i];
- trackMap.update(player, chunkX, chunkZ, Math.min(trackRange, this.getEffectiveViewDistance()));
+ trackMap.update(player, chunkX, chunkZ, Math.min(trackRange, player.world.purpurConfig.useNoTickForTracker ? this.getEffectiveNoTickViewDistance() : this.getEffectiveViewDistance())); // Purpur
}
// Paper end - use distance map to optimise entity tracker
// Paper start - optimise PlayerChunkMap#isOutsideRange
@@ -2541,7 +2541,7 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially
double vec3d_dy = entityplayer.locY() - this.tracker.locY();
double vec3d_dz = entityplayer.locZ() - this.tracker.locZ();
// Paper end - remove allocation of Vec3D here
- int i = Math.min(this.b(), (PlayerChunkMap.this.viewDistance - 1) * 16);
+ int i = Math.min(this.b(), entityplayer.world.purpurConfig.useNoTickForTracker ? PlayerChunkMap.this.getEffectiveNoTickViewDistance() * 16 : (PlayerChunkMap.this.viewDistance - 1) * 16); // Purpur
boolean flag = vec3d_dx >= (double) (-i) && vec3d_dx <= (double) i && vec3d_dz >= (double) (-i) && vec3d_dz <= (double) i && this.tracker.a(entityplayer); // Paper - remove allocation of Vec3D here
if (flag) {
@@ -2557,7 +2557,7 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially
PlayerChunk playerchunk = PlayerChunkMap.this.trackerGetVisibleChunk(chunkcoordintpair); // Airplane
if (playerchunk != null && playerchunk.getSendingChunk() != null) { // Paper - no-tick view distance
- flag1 = PlayerChunkMap.someDistanceCalculation(x, z, entityplayer, false) <= PlayerChunkMap.this.viewDistance;
+ flag1 = PlayerChunkMap.someDistanceCalculation(x, z, entityplayer, false) <= Math.max(PlayerChunkMap.this.viewDistance, PlayerChunkMap.this.noTickViewDistance); // Purpur
// Airplane end
}
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 45c5b7b9e7b207e25d80c008a87b06b91e81668b..3a69b31335d296e0ede1bb5bc10976a41e840a57 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -284,6 +284,7 @@ public class PurpurWorldConfig {
public int animalBreedingCooldownSeconds = 0;
public boolean creativeOnePunch = false;
public boolean playerSleepNearMonsters = false;
+
private void miscGameplayMechanicsSettings() {
useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending);
alwaysTameInCreative = getBoolean("gameplay-mechanics.always-tame-in-creative", alwaysTameInCreative);
@@ -1975,4 +1976,9 @@ public class PurpurWorldConfig {
baseCrystalExplosionEffect = Explosion.Effect.DESTROY;
}
}
+
+ public boolean useNoTickForTracker = false;
+ private void trackerSettings() {
+ useNoTickForTracker = getBoolean("tracker.use-no-tick-distance-for-range", useNoTickForTracker);
+ }
}