From 99029671ab1b4633f78b05c4b72deb8281feaf4c Mon Sep 17 00:00:00 2001 From: Bud Gidiere Date: Wed, 5 Aug 2020 14:38:36 -0500 Subject: [PATCH] Fix Build + Fix Shulkers --- .../server/0001-Yatopia-Server-Fixes.patch | 229 +++++++++++++++--- patches/server/0003-Brandings.patch | 2 +- .../0004-Add-GameProfileLookupEvent.patch | 9 +- .../server/0005-Add-getLastTickMs-api.patch | 2 +- ...g-Yatopia-command-and-basic-settings.patch | 6 +- ...only-players-to-have-collisions-with.patch | 2 +- .../0010-Player-saving-async-FileIO.patch | 2 +- patches/server/0014-lithium-enum_values.patch | 2 +- .../0022-Optimize-TileEntity-loading.patch | 4 +- ...ted-Cache-hashcode-for-BlockPosition.patch | 39 +-- patches/server/0026-Redirect-Configs.patch | 2 +- scripts/getUpstream.sh | 6 +- 12 files changed, 240 insertions(+), 65 deletions(-) diff --git a/patches/server/0001-Yatopia-Server-Fixes.patch b/patches/server/0001-Yatopia-Server-Fixes.patch index f2fe2356..402f7321 100644 --- a/patches/server/0001-Yatopia-Server-Fixes.patch +++ b/patches/server/0001-Yatopia-Server-Fixes.patch @@ -1,6 +1,6 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Bud Gidiere -Date: Wed, 5 Aug 2020 08:01:22 -0500 +Date: Wed, 5 Aug 2020 14:21:05 -0500 Subject: [PATCH] Yatopia Server Fixes @@ -32,6 +32,67 @@ index 572780ca665c0fb254cc7431af3dd7759a94f26c..00000000000000000000000000000000 - )); - - new TimingsExport(listeners, parent, history).start(); +diff --git a/src/main/java/com/destroystokyo/paper/PaperCommand.java b/src/main/java/com/destroystokyo/paper/PaperCommand.java +index f81bd67a323f2e72bdad76c52016993a0bf88307..415be72e83e0638bee1dd7e03807194554e6e08c 100644 +--- a/src/main/java/com/destroystokyo/paper/PaperCommand.java ++++ b/src/main/java/com/destroystokyo/paper/PaperCommand.java +@@ -439,18 +439,18 @@ public class PaperCommand extends Command { + ChunkProviderServer chunkProviderServer = world.getChunkProvider(); + + Collection entities = world.entitiesById.values(); +- entities.forEach(e -> { +- MinecraftKey key = e.getMinecraftKey(); +- if (e.shouldBeRemoved) return; // Paper ++ for (Entity entity : entities) { ++ MinecraftKey key = entity.getMinecraftKey(); ++ if (entity.shouldBeRemoved) continue; + + MutablePair> info = list.computeIfAbsent(key, k -> MutablePair.of(0, Maps.newHashMap())); +- ChunkCoordIntPair chunk = new ChunkCoordIntPair(e.chunkX, e.chunkZ); ++ ChunkCoordIntPair chunk = new ChunkCoordIntPair(entity.getChunkX(), entity.getChunkZ()); + info.left++; + info.right.put(chunk, info.right.getOrDefault(chunk, 0) + 1); +- if (!chunkProviderServer.isInEntityTickingChunk(e)) { ++ if (!chunkProviderServer.isInEntityTickingChunk(entity)) { + nonEntityTicking.merge(key, Integer.valueOf(1), Integer::sum); + } +- }); ++ } + + if (names.size() == 1) { + MinecraftKey name = names.iterator().next(); +diff --git a/src/main/java/com/destroystokyo/paper/PaperCommand.java.rej b/src/main/java/com/destroystokyo/paper/PaperCommand.java.rej +deleted file mode 100644 +index 8f31dba6a29514aad6e74e265bf000014cd1e3c3..0000000000000000000000000000000000000000 +--- a/src/main/java/com/destroystokyo/paper/PaperCommand.java.rej ++++ /dev/null +@@ -1,26 +0,0 @@ +-diff a/src/main/java/com/destroystokyo/paper/PaperCommand.java b/src/main/java/com/destroystokyo/paper/PaperCommand.java (rejected hunks) +-@@ -429,18 +439,18 @@ public class PaperCommand extends Command { +- ChunkProviderServer chunkProviderServer = world.getChunkProvider(); +- +- Collection entities = world.entitiesById.values(); +-- entities.forEach(e -> { +-- MinecraftKey key = e.getMinecraftKey(); +-- if (e.shouldBeRemoved) return; // Paper +-+ for (Entity entity : entities) { +-+ MinecraftKey key = entity.getMinecraftKey(); +-+ if (entity.shouldBeRemoved) continue; +- +- MutablePair> info = list.computeIfAbsent(key, k -> MutablePair.of(0, Maps.newHashMap())); +-- ChunkCoordIntPair chunk = new ChunkCoordIntPair(e.getChunkX(), e.getChunkZ()); +-+ ChunkCoordIntPair chunk = new ChunkCoordIntPair(entity.getChunkX(), entity.getChunkZ()); +- info.left++; +- info.right.put(chunk, info.right.getOrDefault(chunk, 0) + 1); +-- if (!chunkProviderServer.isInEntityTickingChunk(e)) { +-+ if (!chunkProviderServer.isInEntityTickingChunk(entity)) { +- nonEntityTicking.merge(key, Integer.valueOf(1), Integer::sum); +- } +-- }); +-+ } +- +- if (names.size() == 1) { +- MinecraftKey name = names.iterator().next(); diff --git a/src/main/java/com/destroystokyo/paper/server/ticklist/PaperTickList.java b/src/main/java/com/destroystokyo/paper/server/ticklist/PaperTickList.java index dee9655b89d061ec8218ea2c54660c6003e8548f..253b73cfc597d4c7106d969be7b18c68166128ae 100644 --- a/src/main/java/com/destroystokyo/paper/server/ticklist/PaperTickList.java @@ -173,7 +234,7 @@ index 4c2d5b3e080c925d687733ec40d4fb4b22552c96..00000000000000000000000000000000 - this.setPVP(dedicatedserverproperties.pvp); - this.setAllowFlight(dedicatedserverproperties.allowFlight); diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java -index e19bb5ce5c32d9c08336f802fa9058603e23c6ab..d73ef98330c4ae643950b16341b3cde0d52928ce 100644 +index 83e232deaeb78f0c97bce42d67fc220e8fb88368..bbcded1e80a4b0e4618affd77bcaa6e41589b9fe 100644 --- a/src/main/java/net/minecraft/server/EntityInsentient.java +++ b/src/main/java/net/minecraft/server/EntityInsentient.java @@ -758,7 +758,11 @@ public abstract class EntityInsentient extends EntityLiving { @@ -287,7 +348,7 @@ index 74d10212e547adf96762155adb03c0158df00a16..00000000000000000000000000000000 - ran = true; - } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index de1845b3585d7cf96bf26f5859e1cb4820ad2d56..e17119d37577de42f8d52afcfdfee64c33996941 100644 +index ff1692c131b43f217de1fb6657a8274136a3dd08..5960ed2e91008b363dad900c72064055413eafd9 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1001,7 +1001,13 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant> 4; + pos.setValues(player.locX(), 0, player.locZ()); + double twoThirdModifier = 2D / 3D; +- MCUtil.getSpiralOutChunks(pos, Math.min(6, viewDistance)).forEach(coord -> { +- if (shouldSkipPrioritization(coord)) return; ++ for (ChunkCoordIntPair coordIntPair : MCUtil.getSpiralOutChunks(pos, Math.min(6, viewDistance))) { ++ if (shouldSkipPrioritization(coordIntPair)) continue; + +- double dist = MCUtil.distance(playerChunkX, 0, playerChunkZ, coord.x, 0, coord.z); ++ double dist = MCUtil.distance(playerChunkX, 0, playerChunkZ, coordIntPair.x, 0, coordIntPair.z); + // Prioritize immediate + if (dist <= 4 * 4) { +- updateChunkPriorityMap(priorities, coord.pair(), (int) (27 - Math.sqrt(dist))); +- return; ++ updateChunkPriorityMap(priorities, coordIntPair.pair(), (int) (27 - Math.sqrt(dist))); ++ continue; + } + + // Prioritize nearby chunks +- updateChunkPriorityMap(priorities, coord.pair(), (int) (20 - Math.sqrt(dist) * twoThirdModifier)); +- }); ++ updateChunkPriorityMap(priorities, coordIntPair.pair(), (int) (20 - Math.sqrt(dist) * twoThirdModifier)); ++ } + + // Prioritize Frustum near 3 + ChunkCoordIntPair front3 = player.getChunkInFront(3); + pos.setValues(front3.x << 4, 0, front3.z << 4); +- MCUtil.getSpiralOutChunks(pos, Math.min(5, viewDistance)).forEach(coord -> { +- if (shouldSkipPrioritization(coord)) return; ++ for (ChunkCoordIntPair chunkCoordIntPair : MCUtil.getSpiralOutChunks(pos, Math.min(5, viewDistance))) { ++ if (shouldSkipPrioritization(chunkCoordIntPair)) continue; + +- double dist = MCUtil.distance(playerChunkX, 0, playerChunkZ, coord.x, 0, coord.z); +- updateChunkPriorityMap(priorities, coord.pair(), (int) (25 - Math.sqrt(dist) * twoThirdModifier)); +- }); ++ double dist = MCUtil.distance(playerChunkX, 0, playerChunkZ, chunkCoordIntPair.x, 0, chunkCoordIntPair.z); ++ updateChunkPriorityMap(priorities, chunkCoordIntPair.pair(), (int) (25 - Math.sqrt(dist) * twoThirdModifier)); ++ } + + // Prioritize Frustum near 5 + if (viewDistance > 4) { + ChunkCoordIntPair front5 = player.getChunkInFront(5); + pos.setValues(front5.x << 4, 0, front5.z << 4); +- MCUtil.getSpiralOutChunks(pos, 4).forEach(coord -> { +- if (shouldSkipPrioritization(coord)) return; ++ for (ChunkCoordIntPair coord : MCUtil.getSpiralOutChunks(pos, 3)) { ++ if (shouldSkipPrioritization(coord)) continue; + + double dist = MCUtil.distance(playerChunkX, 0, playerChunkZ, coord.x, 0, coord.z); + updateChunkPriorityMap(priorities, coord.pair(), (int) (25 - Math.sqrt(dist) * twoThirdModifier)); +- }); ++ } + } + + // Prioritize Frustum far 7 +@@ -1168,7 +1168,9 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { } this.getVillagePlace().loadInData(chunkcoordintpair, chunkHolder.poiData); @@ -439,11 +556,83 @@ index 3da442fca229f4abae5c1f7725e60286140061b4..038f4e85e7a7e612d72f21f530f9160d if (chunkHolder.protoChunk != null) {try (Timing ignored2 = this.world.timings.chunkLoadLevelTimer.startTimingIfSync()) { // Paper start - timings // Paper - chunk is created async diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java.rej b/src/main/java/net/minecraft/server/PlayerChunkMap.java.rej deleted file mode 100644 -index 06b502a43f0e89b1b2cef8c3adb0a4229511846f..0000000000000000000000000000000000000000 +index 759862aba781ec6f1ae0c9a76c4ab6352d603a4c..0000000000000000000000000000000000000000 --- a/src/main/java/net/minecraft/server/PlayerChunkMap.java.rej +++ /dev/null -@@ -1,12 +0,0 @@ +@@ -1,84 +0,0 @@ -diff a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java (rejected hunks) +-@@ -480,53 +471,53 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { +- double playerChunkZ = MathHelper.floor(player.locZ()) >> 4; +- pos.setValues(player.locX(), 0, player.locZ()); +- double twoThirdModifier = 2D / 3D; +-- MCUtil.getSpiralOutChunks(pos, Math.min(6, viewDistance)).forEach(coord -> { +-- if (shouldSkipPrioritization(coord)) return; +-+ for (ChunkCoordIntPair coordIntPair : MCUtil.getSpiralOutChunks(pos, Math.min(6, viewDistance))) { +-+ if (shouldSkipPrioritization(coordIntPair)) continue; +- +-- double dist = MCUtil.distance(playerChunkX, 0, playerChunkZ, coord.x, 0, coord.z); +-+ double dist = MCUtil.distance(playerChunkX, 0, playerChunkZ, coordIntPair.x, 0, coordIntPair.z); +- // Prioritize immediate +- if (dist <= 4 * 4) { +-- updateChunkPriorityMap(priorities, coord.pair(), (int) (27 - Math.sqrt(dist))); +-- return; +-+ updateChunkPriorityMap(priorities, coordIntPair.pair(), (int) (27 - Math.sqrt(dist))); +-+ continue; +- } +- +- // Prioritize nearby chunks +-- updateChunkPriorityMap(priorities, coord.pair(), (int) (20 - Math.sqrt(dist) * twoThirdModifier)); +-- }); +-+ updateChunkPriorityMap(priorities, coordIntPair.pair(), (int) (20 - Math.sqrt(dist) * twoThirdModifier)); +-+ } +- +- // Prioritize Frustum near 3 +- ChunkCoordIntPair front3 = player.getChunkInFront(3); +- pos.setValues(front3.x << 4, 0, front3.z << 4); +-- MCUtil.getSpiralOutChunks(pos, Math.min(5, viewDistance)).forEach(coord -> { +-- if (shouldSkipPrioritization(coord)) return; +-+ for (ChunkCoordIntPair chunkCoordIntPair : MCUtil.getSpiralOutChunks(pos, Math.min(5, viewDistance))) { +-+ if (shouldSkipPrioritization(chunkCoordIntPair)) continue; +- +-- double dist = MCUtil.distance(playerChunkX, 0, playerChunkZ, coord.x, 0, coord.z); +-- updateChunkPriorityMap(priorities, coord.pair(), (int) (25 - Math.sqrt(dist) * twoThirdModifier)); +-- }); +-+ double dist = MCUtil.distance(playerChunkX, 0, playerChunkZ, chunkCoordIntPair.x, 0, chunkCoordIntPair.z); +-+ updateChunkPriorityMap(priorities, chunkCoordIntPair.pair(), (int) (25 - Math.sqrt(dist) * twoThirdModifier)); +-+ } +- +- // Prioritize Frustum near 5 +- if (viewDistance > 4) { +- ChunkCoordIntPair front5 = player.getChunkInFront(5); +- pos.setValues(front5.x << 4, 0, front5.z << 4); +-- MCUtil.getSpiralOutChunks(pos, 4).forEach(coord -> { +-- if (shouldSkipPrioritization(coord)) return; +-+ for (ChunkCoordIntPair coord : MCUtil.getSpiralOutChunks(pos, 4)) { +-+ if (shouldSkipPrioritization(coord)) continue; +- +- double dist = MCUtil.distance(playerChunkX, 0, playerChunkZ, coord.x, 0, coord.z); +- updateChunkPriorityMap(priorities, coord.pair(), (int) (25 - Math.sqrt(dist) * twoThirdModifier)); +-- }); +-+ } +- } +- +- // Prioritize Frustum far 7 +- if (viewDistance > 6) { +- ChunkCoordIntPair front7 = player.getChunkInFront(7); +- pos.setValues(front7.x << 4, 0, front7.z << 4); +-- MCUtil.getSpiralOutChunks(pos, 3).forEach(coord -> { +-+ for (ChunkCoordIntPair coord : MCUtil.getSpiralOutChunks(pos, 3)) { +- if (shouldSkipPrioritization(coord)) { +-- return; +-+ continue; +- } +- double dist = MCUtil.distance(playerChunkX, 0, playerChunkZ, coord.x, 0, coord.z); +- updateChunkPriorityMap(priorities, coord.pair(), (int) (25 - Math.sqrt(dist) * twoThirdModifier)); +-- }); +-+ } +- } +- +- pos.close(); -@@ -1122,7 +1131,9 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { - if (ioThrowable != null) { - com.destroystokyo.paper.util.SneakyThrow.sneaky(ioThrowable); @@ -517,30 +706,6 @@ index cc8866ec1ccbc131e8491c50eda4f85590bb667b..00000000000000000000000000000000 - return true; - } - } -diff --git a/src/main/java/net/minecraft/server/TileEntityShulkerBox.java b/src/main/java/net/minecraft/server/TileEntityShulkerBox.java -index 7fe085e48b6ad625a510edf33b112bef24f7d7ad..9459efde54d507231b4aacb7cba14e9905ebb4d7 100644 ---- a/src/main/java/net/minecraft/server/TileEntityShulkerBox.java -+++ b/src/main/java/net/minecraft/server/TileEntityShulkerBox.java -@@ -11,7 +11,18 @@ import org.bukkit.entity.HumanEntity; - - public class TileEntityShulkerBox extends TileEntityLootable implements IWorldInventory, ITickable { - -- private static final int[] a = IntStream.range(0, 27).toArray(); -+ private static final int[] a; -+ -+ static { -+ int[] arr = new int[10]; -+ int count = 0; -+ for (int i1 = 0; i1 < 27; i1++) { -+ if (arr.length == count) arr = Arrays.copyOf(arr, count * 2); -+ arr[count++] = i1; -+ } -+ arr = Arrays.copyOfRange(arr, 0, count); -+ a = arr; -+ } - private NonNullList contents; - public int c; // PAIL private -> public, rename viewerCount - private TileEntityShulkerBox.AnimationPhase i; diff --git a/src/main/java/net/minecraft/server/TileEntityShulkerBox.java.rej b/src/main/java/net/minecraft/server/TileEntityShulkerBox.java.rej deleted file mode 100644 index bada470cba41cce9beb9eb04227b42c1d489d731..0000000000000000000000000000000000000000 @@ -570,7 +735,7 @@ index bada470cba41cce9beb9eb04227b42c1d489d731..00000000000000000000000000000000 - private int c; - private TileEntityShulkerBox.AnimationPhase i; diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index 409861c52461b7138eee3df75e43f0f02d2fcfed..742625adc828bb1d4afa9542895bd9e71a065c15 100644 +index 0890bca50858ec8d544be2e1ff4ac2da73c7d830..44af511da96b265a8441052cc87e356e630699a6 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -97,6 +97,9 @@ public abstract class World implements GeneratorAccess, AutoCloseable { diff --git a/patches/server/0003-Brandings.patch b/patches/server/0003-Brandings.patch index dec1080b..8d509a1a 100644 --- a/patches/server/0003-Brandings.patch +++ b/patches/server/0003-Brandings.patch @@ -44,7 +44,7 @@ index 0000000000000000000000000000000000000000..523e3b50d535e91afe8b14fdb53966da +} \ No newline at end of file diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index e17119d37577de42f8d52afcfdfee64c33996941..7cc402a4dfaa2a4bb123c897b05c09190cbdd489 100644 +index 5960ed2e91008b363dad900c72064055413eafd9..ee6a2dbc1306871d9ba621f199054befb09744c2 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1515,7 +1515,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant -Date: Wed, 26 Feb 2020 22:22:02 +0100 +Date: Wed, 5 Aug 2020 14:25:50 -0500 Subject: [PATCH] Add GameProfileLookupEvent diff --git a/src/main/java/com/destroystokyo/paper/profile/CraftPlayerProfile.java b/src/main/java/com/destroystokyo/paper/profile/CraftPlayerProfile.java -index 8a18dfcda3c785e9c8bd134f88515e077dbef7dc..f0ccfce3bc7a2308a479fecd6d751bcaa88a0861 100644 +index dd96dd296d042c0625e527b50b3acfc19a2bf43e..b4a032cada15cdfbcae4f37cd0e36f1aee3cefbb 100644 --- a/src/main/java/com/destroystokyo/paper/profile/CraftPlayerProfile.java +++ b/src/main/java/com/destroystokyo/paper/profile/CraftPlayerProfile.java @@ -5,9 +5,13 @@ import com.google.common.base.Charsets; @@ -22,11 +22,10 @@ index 8a18dfcda3c785e9c8bd134f88515e077dbef7dc..f0ccfce3bc7a2308a479fecd6d751bca import org.bukkit.craftbukkit.entity.CraftPlayer; import org.spigotmc.SpigotConfig; -@@ -185,13 +189,21 @@ public class CraftPlayerProfile implements PlayerProfile { - +@@ -186,12 +190,21 @@ public class CraftPlayerProfile implements PlayerProfile { boolean isCompleteFromCache = this.completeFromCache(true, onlineMode); if (onlineMode && (!isCompleteFromCache || textures && !hasTextures())) { -- GameProfile result = server.getSessionService().fillProfileProperties(profile, true); + GameProfile result = server.getMinecraftSessionService().fillProfileProperties(profile, true); - if (result != null) { - copyProfileProperties(result, this.profile, true); - } diff --git a/patches/server/0005-Add-getLastTickMs-api.patch b/patches/server/0005-Add-getLastTickMs-api.patch index 81ea60df..6ffd3343 100644 --- a/patches/server/0005-Add-getLastTickMs-api.patch +++ b/patches/server/0005-Add-getLastTickMs-api.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add getLastTickMs api diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 7cc402a4dfaa2a4bb123c897b05c09190cbdd489..8e5284fd39be45055bec1609f6b8dd05229e6b35 100644 +index ee6a2dbc1306871d9ba621f199054befb09744c2..26ee6e9219059c9f7175148e934d2adec2b336a0 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -930,6 +930,8 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant +From: tr7zw Date: Wed, 5 Aug 2020 08:05:10 -0500 Subject: [PATCH] Add config Yatopia command and basic settings @@ -386,7 +386,7 @@ index 7ac6ef0a125499de4b5e6a9ed80f963ba623b9f6..0170f25a694e757798ebd4a37c90b1c1 this.setAllowFlight(dedicatedserverproperties.allowFlight); this.setResourcePack(dedicatedserverproperties.resourcePack, this.aY()); diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 98c5ecdf8b59670c872cb43593054f5a91d5e9fe..c77bb0b092cf4198edb6334520fd57042b4e171c 100644 +index dd093e3e624158ff87bad59785ed2496f161f64c..ec84bc4dceff76fd2f823a6a9548fdf180291584 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -1035,7 +1035,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke @@ -399,7 +399,7 @@ index 98c5ecdf8b59670c872cb43593054f5a91d5e9fe..c77bb0b092cf4198edb6334520fd5704 }); StreamAccumulator streamaccumulator = new StreamAccumulator<>(Stream.concat(stream1, stream)); diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index c52afcb107c4d444d9553ed186899adf0bc248ba..a1cbdd38925e2e6e530c8ec4d319a9ea34a542f8 100644 +index 0c862b4604540545206ebe6e08d5d79484414279..da08249ee1c61b7c77b79f491cb8482865ecba3c 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java @@ -266,6 +266,7 @@ public abstract class EntityLiving extends Entity { diff --git a/patches/server/0007-Add-option-for-only-players-to-have-collisions-with.patch b/patches/server/0007-Add-option-for-only-players-to-have-collisions-with.patch index ad2711ac..6074155a 100644 --- a/patches/server/0007-Add-option-for-only-players-to-have-collisions-with.patch +++ b/patches/server/0007-Add-option-for-only-players-to-have-collisions-with.patch @@ -19,7 +19,7 @@ index 19bea6ee83d8b25da022662253328fb6384f40d9..2cee6e02a7dcbacb5f002f9c5917a2e2 } \ No newline at end of file diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index a1cbdd38925e2e6e530c8ec4d319a9ea34a542f8..2d0e7de93edaea2bf1791b8d0192d2e3eece739c 100644 +index da08249ee1c61b7c77b79f491cb8482865ecba3c..2edebae8a1127c9214c7c2974700db9f207fa05f 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java @@ -2844,40 +2844,46 @@ public abstract class EntityLiving extends Entity { diff --git a/patches/server/0010-Player-saving-async-FileIO.patch b/patches/server/0010-Player-saving-async-FileIO.patch index 818547d2..665825d6 100644 --- a/patches/server/0010-Player-saving-async-FileIO.patch +++ b/patches/server/0010-Player-saving-async-FileIO.patch @@ -138,7 +138,7 @@ index cf539c98073b475eb5b769c8cc11d48a7e6d58f1..5442c28c56f933c63bd611f579d03928 } diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java -index 2cada09ced1660526e9c112c2c8d92bbf9d6ea98..767ecf5fe63d86522ef8de4c0b4cda2803a5145c 100644 +index e411f6280d07e3f6a953e1fcaffaaa49f85dc7cc..3966bf7160ef5a7ec6944397ffbf51f583875860 100644 --- a/src/main/java/net/minecraft/server/EntityHuman.java +++ b/src/main/java/net/minecraft/server/EntityHuman.java @@ -700,11 +700,23 @@ public abstract class EntityHuman extends EntityLiving { diff --git a/patches/server/0014-lithium-enum_values.patch b/patches/server/0014-lithium-enum_values.patch index e47cb930..29f9cffa 100644 --- a/patches/server/0014-lithium-enum_values.patch +++ b/patches/server/0014-lithium-enum_values.patch @@ -37,7 +37,7 @@ index 4f10ca5ada741b4f5ef941bb9d92a2fa6a7c44ff..3d6f8d948d293ca57bf158bcd1f58e28 if (enumdirection2 != EnumDirection.DOWN && world.isBlockFacePowered(blockposition1.shift(enumdirection2), enumdirection2)) { return true; diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index 2d0e7de93edaea2bf1791b8d0192d2e3eece739c..b664652df0035f89397d792f0a19f4c40b94b069 100644 +index 2edebae8a1127c9214c7c2974700db9f207fa05f..ce96eea39425792eda9aacd656d2bffda8bc3803 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java @@ -2567,11 +2567,14 @@ public abstract class EntityLiving extends Entity { diff --git a/patches/server/0022-Optimize-TileEntity-loading.patch b/patches/server/0022-Optimize-TileEntity-loading.patch index 492779e8..cdb03cff 100644 --- a/patches/server/0022-Optimize-TileEntity-loading.patch +++ b/patches/server/0022-Optimize-TileEntity-loading.patch @@ -1,5 +1,5 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Bud Gidiere +From: tr7zw Date: Wed, 5 Aug 2020 08:08:44 -0500 Subject: [PATCH] Optimize TileEntity loading @@ -32,7 +32,7 @@ index c2c19a6fbfa2a4aba21aa71789071c69a6246556..7dfd36e22a896ae440bbda6db0628c44 } \ No newline at end of file diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index 742625adc828bb1d4afa9542895bd9e71a065c15..b38e97a6aa207bca9e42c3d4247aa4a76e67581e 100644 +index 44af511da96b265a8441052cc87e356e630699a6..847a245606c5bb98a8821a9dcd677d7eb2e81e45 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -2,6 +2,8 @@ package net.minecraft.server; diff --git a/patches/server/0025-Akarin-updated-Cache-hashcode-for-BlockPosition.patch b/patches/server/0025-Akarin-updated-Cache-hashcode-for-BlockPosition.patch index 5b56285d..f4450a74 100644 --- a/patches/server/0025-Akarin-updated-Cache-hashcode-for-BlockPosition.patch +++ b/patches/server/0025-Akarin-updated-Cache-hashcode-for-BlockPosition.patch @@ -1,11 +1,11 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Sotr -Date: Fri, 31 Jul 2020 22:31:08 -0500 +From: Bud Gidiere +Date: Wed, 5 Aug 2020 14:33:51 -0500 Subject: [PATCH] Akarin updated 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 dab89b0c69ddff24d37cee06107bdc464012c6bb..1e0acca45d0c8f7873176a46018b38eba02aa667 100644 +index e69b7dbc7a954374f9e2374ffe7faebfed2b0644..531bad98fecee11fd149e15974dfd58eb3acc6bb 100644 --- a/src/main/java/net/minecraft/server/BaseBlockPosition.java +++ b/src/main/java/net/minecraft/server/BaseBlockPosition.java @@ -28,6 +28,7 @@ public class BaseBlockPosition implements Comparable { @@ -40,7 +40,7 @@ index dab89b0c69ddff24d37cee06107bdc464012c6bb..1e0acca45d0c8f7873176a46018b38eb public int compareTo(BaseBlockPosition baseblockposition) { return this.getY() == baseblockposition.getY() ? (this.getZ() == baseblockposition.getZ() ? this.getX() - baseblockposition.getX() : this.getZ() - baseblockposition.getZ()) : this.getY() - baseblockposition.getY(); diff --git a/src/main/java/net/minecraft/server/BlockPosition.java b/src/main/java/net/minecraft/server/BlockPosition.java -index 7ff4948a47be03c65c162ca04b2338cdcdafe7c4..14a626f98fb1faf38cf3d3e9d0bc79baf14559ac 100644 +index c77f71b6de87757900b3734feda819754e9408b1..ba4811d2018a4898a72d3654c9e75782ef69288b 100644 --- a/src/main/java/net/minecraft/server/BlockPosition.java +++ b/src/main/java/net/minecraft/server/BlockPosition.java @@ -438,7 +438,9 @@ public class BlockPosition extends BaseBlockPosition { @@ -54,23 +54,34 @@ index 7ff4948a47be03c65c162ca04b2338cdcdafe7c4..14a626f98fb1faf38cf3d3e9d0bc79ba } public BlockPosition.MutableBlockPosition a(EnumDirection.EnumAxis enumdirection_enumaxis, int i, int j) { -@@ -469,16 +471,19 @@ public class BlockPosition extends BaseBlockPosition { - // Tuinity - moved up - public final void o(int i) { // Tuinity +@@ -458,24 +460,30 @@ public class BlockPosition extends BaseBlockPosition { + // only expose set on the mutable blockpos + public final void setX(int value) { + ((BaseBlockPosition)this).a = value; ++ this.recalcHashCode(); + } + public final void setY(int value) { + ((BaseBlockPosition)this).b = value; ++ this.recalcHashCode(); + } + public final void setZ(int value) { + ((BaseBlockPosition)this).e = value; ++ this.recalcHashCode(); + } + + public final void o(int i) { ((BaseBlockPosition)this).a = i; // need cast thanks to name conflict + this.recalcHashCode(); } - // Tuinity - moved up - public final void p(int i) { // Tuinity - ((BaseBlockPosition)this).b = i; // Tuinity + public final void p(int i) { + ((BaseBlockPosition)this).b = i; + this.recalcHashCode(); } - // Tuinity - moved up - public final void q(int i) { // Tuinity - ((BaseBlockPosition)this).e = i; // Tuinity + public final void q(int i) { + ((BaseBlockPosition)this).e = i; + this.recalcHashCode(); } + // Tuinity end - @Override diff --git a/patches/server/0026-Redirect-Configs.patch b/patches/server/0026-Redirect-Configs.patch index 33de6260..b948147e 100644 --- a/patches/server/0026-Redirect-Configs.patch +++ b/patches/server/0026-Redirect-Configs.patch @@ -1,5 +1,5 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Bud Gidiere +From: Sotr Date: Wed, 5 Aug 2020 08:17:46 -0500 Subject: [PATCH] Redirect Configs diff --git a/scripts/getUpstream.sh b/scripts/getUpstream.sh index f964b36c..3068305b 100755 --- a/scripts/getUpstream.sh +++ b/scripts/getUpstream.sh @@ -43,9 +43,9 @@ for D in */; do done done IFS=' ' - done - $1/scripts/applyUpstream.sh $1 $dnoslash || exit 1 - fi + fi + done + $1/scripts/applyUpstream.sh $1 $dnoslash || exit 1 fi fi fi