diff --git a/Tuinity b/Tuinity index d8b8905f9..32ac48d8b 160000 --- a/Tuinity +++ b/Tuinity @@ -1 +1 @@ -Subproject commit d8b8905f9829b9386bd291f9e5ad48bdece9dded +Subproject commit 32ac48d8b2577bb9ba33ed78ac277700b8049846 diff --git a/patches/api/0002-Add-server-configuration.patch b/patches/api/0002-Add-server-configuration.patch index ae040f94d..4453cba63 100644 --- a/patches/api/0002-Add-server-configuration.patch +++ b/patches/api/0002-Add-server-configuration.patch @@ -5,18 +5,6 @@ Date: Fri, 3 Apr 2020 15:18:38 +0800 Subject: [PATCH] Add server configuration -diff --git a/src/main/java/co/aikar/timings/TimingsExport.java b/src/main/java/co/aikar/timings/TimingsExport.java -index cb92d7b2167fbc775d7a044ecc6c319d0b96765e..1aa20c95c7fc6ff4fee9bc7ec83f8a5d5e887524 100644 ---- a/src/main/java/co/aikar/timings/TimingsExport.java -+++ b/src/main/java/co/aikar/timings/TimingsExport.java -@@ -208,6 +208,7 @@ class TimingsExport extends Thread { - pair("bukkit", mapAsJSON(Bukkit.spigot().getBukkitConfig(), null)), - pair("paper", mapAsJSON(Bukkit.spigot().getPaperConfig(), null)), // Tuinity - add config to timings report - pair("tuinity", mapAsJSON(Bukkit.spigot().getTuinityConfig(), null)) // Tuinity - add config to timings report -+ , pair("akarin", mapAsJSON(Bukkit.spigot().getAkarinConfig(), null)) // Akarin - Server config - )); - - new TimingsExport(listeners, parent, history).start(); diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java index cf20e75419b011e819c63fc8453f250b849cb2c7..c90456e198afdacc21b6980c415c3048fdc7f7a2 100644 --- a/src/main/java/org/bukkit/Server.java diff --git a/patches/server/0003-Akarin-configuration.patch b/patches/server/0003-Akarin-configuration.patch index cbd0eb256..6f40e1315 100644 --- a/patches/server/0003-Akarin-configuration.patch +++ b/patches/server/0003-Akarin-configuration.patch @@ -5,6 +5,18 @@ Date: Fri, 3 Apr 2020 14:59:22 +0800 Subject: [PATCH] Akarin configuration +diff --git a/src/main/java/co/aikar/timings/TimingsExport.java b/src/main/java/co/aikar/timings/TimingsExport.java +index b09981e9bd2d24a0f0e291fabfbbbf0b3887a80b..501dacb4584412dd84e36421e113a1f068693e47 100644 +--- a/src/main/java/co/aikar/timings/TimingsExport.java ++++ b/src/main/java/co/aikar/timings/TimingsExport.java +@@ -231,6 +231,7 @@ public class TimingsExport extends Thread { + pair("bukkit", mapAsJSON(Bukkit.spigot().getBukkitConfig(), null)), + pair("paper", mapAsJSON(Bukkit.spigot().getPaperConfig(), null)), // Tuinity - add config to timings report + pair("tuinity", mapAsJSON(Bukkit.spigot().getTuinityConfig(), null)) // Tuinity - add config to timings report ++ , pair("akarin", mapAsJSON(Bukkit.spigot().getAkarinConfig(), null)) // Akarin - Server config + )); + + new TimingsExport(listeners, parent, history).start(); diff --git a/src/main/java/io/akarin/server/Config.java b/src/main/java/io/akarin/server/Config.java new file mode 100644 index 0000000000000000000000000000000000000000..2ac8f02a97429f04f3e5c9206ec228edccaf24c9 @@ -207,7 +219,7 @@ index c33e13bcf15757abff8b6b74437def37e3860ddf..b415028b00b316531128bacc9689fae1 this.setSpawnAnimals(dedicatedserverproperties.spawnAnimals); this.setSpawnNPCs(dedicatedserverproperties.spawnNpcs); diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index 7fd88b7932da9f8694ebbe32146ef1507cbc68c2..aa69af321e708d321a00fa6cc4ccdc17eb52b3be 100644 +index 04fd08537eaa0d8c9f5cfe88c02e9e9d445f5048..4a43653cdee98a73a4e36710588df2ad205ef3d4 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -89,6 +89,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { @@ -224,7 +236,7 @@ index 7fd88b7932da9f8694ebbe32146ef1507cbc68c2..aa69af321e708d321a00fa6cc4ccdc17 this.tuinityConfig = new com.tuinity.tuinity.config.TuinityConfig.WorldConfig(worlddata.getName()); // Tuinity - Server Config + this.akarinConfig = new io.akarin.server.Config.WorldConfig(worlddata.getName()); // Akarin - Server Config this.generator = gen; - dimensionmanager.world = (WorldServer) this; // Paper + if (dimensionmanager.world == null) dimensionmanager.world = (WorldServer) this; // Paper this.world = new CraftWorld((WorldServer) this, gen, env); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java index 0f97cf2b418646fe136e4a23b8ec00cb7f77a823..9ea75a4ff35fd0abec7cd7f3321ba219de970fc2 100644 diff --git a/patches/server/0004-Akarin-brand-changes.patch b/patches/server/0004-Akarin-brand-changes.patch index 9de478653..b5bf2ad95 100644 --- a/patches/server/0004-Akarin-brand-changes.patch +++ b/patches/server/0004-Akarin-brand-changes.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Akarin brand changes diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index a2ab9d5d4a7458be6155acde5131ad0618c53213..4dcc9a5950042b540bac25a73fa27af4fac54741 100644 +index 533caec8c07edd36e0be70488fe174bc5f3ad285..ead3e43e8c0970835e11a2ce7ee48d4702395b63 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1624,7 +1624,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant 0) { @@ -630,7 +630,7 @@ index 2552f860ff7a25f74e9a0600e58cefe064fac484..00b70d7447e0db11c09f3b751e089ea0 } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 8dc535e0606f7261899bd1f43950711508fbb261..4579823da56addad70205eaaabc2d83b98c43ec4 100644 +index accd147272a531abeac28eb02cd054dcc9e03a88..7c157199c74b8da503e0cd99bc90ca93d8f25632 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -962,15 +962,15 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant getExecutingGoals() {return c();} // Paper - OBFHELPER diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java -index 39a8397673f6a56ee3079ef4fa53bf5365bdf140..61b47f1e328ba5974d8106ebad7c950c456670bd 100644 +index be09053fa162ffadf758728d1fecdc3e34a0e957..fc98a006276e4510d7f3991edb517dd747a24340 100644 --- a/src/main/java/net/minecraft/server/PlayerChunkMap.java +++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java -@@ -848,20 +848,20 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { +@@ -873,20 +873,20 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { private static final double UNLOAD_QUEUE_RESIZE_FACTOR = 0.90; // Spigot // Paper - unload more protected void unloadChunks(BooleanSupplier booleansupplier) { @@ -885,7 +885,7 @@ index 39a8397673f6a56ee3079ef4fa53bf5365bdf140..61b47f1e328ba5974d8106ebad7c950c } private void b(BooleanSupplier booleansupplier) { -@@ -1076,7 +1076,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { +@@ -1099,7 +1099,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { // Paper start - Async chunk io final java.util.function.BiFunction> syncLoadComplete = (chunkHolder, ioThrowable) -> { try (Timing ignored = this.world.timings.chunkLoad.startTimingIfSync()) { // Paper @@ -894,17 +894,17 @@ index 39a8397673f6a56ee3079ef4fa53bf5365bdf140..61b47f1e328ba5974d8106ebad7c950c if (ioThrowable != null) { com.destroystokyo.paper.io.IOUtil.rethrow(ioThrowable); } -@@ -1414,7 +1414,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { - } +@@ -1412,7 +1412,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { } + } // Paper - this.world.getMethodProfiler().c("chunkSave"); + //this.world.getMethodProfiler().c("chunkSave"); // Akarin - remove caller - } // Paper try (co.aikar.timings.Timing ignored1 = this.world.timings.chunkSaveDataSerialization.startTiming()) { // Paper nbttagcompound = ChunkRegionLoader.saveChunk(this.world, ichunkaccess); + } // Paper diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index ecf7a8c6d9c2dba0c2463e6d4f3183756921263d..7fda15e427b15c8eb750c7bcb1506708152acfaa 100644 +index 455dd1de07cf4ed2b7f41b45e0dec0c86092bc69..beaa3b104856cdf5dd71e7e151728bfa06035612 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java @@ -195,7 +195,7 @@ public class PlayerConnection implements PacketListenerPlayIn { @@ -957,7 +957,7 @@ index 3f1aa5ced697490b5481ba992cf5af5dc98b8166..af705e6c650b529c18bdd8f0c063a71c this.h.clear(); this.g.clear(); diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index aa69af321e708d321a00fa6cc4ccdc17eb52b3be..88d6a4f7f42aeacdad9621d883bda66627a87066 100644 +index 4a43653cdee98a73a4e36710588df2ad205ef3d4..b061134322600315b71a3fbf8f57a51d395c9b23 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -392,9 +392,9 @@ public abstract class World implements GeneratorAccess, AutoCloseable { @@ -1059,10 +1059,10 @@ index aa69af321e708d321a00fa6cc4ccdc17eb52b3be..88d6a4f7f42aeacdad9621d883bda666 int j = MathHelper.f((axisalignedbb.maxX + 2.0D) / 16.0D); int k = MathHelper.floor((axisalignedbb.minZ - 2.0D) / 16.0D); diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index 30adf52951575e24bbd868e1c896b942639196b7..32365c4fbda6fb2cabeee7bca4f00ea7b5a5f2d9 100644 +index 9338e090cbad73f3a72ab5e1d26026bbb334e2fe..7958393a9c4c934ba36dc4b3cd55eecbe8dd9851 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java -@@ -729,12 +729,12 @@ public class WorldServer extends World { +@@ -726,12 +726,12 @@ public class WorldServer extends World { } public void doTick(BooleanSupplier booleansupplier) { @@ -1078,7 +1078,7 @@ index 30adf52951575e24bbd868e1c896b942639196b7..32365c4fbda6fb2cabeee7bca4f00ea7 boolean flag = this.isRaining(); int i; -@@ -873,11 +873,11 @@ public class WorldServer extends World { +@@ -870,11 +870,11 @@ public class WorldServer extends World { this.N(); this.a(); @@ -1092,7 +1092,7 @@ index 30adf52951575e24bbd868e1c896b942639196b7..32365c4fbda6fb2cabeee7bca4f00ea7 timings.scheduledBlocks.startTiming(); // Spigot if (this.worldData.getType() != WorldType.DEBUG_ALL_BLOCK_STATES) { this.nextTickListBlock.b(); -@@ -886,7 +886,7 @@ public class WorldServer extends World { +@@ -883,7 +883,7 @@ public class WorldServer extends World { timings.scheduledBlocks.stopTiming(); // Spigot // Tuinity - replace logic @@ -1101,7 +1101,7 @@ index 30adf52951575e24bbd868e1c896b942639196b7..32365c4fbda6fb2cabeee7bca4f00ea7 this.timings.raids.startTiming(); // Paper - timings this.persistentRaid.a(); if (this.mobSpawnerTrader != null) { -@@ -894,13 +894,13 @@ public class WorldServer extends World { +@@ -891,13 +891,13 @@ public class WorldServer extends World { } this.timings.raids.stopTiming(); // Paper - timings @@ -1117,7 +1117,7 @@ index 30adf52951575e24bbd868e1c896b942639196b7..32365c4fbda6fb2cabeee7bca4f00ea7 boolean flag3 = true || !this.players.isEmpty() || !this.getForceLoadedChunks().isEmpty(); // CraftBukkit - this prevents entity cleanup, other issues on servers with no players if (flag3) { -@@ -910,7 +910,7 @@ public class WorldServer extends World { +@@ -907,7 +907,7 @@ public class WorldServer extends World { if (flag3 || this.emptyTime++ < 300) { timings.tickEntities.startTiming(); // Spigot this.worldProvider.j(); @@ -1126,7 +1126,7 @@ index 30adf52951575e24bbd868e1c896b942639196b7..32365c4fbda6fb2cabeee7bca4f00ea7 Entity entity; -@@ -930,7 +930,7 @@ public class WorldServer extends World { +@@ -927,7 +927,7 @@ public class WorldServer extends World { } } @@ -1135,7 +1135,7 @@ index 30adf52951575e24bbd868e1c896b942639196b7..32365c4fbda6fb2cabeee7bca4f00ea7 this.tickingEntities = true; ObjectIterator objectiterator = this.entitiesById.int2ObjectEntrySet().iterator(); -@@ -952,12 +952,12 @@ public class WorldServer extends World { +@@ -949,12 +949,12 @@ public class WorldServer extends World { } // CraftBukkit end */ @@ -1150,7 +1150,7 @@ index 30adf52951575e24bbd868e1c896b942639196b7..32365c4fbda6fb2cabeee7bca4f00ea7 if (entity2 != null) { if (!entity2.dead && entity2.w(entity1)) { continue; -@@ -966,20 +966,20 @@ public class WorldServer extends World { +@@ -963,20 +963,20 @@ public class WorldServer extends World { entity1.stopRiding(); } @@ -1175,7 +1175,7 @@ index 30adf52951575e24bbd868e1c896b942639196b7..32365c4fbda6fb2cabeee7bca4f00ea7 } timings.entityTick.stopTiming(); // Spigot -@@ -1003,13 +1003,13 @@ public class WorldServer extends World { +@@ -1000,13 +1000,13 @@ public class WorldServer extends World { } } // Paper - timings @@ -1191,7 +1191,7 @@ index 30adf52951575e24bbd868e1c896b942639196b7..32365c4fbda6fb2cabeee7bca4f00ea7 } private void wakeupPlayers() { -@@ -1028,9 +1028,9 @@ public class WorldServer extends World { +@@ -1025,9 +1025,9 @@ public class WorldServer extends World { boolean flag = this.isRaining(); int j = chunkcoordintpair.d(); int k = chunkcoordintpair.e(); @@ -1203,7 +1203,7 @@ index 30adf52951575e24bbd868e1c896b942639196b7..32365c4fbda6fb2cabeee7bca4f00ea7 final BlockPosition.MutableBlockPosition blockposition = this.chunkTickMutablePosition; // Paper - use mutable to reduce allocation rate, final to force compile fail on change if (!this.paperConfig.disableThunder && flag && this.U() && this.randomTickRandom.nextInt(100000) == 0) { // Paper - Disable thunder // Paper - optimise random ticking -@@ -1052,7 +1052,7 @@ public class WorldServer extends World { +@@ -1049,7 +1049,7 @@ public class WorldServer extends World { } } @@ -1212,7 +1212,7 @@ index 30adf52951575e24bbd868e1c896b942639196b7..32365c4fbda6fb2cabeee7bca4f00ea7 if (!this.paperConfig.disableIceAndSnow && this.randomTickRandom.nextInt(16) == 0) { // Paper - Disable ice and snow // Paper - optimise random ticking // Paper start - optimise chunk ticking this.getRandomBlockPosition(j, 0, k, 15, blockposition); -@@ -1083,9 +1083,9 @@ public class WorldServer extends World { +@@ -1080,9 +1080,9 @@ public class WorldServer extends World { } // Paper start - optimise random block ticking @@ -1224,7 +1224,7 @@ index 30adf52951575e24bbd868e1c896b942639196b7..32365c4fbda6fb2cabeee7bca4f00ea7 timings.chunkTicksBlocks.startTiming(); // Paper ChunkSection[] sections = chunk.getSections(); -@@ -1122,7 +1122,7 @@ public class WorldServer extends World { +@@ -1119,7 +1119,7 @@ public class WorldServer extends World { // TODO CHECK ON UPDATE } } @@ -1233,7 +1233,7 @@ index 30adf52951575e24bbd868e1c896b942639196b7..32365c4fbda6fb2cabeee7bca4f00ea7 timings.chunkTicksBlocks.stopTiming(); // Paper // Paper end } -@@ -1256,15 +1256,13 @@ public class WorldServer extends World { +@@ -1253,15 +1253,13 @@ public class WorldServer extends World { entity.lastPitch = entity.pitch; if (entity.inChunk) { ++entity.ticksLived; @@ -1253,7 +1253,7 @@ index 30adf52951575e24bbd868e1c896b942639196b7..32365c4fbda6fb2cabeee7bca4f00ea7 } this.chunkCheck(entity); -@@ -1297,14 +1295,12 @@ public class WorldServer extends World { +@@ -1294,14 +1292,12 @@ public class WorldServer extends World { entity1.lastPitch = entity1.pitch; if (entity1.inChunk) { ++entity1.ticksLived; @@ -1272,7 +1272,7 @@ index 30adf52951575e24bbd868e1c896b942639196b7..32365c4fbda6fb2cabeee7bca4f00ea7 } this.chunkCheck(entity1); -@@ -1325,7 +1321,7 @@ public class WorldServer extends World { +@@ -1322,7 +1318,7 @@ public class WorldServer extends World { } public void chunkCheck(Entity entity) { @@ -1281,7 +1281,7 @@ index 30adf52951575e24bbd868e1c896b942639196b7..32365c4fbda6fb2cabeee7bca4f00ea7 int i = MathHelper.floor(entity.locX() / 16.0D); int j = Math.min(15, Math.max(0, MathHelper.floor(entity.locY() / 16.0D))); // Paper - stay consistent with chunk add/remove behavior; int k = MathHelper.floor(entity.locZ() / 16.0D); -@@ -1345,7 +1341,7 @@ public class WorldServer extends World { +@@ -1342,7 +1338,7 @@ public class WorldServer extends World { } } diff --git a/patches/server/0016-Cache-hashcode-for-BlockPosition.patch b/patches/server/0016-Cache-hashcode-for-BlockPosition.patch index 8360b1184..253ebdb18 100644 --- a/patches/server/0016-Cache-hashcode-for-BlockPosition.patch +++ b/patches/server/0016-Cache-hashcode-for-BlockPosition.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Cache hashcode for BlockPosition diff --git a/src/main/java/net/minecraft/server/BaseBlockPosition.java b/src/main/java/net/minecraft/server/BaseBlockPosition.java -index 8f47b6c9e70d10c444ab328dc3bf3a46499b14d5..a03f3b43d99da10c2228c58daea27925821b4168 100644 +index a0450a7ddf21659c5636b3f298e6bf4f0a93fc4d..c4227ff056f906c6ea1fec0330d2db84409a6482 100644 --- a/src/main/java/net/minecraft/server/BaseBlockPosition.java +++ b/src/main/java/net/minecraft/server/BaseBlockPosition.java @@ -19,6 +19,7 @@ public class BaseBlockPosition implements Comparable { diff --git a/patches/server/0017-Remove-a-few-more-streams.patch b/patches/server/0017-Remove-a-few-more-streams.patch index 731756bd4..ba550d32d 100644 --- a/patches/server/0017-Remove-a-few-more-streams.patch +++ b/patches/server/0017-Remove-a-few-more-streams.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Remove a few more streams diff --git a/src/main/java/net/minecraft/server/ChunkMapDistance.java b/src/main/java/net/minecraft/server/ChunkMapDistance.java -index d1c2f2bbfc05137727db49b41ace1cb9e25b9b62..5b63792d0e27c8801de3ca1658baf736f61473f7 100644 +index 68d3c0d4c6718b61990b864b086ca4ee5211ef6e..db034a6077bde5a7fac2729ded2cd2006c602d14 100644 --- a/src/main/java/net/minecraft/server/ChunkMapDistance.java +++ b/src/main/java/net/minecraft/server/ChunkMapDistance.java @@ -188,9 +188,15 @@ public abstract class ChunkMapDistance { @@ -76,10 +76,10 @@ index 9c31edade247baac6811ef3ec98e88a332bcffba..eb3f45d8b707002ebeca20a6857ed414 } // Paper end diff --git a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java -index 82662753b2659a71462dcb26250b11ada0527ad1..97448cb46df42ec4bcfea28c36a3050e8ff96a83 100644 +index b5ee8da43ccb7630c8b333824d7ca24788b45322..a904434211ac6c4645b996294e5018945d266a1f 100644 --- a/src/main/java/net/minecraft/server/EntityVillager.java +++ b/src/main/java/net/minecraft/server/EntityVillager.java -@@ -548,11 +548,20 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation +@@ -562,11 +562,20 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation if (optional.isPresent()) { WorldServer worldserver = (WorldServer) this.world;