Revert "Don't load chunks for block break packets"
Isn't working right now
This commit is contained in:
@@ -231,10 +231,10 @@ index 041ebfefca8f944f457a269f0e0b450b21949e73..88568bf2fe1572cce0fe7985bbcf4dce
|
||||
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 7de9bf9790dce0e3866d71cc30e61e0323c037ca..dd0250d461ea5f658b7c2934332864a6b7e1ef48 100644
|
||||
index 98d396658bd7547e6b6f850529cab216e83c6c62..0c13463b8b28b099be323969a9535359f41f5541 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
||||
@@ -399,7 +399,7 @@ public final class CraftMagicNumbers implements UnsafeValues {
|
||||
@@ -421,7 +421,7 @@ public final class CraftMagicNumbers implements UnsafeValues {
|
||||
|
||||
@Override
|
||||
public com.destroystokyo.paper.util.VersionFetcher getVersionFetcher() {
|
||||
|
||||
@@ -210,7 +210,7 @@ index e2c8f716af55ebb7e4233c2a3d6515f8f4a239fa..2f5c021b6849acb81064d55418707921
|
||||
OptionSpec<Integer> optionspec11 = optionparser.accepts("port").withRequiredArg().ofType(Integer.class).defaultsTo(-1, new Integer[0]);
|
||||
OptionSpec<String> optionspec12 = optionparser.accepts("serverId").withRequiredArg();
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
||||
index 406bfe20a7b8786bbc6bee46151be91dadec6180..d9c8e103546a9dee56e6e7a5db5a57d5158fc4ad 100644
|
||||
index f51fcaba69c9ddc27130ab615526e05b1b4f0e07..401326bfd610302a5b073cec646b435a861ad109 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
||||
@@ -76,6 +76,8 @@ public class ServerChunkCache extends ChunkSource {
|
||||
@@ -239,7 +239,7 @@ index 406bfe20a7b8786bbc6bee46151be91dadec6180..d9c8e103546a9dee56e6e7a5db5a57d5
|
||||
private void tickChunks() {
|
||||
long i = this.level.getGameTime();
|
||||
long j = i - this.lastInhabitedUpdate;
|
||||
@@ -1028,7 +1040,7 @@ public class ServerChunkCache extends ChunkSource {
|
||||
@@ -1024,7 +1036,7 @@ public class ServerChunkCache extends ChunkSource {
|
||||
iterator1 = this.entityTickingChunks.iterator();
|
||||
} else {
|
||||
iterator1 = this.entityTickingChunks.unsafeIterator();
|
||||
@@ -332,7 +332,7 @@ index 5d8e9bdf5538b19681f21949368d862fab8a89ad..97c744508cc535418eba65fa722859c8
|
||||
|
||||
public ZeroBitStorage(int size) {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
index af9c58944b38e8aeeca5dca75c9f97e49f2895f2..33670ff2369962836783feb37804532bed7b2857 100644
|
||||
index 2c988e05299d530d483e21ab452de0a03e5bdcbd..fcbbe52452f3e9ad4dcdbcc5d2dc20fa5d098746 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
@@ -3022,7 +3022,7 @@ public abstract class LivingEntity extends Entity {
|
||||
@@ -345,7 +345,7 @@ index af9c58944b38e8aeeca5dca75c9f97e49f2895f2..33670ff2369962836783feb37804532b
|
||||
|
||||
for (int j = 0; j < i; ++j) {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
index 4e8b3f94dc990cd05d69e74db6c706e290dca702..7e0d653eaf459430459a1c19dc86a787ef12bd63 100644
|
||||
index 607e78c24edabb26fd7494855087f7f19cfdc576..dfe1758aeb113a18339f1dbc5e71a9d6ef5ff99b 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
@@ -1009,7 +1009,7 @@ public abstract class Mob extends LivingEntity {
|
||||
|
||||
@@ -7,7 +7,7 @@ Original code by YatopiaMC, licensed under MIT
|
||||
You can find the original code on https://github.com/YatopiaMC/Yatopia
|
||||
|
||||
diff --git a/src/main/java/com/destroystokyo/paper/loottable/PaperLootableInventoryData.java b/src/main/java/com/destroystokyo/paper/loottable/PaperLootableInventoryData.java
|
||||
index 20cfe7b9b7127ddeb97aa91d759fc17b4a548eaf..5cadd485b3987eec21743f3315cd226930646eac 100644
|
||||
index 20cfe7b9b7127ddeb97aa91d759fc17b4a548eaf..ad89f296c6cde5698326891183d3c55bd8c9ed7a 100644
|
||||
--- a/src/main/java/com/destroystokyo/paper/loottable/PaperLootableInventoryData.java
|
||||
+++ b/src/main/java/com/destroystokyo/paper/loottable/PaperLootableInventoryData.java
|
||||
@@ -13,7 +13,7 @@ import java.util.UUID;
|
||||
@@ -15,12 +15,12 @@ index 20cfe7b9b7127ddeb97aa91d759fc17b4a548eaf..5cadd485b3987eec21743f3315cd2269
|
||||
public class PaperLootableInventoryData {
|
||||
|
||||
- private static final Random RANDOM = new Random();
|
||||
+ private static final Random RANDOM = new org.yatopiamc.yatopia.server.util.FastRandom();
|
||||
+ private static final Random RANDOM = new org.yatopiamc.yatopia.server.util.FastRandom(); // Mirai
|
||||
|
||||
private long lastFill = -1;
|
||||
private long nextRefill = -1;
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index 40fe4111a52ab754094d462b0d1889e740797d4d..c691ee6208521b1570f0f25c8bbfd05146bd155c 100644
|
||||
index 40fe4111a52ab754094d462b0d1889e740797d4d..98bebaab40390418681b2ee42af0dd4b14df6330 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -415,7 +415,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -28,7 +28,7 @@ index 40fe4111a52ab754094d462b0d1889e740797d4d..c691ee6208521b1570f0f25c8bbfd051
|
||||
};
|
||||
this.status = new ServerStatus();
|
||||
- this.random = new Random();
|
||||
+ this.random = new org.yatopiamc.yatopia.server.util.FastRandom();
|
||||
+ this.random = new org.yatopiamc.yatopia.server.util.FastRandom(); // Mirai
|
||||
this.port = -1;
|
||||
this.levels = Maps.newLinkedHashMap(); // CraftBukkit - keep order, k+v already use identity methods
|
||||
this.running = true;
|
||||
@@ -37,7 +37,7 @@ index 40fe4111a52ab754094d462b0d1889e740797d4d..c691ee6208521b1570f0f25c8bbfd051
|
||||
if (worlddimension == null) {
|
||||
dimensionmanager = (DimensionType) this.registryHolder.registryOrThrow(Registry.DIMENSION_TYPE_REGISTRY).getOrThrow(DimensionType.OVERWORLD_LOCATION);
|
||||
- chunkgenerator = WorldGenSettings.makeDefaultOverworld(this.registryHolder, (new Random()).nextLong());
|
||||
+ chunkgenerator = WorldGenSettings.makeDefaultOverworld(this.registryHolder, (new org.yatopiamc.yatopia.server.util.FastRandom()).nextLong());
|
||||
+ chunkgenerator = WorldGenSettings.makeDefaultOverworld(this.registryHolder, (new org.yatopiamc.yatopia.server.util.FastRandom()).nextLong()); // Mirai
|
||||
} else {
|
||||
dimensionmanager = worlddimension.type();
|
||||
chunkgenerator = worlddimension.generator();
|
||||
@@ -46,12 +46,12 @@ index 40fe4111a52ab754094d462b0d1889e740797d4d..c691ee6208521b1570f0f25c8bbfd051
|
||||
// CraftBukkit start
|
||||
if (world.generator != null) {
|
||||
- Random rand = new Random(world.getSeed());
|
||||
+ Random rand = new org.yatopiamc.yatopia.server.util.FastRandom(world.getSeed());
|
||||
+ Random rand = new org.yatopiamc.yatopia.server.util.FastRandom(world.getSeed()); // Mirai
|
||||
org.bukkit.Location spawn = world.generator.getFixedSpawnLocation(world.getWorld(), rand);
|
||||
|
||||
if (spawn != null) {
|
||||
diff --git a/src/main/java/net/minecraft/server/commands/SpreadPlayersCommand.java b/src/main/java/net/minecraft/server/commands/SpreadPlayersCommand.java
|
||||
index 62f26f5d3ef5546f26424185e378fea64c08ce2f..832b87d7a42d6e8b38e2e7746ef8fea42fd46307 100644
|
||||
index 62f26f5d3ef5546f26424185e378fea64c08ce2f..e897dee08dfd1ed80b6a2d2c505a7f7c844b0f77 100644
|
||||
--- a/src/main/java/net/minecraft/server/commands/SpreadPlayersCommand.java
|
||||
+++ b/src/main/java/net/minecraft/server/commands/SpreadPlayersCommand.java
|
||||
@@ -55,7 +55,7 @@ public class SpreadPlayersCommand {
|
||||
@@ -59,12 +59,12 @@ index 62f26f5d3ef5546f26424185e378fea64c08ce2f..832b87d7a42d6e8b38e2e7746ef8fea4
|
||||
|
||||
private static int spreadPlayers(CommandSourceStack source, Vec2 center, float spreadDistance, float maxRange, int maxY, boolean respectTeams, Collection<? extends Entity> players) throws CommandSyntaxException {
|
||||
- Random random = new Random();
|
||||
+ Random random = new org.yatopiamc.yatopia.server.util.FastRandom();
|
||||
+ Random random = new org.yatopiamc.yatopia.server.util.FastRandom(); // Mirai
|
||||
double d0 = (double) (center.x - maxRange);
|
||||
double d1 = (double) (center.y - maxRange);
|
||||
double d2 = (double) (center.x + maxRange);
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
index 7b23535a680d2a8534dcb8dd87770f66fb982c13..ab06dd398bdf52656123eecdfe4daebe2a3b07e6 100644
|
||||
index 7b23535a680d2a8534dcb8dd87770f66fb982c13..1615be3540b878ce3182676d235365046d636c12 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -368,7 +368,7 @@ public class ServerPlayer extends Player {
|
||||
@@ -72,7 +72,7 @@ index 7b23535a680d2a8534dcb8dd87770f66fb982c13..ab06dd398bdf52656123eecdfe4daebe
|
||||
int i1 = l > 2147483647L ? Integer.MAX_VALUE : (int) l;
|
||||
int j1 = this.getCoprime(i1);
|
||||
- int k1 = (new Random()).nextInt(i1);
|
||||
+ int k1 = (new org.yatopiamc.yatopia.server.util.FastRandom()).nextInt(i1);
|
||||
+ int k1 = (new org.yatopiamc.yatopia.server.util.FastRandom()).nextInt(i1); // Mirai
|
||||
|
||||
for (int l1 = 0; l1 < i1; ++l1) {
|
||||
int i2 = (k1 + j1 * l1) % i1;
|
||||
@@ -81,12 +81,12 @@ index 7b23535a680d2a8534dcb8dd87770f66fb982c13..ab06dd398bdf52656123eecdfe4daebe
|
||||
int i1 = l > 2147483647L ? Integer.MAX_VALUE : (int) l;
|
||||
int j1 = this.getCoprime(i1);
|
||||
- int k1 = (new Random()).nextInt(i1);
|
||||
+ int k1 = (new org.yatopiamc.yatopia.server.util.FastRandom()).nextInt(i1);
|
||||
+ int k1 = (new org.yatopiamc.yatopia.server.util.FastRandom()).nextInt(i1); // Mirai
|
||||
|
||||
for (int l1 = 0; l1 < i1; ++l1) {
|
||||
int i2 = (k1 + j1 * l1) % i1;
|
||||
diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
|
||||
index 33a29890435d6065a2cc4f8e8bf8209c01d5d114..f1c865c415243f50a9c82b96cca023274897193e 100644
|
||||
index 462d8c36166c63a4dc8fa74ac7f82859e6f4b83a..9dcae48cd94c411176368312adf9f44b11af5760 100644
|
||||
--- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
|
||||
+++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
|
||||
@@ -52,7 +52,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener
|
||||
@@ -94,12 +94,12 @@ index 33a29890435d6065a2cc4f8e8bf8209c01d5d114..f1c865c415243f50a9c82b96cca02327
|
||||
static final Logger LOGGER = LogManager.getLogger();
|
||||
private static final int MAX_TICKS_BEFORE_LOGIN = 600;
|
||||
- private static final Random RANDOM = new Random();
|
||||
+ private static final Random RANDOM = new org.yatopiamc.yatopia.server.util.FastRandom();
|
||||
+ private static final Random RANDOM = new org.yatopiamc.yatopia.server.util.FastRandom(); // Mirai
|
||||
private final byte[] nonce = new byte[4];
|
||||
final MinecraftServer server;
|
||||
public final Connection connection;
|
||||
diff --git a/src/main/java/net/minecraft/server/rcon/thread/QueryThreadGs4.java b/src/main/java/net/minecraft/server/rcon/thread/QueryThreadGs4.java
|
||||
index 25ae440839f1d286550a77d0a4c61e1dc02b369d..b0cbe7d42eef1865e84211844b351027a26a5956 100644
|
||||
index 25ae440839f1d286550a77d0a4c61e1dc02b369d..4c6d10d3ce7a9b5cc4cc04d57fe06ec07a2793e2 100644
|
||||
--- a/src/main/java/net/minecraft/server/rcon/thread/QueryThreadGs4.java
|
||||
+++ b/src/main/java/net/minecraft/server/rcon/thread/QueryThreadGs4.java
|
||||
@@ -348,7 +348,7 @@ public class QueryThreadGs4 extends GenericThread {
|
||||
@@ -107,12 +107,12 @@ index 25ae440839f1d286550a77d0a4c61e1dc02b369d..b0cbe7d42eef1865e84211844b351027
|
||||
this.identBytes[3] = bs[6];
|
||||
this.ident = new String(this.identBytes, StandardCharsets.UTF_8);
|
||||
- this.challenge = (new Random()).nextInt(16777216);
|
||||
+ this.challenge = (new org.yatopiamc.yatopia.server.util.FastRandom()).nextInt(16777216);
|
||||
+ this.challenge = (new org.yatopiamc.yatopia.server.util.FastRandom()).nextInt(16777216); // Mirai
|
||||
this.challengeBytes = String.format("\t%s%d\u0000", this.ident, this.challenge).getBytes(StandardCharsets.UTF_8);
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/util/Mth.java b/src/main/java/net/minecraft/util/Mth.java
|
||||
index 19f77e377342ee461f0da8bc5378f2002fb9e94a..e6799eb40ec5e8c9f58aaafb7841a9066ac299c8 100644
|
||||
index 19f77e377342ee461f0da8bc5378f2002fb9e94a..37364bcaab17be5dddea25f12ccb853f712bfe33 100644
|
||||
--- a/src/main/java/net/minecraft/util/Mth.java
|
||||
+++ b/src/main/java/net/minecraft/util/Mth.java
|
||||
@@ -31,7 +31,7 @@ public class Mth {
|
||||
@@ -120,7 +120,7 @@ index 19f77e377342ee461f0da8bc5378f2002fb9e94a..e6799eb40ec5e8c9f58aaafb7841a906
|
||||
|
||||
});
|
||||
- private static final Random RANDOM = new Random();
|
||||
+ private static final Random RANDOM = new org.yatopiamc.yatopia.server.util.FastRandom();
|
||||
+ private static final Random RANDOM = new org.yatopiamc.yatopia.server.util.FastRandom(); // Mirai
|
||||
public static float[] getSinTable() { return SIN; }
|
||||
private static final int[] MULTIPLY_DE_BRUIJN_BIT_POSITION = new int[]{0, 1, 28, 2, 29, 14, 24, 3, 30, 22, 20, 15, 25, 17, 4, 8, 31, 27, 13, 23, 21, 19, 16, 7, 26, 12, 18, 6, 11, 5, 10, 9};
|
||||
private static final double ONE_SIXTH = 0.16666666666666666D;
|
||||
@@ -129,12 +129,12 @@ index 19f77e377342ee461f0da8bc5378f2002fb9e94a..e6799eb40ec5e8c9f58aaafb7841a906
|
||||
|
||||
public static double wobble(double d) {
|
||||
- return d + (2.0D * (new Random((long)floor(d * 3000.0D))).nextDouble() - 1.0D) * 1.0E-7D / 2.0D;
|
||||
+ return d + (2.0D * (new org.yatopiamc.yatopia.server.util.FastRandom((long)floor(d * 3000.0D))).nextDouble() - 1.0D) * 1.0E-7D / 2.0D;
|
||||
+ return d + (2.0D * (new org.yatopiamc.yatopia.server.util.FastRandom((long)floor(d * 3000.0D))).nextDouble() - 1.0D) * 1.0E-7D / 2.0D; // Mirai
|
||||
}
|
||||
|
||||
public static int roundToward(int value, int divisor) {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index 136ec7851f26c39b5b9a02ec791682fd5be2dbf1..ffcdd6c88aaae17075a491f35ebea3625e4914d2 100644
|
||||
index 136ec7851f26c39b5b9a02ec791682fd5be2dbf1..879cf684753ba9cb0d5d1803651c93a230c531c2 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -158,7 +158,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i
|
||||
@@ -142,12 +142,12 @@ index 136ec7851f26c39b5b9a02ec791682fd5be2dbf1..ffcdd6c88aaae17075a491f35ebea362
|
||||
|
||||
// Paper start
|
||||
- public static Random SHARED_RANDOM = new Random() {
|
||||
+ public static Random SHARED_RANDOM = new org.yatopiamc.yatopia.server.util.FastRandom() {
|
||||
+ public static Random SHARED_RANDOM = new org.yatopiamc.yatopia.server.util.FastRandom() { // Mirai
|
||||
private boolean locked = false;
|
||||
@Override
|
||||
public synchronized void setSeed(long seed) {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/ShufflingList.java b/src/main/java/net/minecraft/world/entity/ai/behavior/ShufflingList.java
|
||||
index 204ca4fbd89bdadd902529f1f191df46fce3cace..2b8cf6819c4a76fb558607f8d111f27e01781a15 100644
|
||||
index 204ca4fbd89bdadd902529f1f191df46fce3cace..087dc4fdb0ce52fdd531d6dcb3e089948906f9ad 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/ai/behavior/ShufflingList.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/ai/behavior/ShufflingList.java
|
||||
@@ -13,7 +13,7 @@ import java.util.stream.Stream;
|
||||
@@ -155,12 +155,12 @@ index 204ca4fbd89bdadd902529f1f191df46fce3cace..2b8cf6819c4a76fb558607f8d111f27e
|
||||
public class ShufflingList<U> {
|
||||
public final List<ShufflingList.WeightedEntry<U>> entries; // Paper - public
|
||||
- private final Random random = new Random();
|
||||
+ private final Random random = new org.yatopiamc.yatopia.server.util.FastRandom();
|
||||
+ private final Random random = new org.yatopiamc.yatopia.server.util.FastRandom(); // Mirai
|
||||
private final boolean isUnsafe; // Paper
|
||||
|
||||
public ShufflingList() {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/ai/sensing/Sensor.java b/src/main/java/net/minecraft/world/entity/ai/sensing/Sensor.java
|
||||
index f3b8e253a5bfc3f68121dbe656ae7e2ac0f0eb1c..325e7725f0105076c7f865db550cfd4e2866b8d2 100644
|
||||
index f3b8e253a5bfc3f68121dbe656ae7e2ac0f0eb1c..888bc1c81cef04679e0e55614d5c111d7d210ba5 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/ai/sensing/Sensor.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/ai/sensing/Sensor.java
|
||||
@@ -8,7 +8,7 @@ import net.minecraft.world.entity.ai.memory.MemoryModuleType;
|
||||
@@ -168,12 +168,12 @@ index f3b8e253a5bfc3f68121dbe656ae7e2ac0f0eb1c..325e7725f0105076c7f865db550cfd4e
|
||||
|
||||
public abstract class Sensor<E extends LivingEntity> {
|
||||
- private static final Random RANDOM = new Random();
|
||||
+ private static final Random RANDOM = new org.yatopiamc.yatopia.server.util.FastRandom();
|
||||
+ private static final Random RANDOM = new org.yatopiamc.yatopia.server.util.FastRandom(); // Mirai
|
||||
private static final int DEFAULT_SCAN_RATE = 20;
|
||||
protected static final int TARGETING_RANGE = 16;
|
||||
private static final TargetingConditions TARGET_CONDITIONS = TargetingConditions.forNonCombat().range(16.0D);
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinAi.java b/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinAi.java
|
||||
index f362e007aece208036a37d9bda8bb481a78eeaff..ae4e5258b92ff480f9c098a561160fe0595a7bbf 100644
|
||||
index f362e007aece208036a37d9bda8bb481a78eeaff..dd41941fbd4a568dcf2239eca03be593c9782af9 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinAi.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinAi.java
|
||||
@@ -374,7 +374,7 @@ public class PiglinAi {
|
||||
@@ -181,12 +181,12 @@ index f362e007aece208036a37d9bda8bb481a78eeaff..ae4e5258b92ff480f9c098a561160fe0
|
||||
|
||||
private static boolean wantsToDance(LivingEntity piglin, LivingEntity target) {
|
||||
- return target.getType() != EntityType.HOGLIN ? false : (new Random(piglin.level.getGameTime())).nextFloat() < 0.1F;
|
||||
+ return target.getType() != EntityType.HOGLIN ? false : (new org.yatopiamc.yatopia.server.util.FastRandom(piglin.level.getGameTime())).nextFloat() < 0.1F;
|
||||
+ return target.getType() != EntityType.HOGLIN ? false : (new org.yatopiamc.yatopia.server.util.FastRandom(piglin.level.getGameTime())).nextFloat() < 0.1F; // Mirai
|
||||
}
|
||||
|
||||
protected static boolean wantsToPickup(Piglin piglin, ItemStack stack) {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/npc/WanderingTraderSpawner.java b/src/main/java/net/minecraft/world/entity/npc/WanderingTraderSpawner.java
|
||||
index 323eea2bccacfcc85849b5d82c2b30d991e0c0d8..78104373a57616fd38d96c727a4ee3b79d874316 100644
|
||||
index 323eea2bccacfcc85849b5d82c2b30d991e0c0d8..6a4e2d8c2d53e4dedea71e7ee82132a7abfb2cd3 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/npc/WanderingTraderSpawner.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTraderSpawner.java
|
||||
@@ -35,7 +35,7 @@ public class WanderingTraderSpawner implements CustomSpawner {
|
||||
@@ -194,12 +194,12 @@ index 323eea2bccacfcc85849b5d82c2b30d991e0c0d8..78104373a57616fd38d96c727a4ee3b7
|
||||
private static final int SPAWN_ONE_IN_X_CHANCE = 10;
|
||||
private static final int NUMBER_OF_SPAWN_ATTEMPTS = 10;
|
||||
- private final Random random = new Random();
|
||||
+ private final Random random = new org.yatopiamc.yatopia.server.util.FastRandom();
|
||||
+ private final Random random = new org.yatopiamc.yatopia.server.util.FastRandom(); // Mirai
|
||||
private final ServerLevelData serverLevelData;
|
||||
private int tickDelay;
|
||||
private int spawnDelay;
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java b/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java
|
||||
index 1037d0a0cdd4fd7aa99a958ee969759c5883fdc0..99ab7bf2829b1355de452a368ac9971dec04064c 100644
|
||||
index 2015223c1703935faef52a8b88263ab3f1fbe92a..d312dcdce3e1c8a8e0cdb5c5fdf019504c50dc48 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java
|
||||
@@ -76,7 +76,7 @@ public class FishingHook extends Projectile {
|
||||
@@ -207,12 +207,12 @@ index 1037d0a0cdd4fd7aa99a958ee969759c5883fdc0..99ab7bf2829b1355de452a368ac9971d
|
||||
private FishingHook(EntityType<? extends FishingHook> type, Level world, int luckOfTheSeaLevel, int lureLevel) {
|
||||
super(type, world);
|
||||
- this.syncronizedRandom = new Random();
|
||||
+ this.syncronizedRandom = new org.yatopiamc.yatopia.server.util.FastRandom();
|
||||
+ this.syncronizedRandom = new org.yatopiamc.yatopia.server.util.FastRandom(); // Mirai
|
||||
this.openWater = true;
|
||||
this.currentState = FishingHook.FishHookState.FLYING;
|
||||
this.noCulling = true;
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/raid/Raid.java b/src/main/java/net/minecraft/world/entity/raid/Raid.java
|
||||
index 7131226de05bc57830f7a68ba545ebfd19d33a59..d41bdd71ae1f722b5f108bed9282bf5bde348e90 100644
|
||||
index 7131226de05bc57830f7a68ba545ebfd19d33a59..c7665038764e626dcac40f3e577c268090b89741 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/raid/Raid.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/raid/Raid.java
|
||||
@@ -110,7 +110,7 @@ public class Raid {
|
||||
@@ -220,7 +220,7 @@ index 7131226de05bc57830f7a68ba545ebfd19d33a59..d41bdd71ae1f722b5f108bed9282bf5b
|
||||
public Raid(int id, ServerLevel world, BlockPos pos) {
|
||||
this.raidEvent = new ServerBossEvent(Raid.RAID_NAME_COMPONENT, BossEvent.BossBarColor.RED, BossEvent.BossBarOverlay.NOTCHED_10);
|
||||
- this.random = new Random();
|
||||
+ this.random = new org.yatopiamc.yatopia.server.util.FastRandom();
|
||||
+ this.random = new org.yatopiamc.yatopia.server.util.FastRandom(); // Mirai
|
||||
this.waveSpawnPos = Optional.empty();
|
||||
this.id = id;
|
||||
this.level = world;
|
||||
@@ -229,12 +229,12 @@ index 7131226de05bc57830f7a68ba545ebfd19d33a59..d41bdd71ae1f722b5f108bed9282bf5b
|
||||
public Raid(ServerLevel world, CompoundTag nbt) {
|
||||
this.raidEvent = new ServerBossEvent(Raid.RAID_NAME_COMPONENT, BossEvent.BossBarColor.RED, BossEvent.BossBarOverlay.NOTCHED_10);
|
||||
- this.random = new Random();
|
||||
+ this.random = new org.yatopiamc.yatopia.server.util.FastRandom();
|
||||
+ this.random = new org.yatopiamc.yatopia.server.util.FastRandom(); // Mirai
|
||||
this.waveSpawnPos = Optional.empty();
|
||||
this.level = world;
|
||||
this.id = nbt.getInt("Id");
|
||||
diff --git a/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java b/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java
|
||||
index d75f14e23d94deee2b6af20c8af3bcd42c1fbbc3..cac4584ea634e0461d05908cbfd88ef66ea75c4e 100644
|
||||
index d75f14e23d94deee2b6af20c8af3bcd42c1fbbc3..9a9b88b76f9a94256ade95fe0edc407f2e4ee57e 100644
|
||||
--- a/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java
|
||||
+++ b/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java
|
||||
@@ -68,7 +68,7 @@ public class EnchantmentMenu extends AbstractContainerMenu {
|
||||
@@ -242,12 +242,12 @@ index d75f14e23d94deee2b6af20c8af3bcd42c1fbbc3..cac4584ea634e0461d05908cbfd88ef6
|
||||
// CraftBukkit end
|
||||
};
|
||||
- this.random = new Random();
|
||||
+ this.random = new org.yatopiamc.yatopia.server.util.FastRandom();
|
||||
+ this.random = new org.yatopiamc.yatopia.server.util.FastRandom(); // Mirai
|
||||
this.enchantmentSeed = DataSlot.standalone();
|
||||
this.costs = new int[3];
|
||||
this.enchantClue = new int[]{-1, -1, -1};
|
||||
diff --git a/src/main/java/net/minecraft/world/level/BaseSpawner.java b/src/main/java/net/minecraft/world/level/BaseSpawner.java
|
||||
index 03726227fdd60e9cf77213d50184abff438e01ef..2f38fd48dd3798b25758028c04e4ec9546166108 100644
|
||||
index 03726227fdd60e9cf77213d50184abff438e01ef..3c37becef230e85fb84a9d39eee0190e3061c4f9 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/BaseSpawner.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/BaseSpawner.java
|
||||
@@ -41,7 +41,7 @@ public abstract class BaseSpawner {
|
||||
@@ -255,12 +255,12 @@ index 03726227fdd60e9cf77213d50184abff438e01ef..2f38fd48dd3798b25758028c04e4ec95
|
||||
public int requiredPlayerRange = 16;
|
||||
public int spawnRange = 4;
|
||||
- private final Random random = new Random();
|
||||
+ private final Random random = new org.yatopiamc.yatopia.server.util.FastRandom();
|
||||
+ private final Random random = new org.yatopiamc.yatopia.server.util.FastRandom(); // Mirai
|
||||
private int tickDelay = 0; // Paper
|
||||
|
||||
public BaseSpawner() {}
|
||||
diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java
|
||||
index 6795132318a4e8b4c7a33b6f4b89a730ea66b97f..eebbf0b9d646ee5ae1bd48c821f122a7c4f4a0c6 100644
|
||||
index 6795132318a4e8b4c7a33b6f4b89a730ea66b97f..9f045f2dc7b9677dfd62ddcb2f3d277ba0c1076c 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/Explosion.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/Explosion.java
|
||||
@@ -88,7 +88,7 @@ public class Explosion {
|
||||
@@ -268,12 +268,12 @@ index 6795132318a4e8b4c7a33b6f4b89a730ea66b97f..eebbf0b9d646ee5ae1bd48c821f122a7
|
||||
|
||||
public Explosion(Level world, @Nullable Entity entity, @Nullable DamageSource damageSource, @Nullable ExplosionDamageCalculator behavior, double x, double y, double z, float power, boolean createFire, Explosion.BlockInteraction destructionType) {
|
||||
- this.random = new Random();
|
||||
+ this.random = new org.yatopiamc.yatopia.server.util.FastRandom();
|
||||
+ this.random = new org.yatopiamc.yatopia.server.util.FastRandom(); // Mirai
|
||||
this.toBlow = Lists.newArrayList();
|
||||
this.hitPlayers = Maps.newHashMap();
|
||||
this.level = world;
|
||||
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
||||
index 96c6ef03a64e425472c64884c91ac4951950362b..2d3cdb47c80af4044bd42b0061d722da5596cd34 100644
|
||||
index 96c6ef03a64e425472c64884c91ac4951950362b..519010d391853629b752ffa1bdbe70f5ef6f1b32 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/Level.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
||||
@@ -123,13 +123,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
@@ -281,19 +281,19 @@ index 96c6ef03a64e425472c64884c91ac4951950362b..2d3cdb47c80af4044bd42b0061d722da
|
||||
private final boolean isDebug;
|
||||
private int skyDarken;
|
||||
- protected int randValue = (new Random()).nextInt();
|
||||
+ protected int randValue = (new org.yatopiamc.yatopia.server.util.FastRandom()).nextInt();
|
||||
+ protected int randValue = (new org.yatopiamc.yatopia.server.util.FastRandom()).nextInt(); // Mirai
|
||||
protected final int addend = 1013904223;
|
||||
protected float oRainLevel;
|
||||
public float rainLevel;
|
||||
protected float oThunderLevel;
|
||||
public float thunderLevel;
|
||||
- public final Random random = new Random();
|
||||
+ public final Random random = new org.yatopiamc.yatopia.server.util.FastRandom();
|
||||
+ public final Random random = new org.yatopiamc.yatopia.server.util.FastRandom(); // Mirai
|
||||
private final DimensionType dimensionType;
|
||||
public final WritableLevelData levelData;
|
||||
private final Supplier<ProfilerFiller> profiler;
|
||||
diff --git a/src/main/java/net/minecraft/world/level/block/entity/DispenserBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/DispenserBlockEntity.java
|
||||
index f74c5bb8e1ba42c77c59d481b871fd992483b128..610e2ec624516684007fb53bf084b95b4fcadc1d 100644
|
||||
index f74c5bb8e1ba42c77c59d481b871fd992483b128..2c7df921e948de9d7747dd32b9c4ed84c2b8196e 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/block/entity/DispenserBlockEntity.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/block/entity/DispenserBlockEntity.java
|
||||
@@ -21,7 +21,7 @@ import org.bukkit.entity.HumanEntity;
|
||||
@@ -301,12 +301,12 @@ index f74c5bb8e1ba42c77c59d481b871fd992483b128..610e2ec624516684007fb53bf084b95b
|
||||
public class DispenserBlockEntity extends RandomizableContainerBlockEntity {
|
||||
|
||||
- private static final Random RANDOM = new Random();
|
||||
+ private static final Random RANDOM = new org.yatopiamc.yatopia.server.util.FastRandom();
|
||||
+ private static final Random RANDOM = new org.yatopiamc.yatopia.server.util.FastRandom(); // Mirai
|
||||
public static final int CONTAINER_SIZE = 9;
|
||||
private NonNullList<ItemStack> items;
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java
|
||||
index 6278115e3511fe2176b29122e2c733498f31bb5a..f25a0b94a001d13b698c9e9c1140e2dd290192a0 100644
|
||||
index 6278115e3511fe2176b29122e2c733498f31bb5a..85abf95d161101b5632bc8f871136938600f2448 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java
|
||||
@@ -265,7 +265,7 @@ public class TheEndGatewayBlockEntity extends TheEndPortalBlockEntity {
|
||||
@@ -314,7 +314,7 @@ index 6278115e3511fe2176b29122e2c733498f31bb5a..f25a0b94a001d13b698c9e9c1140e2dd
|
||||
blockposition1 = new BlockPos(vec3d.x + 0.5D, 75.0D, vec3d.z + 0.5D);
|
||||
TheEndGatewayBlockEntity.LOGGER.debug("Failed to find a suitable block to teleport to, spawning an island on {}", blockposition1);
|
||||
- EndFeatures.END_ISLAND.place(world, world.getChunkSource().getGenerator(), new Random(blockposition1.asLong()), blockposition1);
|
||||
+ EndFeatures.END_ISLAND.place(world, world.getChunkSource().getGenerator(), new org.yatopiamc.yatopia.server.util.FastRandom(blockposition1.asLong()), blockposition1);
|
||||
+ EndFeatures.END_ISLAND.place(world, world.getChunkSource().getGenerator(), new org.yatopiamc.yatopia.server.util.FastRandom(blockposition1.asLong()), blockposition1); // Mirai
|
||||
} else {
|
||||
TheEndGatewayBlockEntity.LOGGER.debug("Found suitable block to teleport to: {}", blockposition1);
|
||||
}
|
||||
@@ -323,12 +323,12 @@ index 6278115e3511fe2176b29122e2c733498f31bb5a..f25a0b94a001d13b698c9e9c1140e2dd
|
||||
|
||||
private static void spawnGatewayPortal(ServerLevel world, BlockPos pos, EndGatewayConfiguration config) {
|
||||
- Feature.END_GATEWAY.configured(config).place(world, world.getChunkSource().getGenerator(), new Random(), pos);
|
||||
+ Feature.END_GATEWAY.configured(config).place(world, world.getChunkSource().getGenerator(), new org.yatopiamc.yatopia.server.util.FastRandom(), pos);
|
||||
+ Feature.END_GATEWAY.configured(config).place(world, world.getChunkSource().getGenerator(), new org.yatopiamc.yatopia.server.util.FastRandom(), pos); // Mirai
|
||||
}
|
||||
|
||||
@Override
|
||||
diff --git a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java
|
||||
index e4591c0b3c8547cc6f4e2a0891fc378ee4334d9e..f4f964a2ef28840944b11404cdc6e41684e46af3 100644
|
||||
index e4591c0b3c8547cc6f4e2a0891fc378ee4334d9e..d8b790f0288cfffbc2720b31c6686a3524e76436 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java
|
||||
@@ -109,7 +109,7 @@ public abstract class ChunkGenerator implements BiomeManager.NoiseBiomeSource {
|
||||
@@ -336,12 +336,12 @@ index e4591c0b3c8547cc6f4e2a0891fc378ee4334d9e..f4f964a2ef28840944b11404cdc6e416
|
||||
int j = structuresettingsstronghold.count();
|
||||
int k = structuresettingsstronghold.spread();
|
||||
- Random random = new Random();
|
||||
+ Random random = new org.yatopiamc.yatopia.server.util.FastRandom();
|
||||
+ Random random = new org.yatopiamc.yatopia.server.util.FastRandom(); // Mirai
|
||||
|
||||
random.setSeed(this.strongholdSeed);
|
||||
double d0 = random.nextDouble() * 3.141592653589793D * 2.0D;
|
||||
diff --git a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java
|
||||
index be5952133720bf0ac3483cc2fed334967e6fc0c4..037b091bafd378493e35d2a816cfc59318362b4e 100644
|
||||
index be5952133720bf0ac3483cc2fed334967e6fc0c4..de00b1d45c13b0cdfc7eb78a667fe0d356e0507e 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java
|
||||
@@ -124,7 +124,7 @@ public class EndDragonFight {
|
||||
@@ -349,7 +349,7 @@ index be5952133720bf0ac3483cc2fed334967e6fc0c4..037b091bafd378493e35d2a816cfc593
|
||||
} else {
|
||||
this.gateways.addAll(ContiguousSet.create(Range.closedOpen(0, 20), DiscreteDomain.integers()));
|
||||
- Collections.shuffle(this.gateways, new Random(gatewaysSeed));
|
||||
+ Collections.shuffle(this.gateways, new org.yatopiamc.yatopia.server.util.FastRandom(gatewaysSeed));
|
||||
+ Collections.shuffle(this.gateways, new org.yatopiamc.yatopia.server.util.FastRandom(gatewaysSeed)); // Mirai
|
||||
}
|
||||
|
||||
this.exitPortalPattern = BlockPatternBuilder.start().aisle(" ", " ", " ", " # ", " ", " ", " ").aisle(" ", " ", " ", " # ", " ", " ", " ").aisle(" ", " ", " ", " # ", " ", " ", " ").aisle(" ### ", " # # ", "# #", "# # #", "# #", " # # ", " ### ").aisle(" ", " ### ", " ##### ", " ##### ", " ##### ", " ### ", " ").where('#', BlockInWorld.hasState(BlockPredicate.forBlock(Blocks.BEDROCK))).build();
|
||||
@@ -358,7 +358,7 @@ index be5952133720bf0ac3483cc2fed334967e6fc0c4..037b091bafd378493e35d2a816cfc593
|
||||
private void spawnNewGateway(BlockPos pos) {
|
||||
this.level.levelEvent(3000, pos, 0);
|
||||
- EndFeatures.END_GATEWAY_DELAYED.place(this.level, this.level.getChunkSource().getGenerator(), new Random(), pos);
|
||||
+ EndFeatures.END_GATEWAY_DELAYED.place(this.level, this.level.getChunkSource().getGenerator(), new org.yatopiamc.yatopia.server.util.FastRandom(), pos);
|
||||
+ EndFeatures.END_GATEWAY_DELAYED.place(this.level, this.level.getChunkSource().getGenerator(), new org.yatopiamc.yatopia.server.util.FastRandom(), pos); // Mirai
|
||||
}
|
||||
|
||||
public void spawnExitPortal(boolean previouslyKilled) {
|
||||
@@ -367,12 +367,12 @@ index be5952133720bf0ac3483cc2fed334967e6fc0c4..037b091bafd378493e35d2a816cfc593
|
||||
// Paper end
|
||||
|
||||
- endPodiumFeature.configured(FeatureConfiguration.NONE).place(this.level, this.level.getChunkSource().getGenerator(), new Random(), this.portalLocation);
|
||||
+ endPodiumFeature.configured(FeatureConfiguration.NONE).place(this.level, this.level.getChunkSource().getGenerator(), new org.yatopiamc.yatopia.server.util.FastRandom(), this.portalLocation);
|
||||
+ endPodiumFeature.configured(FeatureConfiguration.NONE).place(this.level, this.level.getChunkSource().getGenerator(), new org.yatopiamc.yatopia.server.util.FastRandom(), this.portalLocation); // Mirai
|
||||
}
|
||||
|
||||
private EnderDragon createNewDragon() {
|
||||
diff --git a/src/main/java/net/minecraft/world/level/levelgen/WorldGenSettings.java b/src/main/java/net/minecraft/world/level/levelgen/WorldGenSettings.java
|
||||
index 286c75989282c6d370ca64ac714ab15d784210ab..e3a2919e214c63aa8cc2334d30dade3daf39b92d 100644
|
||||
index 286c75989282c6d370ca64ac714ab15d784210ab..4c4c9ea4575306d08a34e19bba06a4a63f562809 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/levelgen/WorldGenSettings.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/levelgen/WorldGenSettings.java
|
||||
@@ -86,7 +86,7 @@ public class WorldGenSettings {
|
||||
@@ -380,7 +380,7 @@ index 286c75989282c6d370ca64ac714ab15d784210ab..e3a2919e214c63aa8cc2334d30dade3d
|
||||
|
||||
public static WorldGenSettings makeDefault(RegistryAccess registryManager) {
|
||||
- long i = (new Random()).nextLong();
|
||||
+ long i = (new org.yatopiamc.yatopia.server.util.FastRandom()).nextLong();
|
||||
+ long i = (new org.yatopiamc.yatopia.server.util.FastRandom()).nextLong(); // Mirai
|
||||
|
||||
return new WorldGenSettings(i, true, false, WorldGenSettings.withOverworld(registryManager.registryOrThrow(Registry.DIMENSION_TYPE_REGISTRY), DimensionType.defaultDimensions(registryManager, i), WorldGenSettings.makeDefaultOverworld(registryManager, i)));
|
||||
}
|
||||
@@ -389,12 +389,12 @@ index 286c75989282c6d370ca64ac714ab15d784210ab..e3a2919e214c63aa8cc2334d30dade3d
|
||||
|
||||
properties.put("level-type", s4);
|
||||
- long i = (new Random()).nextLong();
|
||||
+ long i = (new org.yatopiamc.yatopia.server.util.FastRandom()).nextLong();
|
||||
+ long i = (new org.yatopiamc.yatopia.server.util.FastRandom()).nextLong(); // Mirai
|
||||
|
||||
if (!s1.isEmpty()) {
|
||||
try {
|
||||
diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/SpikeFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/SpikeFeature.java
|
||||
index c03bf5bdb67b00c75f9fcfead882c4d944282244..300c994cd3cc0995eeb4914590afce8b6ad1d92b 100644
|
||||
index c03bf5bdb67b00c75f9fcfead882c4d944282244..36af2ab1d6b80ec6d27a41371c52618ba2717a22 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/levelgen/feature/SpikeFeature.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/levelgen/feature/SpikeFeature.java
|
||||
@@ -36,7 +36,7 @@ public class SpikeFeature extends Feature<SpikeConfiguration> {
|
||||
@@ -402,7 +402,7 @@ index c03bf5bdb67b00c75f9fcfead882c4d944282244..300c994cd3cc0995eeb4914590afce8b
|
||||
|
||||
public static List<SpikeFeature.EndSpike> getSpikesForLevel(WorldGenLevel world) {
|
||||
- Random random = new Random(world.getSeed());
|
||||
+ Random random = new org.yatopiamc.yatopia.server.util.FastRandom(world.getSeed());
|
||||
+ Random random = new org.yatopiamc.yatopia.server.util.FastRandom(world.getSeed()); // Mirai
|
||||
long l = random.nextLong() & 65535L;
|
||||
return SPIKE_CACHE.getUnchecked(l);
|
||||
}
|
||||
@@ -411,12 +411,12 @@ index c03bf5bdb67b00c75f9fcfead882c4d944282244..300c994cd3cc0995eeb4914590afce8b
|
||||
public List<SpikeFeature.EndSpike> load(Long long_) {
|
||||
List<Integer> list = IntStream.range(0, 10).boxed().collect(Collectors.toList());
|
||||
- Collections.shuffle(list, new Random(long_));
|
||||
+ Collections.shuffle(list, new org.yatopiamc.yatopia.server.util.FastRandom(long_));
|
||||
+ Collections.shuffle(list, new org.yatopiamc.yatopia.server.util.FastRandom(long_)); // Mirai
|
||||
List<SpikeFeature.EndSpike> list2 = Lists.newArrayList();
|
||||
|
||||
for(int i = 0; i < 10; ++i) {
|
||||
diff --git a/src/main/java/net/minecraft/world/level/levelgen/structure/templatesystem/StructurePlaceSettings.java b/src/main/java/net/minecraft/world/level/levelgen/structure/templatesystem/StructurePlaceSettings.java
|
||||
index c75141f96bdbee9ec070e81bd4f1ce0e7f1054fa..dbd46f0467f402fdde61831b49b4b7c1ba2d3af1 100644
|
||||
index c75141f96bdbee9ec070e81bd4f1ce0e7f1054fa..d10d9e4a45852555cd037247cd66ceb0e0e14c73 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/levelgen/structure/templatesystem/StructurePlaceSettings.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/levelgen/structure/templatesystem/StructurePlaceSettings.java
|
||||
@@ -120,7 +120,7 @@ public class StructurePlaceSettings {
|
||||
@@ -424,12 +424,12 @@ index c75141f96bdbee9ec070e81bd4f1ce0e7f1054fa..dbd46f0467f402fdde61831b49b4b7c1
|
||||
|
||||
public Random getRandom(@Nullable BlockPos pos) {
|
||||
- return this.random != null ? this.random : (pos == null ? new Random(Util.getMillis()) : new Random(Mth.getSeed(pos)));
|
||||
+ return this.random != null ? this.random : (pos == null ? new org.yatopiamc.yatopia.server.util.FastRandom(Util.getMillis()) : new org.yatopiamc.yatopia.server.util.FastRandom(Mth.getSeed(pos)));
|
||||
+ return this.random != null ? this.random : (pos == null ? new org.yatopiamc.yatopia.server.util.FastRandom(Util.getMillis()) : new org.yatopiamc.yatopia.server.util.FastRandom(Mth.getSeed(pos))); // Mirai
|
||||
}
|
||||
|
||||
public boolean isIgnoreEntities() {
|
||||
diff --git a/src/main/java/net/minecraft/world/level/storage/loot/LootContext.java b/src/main/java/net/minecraft/world/level/storage/loot/LootContext.java
|
||||
index d33af84300db18ea2b71dba2c9ed43390a293500..14ef922c3f8d8f0867614fb0fd1faee73319a993 100644
|
||||
index d33af84300db18ea2b71dba2c9ed43390a293500..91fcdd628f487599f051edaa6a529cddec22fd15 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/storage/loot/LootContext.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/storage/loot/LootContext.java
|
||||
@@ -127,7 +127,7 @@ public class LootContext {
|
||||
@@ -437,7 +437,7 @@ index d33af84300db18ea2b71dba2c9ed43390a293500..14ef922c3f8d8f0867614fb0fd1faee7
|
||||
public LootContext.Builder withOptionalRandomSeed(long seed) {
|
||||
if (seed != 0L) {
|
||||
- this.random = new Random(seed);
|
||||
+ this.random = new org.yatopiamc.yatopia.server.util.FastRandom(seed);
|
||||
+ this.random = new org.yatopiamc.yatopia.server.util.FastRandom(seed); // Mirai
|
||||
}
|
||||
|
||||
return this;
|
||||
@@ -446,7 +446,7 @@ index d33af84300db18ea2b71dba2c9ed43390a293500..14ef922c3f8d8f0867614fb0fd1faee7
|
||||
this.random = random;
|
||||
} else {
|
||||
- this.random = new Random(seed);
|
||||
+ this.random = new org.yatopiamc.yatopia.server.util.FastRandom(seed);
|
||||
+ this.random = new org.yatopiamc.yatopia.server.util.FastRandom(seed); // Mirai
|
||||
}
|
||||
|
||||
return this;
|
||||
@@ -455,7 +455,7 @@ index d33af84300db18ea2b71dba2c9ed43390a293500..14ef922c3f8d8f0867614fb0fd1faee7
|
||||
Random random = this.random;
|
||||
if (random == null) {
|
||||
- random = new Random();
|
||||
+ random = new org.yatopiamc.yatopia.server.util.FastRandom();
|
||||
+ random = new org.yatopiamc.yatopia.server.util.FastRandom(); // Mirai
|
||||
}
|
||||
|
||||
MinecraftServer minecraftServer = this.level.getServer();
|
||||
@@ -473,7 +473,7 @@ index 6f885434f0576d2738b9c74fa9cc202e66ede262..0ab224b093e18f7e49c366c9e4862e0a
|
||||
dimensionmanager = worlddimension.type();
|
||||
chunkgenerator = worlddimension.generator();
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||
index ac41bc23d2f7e16bbacdc9b33fcf6c0d706fa023..5520b78f182e9e3281b12d6a2f93ce171e4b1151 100644
|
||||
index ac41bc23d2f7e16bbacdc9b33fcf6c0d706fa023..f9b8cc877649436b9d7bf93b429661b76e3b53cf 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||
@@ -204,7 +204,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
|
||||
@@ -481,12 +481,12 @@ index ac41bc23d2f7e16bbacdc9b33fcf6c0d706fa023..5520b78f182e9e3281b12d6a2f93ce17
|
||||
// Paper end
|
||||
|
||||
- private static final Random rand = new Random();
|
||||
+ private static final Random rand = new org.yatopiamc.yatopia.server.util.FastRandom();
|
||||
+ private static final Random rand = new org.yatopiamc.yatopia.server.util.FastRandom(); // Mirai
|
||||
|
||||
public CraftWorld(ServerLevel world, ChunkGenerator gen, BiomeProvider biomeProvider, Environment env) {
|
||||
this.world = world;
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftFirework.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftFirework.java
|
||||
index be86114eac3975b82ca74d4d6ed3f0402a642e8a..e369d3a67c375e39c9ca58b44b71ab3963943c1f 100644
|
||||
index be86114eac3975b82ca74d4d6ed3f0402a642e8a..09332333c0b39f11da2953e343e7eedcc17f02c9 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftFirework.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftFirework.java
|
||||
@@ -13,7 +13,7 @@ import org.bukkit.inventory.meta.FireworkMeta;
|
||||
@@ -494,12 +494,12 @@ index be86114eac3975b82ca74d4d6ed3f0402a642e8a..e369d3a67c375e39c9ca58b44b71ab39
|
||||
public class CraftFirework extends CraftProjectile implements Firework {
|
||||
|
||||
- private final Random random = new Random();
|
||||
+ private final Random random = new org.yatopiamc.yatopia.server.util.FastRandom();
|
||||
+ private final Random random = new org.yatopiamc.yatopia.server.util.FastRandom(); // Mirai
|
||||
private final CraftItemStack item;
|
||||
|
||||
public CraftFirework(CraftServer server, FireworkRocketEntity entity) {
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/generator/CustomChunkGenerator.java b/src/main/java/org/bukkit/craftbukkit/generator/CustomChunkGenerator.java
|
||||
index dd453548e1a1ac26ce611f5a96bd3ea81b0971da..a2b03655e571d5c8e5a04566a300b1c2142cc097 100644
|
||||
index dd453548e1a1ac26ce611f5a96bd3ea81b0971da..be3c3ff10d81327c7869948de191ddcdec6acc9b 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/generator/CustomChunkGenerator.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/generator/CustomChunkGenerator.java
|
||||
@@ -44,7 +44,7 @@ public class CustomChunkGenerator extends InternalChunkGenerator {
|
||||
@@ -507,7 +507,7 @@ index dd453548e1a1ac26ce611f5a96bd3ea81b0971da..a2b03655e571d5c8e5a04566a300b1c2
|
||||
private final ChunkGenerator generator;
|
||||
private final ServerLevel world;
|
||||
- private final Random random = new Random();
|
||||
+ private final Random random = new org.yatopiamc.yatopia.server.util.FastRandom();
|
||||
+ private final Random random = new org.yatopiamc.yatopia.server.util.FastRandom(); // Mirai
|
||||
private boolean newApi;
|
||||
private boolean implementBaseHeight = true;
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ Original code by PatinaMC, licensed under GNU General Public License v3.0
|
||||
You can find the original code on https://github.com/PatinaMC/Patina
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index c691ee6208521b1570f0f25c8bbfd05146bd155c..1fe78da9a07bb2cadcd18ad4d30f9b101c696c36 100644
|
||||
index 98bebaab40390418681b2ee42af0dd4b14df6330..66b67c42d223dab3daf98e9088f1277b17342ac5 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -186,7 +186,7 @@ import org.bukkit.event.server.ServerLoadEvent;
|
||||
@@ -57,10 +57,10 @@ index c691ee6208521b1570f0f25c8bbfd05146bd155c..1fe78da9a07bb2cadcd18ad4d30f9b10
|
||||
private void updateStatusIcon(ServerStatus metadata) {
|
||||
Optional<File> optional = Optional.of(this.getFile("server-icon.png")).filter(File::isFile);
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
||||
index d9c8e103546a9dee56e6e7a5db5a57d5158fc4ad..15b6dd0c39a1de09dd7aad88ec6054bf83b2a943 100644
|
||||
index 401326bfd610302a5b073cec646b435a861ad109..325ad14a55fbcfde73c061a03ca3592196360363 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
||||
@@ -1274,10 +1274,12 @@ public class ServerChunkCache extends ChunkSource {
|
||||
@@ -1270,10 +1270,12 @@ public class ServerChunkCache extends ChunkSource {
|
||||
return runnable;
|
||||
}
|
||||
|
||||
|
||||
@@ -162,10 +162,10 @@ index ece77f5ea4b14bbed7c070131b3251ea86764538..00000000000000000000000000000000
|
||||
- }
|
||||
-}
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
||||
index dd0250d461ea5f658b7c2934332864a6b7e1ef48..40991b5ad2d2e8ffca1698ce13d5619e1f56b24b 100644
|
||||
index 0c13463b8b28b099be323969a9535359f41f5541..a71208f6f1d25bad2033c124938a3c25d3ed9997 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
||||
@@ -397,10 +397,12 @@ public final class CraftMagicNumbers implements UnsafeValues {
|
||||
@@ -419,10 +419,12 @@ public final class CraftMagicNumbers implements UnsafeValues {
|
||||
return com.destroystokyo.paper.PaperConfig.timingsServerName;
|
||||
}
|
||||
|
||||
|
||||
@@ -7,28 +7,28 @@ Original code by PatinaMC, licensed under GNU General Public License v3.0
|
||||
You can find the original code on https://github.com/PatinaMC/Patina
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index 1fe78da9a07bb2cadcd18ad4d30f9b101c696c36..a16c569cf0c8dba0b2bc61dedf5394a941696d56 100644
|
||||
index 66b67c42d223dab3daf98e9088f1277b17342ac5..41557a97b1bc1d4986efa9d4a5d7691ec250882f 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -650,7 +650,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<Runnab
|
||||
|
||||
if (worlddimension == null) {
|
||||
dimensionmanager = (DimensionType) this.registryHolder.registryOrThrow(Registry.DIMENSION_TYPE_REGISTRY).getOrThrow(DimensionType.OVERWORLD_LOCATION);
|
||||
- chunkgenerator = WorldGenSettings.makeDefaultOverworld(this.registryHolder, (new org.yatopiamc.yatopia.server.util.FastRandom()).nextLong());
|
||||
+ chunkgenerator = WorldGenSettings.makeDefaultOverworld(this.registryHolder, java.util.concurrent.ThreadLocalRandom.current().nextLong()); // Patina - don't create new random instance
|
||||
- chunkgenerator = WorldGenSettings.makeDefaultOverworld(this.registryHolder, (new org.yatopiamc.yatopia.server.util.FastRandom()).nextLong()); // Mirai
|
||||
+ chunkgenerator = WorldGenSettings.makeDefaultOverworld(this.registryHolder, java.util.concurrent.ThreadLocalRandom.current().nextLong()); // Mirai // Patina - don't create new random instance
|
||||
} else {
|
||||
dimensionmanager = worlddimension.type();
|
||||
chunkgenerator = worlddimension.generator();
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
index ab06dd398bdf52656123eecdfe4daebe2a3b07e6..0011192cdba6dcb7ca125ae4a49ca89a93cc40f2 100644
|
||||
index 1615be3540b878ce3182676d235365046d636c12..8ac654cb16195bb51bbd179ea77462bbe16f525d 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -368,7 +368,7 @@ public class ServerPlayer extends Player {
|
||||
long l = k * k;
|
||||
int i1 = l > 2147483647L ? Integer.MAX_VALUE : (int) l;
|
||||
int j1 = this.getCoprime(i1);
|
||||
- int k1 = (new org.yatopiamc.yatopia.server.util.FastRandom()).nextInt(i1);
|
||||
+ int k1 = worldserver.random.nextInt(i1); // Patina - don't create new random instance
|
||||
- int k1 = (new org.yatopiamc.yatopia.server.util.FastRandom()).nextInt(i1); // Mirai
|
||||
+ int k1 = worldserver.random.nextInt(i1); // Mirai // Patina - don't create new random instance
|
||||
|
||||
for (int l1 = 0; l1 < i1; ++l1) {
|
||||
int i2 = (k1 + j1 * l1) % i1;
|
||||
@@ -36,54 +36,54 @@ index ab06dd398bdf52656123eecdfe4daebe2a3b07e6..0011192cdba6dcb7ca125ae4a49ca89a
|
||||
long l = k * k;
|
||||
int i1 = l > 2147483647L ? Integer.MAX_VALUE : (int) l;
|
||||
int j1 = this.getCoprime(i1);
|
||||
- int k1 = (new org.yatopiamc.yatopia.server.util.FastRandom()).nextInt(i1);
|
||||
+ int k1 = world.random.nextInt(i1); // Patina - don't create new random instance
|
||||
- int k1 = (new org.yatopiamc.yatopia.server.util.FastRandom()).nextInt(i1); // Mirai
|
||||
+ int k1 = world.random.nextInt(i1); // Mirai // Patina - don't create new random instance
|
||||
|
||||
for (int l1 = 0; l1 < i1; ++l1) {
|
||||
int i2 = (k1 + j1 * l1) % i1;
|
||||
diff --git a/src/main/java/net/minecraft/server/rcon/thread/QueryThreadGs4.java b/src/main/java/net/minecraft/server/rcon/thread/QueryThreadGs4.java
|
||||
index b0cbe7d42eef1865e84211844b351027a26a5956..711d5dc2a8b3a5f2a2a35cab59b5ecfdeb152141 100644
|
||||
index 4c6d10d3ce7a9b5cc4cc04d57fe06ec07a2793e2..e02c1ee3c0ec3c9e32902d61ea12fa227996ad4c 100644
|
||||
--- a/src/main/java/net/minecraft/server/rcon/thread/QueryThreadGs4.java
|
||||
+++ b/src/main/java/net/minecraft/server/rcon/thread/QueryThreadGs4.java
|
||||
@@ -348,7 +348,7 @@ public class QueryThreadGs4 extends GenericThread {
|
||||
this.identBytes[2] = bs[5];
|
||||
this.identBytes[3] = bs[6];
|
||||
this.ident = new String(this.identBytes, StandardCharsets.UTF_8);
|
||||
- this.challenge = (new org.yatopiamc.yatopia.server.util.FastRandom()).nextInt(16777216);
|
||||
+ this.challenge = java.util.concurrent.ThreadLocalRandom.current().nextInt(16777216); // Patina - don't create new random instance
|
||||
- this.challenge = (new org.yatopiamc.yatopia.server.util.FastRandom()).nextInt(16777216); // Mirai
|
||||
+ this.challenge = java.util.concurrent.ThreadLocalRandom.current().nextInt(16777216); // Mirai // Patina - don't create new random instance
|
||||
this.challengeBytes = String.format("\t%s%d\u0000", this.ident, this.challenge).getBytes(StandardCharsets.UTF_8);
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
||||
index 2d3cdb47c80af4044bd42b0061d722da5596cd34..74d8edf5a558948233674c78c70135e8fdea469a 100644
|
||||
index 519010d391853629b752ffa1bdbe70f5ef6f1b32..d4704fb641e25679367ffa92be485bc329c97e2c 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/Level.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
||||
@@ -123,13 +123,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
public final Thread thread;
|
||||
private final boolean isDebug;
|
||||
private int skyDarken;
|
||||
- protected int randValue = (new org.yatopiamc.yatopia.server.util.FastRandom()).nextInt();
|
||||
+ //protected int randValue = (new org.yatopiamc.yatopia.server.util.FastRandom()).nextInt(); // Patina - moved down
|
||||
- protected int randValue = (new org.yatopiamc.yatopia.server.util.FastRandom()).nextInt(); // Mirai
|
||||
+ //protected int randValue = (new org.yatopiamc.yatopia.server.util.FastRandom()).nextInt(); // Mirai // Patina - moved down
|
||||
protected final int addend = 1013904223;
|
||||
protected float oRainLevel;
|
||||
public float rainLevel;
|
||||
protected float oThunderLevel;
|
||||
public float thunderLevel;
|
||||
public final Random random = new org.yatopiamc.yatopia.server.util.FastRandom();
|
||||
public final Random random = new org.yatopiamc.yatopia.server.util.FastRandom(); // Mirai
|
||||
+ protected int randValue = random.nextInt(); // Patina - don't create new random instance
|
||||
private final DimensionType dimensionType;
|
||||
public final WritableLevelData levelData;
|
||||
private final Supplier<ProfilerFiller> profiler;
|
||||
diff --git a/src/main/java/net/minecraft/world/level/levelgen/WorldGenSettings.java b/src/main/java/net/minecraft/world/level/levelgen/WorldGenSettings.java
|
||||
index e3a2919e214c63aa8cc2334d30dade3daf39b92d..a580c191a0450c1088c32344b30a3f452913ac5e 100644
|
||||
index 4c4c9ea4575306d08a34e19bba06a4a63f562809..e06db106202d1227e3ca061d98c1006783fe7dde 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/levelgen/WorldGenSettings.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/levelgen/WorldGenSettings.java
|
||||
@@ -86,7 +86,7 @@ public class WorldGenSettings {
|
||||
}
|
||||
|
||||
public static WorldGenSettings makeDefault(RegistryAccess registryManager) {
|
||||
- long i = (new org.yatopiamc.yatopia.server.util.FastRandom()).nextLong();
|
||||
+ long i = java.util.concurrent.ThreadLocalRandom.current().nextLong(); // Patina - don't create new random instance
|
||||
- long i = (new org.yatopiamc.yatopia.server.util.FastRandom()).nextLong(); // Mirai
|
||||
+ long i = java.util.concurrent.ThreadLocalRandom.current().nextLong(); // Mirai // Patina - don't create new random instance
|
||||
|
||||
return new WorldGenSettings(i, true, false, WorldGenSettings.withOverworld(registryManager.registryOrThrow(Registry.DIMENSION_TYPE_REGISTRY), DimensionType.defaultDimensions(registryManager, i), WorldGenSettings.makeDefaultOverworld(registryManager, i)));
|
||||
}
|
||||
@@ -91,13 +91,13 @@ index e3a2919e214c63aa8cc2334d30dade3daf39b92d..a580c191a0450c1088c32344b30a3f45
|
||||
}).orElse("default");
|
||||
|
||||
properties.put("level-type", s4);
|
||||
- long i = (new org.yatopiamc.yatopia.server.util.FastRandom()).nextLong();
|
||||
+ long i = java.util.concurrent.ThreadLocalRandom.current().nextLong(); // Patina - don't create new random instance
|
||||
- long i = (new org.yatopiamc.yatopia.server.util.FastRandom()).nextLong(); // Mirai
|
||||
+ long i = java.util.concurrent.ThreadLocalRandom.current().nextLong(); // Mirai // Patina - don't create new random instance
|
||||
|
||||
if (!s1.isEmpty()) {
|
||||
try {
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
index 0ab224b093e18f7e49c366c9e4862e0a97e7573c..e9545ca9c043a366ad60b14b4318504b6e71bb5e 100644
|
||||
index 0ab224b093e18f7e49c366c9e4862e0a97e7573c..8219faec47215d7ac618d54ae996d156e3a631ff 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
@@ -1237,7 +1237,7 @@ public final class CraftServer implements Server {
|
||||
@@ -105,7 +105,7 @@ index 0ab224b093e18f7e49c366c9e4862e0a97e7573c..e9545ca9c043a366ad60b14b4318504b
|
||||
if (worlddimension == null) {
|
||||
dimensionmanager = (DimensionType) console.registryHolder.registryOrThrow(Registry.DIMENSION_TYPE_REGISTRY).getOrThrow(DimensionType.OVERWORLD_LOCATION);
|
||||
- chunkgenerator = WorldGenSettings.makeDefaultOverworld(console.registryHolder, (new org.yatopiamc.yatopia.server.util.FastRandom()).nextLong());
|
||||
+ chunkgenerator = WorldGenSettings.makeDefaultOverworld(console.registryHolder, java.util.concurrent.ThreadLocalRandom.current().nextLong()); // Patina - don't create new random instance
|
||||
+ chunkgenerator = WorldGenSettings.makeDefaultOverworld(console.registryHolder, java.util.concurrent.ThreadLocalRandom.current().nextLong()); // Mirai // Patina - don't create new random instance
|
||||
} else {
|
||||
dimensionmanager = worlddimension.type();
|
||||
chunkgenerator = worlddimension.generator();
|
||||
|
||||
@@ -58,7 +58,7 @@ index f99d189f461921d37581e2fc1382af60921b0660..c0f65d6c73773e4872b30126775e5b02
|
||||
public static Runnable once(Runnable run) {
|
||||
AtomicBoolean ran = new AtomicBoolean(false);
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index a16c569cf0c8dba0b2bc61dedf5394a941696d56..bde44438a2af1f7faaa655191c45ed2b4a6b8da0 100644
|
||||
index 41557a97b1bc1d4986efa9d4a5d7691ec250882f..1866d0a01cf921d306d4a3e251076f20b60463a1 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -372,6 +372,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<Runnab
|
||||
@@ -86,7 +86,7 @@ index a16c569cf0c8dba0b2bc61dedf5394a941696d56..bde44438a2af1f7faaa655191c45ed2b
|
||||
}
|
||||
// Paper end
|
||||
diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
|
||||
index f1c865c415243f50a9c82b96cca023274897193e..96161b7a260c90bae12f79a3b3a68ba52643ffdd 100644
|
||||
index 9dcae48cd94c411176368312adf9f44b11af5760..2128063800421e0710db8f73ae9b460796bc649f 100644
|
||||
--- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
|
||||
+++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
|
||||
@@ -46,6 +46,7 @@ import org.bukkit.event.player.AsyncPlayerPreLoginEvent;
|
||||
@@ -113,7 +113,7 @@ index f1c865c415243f50a9c82b96cca023274897193e..96161b7a260c90bae12f79a3b3a68ba5
|
||||
// Spigot start
|
||||
public void initUUID()
|
||||
{
|
||||
@@ -248,7 +251,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener
|
||||
@@ -276,7 +279,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener
|
||||
// Paper end
|
||||
// Spigot start
|
||||
// Paper start - Cache authenticator threads
|
||||
@@ -122,7 +122,7 @@ index f1c865c415243f50a9c82b96cca023274897193e..96161b7a260c90bae12f79a3b3a68ba5
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
@@ -292,7 +295,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener
|
||||
@@ -320,7 +323,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener
|
||||
}
|
||||
|
||||
// Paper start - Cache authenticator threads
|
||||
@@ -131,7 +131,7 @@ index f1c865c415243f50a9c82b96cca023274897193e..96161b7a260c90bae12f79a3b3a68ba5
|
||||
public void run() {
|
||||
GameProfile gameprofile = ServerLoginPacketListenerImpl.this.gameProfile;
|
||||
|
||||
@@ -426,7 +429,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener
|
||||
@@ -454,7 +457,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener
|
||||
this.gameProfile = com.destroystokyo.paper.proxy.VelocityProxy.createProfile(buf);
|
||||
|
||||
// Proceed with login
|
||||
|
||||
@@ -7,10 +7,10 @@ Original code by YatopiaMC, licensed under MIT
|
||||
You can find the original code on https://github.com/YatopiaMC/Yatopia
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
index 0f7f811510188f2b37443c5d2378a138dbf43b32..c01dedbb818af63f61b1c5c7a112aefbc7f65c67 100644
|
||||
index 889a4804eaa128e2f79a4ea48b8aa796336576d1..c0ab6ad0bd58b03cae2662d21c9c8449d0ab3225 100644
|
||||
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
@@ -318,7 +318,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
|
||||
@@ -319,7 +319,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
|
||||
++this.tickCount;
|
||||
this.knownMovePacketCount = this.receivedMovePacketCount;
|
||||
if (this.clientIsFloating && !this.player.isSleeping()) {
|
||||
@@ -19,7 +19,7 @@ index 0f7f811510188f2b37443c5d2378a138dbf43b32..c01dedbb818af63f61b1c5c7a112aefb
|
||||
ServerGamePacketListenerImpl.LOGGER.warn("{} was kicked for floating too long!", this.player.getName().getString());
|
||||
this.disconnect(com.destroystokyo.paper.PaperConfig.flyingKickPlayerMessage, org.bukkit.event.player.PlayerKickEvent.Cause.FLYING_PLAYER); // Paper - use configurable kick message & kick event cause
|
||||
return;
|
||||
@@ -337,7 +337,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
|
||||
@@ -338,7 +338,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
|
||||
this.vehicleLastGoodY = this.lastVehicle.getY();
|
||||
this.vehicleLastGoodZ = this.lastVehicle.getZ();
|
||||
if (this.clientVehicleIsFloating && this.player.getRootVehicle().getControllingPassenger() == this.player) {
|
||||
|
||||
@@ -7,10 +7,10 @@ Original code by Starlis, licensed under GNU General Public License v3.0
|
||||
You can find the original code on https://github.com/starlis/empirecraft
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
index c01dedbb818af63f61b1c5c7a112aefbc7f65c67..6fc8c5fc8a14e1ea19da8bd01199f7f8be7ce33a 100644
|
||||
index c0ab6ad0bd58b03cae2662d21c9c8449d0ab3225..feabd407ad8cf6da9b74a9ba755da0f0e6a0313b 100644
|
||||
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
@@ -2068,6 +2068,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
|
||||
@@ -2085,6 +2085,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
|
||||
private void handleChat(TextFilter.FilteredText message) {
|
||||
if (this.player.isRemoved() || this.player.getChatVisibility() == ChatVisiblity.HIDDEN) { // CraftBukkit - dead men tell no tales
|
||||
this.send(new ClientboundChatPacket((new TranslatableComponent("chat.disabled.options")).withStyle(ChatFormatting.RED), ChatType.SYSTEM, Util.NIL_UUID));
|
||||
|
||||
@@ -7,10 +7,10 @@ Original code by PurpurMC, licensed under MIT
|
||||
You can find the original code on https://github.com/PurpurMC/Purpur
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
index 6fc8c5fc8a14e1ea19da8bd01199f7f8be7ce33a..86c213ae5733d407c534e5b5e75e1330c61c8289 100644
|
||||
index feabd407ad8cf6da9b74a9ba755da0f0e6a0313b..5564118497f6c0c04e95602b7f56756272a62f76 100644
|
||||
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
@@ -227,6 +227,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
|
||||
@@ -228,6 +228,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
|
||||
private long keepAliveTime = Util.getMillis();
|
||||
private boolean keepAlivePending;
|
||||
private long keepAliveChallenge;
|
||||
@@ -18,7 +18,7 @@ index 6fc8c5fc8a14e1ea19da8bd01199f7f8be7ce33a..86c213ae5733d407c534e5b5e75e1330
|
||||
// CraftBukkit start - multithreaded fields
|
||||
private final AtomicInteger chatSpamTickCount = new AtomicInteger();
|
||||
private final java.util.concurrent.atomic.AtomicInteger tabSpamLimiter = new java.util.concurrent.atomic.AtomicInteger(); // Paper - configurable tab spam limits
|
||||
@@ -358,6 +359,21 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
|
||||
@@ -359,6 +360,21 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
|
||||
long currentTime = Util.getMillis();
|
||||
long elapsedTime = currentTime - this.keepAliveTime;
|
||||
|
||||
@@ -40,7 +40,7 @@ index 6fc8c5fc8a14e1ea19da8bd01199f7f8be7ce33a..86c213ae5733d407c534e5b5e75e1330
|
||||
if (this.keepAlivePending) {
|
||||
if (!this.processedDisconnect && elapsedTime >= KEEPALIVE_LIMIT) { // check keepalive limit, don't fire if already disconnected
|
||||
ServerGamePacketListenerImpl.LOGGER.warn("{} was kicked due to keepalive timeout!", this.player.getScoreboardName()); // more info
|
||||
@@ -3084,6 +3100,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
|
||||
@@ -3101,6 +3117,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
|
||||
|
||||
@Override
|
||||
public void handleKeepAlive(ServerboundKeepAlivePacket packet) {
|
||||
|
||||
@@ -7,7 +7,7 @@ Original code by PurpurMC, licensed under MIT
|
||||
You can find the original code on https://github.com/PurpurMC/Purpur
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
index ade6a3d0e90e8c82e3e90bd2d12369ccd0760eca..c93c3c3f83a60aa1769607a26148f2eb754cbda6 100644
|
||||
index f5087576843b23f2b1537f2062db74a10778d4a4..04ea3dfacf2f6a133bd635326a7b818f8038fccb 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -1460,6 +1460,7 @@ public class ServerPlayer extends Player {
|
||||
@@ -19,10 +19,10 @@ index ade6a3d0e90e8c82e3e90bd2d12369ccd0760eca..c93c3c3f83a60aa1769607a26148f2eb
|
||||
this.connection.send(new ClientboundBlockUpdatePacket(this.level, sign.getBlockPos()));
|
||||
this.connection.send(new ClientboundOpenSignEditorPacket(sign.getBlockPos()));
|
||||
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
index 86c213ae5733d407c534e5b5e75e1330c61c8289..4707ab9c34f814906a9d638d5c3b956f539c5479 100644
|
||||
index 5564118497f6c0c04e95602b7f56756272a62f76..9570706dcb5218f03766c0dd9ecd371992ad29ce 100644
|
||||
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
@@ -3074,11 +3074,15 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
|
||||
@@ -3091,11 +3091,15 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
|
||||
}
|
||||
// Paper end
|
||||
|
||||
|
||||
@@ -6,10 +6,10 @@ Subject: [PATCH] PaperPR Use DataConverter for itemstack/entity
|
||||
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
||||
index 40991b5ad2d2e8ffca1698ce13d5619e1f56b24b..7747c50edb3aab3a6eb3cf70eef37a00e00595ca 100644
|
||||
index a71208f6f1d25bad2033c124938a3c25d3ed9997..761e93c87212ef888ed6f8ca1c42a5d7daa16ca9 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
||||
@@ -424,8 +424,8 @@ public final class CraftMagicNumbers implements UnsafeValues {
|
||||
@@ -446,8 +446,8 @@ public final class CraftMagicNumbers implements UnsafeValues {
|
||||
|
||||
CompoundTag compound = deserializeNbtFromBytes(data);
|
||||
int dataVersion = compound.getInt("DataVersion");
|
||||
@@ -20,7 +20,7 @@ index 40991b5ad2d2e8ffca1698ce13d5619e1f56b24b..7747c50edb3aab3a6eb3cf70eef37a00
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -445,8 +445,7 @@ public final class CraftMagicNumbers implements UnsafeValues {
|
||||
@@ -467,8 +467,7 @@ public final class CraftMagicNumbers implements UnsafeValues {
|
||||
|
||||
CompoundTag compound = deserializeNbtFromBytes(data);
|
||||
int dataVersion = compound.getInt("DataVersion");
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] PaperPR Fix mobs spawning outside hard despawn range
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/level/NaturalSpawner.java b/src/main/java/net/minecraft/world/level/NaturalSpawner.java
|
||||
index 387b8b158dfe7a3832dff84b0bde97fd4c3a863b..a4107dff1492c2234d0e3205714571f6b982b8e5 100644
|
||||
index 434bdc40ddd92700211076965d97a473706e7351..35c58ee4e780f57681674ee871cb009e085753af 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/NaturalSpawner.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/NaturalSpawner.java
|
||||
@@ -403,7 +403,10 @@ public final class NaturalSpawner {
|
||||
@@ -410,7 +410,10 @@ public final class NaturalSpawner {
|
||||
}
|
||||
|
||||
private static boolean isValidPositionForMob(ServerLevel world, Mob entity, double squaredDistance) {
|
||||
|
||||
@@ -65,7 +65,7 @@ index 40447d00aefb5ffedb8a2ee87155a04088f0649f..3a8c0aedb51c65c3b5cc6922068ece77
|
||||
}
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index 5b17832ffcf0f21ce8dcfd943df2915079a4e907..e71e915c9c82cc5e3ec3e12404e7d91da3a18d46 100644
|
||||
index db5279dd944214802bafc75af7ec46c9eead605c..79a5bfab6c91900e40cb125ae2f77d405641bbf6 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -393,7 +393,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<Runnab
|
||||
@@ -91,7 +91,7 @@ index 88f10d729aa1e0a01790521821d691a0ecd373a2..b990694dc5fc0568f346d3a4fa734f83
|
||||
// Paper end
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
index 3023ccfdb7fcf9b03ac0ca469a18ceed75511504..638fb5ea3409d2531135567dc03f6319fa849db4 100644
|
||||
index b9cc4aa7cd5694976c43f834bbf60412992c269f..fb62ae09dde3550fade48ae5a120ddb49b2d3dd1 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
@@ -1472,7 +1472,7 @@ public abstract class LivingEntity extends Entity {
|
||||
@@ -159,7 +159,7 @@ index 3023ccfdb7fcf9b03ac0ca469a18ceed75511504..638fb5ea3409d2531135567dc03f6319
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||
index 6eff69877f2f6a20fece578e20a587743c7dd0bd..ef9c312fe804aba63951436f1a50800231a6c065 100644
|
||||
index b871d89d16e0bb08cc8ce87e74ced974734be418..981fa09173a2dc28579c985d011c71fb106f1fbf 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||
@@ -1026,7 +1026,7 @@ public abstract class Player extends LivingEntity {
|
||||
@@ -239,7 +239,7 @@ index 6eff69877f2f6a20fece578e20a587743c7dd0bd..ef9c312fe804aba63951436f1a508002
|
||||
}
|
||||
@@ -1676,7 +1676,7 @@ public abstract class Player extends LivingEntity {
|
||||
|
||||
private void checkRidingStatistics(double dx, double dy, double dz) {
|
||||
public void checkRidingStatistics(double dx, double dy, double dz) {
|
||||
if (this.isPassenger()) {
|
||||
- int i = Math.round((float) Math.sqrt(dx * dx + dy * dy + dz * dz) * 100.0F);
|
||||
+ int i = wtf.etil.mirai.server.util.math.FastMath.round((float) Math.sqrt(dx * dx + dy * dy + dz * dz) * 100.0F);
|
||||
@@ -282,7 +282,7 @@ index d212774a4e7c578683394fb4a6c90ce5ce875711..d82fbd657a615d84afb0c6dfdc4b1a58
|
||||
|
||||
i = Mth.clamp(i, (int) 0, (int) 15);
|
||||
diff --git a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java
|
||||
index f4f964a2ef28840944b11404cdc6e41684e46af3..21d47eba76598e9553b1996b5da4cd72a7d9617b 100644
|
||||
index d8b790f0288cfffbc2720b31c6686a3524e76436..6620dc44f106285c193116e8fda3a556b4d7ab17 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java
|
||||
@@ -118,8 +118,8 @@ public abstract class ChunkGenerator implements BiomeManager.NoiseBiomeSource {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: jellysquid3 <jellysquid3@users.noreply.github.com>
|
||||
From: JellySquid <jellysquid+atwork@protonmail.com>
|
||||
Date: Wed, 23 Sep 2020 16:33:58 +0200
|
||||
Subject: [PATCH] lithium: tag
|
||||
|
||||
@@ -7,10 +7,10 @@ Original code by CaffeineMC, licensed under GNU Lesser General Public License v3
|
||||
You can find the original code on https://github.com/CaffeineMC/lithium-fabric (Yarn mappings)
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/tags/SetTag.java b/src/main/java/net/minecraft/tags/SetTag.java
|
||||
index d0c4a1dd2b11cfdbd3972dec5b5622e2f013ab48..91257c689e53f85ee518cd2196795a3282593210 100644
|
||||
index d0c4a1dd2b11cfdbd3972dec5b5622e2f013ab48..9444e3dcdf3fa307c93adb2f790876fcd9ad88e7 100644
|
||||
--- a/src/main/java/net/minecraft/tags/SetTag.java
|
||||
+++ b/src/main/java/net/minecraft/tags/SetTag.java
|
||||
@@ -3,12 +3,16 @@ package net.minecraft.tags;
|
||||
@@ -3,6 +3,8 @@ package net.minecraft.tags;
|
||||
import com.google.common.annotations.VisibleForTesting;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
@@ -18,38 +18,20 @@ index d0c4a1dd2b11cfdbd3972dec5b5622e2f013ab48..91257c689e53f85ee518cd2196795a32
|
||||
+import it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet; // Mirai
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
+import net.minecraft.tags.Tag; // Mirai
|
||||
|
||||
public class SetTag<T> implements Tag<T> {
|
||||
private final ImmutableList<T> valuesList;
|
||||
private final Set<T> values;
|
||||
+ private Set<T> valueSet; // Mirai
|
||||
@VisibleForTesting
|
||||
protected final Class<?> closestCommonSuperType;
|
||||
@@ -14,8 +16,14 @@ public class SetTag<T> implements Tag<T> {
|
||||
|
||||
@@ -61,4 +65,25 @@ public class SetTag<T> implements Tag<T> {
|
||||
|
||||
return first;
|
||||
}
|
||||
+
|
||||
+ // Mirai start
|
||||
+ /**
|
||||
+ * If the number of elements in a tag is very small (<=3), it can be significantly faster to use simple linear scanning
|
||||
+ * across an array to check if an element is contained by the tag. We mix into the implementation type for Tag
|
||||
+ * and try replacing the type of set after the constructor has ran. If the set is too large, we still replace it
|
||||
+ * with a faster set type which has reference equality semantics.
|
||||
+ *
|
||||
+ * @reason Use specialized implementations
|
||||
+ * @author JellySquid
|
||||
+ */
|
||||
+ private void init(Set<T> values, Class<?> var2) {
|
||||
+ // Reference equality is safe for tag values
|
||||
+ // Use linear-scanning when the number of items in the tag is small
|
||||
+ if (this.valueSet.size() <= 3) {
|
||||
+ this.valueSet = new ReferenceArraySet<>(this.valueSet);
|
||||
protected SetTag(Set<T> values, Class<?> type) {
|
||||
this.closestCommonSuperType = type;
|
||||
- this.values = values;
|
||||
this.valuesList = ImmutableList.copyOf(values);
|
||||
+ // Mirai start
|
||||
+ if (values.size() <= 3) {
|
||||
+ this.values = new ReferenceArraySet<>(values);
|
||||
+ } else {
|
||||
+ this.valueSet = new ReferenceOpenHashSet<>(this.valueSet);
|
||||
+ this.values = new ReferenceOpenHashSet<>(values);
|
||||
+ }
|
||||
+ }
|
||||
+ // Mirai end
|
||||
}
|
||||
+ // Mirai end
|
||||
}
|
||||
|
||||
public static <T> SetTag<T> empty() {
|
||||
|
||||
@@ -1,140 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Wesley1808 <>
|
||||
Date: Fri, 3 Dec 2021 15:53:06 +0100
|
||||
Subject: [PATCH] servercore: Don't load chunks for block break packets
|
||||
|
||||
Original code by Wesley1808, licensed under MIT
|
||||
You can find the original code on https://github.com/Wesley1808/ServerCore
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
||||
index 15b6dd0c39a1de09dd7aad88ec6054bf83b2a943..97bcdc2af01f1b9d9f0a9e6045bab0ce56b95e60 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
||||
@@ -445,7 +445,7 @@ public class ServerChunkCache extends ChunkSource {
|
||||
}
|
||||
|
||||
@Nullable
|
||||
- private ChunkHolder getVisibleChunkIfPresent(long pos) {
|
||||
+ public ChunkHolder getVisibleChunkIfPresent(long pos) { // Mirai - private->public
|
||||
return this.chunkMap.getVisibleChunkIfPresent(pos);
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
|
||||
index 534c7a702e96523bd2e3cf0bc20c7c63929b4f07..7f584576b390bef9ad4255c332884b2617f5302a 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
|
||||
@@ -45,6 +45,11 @@ import org.bukkit.event.player.PlayerGameModeChangeEvent;
|
||||
import org.bukkit.event.player.PlayerInteractEvent;
|
||||
// CraftBukkit end
|
||||
|
||||
+// Mirai start
|
||||
+import net.minecraft.server.level.ServerLevel;
|
||||
+import org.provim.servercore.utils.ChunkManager;
|
||||
+// Mirai end
|
||||
+
|
||||
public class ServerPlayerGameMode {
|
||||
|
||||
private static final Logger LOGGER = LogManager.getLogger();
|
||||
@@ -616,4 +621,10 @@ public class ServerPlayerGameMode {
|
||||
public void setLevel(ServerLevel world) {
|
||||
this.level = world;
|
||||
}
|
||||
+
|
||||
+ // Mirai start
|
||||
+ private BlockState onlyProcessIfLoaded(ServerLevel level, BlockPos pos) {
|
||||
+ return ChunkManager.getStateIfLoaded(level, pos);
|
||||
+ }
|
||||
+ // Mirai end
|
||||
}
|
||||
diff --git a/src/main/java/org/provim/servercore/utils/ChunkManager.java b/src/main/java/org/provim/servercore/utils/ChunkManager.java
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..fd272da74610862e38b128dade0f3f2422649cf8
|
||||
--- /dev/null
|
||||
+++ b/src/main/java/org/provim/servercore/utils/ChunkManager.java
|
||||
@@ -0,0 +1,85 @@
|
||||
+package org.provim.servercore.utils;
|
||||
+
|
||||
+import net.minecraft.core.BlockPos;
|
||||
+import net.minecraft.server.level.ChunkHolder;
|
||||
+import net.minecraft.server.level.ServerChunkCache;
|
||||
+import net.minecraft.util.Mth;
|
||||
+import net.minecraft.world.level.ChunkPos;
|
||||
+import net.minecraft.world.level.Level;
|
||||
+import net.minecraft.world.level.block.Blocks;
|
||||
+import net.minecraft.world.level.block.state.BlockState;
|
||||
+import net.minecraft.world.level.chunk.LevelChunk;
|
||||
+import net.minecraft.world.phys.AABB;
|
||||
+import org.jetbrains.annotations.Nullable;
|
||||
+
|
||||
+public final class ChunkManager {
|
||||
+
|
||||
+ /**
|
||||
+ * Returns the BlockState at {@param pos} in {@param level} if the position is loaded.
|
||||
+ */
|
||||
+
|
||||
+ public static BlockState getStateIfLoaded(Level level, BlockPos pos) {
|
||||
+ final LevelChunk chunk = getChunkIfLoaded(level, pos);
|
||||
+ return chunk != null ? chunk.getBlockState(pos) : Blocks.VOID_AIR.defaultBlockState();
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * Returns the chunk at {@param pos} in {@param level} if the position is loaded.
|
||||
+ */
|
||||
+
|
||||
+ @Nullable
|
||||
+ public static LevelChunk getChunkIfLoaded(Level level, BlockPos pos) {
|
||||
+ return getChunkIfLoaded(level, pos.getX() >> 4, pos.getZ() >> 4);
|
||||
+ }
|
||||
+
|
||||
+ @Nullable
|
||||
+ public static LevelChunk getChunkIfLoaded(Level level, int chunkX, int chunkZ) {
|
||||
+ if (!level.isClientSide) {
|
||||
+ final ChunkHolder holder = getChunkHolder(level, chunkX, chunkZ);
|
||||
+ return holder != null ? holder.getFullChunkFuture().getNow(ChunkHolder.UNLOADED_LEVEL_CHUNK).left().orElse(null) : null;
|
||||
+ } else {
|
||||
+ return level.getChunk(chunkX, chunkZ);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * Returns a boolean that decides whether the chunk at {@param pos} in {@param level} is loaded.
|
||||
+ */
|
||||
+
|
||||
+ public static boolean isChunkLoaded(Level level, BlockPos pos) {
|
||||
+ return isChunkLoaded(level, pos.getX() >> 4, pos.getZ() >> 4);
|
||||
+ }
|
||||
+
|
||||
+ public static boolean isChunkLoaded(Level level, int chunkX, int chunkZ) {
|
||||
+ return level.isClientSide || isChunkLoaded(getChunkHolder(level, chunkX, chunkZ));
|
||||
+ }
|
||||
+
|
||||
+ private static boolean isChunkLoaded(ChunkHolder holder) {
|
||||
+ return holder != null && holder.getFullChunkFuture().getNow(ChunkHolder.UNLOADED_LEVEL_CHUNK).left().isPresent();
|
||||
+ }
|
||||
+
|
||||
+ public static boolean isTouchingUnloadedChunk(Level level, AABB box) {
|
||||
+ final int minX = Mth.floor(box.minX) >> 4;
|
||||
+ final int maxX = Mth.ceil(box.maxX) >> 4;
|
||||
+ final int minZ = Mth.floor(box.minZ) >> 4;
|
||||
+ final int maxZ = Mth.ceil(box.maxZ) >> 4;
|
||||
+
|
||||
+ for (int x = minX; x <= maxX; x++) {
|
||||
+ for (int z = minZ; z <= maxZ; z++) {
|
||||
+ if (!ChunkManager.isChunkLoaded(level, x, z)) {
|
||||
+ return true;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * Returns the ChunkHolder at chunk coordinate X / Z in {@param level} if the location is loaded.
|
||||
+ */
|
||||
+
|
||||
+ @Nullable
|
||||
+ private static ChunkHolder getChunkHolder(Level level, int chunkX, int chunkZ) {
|
||||
+ return level.getChunkSource() instanceof ServerChunkCache chunkCache ? chunkCache.getVisibleChunkIfPresent(ChunkPos.asLong(chunkX, chunkZ)) : null;
|
||||
+ }
|
||||
+}
|
||||
\ No newline at end of file
|
||||
Reference in New Issue
Block a user