mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-17 16:37:43 +01:00
Updated Upstream (Paper & Airplane)
Upstream has released updates that appear to apply and compile correctly Paper Changes: 3db3aaf39 [Auto] Updated Upstream (CraftBukkit) c953e51dd [Auto] Updated Upstream (CraftBukkit/Spigot) dc529c7a9 Fix PlayerEditBookEvent (#5463) 3fea87edb [Auto] Updated Upstream (CraftBukkit) a111b1365 Send post ChatEvent messages as MessageType.CHAT d15161114 [Auto] Updated Upstream (Spigot) e8889e96a [Auto] Updated Upstream (CraftBukkit) 3bc888ba6 [Auto] Updated Upstream (CraftBukkit) 211f8e041 Prevent light queue overfill when no players are online Airplane Changes: 3ed988c05 Use AIR library for configuration parsing
This commit is contained in:
2
Paper
2
Paper
Submodule Paper updated: 4b78c0b805...3db3aaf393
@@ -11404,7 +11404,7 @@ index 2f8bca35508640f6b8c312fff17d55f129431599..db8532c42fcb2e96f4b3491352d1b9a2
|
||||
class b extends ChunkMap {
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ChunkProviderServer.java b/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
|
||||
index e542fe5fb63064e67c7fde8fad614826d6f3344c..cb83f1152c52a99d25e4e80cc8bf18c6793e8b50 100644
|
||||
index c5e54c519e1f686761faa53b5e9579c514a65332..fe040615ff03478a20cdf8376f89a6b7d100ba61 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
|
||||
@@ -47,6 +47,12 @@ import net.minecraft.world.level.storage.WorldData;
|
||||
@@ -11800,7 +11800,7 @@ index e542fe5fb63064e67c7fde8fad614826d6f3344c..cb83f1152c52a99d25e4e80cc8bf18c6
|
||||
}
|
||||
|
||||
private void a(long i, Consumer<Chunk> consumer) {
|
||||
@@ -1026,51 +1237,19 @@ public class ChunkProviderServer extends IChunkProvider {
|
||||
@@ -1026,44 +1237,12 @@ public class ChunkProviderServer extends IChunkProvider {
|
||||
ChunkProviderServer.this.world.getMethodProfiler().c("runTask");
|
||||
super.executeTask(runnable);
|
||||
}
|
||||
@@ -11848,14 +11848,6 @@ index e542fe5fb63064e67c7fde8fad614826d6f3344c..cb83f1152c52a99d25e4e80cc8bf18c6
|
||||
// CraftBukkit start - process pending Chunk loadCallback() and unloadCallback() after each run task
|
||||
try {
|
||||
boolean execChunkTask = com.destroystokyo.paper.io.chunk.ChunkTaskManager.pollChunkWaitQueue() || ChunkProviderServer.this.world.asyncChunkTaskManager.pollNextChunkTask(); // Paper
|
||||
if (ChunkProviderServer.this.tickDistanceManager()) {
|
||||
return true;
|
||||
} else {
|
||||
- //ChunkProviderServer.this.lightEngine.queueUpdate(); // Paper - not needed
|
||||
+ ChunkProviderServer.this.lightEngine.queueUpdate(); // Paper - not needed // Tuinity - prevent queue overflow when no players are in this world
|
||||
return super.executeNext() || execChunkTask; // Paper
|
||||
}
|
||||
} finally {
|
||||
diff --git a/src/main/java/net/minecraft/server/level/EntityPlayer.java b/src/main/java/net/minecraft/server/level/EntityPlayer.java
|
||||
index 37c9b5fd712e30a9a0faccc840f738f4b2cfc723..59989db6dcf96a8ab5a75775bb588c31cec3418a 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/EntityPlayer.java
|
||||
@@ -12074,7 +12066,7 @@ index 37c9b5fd712e30a9a0faccc840f738f4b2cfc723..59989db6dcf96a8ab5a75775bb588c31
|
||||
public void broadcastCarriedItem() {
|
||||
if (!this.e) {
|
||||
diff --git a/src/main/java/net/minecraft/server/level/EntityTrackerEntry.java b/src/main/java/net/minecraft/server/level/EntityTrackerEntry.java
|
||||
index f65eb0168ed365e5c1b490c56ec84e3b7ff87c1d..a1512ee8422fa39a95e4f19c86fe71b77af54ca0 100644
|
||||
index 1df8fb8cb3fcf8201e1c5fa8ca13f7a9c632c379..67ca28463f5add7c18f7f16b918c3f36f8feeeda 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/EntityTrackerEntry.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/EntityTrackerEntry.java
|
||||
@@ -103,6 +103,7 @@ public class EntityTrackerEntry {
|
||||
@@ -12085,7 +12077,7 @@ index f65eb0168ed365e5c1b490c56ec84e3b7ff87c1d..a1512ee8422fa39a95e4f19c86fe71b7
|
||||
List<Entity> list = this.tracker.passengers; // Paper - do not copy list
|
||||
|
||||
if (!list.equals(this.p)) {
|
||||
@@ -185,7 +186,7 @@ public class EntityTrackerEntry {
|
||||
@@ -184,7 +185,7 @@ public class EntityTrackerEntry {
|
||||
// Paper end - remove allocation of Vec3D here
|
||||
boolean flag4 = k < -32768L || k > 32767L || l < -32768L || l > 32767L || i1 < -32768L || i1 > 32767L;
|
||||
|
||||
@@ -13680,7 +13672,7 @@ index 3c804c7b20a14ea6e510810e2be10c1cc89ff5c1..3738c51b5e673c439d88a7ef7f4614f3
|
||||
return new TicketType<>(s, comparator, 0L);
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java
|
||||
index 0a698a5a4a6502a488c9afb0ad97165e60030896..46f960b9276dced41deb8f741454b6cce5a81529 100644
|
||||
index ef9b08df58d9d28df6b8ade076d95bf7e5cb1b18..46baad407de5598ecb23fcbb9a3fb4ee82addb17 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/WorldServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/WorldServer.java
|
||||
@@ -168,12 +168,13 @@ import org.bukkit.event.server.MapInitializeEvent;
|
||||
@@ -14168,7 +14160,7 @@ index 0a698a5a4a6502a488c9afb0ad97165e60030896..46f960b9276dced41deb8f741454b6cc
|
||||
// CraftBukkit start
|
||||
@Override
|
||||
public TileEntity getTileEntity(BlockPosition pos, boolean validate) {
|
||||
@@ -432,6 +880,14 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
@@ -434,6 +882,14 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
|
||||
public void doTick(BooleanSupplier booleansupplier) {
|
||||
GameProfilerFiller gameprofilerfiller = this.getMethodProfiler();
|
||||
@@ -14183,7 +14175,7 @@ index 0a698a5a4a6502a488c9afb0ad97165e60030896..46f960b9276dced41deb8f741454b6cc
|
||||
|
||||
this.ticking = true;
|
||||
gameprofilerfiller.enter("world border");
|
||||
@@ -581,7 +1037,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
@@ -583,7 +1039,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
}
|
||||
timings.scheduledBlocks.stopTiming(); // Paper
|
||||
|
||||
@@ -14192,7 +14184,7 @@ index 0a698a5a4a6502a488c9afb0ad97165e60030896..46f960b9276dced41deb8f741454b6cc
|
||||
gameprofilerfiller.exitEnter("raid");
|
||||
this.timings.raids.startTiming(); // Paper - timings
|
||||
this.persistentRaid.a();
|
||||
@@ -590,7 +1046,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
@@ -592,7 +1048,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
timings.doSounds.startTiming(); // Spigot
|
||||
this.ak();
|
||||
timings.doSounds.stopTiming(); // Spigot
|
||||
@@ -14201,7 +14193,7 @@ index 0a698a5a4a6502a488c9afb0ad97165e60030896..46f960b9276dced41deb8f741454b6cc
|
||||
this.ticking = false;
|
||||
gameprofilerfiller.exitEnter("entities");
|
||||
boolean flag3 = true || !this.players.isEmpty() || !this.getForceLoadedChunks().isEmpty(); // CraftBukkit - this prevents entity cleanup, other issues on servers with no players
|
||||
@@ -606,13 +1062,12 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
@@ -608,13 +1064,12 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
}
|
||||
|
||||
this.tickingEntities = true;
|
||||
@@ -14217,7 +14209,7 @@ index 0a698a5a4a6502a488c9afb0ad97165e60030896..46f960b9276dced41deb8f741454b6cc
|
||||
Entity entity1 = entity.getVehicle();
|
||||
|
||||
/* CraftBukkit start - We prevent spawning in general, so this butchering is not needed
|
||||
@@ -628,6 +1083,15 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
@@ -630,6 +1085,15 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
gameprofilerfiller.enter("checkDespawn");
|
||||
if (!entity.dead) {
|
||||
entity.checkDespawn();
|
||||
@@ -14233,7 +14225,7 @@ index 0a698a5a4a6502a488c9afb0ad97165e60030896..46f960b9276dced41deb8f741454b6cc
|
||||
}
|
||||
|
||||
gameprofilerfiller.exit();
|
||||
@@ -648,14 +1112,22 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
@@ -650,14 +1114,22 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
gameprofilerfiller.enter("remove");
|
||||
if (entity.dead) {
|
||||
this.removeEntityFromChunk(entity);
|
||||
@@ -14257,7 +14249,7 @@ index 0a698a5a4a6502a488c9afb0ad97165e60030896..46f960b9276dced41deb8f741454b6cc
|
||||
this.tickingEntities = false;
|
||||
// Paper start
|
||||
for (java.lang.Runnable run : this.afterEntityTickingTasks) {
|
||||
@@ -667,7 +1139,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
@@ -669,7 +1141,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
}
|
||||
this.afterEntityTickingTasks.clear();
|
||||
// Paper end
|
||||
@@ -14266,7 +14258,7 @@ index 0a698a5a4a6502a488c9afb0ad97165e60030896..46f960b9276dced41deb8f741454b6cc
|
||||
|
||||
Entity entity2;
|
||||
|
||||
@@ -677,7 +1149,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
@@ -679,7 +1151,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
}
|
||||
|
||||
timings.tickEntities.stopTiming(); // Spigot
|
||||
@@ -14275,7 +14267,7 @@ index 0a698a5a4a6502a488c9afb0ad97165e60030896..46f960b9276dced41deb8f741454b6cc
|
||||
this.tickBlockEntities();
|
||||
}
|
||||
|
||||
@@ -724,6 +1196,9 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
@@ -726,6 +1198,9 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
private final BlockPosition.MutableBlockPosition chunkTickMutablePosition = new BlockPosition.MutableBlockPosition();
|
||||
private final com.destroystokyo.paper.util.math.ThreadUnsafeRandom randomTickRandom = new com.destroystokyo.paper.util.math.ThreadUnsafeRandom();
|
||||
// Paper end
|
||||
@@ -14285,7 +14277,7 @@ index 0a698a5a4a6502a488c9afb0ad97165e60030896..46f960b9276dced41deb8f741454b6cc
|
||||
|
||||
public void a(Chunk chunk, int i) { final int randomTickSpeed = i; // Paper
|
||||
ChunkCoordIntPair chunkcoordintpair = chunk.getPos();
|
||||
@@ -761,28 +1236,32 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
@@ -763,28 +1238,32 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
gameprofilerfiller.exitEnter("iceandsnow");
|
||||
if (!this.paperConfig.disableIceAndSnow && this.randomTickRandom.nextInt(16) == 0) { // Paper - Disable ice and snow // Paper - optimise random ticking
|
||||
// Paper start - optimise chunk ticking
|
||||
@@ -14322,16 +14314,7 @@ index 0a698a5a4a6502a488c9afb0ad97165e60030896..46f960b9276dced41deb8f741454b6cc
|
||||
chunk.getType(blockposition).getBlock().c((World) this, blockposition);
|
||||
// Paper end
|
||||
}
|
||||
@@ -828,7 +1307,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
}
|
||||
gameprofilerfiller.exit();
|
||||
timings.chunkTicksBlocks.stopTiming(); // Paper
|
||||
- getChunkProvider().getLightEngine().queueUpdate(); // Paper
|
||||
+ //getChunkProvider().getLightEngine().queueUpdate(); // Paper // Tuinity - no longer needed here, moved into task execution
|
||||
// Paper end
|
||||
}
|
||||
}
|
||||
@@ -923,7 +1402,26 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
@@ -924,7 +1403,26 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
|
||||
}
|
||||
|
||||
@@ -14358,7 +14341,7 @@ index 0a698a5a4a6502a488c9afb0ad97165e60030896..46f960b9276dced41deb8f741454b6cc
|
||||
if (!(entity instanceof EntityHuman) && !this.getChunkProvider().a(entity)) {
|
||||
this.chunkCheck(entity);
|
||||
} else {
|
||||
@@ -976,6 +1474,13 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
@@ -977,6 +1475,13 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
//} finally { timer.stopTiming(); } // Paper - timings - move up
|
||||
|
||||
}
|
||||
@@ -14372,7 +14355,7 @@ index 0a698a5a4a6502a488c9afb0ad97165e60030896..46f960b9276dced41deb8f741454b6cc
|
||||
}
|
||||
|
||||
public void a(Entity entity, Entity entity1) {
|
||||
@@ -1034,6 +1539,12 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
@@ -1035,6 +1540,12 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
int i = MathHelper.floor(entity.locX() / 16.0D);
|
||||
int j = Math.min(15, Math.max(0, MathHelper.floor(entity.locY() / 16.0D))); // Paper - stay consistent with chunk add/remove behavior
|
||||
int k = MathHelper.floor(entity.locZ() / 16.0D);
|
||||
@@ -14385,7 +14368,7 @@ index 0a698a5a4a6502a488c9afb0ad97165e60030896..46f960b9276dced41deb8f741454b6cc
|
||||
|
||||
if (!entity.inChunk || entity.chunkX != i || entity.chunkY != j || entity.chunkZ != k) {
|
||||
// Paper start - remove entity if its in a chunk more correctly.
|
||||
@@ -1043,6 +1554,12 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
@@ -1044,6 +1555,12 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
}
|
||||
// Paper end
|
||||
|
||||
@@ -14398,7 +14381,7 @@ index 0a698a5a4a6502a488c9afb0ad97165e60030896..46f960b9276dced41deb8f741454b6cc
|
||||
if (entity.inChunk && this.isChunkLoaded(entity.chunkX, entity.chunkZ)) {
|
||||
this.getChunkAt(entity.chunkX, entity.chunkZ).a(entity, entity.chunkY);
|
||||
}
|
||||
@@ -1054,8 +1571,41 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
@@ -1055,8 +1572,41 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
|
||||
entity.inChunk = false;
|
||||
} else {
|
||||
@@ -14441,7 +14424,7 @@ index 0a698a5a4a6502a488c9afb0ad97165e60030896..46f960b9276dced41deb8f741454b6cc
|
||||
}
|
||||
|
||||
this.getMethodProfiler().exit();
|
||||
@@ -1392,10 +1942,14 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
@@ -1393,10 +1943,14 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
// Spigot Start
|
||||
for (TileEntity tileentity : chunk.getTileEntities().values()) {
|
||||
if (tileentity instanceof net.minecraft.world.IInventory) {
|
||||
@@ -14457,7 +14440,7 @@ index 0a698a5a4a6502a488c9afb0ad97165e60030896..46f960b9276dced41deb8f741454b6cc
|
||||
}
|
||||
// Spigot End
|
||||
this.tileEntityListUnload.addAll(chunk.getTileEntities().values());
|
||||
@@ -1411,7 +1965,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
@@ -1412,7 +1966,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
Entity entity = (Entity) iterator.next();
|
||||
|
||||
if (!(entity instanceof EntityPlayer)) {
|
||||
@@ -14466,7 +14449,7 @@ index 0a698a5a4a6502a488c9afb0ad97165e60030896..46f960b9276dced41deb8f741454b6cc
|
||||
throw (IllegalStateException) SystemUtils.c((Throwable) (new IllegalStateException("Removing entity while ticking!")));
|
||||
}
|
||||
|
||||
@@ -1439,6 +1993,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
@@ -1440,6 +1994,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
|
||||
public void unregisterEntity(Entity entity) {
|
||||
org.spigotmc.AsyncCatcher.catchOp("entity unregister"); // Spigot
|
||||
@@ -14474,7 +14457,7 @@ index 0a698a5a4a6502a488c9afb0ad97165e60030896..46f960b9276dced41deb8f741454b6cc
|
||||
// Paper start - fix entity registration issues
|
||||
if (entity instanceof EntityComplexPart) {
|
||||
// Usually this is a no-op for complex parts, and ID's should be removed, but go ahead and remove it anyways
|
||||
@@ -1505,17 +2060,76 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
@@ -1506,17 +2061,76 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
this.getScoreboard().a(entity);
|
||||
// CraftBukkit start - SPIGOT-5278
|
||||
if (entity instanceof EntityDrowned) {
|
||||
@@ -14554,7 +14537,7 @@ index 0a698a5a4a6502a488c9afb0ad97165e60030896..46f960b9276dced41deb8f741454b6cc
|
||||
private void registerEntity(Entity entity) {
|
||||
org.spigotmc.AsyncCatcher.catchOp("entity register"); // Spigot
|
||||
// Paper start - don't double enqueue entity registration
|
||||
@@ -1526,7 +2140,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
@@ -1527,7 +2141,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
return;
|
||||
}
|
||||
// Paper end
|
||||
@@ -14563,7 +14546,7 @@ index 0a698a5a4a6502a488c9afb0ad97165e60030896..46f960b9276dced41deb8f741454b6cc
|
||||
if (!entity.isQueuedForRegister) { // Paper
|
||||
this.entitiesToAdd.add(entity);
|
||||
entity.isQueuedForRegister = true; // Paper
|
||||
@@ -1534,6 +2148,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
@@ -1535,6 +2149,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
} else {
|
||||
entity.isQueuedForRegister = false; // Paper
|
||||
this.entitiesById.put(entity.getId(), entity);
|
||||
@@ -14571,7 +14554,7 @@ index 0a698a5a4a6502a488c9afb0ad97165e60030896..46f960b9276dced41deb8f741454b6cc
|
||||
if (entity instanceof EntityEnderDragon) {
|
||||
EntityComplexPart[] aentitycomplexpart = ((EntityEnderDragon) entity).eJ();
|
||||
int i = aentitycomplexpart.length;
|
||||
@@ -1542,6 +2157,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
@@ -1543,6 +2158,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
EntityComplexPart entitycomplexpart = aentitycomplexpart[j];
|
||||
|
||||
this.entitiesById.put(entitycomplexpart.getId(), entitycomplexpart);
|
||||
@@ -14579,7 +14562,7 @@ index 0a698a5a4a6502a488c9afb0ad97165e60030896..46f960b9276dced41deb8f741454b6cc
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1566,12 +2182,16 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
@@ -1567,12 +2183,16 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
// this.getChunkProvider().addEntity(entity); // Paper - moved down below valid=true
|
||||
// CraftBukkit start - SPIGOT-5278
|
||||
if (entity instanceof EntityDrowned) {
|
||||
@@ -14599,7 +14582,7 @@ index 0a698a5a4a6502a488c9afb0ad97165e60030896..46f960b9276dced41deb8f741454b6cc
|
||||
}
|
||||
entity.valid = true; // CraftBukkit
|
||||
this.getChunkProvider().addEntity(entity); // Paper - from above to be below valid=true
|
||||
@@ -1587,7 +2207,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
@@ -1588,7 +2208,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
}
|
||||
|
||||
public void removeEntity(Entity entity) {
|
||||
@@ -14608,7 +14591,7 @@ index 0a698a5a4a6502a488c9afb0ad97165e60030896..46f960b9276dced41deb8f741454b6cc
|
||||
throw (IllegalStateException) SystemUtils.c((Throwable) (new IllegalStateException("Removing entity while ticking!")));
|
||||
} else {
|
||||
this.removeEntityFromChunk(entity);
|
||||
@@ -1683,20 +2303,33 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
@@ -1684,20 +2304,33 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
|
||||
@Override
|
||||
public void notify(BlockPosition blockposition, IBlockData iblockdata, IBlockData iblockdata1, int i) {
|
||||
@@ -14644,7 +14627,7 @@ index 0a698a5a4a6502a488c9afb0ad97165e60030896..46f960b9276dced41deb8f741454b6cc
|
||||
} catch (java.util.ConcurrentModificationException ex) {
|
||||
// This can happen because the pathfinder update below may trigger a chunk load, which in turn may cause more navigators to register
|
||||
// In this case we just run the update again across all the iterators as the chunk will then be loaded
|
||||
@@ -1710,6 +2343,9 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
@@ -1711,6 +2344,9 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
navigationabstract.b(blockposition);
|
||||
}
|
||||
}
|
||||
@@ -14668,7 +14651,7 @@ index 185667110cd6f566b23546728d20fc79223f3c92..dc98ef48a664d9ee2a302fff8c611fd1
|
||||
throw new IllegalStateException("Protocol error", cryptographyexception);
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
|
||||
index 4a3f6f26da0d99ee2ff6942c2ff7d0595b53b684..a5871955d487dbf6552d20e5559f2cb1427aeb3e 100644
|
||||
index e6ea84ba098b4d77bc68e99862992a10ef4585b5..40a7f69e5e14078977ef615abf3a0f1f61d76f9f 100644
|
||||
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
|
||||
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
|
||||
@@ -568,7 +568,9 @@ public class PlayerConnection implements PacketListenerPlayIn {
|
||||
@@ -14915,10 +14898,10 @@ index 2df8e914f66176e22aeddf8b94a83af5ea921d88..499b516330f3f3a48fb64802f2e8c1b7
|
||||
return;
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/players/UserCache.java b/src/main/java/net/minecraft/server/players/UserCache.java
|
||||
index 74b024a51f6c3ee88db730cbf97a24af66fa332b..66eee0998be2210042db8e6b537fa10a016a9c8a 100644
|
||||
index e813d4dd1a46734d16b42905808caa889811afcc..ee5c038c4ede294ec5b9b9b9f705ba46b6c7ac8c 100644
|
||||
--- a/src/main/java/net/minecraft/server/players/UserCache.java
|
||||
+++ b/src/main/java/net/minecraft/server/players/UserCache.java
|
||||
@@ -51,6 +51,11 @@ public class UserCache {
|
||||
@@ -52,6 +52,11 @@ public class UserCache {
|
||||
private final File g;
|
||||
private final AtomicLong h = new AtomicLong();
|
||||
|
||||
@@ -14930,7 +14913,7 @@ index 74b024a51f6c3ee88db730cbf97a24af66fa332b..66eee0998be2210042db8e6b537fa10a
|
||||
public UserCache(GameProfileRepository gameprofilerepository, File file) {
|
||||
this.e = gameprofilerepository;
|
||||
this.g = file;
|
||||
@@ -58,6 +63,7 @@ public class UserCache {
|
||||
@@ -59,6 +64,7 @@ public class UserCache {
|
||||
}
|
||||
|
||||
private void a(UserCache.UserCacheEntry usercache_usercacheentry) {
|
||||
@@ -14938,7 +14921,7 @@ index 74b024a51f6c3ee88db730cbf97a24af66fa332b..66eee0998be2210042db8e6b537fa10a
|
||||
GameProfile gameprofile = usercache_usercacheentry.a();
|
||||
|
||||
usercache_usercacheentry.a(this.d());
|
||||
@@ -72,6 +78,7 @@ public class UserCache {
|
||||
@@ -73,6 +79,7 @@ public class UserCache {
|
||||
if (uuid != null) {
|
||||
this.d.put(uuid, usercache_usercacheentry);
|
||||
}
|
||||
@@ -14946,7 +14929,7 @@ index 74b024a51f6c3ee88db730cbf97a24af66fa332b..66eee0998be2210042db8e6b537fa10a
|
||||
|
||||
}
|
||||
|
||||
@@ -109,7 +116,7 @@ public class UserCache {
|
||||
@@ -110,7 +117,7 @@ public class UserCache {
|
||||
}
|
||||
|
||||
public void saveProfile(GameProfile gameprofile) { a(gameprofile); } // Paper - OBFHELPER
|
||||
@@ -14955,7 +14938,7 @@ index 74b024a51f6c3ee88db730cbf97a24af66fa332b..66eee0998be2210042db8e6b537fa10a
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
|
||||
calendar.setTime(new Date());
|
||||
@@ -126,8 +133,9 @@ public class UserCache {
|
||||
@@ -127,8 +134,9 @@ public class UserCache {
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@@ -14966,7 +14949,7 @@ index 74b024a51f6c3ee88db730cbf97a24af66fa332b..66eee0998be2210042db8e6b537fa10a
|
||||
UserCache.UserCacheEntry usercache_usercacheentry = (UserCache.UserCacheEntry) this.c.get(s1);
|
||||
boolean flag = false;
|
||||
|
||||
@@ -141,10 +149,14 @@ public class UserCache {
|
||||
@@ -142,10 +150,14 @@ public class UserCache {
|
||||
GameProfile gameprofile;
|
||||
|
||||
if (usercache_usercacheentry != null) {
|
||||
@@ -14981,7 +14964,7 @@ index 74b024a51f6c3ee88db730cbf97a24af66fa332b..66eee0998be2210042db8e6b537fa10a
|
||||
if (gameprofile != null) {
|
||||
this.a(gameprofile);
|
||||
flag = false;
|
||||
@@ -156,6 +168,7 @@ public class UserCache {
|
||||
@@ -157,6 +169,7 @@ public class UserCache {
|
||||
}
|
||||
|
||||
return gameprofile;
|
||||
@@ -14989,7 +14972,7 @@ index 74b024a51f6c3ee88db730cbf97a24af66fa332b..66eee0998be2210042db8e6b537fa10a
|
||||
}
|
||||
|
||||
// Paper start
|
||||
@@ -290,7 +303,9 @@ public class UserCache {
|
||||
@@ -291,7 +304,9 @@ public class UserCache {
|
||||
}
|
||||
|
||||
private Stream<UserCache.UserCacheEntry> a(int i) {
|
||||
@@ -15490,7 +15473,7 @@ index 85f571a791bce63989890f277857bc7bdeec0cb5..9e4137768c7d8966759324a4b368330c
|
||||
double deltaZ = this.locZ() - player.locZ();
|
||||
double distanceSquared = deltaX * deltaX + deltaZ * deltaZ;
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
index b0ee9e98d5f1e56c8d82e90dd7761c8ef79cfb1c..561905be42428855a07a2e63aca80d5dd63b22bf 100644
|
||||
index 21341eeb8148be119fbc1dd370c1beaf70a319e0..d933323d57a2a7ff283408f12d4650699f8177e7 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
@@ -2973,7 +2973,11 @@ public abstract class EntityLiving extends Entity {
|
||||
@@ -16914,10 +16897,10 @@ index 24771c3522ea74ac12058591137eafc21adf3762..d497006f05f79015cd791849888832bb
|
||||
} else if (worldserver.getSpawn().a((IPosition) (new Vec3D((double) blockposition_mutableblockposition.getX() + 0.5D, (double) blockposition_mutableblockposition.getY(), (double) blockposition_mutableblockposition.getZ() + 0.5D)), 24.0D)) {
|
||||
return false;
|
||||
diff --git a/src/main/java/net/minecraft/world/level/StructureManager.java b/src/main/java/net/minecraft/world/level/StructureManager.java
|
||||
index 1077f988e16688f74c9e40d6da517c954cb06ecb..acacbf9617f99b97fc7fd2ba718775e1b3e429e9 100644
|
||||
index 07dcfd56af1014ad159828dd9ee2d89c2010b9f4..43418273f00f3703c7bd86586847d469af92c18f 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/StructureManager.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/StructureManager.java
|
||||
@@ -45,8 +45,13 @@ public class StructureManager {
|
||||
@@ -46,8 +46,13 @@ public class StructureManager {
|
||||
|
||||
// Paper start - remove structure streams
|
||||
public java.util.List<StructureStart<?>> getFeatureStarts(SectionPosition sectionPosition, StructureGenerator<?> structureGenerator) {
|
||||
@@ -16932,7 +16915,7 @@ index 1077f988e16688f74c9e40d6da517c954cb06ecb..acacbf9617f99b97fc7fd2ba718775e1
|
||||
SectionPosition sectionPosition1 = SectionPosition.a(new ChunkCoordIntPair(curLong), 0);
|
||||
StructureStart<?> structurestart = a(sectionPosition1, structureGenerator, getLevel().getChunkAt(sectionPosition1.a(), sectionPosition1.c(), ChunkStatus.STRUCTURE_STARTS));
|
||||
if (structurestart != null && structurestart.e()) {
|
||||
@@ -75,8 +80,12 @@ public class StructureManager {
|
||||
@@ -76,8 +81,12 @@ public class StructureManager {
|
||||
}
|
||||
|
||||
public StructureStart<?> a(BlockPosition blockposition, boolean flag, StructureGenerator<?> structuregenerator) {
|
||||
@@ -17340,10 +17323,10 @@ index 15096a9c2719b8b4c099f62d0a1c808e56b63a8e..9bbd175f7e20591bbefdbddcb5e998e7
|
||||
}
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBase.java b/src/main/java/net/minecraft/world/level/block/state/BlockBase.java
|
||||
index ac3709c8158d42ccafd457cfa44a16dc8c9eb949..0b852fa247c65cb1e889ad4e55886e256f89a763 100644
|
||||
index 3fdafc0ff0c4148ec844dbdc1455d17cdcb4a75a..6124b56d935386784371422960a07d518f848cf3 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/block/state/BlockBase.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/block/state/BlockBase.java
|
||||
@@ -347,21 +347,23 @@ public abstract class BlockBase {
|
||||
@@ -348,21 +348,23 @@ public abstract class BlockBase {
|
||||
|
||||
public abstract static class BlockData extends IBlockDataHolder<Block, IBlockData> {
|
||||
|
||||
@@ -17371,7 +17354,7 @@ index ac3709c8158d42ccafd457cfa44a16dc8c9eb949..0b852fa247c65cb1e889ad4e55886e25
|
||||
|
||||
protected BlockData(Block block, ImmutableMap<IBlockState<?>, Comparable<?>> immutablemap, MapCodec<IBlockData> mapcodec) {
|
||||
super(block, immutablemap, mapcodec);
|
||||
@@ -380,6 +382,7 @@ public abstract class BlockBase {
|
||||
@@ -381,6 +383,7 @@ public abstract class BlockBase {
|
||||
this.n = blockbase_info.s;
|
||||
this.o = blockbase_info.t;
|
||||
this.p = blockbase_info.u;
|
||||
@@ -17379,7 +17362,7 @@ index ac3709c8158d42ccafd457cfa44a16dc8c9eb949..0b852fa247c65cb1e889ad4e55886e25
|
||||
}
|
||||
// Paper start - impl cached craft block data, lazy load to fix issue with loading at the wrong time
|
||||
private org.bukkit.craftbukkit.block.data.CraftBlockData cachedCraftBlockData;
|
||||
@@ -395,12 +398,63 @@ public abstract class BlockBase {
|
||||
@@ -396,12 +399,63 @@ public abstract class BlockBase {
|
||||
protected Fluid fluid;
|
||||
// Paper end
|
||||
|
||||
@@ -17443,7 +17426,7 @@ index ac3709c8158d42ccafd457cfa44a16dc8c9eb949..0b852fa247c65cb1e889ad4e55886e25
|
||||
|
||||
}
|
||||
|
||||
@@ -424,10 +478,12 @@ public abstract class BlockBase {
|
||||
@@ -425,10 +479,12 @@ public abstract class BlockBase {
|
||||
return this.a != null ? this.a.g : this.getBlock().b(this.p(), iblockaccess, blockposition);
|
||||
}
|
||||
|
||||
@@ -17456,7 +17439,7 @@ index ac3709c8158d42ccafd457cfa44a16dc8c9eb949..0b852fa247c65cb1e889ad4e55886e25
|
||||
public VoxelShape a(IBlockAccess iblockaccess, BlockPosition blockposition, EnumDirection enumdirection) {
|
||||
return this.a != null && this.a.i != null ? this.a.i[enumdirection.ordinal()] : VoxelShapes.a(this.c(iblockaccess, blockposition), enumdirection);
|
||||
}
|
||||
@@ -437,7 +493,7 @@ public abstract class BlockBase {
|
||||
@@ -438,7 +494,7 @@ public abstract class BlockBase {
|
||||
}
|
||||
|
||||
public final boolean d() { // Paper
|
||||
@@ -17465,7 +17448,7 @@ index ac3709c8158d42ccafd457cfa44a16dc8c9eb949..0b852fa247c65cb1e889ad4e55886e25
|
||||
}
|
||||
|
||||
public final boolean e() { // Paper
|
||||
@@ -727,9 +783,9 @@ public abstract class BlockBase {
|
||||
@@ -728,9 +784,9 @@ public abstract class BlockBase {
|
||||
private static final int f = EnumBlockSupport.values().length;
|
||||
protected final boolean a;
|
||||
private final boolean g;
|
||||
@@ -18267,10 +18250,10 @@ index 43b8361e8ad0a8c429406cb6ff538020f670bdbd..bb63ed58e1eaeb474e99992e39d811b2
|
||||
|
||||
IBlockAccess getWorld();
|
||||
diff --git a/src/main/java/net/minecraft/world/level/chunk/NibbleArray.java b/src/main/java/net/minecraft/world/level/chunk/NibbleArray.java
|
||||
index 3a85a89be2a736e5b6b7f08032f4becd6bb39ed1..d32369d9a555fd7595df175e56f853ce8b012522 100644
|
||||
index 0fec15e141051863dbf51a2b3e1ace5028cd2fc1..d7757e60402be9939fc2d90ad79b2bb76c5249ca 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/chunk/NibbleArray.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/chunk/NibbleArray.java
|
||||
@@ -58,6 +58,7 @@ public class NibbleArray {
|
||||
@@ -59,6 +59,7 @@ public class NibbleArray {
|
||||
boolean poolSafe = false;
|
||||
public java.lang.Runnable cleaner;
|
||||
private void registerCleaner() {
|
||||
@@ -18278,7 +18261,7 @@ index 3a85a89be2a736e5b6b7f08032f4becd6bb39ed1..d32369d9a555fd7595df175e56f853ce
|
||||
if (!poolSafe) {
|
||||
cleaner = MCUtil.registerCleaner(this, this.a, NibbleArray::releaseBytes);
|
||||
} else {
|
||||
@@ -65,7 +66,7 @@ public class NibbleArray {
|
||||
@@ -66,7 +67,7 @@ public class NibbleArray {
|
||||
}
|
||||
}
|
||||
// Paper end
|
||||
@@ -18287,7 +18270,7 @@ index 3a85a89be2a736e5b6b7f08032f4becd6bb39ed1..d32369d9a555fd7595df175e56f853ce
|
||||
|
||||
|
||||
public NibbleArray() {}
|
||||
@@ -76,7 +77,7 @@ public class NibbleArray {
|
||||
@@ -77,7 +78,7 @@ public class NibbleArray {
|
||||
}
|
||||
public NibbleArray(byte[] abyte, boolean isSafe) {
|
||||
this.a = abyte;
|
||||
@@ -18296,7 +18279,7 @@ index 3a85a89be2a736e5b6b7f08032f4becd6bb39ed1..d32369d9a555fd7595df175e56f853ce
|
||||
registerCleaner();
|
||||
// Paper end
|
||||
if (abyte.length != 2048) {
|
||||
@@ -164,7 +165,7 @@ public class NibbleArray {
|
||||
@@ -165,7 +166,7 @@ public class NibbleArray {
|
||||
|
||||
public NibbleArray copy() { return this.b(); } // Paper - OBFHELPER
|
||||
public NibbleArray b() {
|
||||
@@ -18645,10 +18628,10 @@ index 890362d28ab9cb760c73fe5014e144fb08ada6b8..3c532d3996dfc734ec07181701280b60
|
||||
// Paper - nuke IOWorker
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java
|
||||
index 4999ba61fb04713ffe3d23c556f732dc4abbf0bc..0bba434d29b09d7d164f5ca4f49cd660bec66927 100644
|
||||
index 1b0535ba211904b2384cc80c02c21ed1a606e752..7cdac33e153ccba0a7e8b5aa8fbcbb58ade6a9d2 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java
|
||||
@@ -5,6 +5,7 @@ import java.io.BufferedInputStream;
|
||||
@@ -6,6 +6,7 @@ import java.io.BufferedInputStream;
|
||||
import java.io.BufferedOutputStream;
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
@@ -18656,7 +18639,7 @@ index 4999ba61fb04713ffe3d23c556f732dc4abbf0bc..0bba434d29b09d7d164f5ca4f49cd660
|
||||
import java.io.DataInputStream;
|
||||
import java.io.DataOutputStream;
|
||||
import java.io.File;
|
||||
@@ -35,15 +36,350 @@ public class RegionFile implements AutoCloseable {
|
||||
@@ -36,15 +37,350 @@ public class RegionFile implements AutoCloseable {
|
||||
private static final Logger LOGGER = LogManager.getLogger();
|
||||
private static final ByteBuffer c = ByteBuffer.allocateDirect(1);
|
||||
private final FileChannel dataFile;
|
||||
@@ -19011,7 +18994,7 @@ index 4999ba61fb04713ffe3d23c556f732dc4abbf0bc..0bba434d29b09d7d164f5ca4f49cd660
|
||||
public final java.util.concurrent.locks.ReentrantLock fileLock = new java.util.concurrent.locks.ReentrantLock(true); // Paper
|
||||
|
||||
// Paper start - Cache chunk status
|
||||
@@ -71,10 +407,21 @@ public class RegionFile implements AutoCloseable {
|
||||
@@ -72,10 +408,21 @@ public class RegionFile implements AutoCloseable {
|
||||
// Paper end
|
||||
|
||||
public RegionFile(File file, File file1, boolean flag) throws IOException {
|
||||
@@ -19033,7 +19016,7 @@ index 4999ba61fb04713ffe3d23c556f732dc4abbf0bc..0bba434d29b09d7d164f5ca4f49cd660
|
||||
this.g = ByteBuffer.allocateDirect(8192);
|
||||
this.file = path.toFile(); // Paper
|
||||
initOversizedState(); // Paper
|
||||
@@ -103,14 +450,16 @@ public class RegionFile implements AutoCloseable {
|
||||
@@ -104,14 +451,16 @@ public class RegionFile implements AutoCloseable {
|
||||
RegionFile.LOGGER.warn("Region file {} has truncated header: {}", path, i);
|
||||
}
|
||||
|
||||
@@ -19054,7 +19037,7 @@ index 4999ba61fb04713ffe3d23c556f732dc4abbf0bc..0bba434d29b09d7d164f5ca4f49cd660
|
||||
// Spigot start
|
||||
if (j1 == 255) {
|
||||
// We're maxed out, so we need to read the proper length from the section
|
||||
@@ -118,33 +467,105 @@ public class RegionFile implements AutoCloseable {
|
||||
@@ -119,33 +468,105 @@ public class RegionFile implements AutoCloseable {
|
||||
this.dataFile.read(realLen, i1 * 4096);
|
||||
j1 = (realLen.getInt(0) + 4) / 4096 + 1;
|
||||
}
|
||||
@@ -19166,8 +19149,8 @@ index 4999ba61fb04713ffe3d23c556f732dc4abbf0bc..0bba434d29b09d7d164f5ca4f49cd660
|
||||
@Nullable public synchronized DataInputStream getReadStream(ChunkCoordIntPair chunkCoordIntPair) throws IOException { return a(chunkCoordIntPair);} // Paper - OBFHELPER
|
||||
@Nullable
|
||||
public synchronized DataInputStream a(ChunkCoordIntPair chunkcoordintpair) throws IOException {
|
||||
@@ -169,6 +590,12 @@ public class RegionFile implements AutoCloseable {
|
||||
((java.nio.Buffer) bytebuffer).flip();
|
||||
@@ -170,6 +591,12 @@ public class RegionFile implements AutoCloseable {
|
||||
((java.nio.Buffer) bytebuffer).flip(); // CraftBukkit - decompile error
|
||||
if (bytebuffer.remaining() < 5) {
|
||||
RegionFile.LOGGER.error("Chunk {} header is truncated: expected {} but read {}", chunkcoordintpair, l, bytebuffer.remaining());
|
||||
+ // Tuinity start - recalculate header on regionfile corruption
|
||||
@@ -19179,7 +19162,7 @@ index 4999ba61fb04713ffe3d23c556f732dc4abbf0bc..0bba434d29b09d7d164f5ca4f49cd660
|
||||
return null;
|
||||
} else {
|
||||
int i1 = bytebuffer.getInt();
|
||||
@@ -176,6 +603,12 @@ public class RegionFile implements AutoCloseable {
|
||||
@@ -177,6 +604,12 @@ public class RegionFile implements AutoCloseable {
|
||||
|
||||
if (i1 == 0) {
|
||||
RegionFile.LOGGER.warn("Chunk {} is allocated, but stream is missing", chunkcoordintpair);
|
||||
@@ -19192,7 +19175,7 @@ index 4999ba61fb04713ffe3d23c556f732dc4abbf0bc..0bba434d29b09d7d164f5ca4f49cd660
|
||||
return null;
|
||||
} else {
|
||||
int j1 = i1 - 1;
|
||||
@@ -183,17 +616,49 @@ public class RegionFile implements AutoCloseable {
|
||||
@@ -184,17 +617,49 @@ public class RegionFile implements AutoCloseable {
|
||||
if (a(b0)) {
|
||||
if (j1 != 0) {
|
||||
RegionFile.LOGGER.warn("Chunk has both internal and external streams");
|
||||
@@ -19244,7 +19227,7 @@ index 4999ba61fb04713ffe3d23c556f732dc4abbf0bc..0bba434d29b09d7d164f5ca4f49cd660
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -353,10 +818,15 @@ public class RegionFile implements AutoCloseable {
|
||||
@@ -354,10 +819,15 @@ public class RegionFile implements AutoCloseable {
|
||||
}
|
||||
|
||||
private ByteBuffer b() {
|
||||
@@ -19258,16 +19241,16 @@ index 4999ba61fb04713ffe3d23c556f732dc4abbf0bc..0bba434d29b09d7d164f5ca4f49cd660
|
||||
bytebuffer.putInt(1);
|
||||
- bytebuffer.put((byte) (this.f.a() | 128));
|
||||
+ bytebuffer.put((byte) (compressionType.compressionTypeId() | 128)); // Tuinity - replace with compressionType
|
||||
((java.nio.Buffer) bytebuffer).flip();
|
||||
((java.nio.Buffer) bytebuffer).flip(); // CraftBukkit - decompile error
|
||||
return bytebuffer;
|
||||
}
|
||||
@@ -393,6 +863,7 @@ public class RegionFile implements AutoCloseable {
|
||||
@@ -394,6 +864,7 @@ public class RegionFile implements AutoCloseable {
|
||||
};
|
||||
}
|
||||
|
||||
+ private final void flushHeader() throws IOException { this.b(); } // Tuinity - OBFHELPER
|
||||
+ private final void flushHeader() throws IOException { this.c(); } // Tuinity - OBFHELPER
|
||||
private void c() throws IOException {
|
||||
((java.nio.Buffer) this.g).position(0);
|
||||
((java.nio.Buffer) this.g).position(0); // CraftBukkit - decompile error
|
||||
this.dataFile.write(this.g, 0L);
|
||||
diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileBitSet.java b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileBitSet.java
|
||||
index c96eac4b0b519b2807153fa5a8ebf5a020a2b140..b5c8d9b17c2d5e229db5b48448709194d1fc04f8 100644
|
||||
|
||||
@@ -626,7 +626,7 @@ copy of the Program in return for a fee.
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
diff --git a/pom.xml b/pom.xml
|
||||
index dad9981b1cd1ca8b27a45972188fd2b92f5146e7..fc2c3714b6c772d67e258be269aa92dda80cdb12 100644
|
||||
index dad9981b1cd1ca8b27a45972188fd2b92f5146e7..2071c1f39cdf954c7dc15afcabab58cf2e340e68 100644
|
||||
--- a/pom.xml
|
||||
+++ b/pom.xml
|
||||
@@ -27,8 +27,8 @@
|
||||
@@ -640,10 +640,17 @@ index dad9981b1cd1ca8b27a45972188fd2b92f5146e7..fc2c3714b6c772d67e258be269aa92dd
|
||||
<version>${project.version}</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
@@ -159,8 +159,23 @@
|
||||
@@ -159,6 +159,20 @@
|
||||
<version>1.1.0-SNAPSHOT</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
+ <!-- Airplane Config -->
|
||||
+ <dependency>
|
||||
+ <groupId>com.github.technove</groupId>
|
||||
+ <artifactId>AIR</artifactId>
|
||||
+ <version>fe3dbb4420</version>
|
||||
+ <scope>compile</scope>
|
||||
+ </dependency>
|
||||
+ <!-- Airplane - Flare -->
|
||||
+ <dependency>
|
||||
+ <groupId>com.github.technove</groupId>
|
||||
@@ -653,17 +660,7 @@ index dad9981b1cd1ca8b27a45972188fd2b92f5146e7..fc2c3714b6c772d67e258be269aa92dd
|
||||
+ </dependency>
|
||||
</dependencies>
|
||||
|
||||
+ <repositories>
|
||||
+ <!-- Airplane - Flare -->
|
||||
+ <repository>
|
||||
+ <id>jitpack.io</id>
|
||||
+ <url>https://jitpack.io</url>
|
||||
+ </repository>
|
||||
+ </repositories>
|
||||
+
|
||||
<!-- This builds a completely 'ready to start' jar with all dependencies inside -->
|
||||
<build>
|
||||
<finalName>tuinity-${minecraft.version}</finalName>
|
||||
diff --git a/src/main/java/com/destroystokyo/paper/Metrics.java b/src/main/java/com/destroystokyo/paper/Metrics.java
|
||||
index 52c0ab1ce46e1f3233ef746d9bc699356fa9fae4..b480bd3044370b8eb733166f0c4b737344475993 100644
|
||||
--- a/src/main/java/com/destroystokyo/paper/Metrics.java
|
||||
@@ -723,12 +720,14 @@ index 7063f1da3654b382e26b0093ad5d0ff04a2b38c2..b9c5479e5561f8fe68ea8f94fbf4e64d
|
||||
return history != null ? TextComponent.ofChildren(updateMessage, Component.newline(), history) : updateMessage;
|
||||
diff --git a/src/main/java/gg/airplane/AirplaneCommand.java b/src/main/java/gg/airplane/AirplaneCommand.java
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..1fa9b40e2f89272fa8bc9d927a9a852b5eb0db22
|
||||
index 0000000000000000000000000000000000000000..89c89e633f14b5820147e734b1b7ad8cadfdce80
|
||||
--- /dev/null
|
||||
+++ b/src/main/java/gg/airplane/AirplaneCommand.java
|
||||
@@ -0,0 +1,56 @@
|
||||
@@ -0,0 +1,65 @@
|
||||
+package gg.airplane;
|
||||
+
|
||||
+import net.kyori.adventure.text.Component;
|
||||
+import net.kyori.adventure.text.format.NamedTextColor;
|
||||
+import net.md_5.bungee.api.ChatColor;
|
||||
+import net.minecraft.server.MinecraftServer;
|
||||
+import org.bukkit.Bukkit;
|
||||
@@ -736,6 +735,7 @@ index 0000000000000000000000000000000000000000..1fa9b40e2f89272fa8bc9d927a9a852b
|
||||
+import org.bukkit.command.Command;
|
||||
+import org.bukkit.command.CommandSender;
|
||||
+
|
||||
+import java.io.IOException;
|
||||
+import java.util.Collections;
|
||||
+import java.util.List;
|
||||
+import java.util.stream.Collectors;
|
||||
@@ -772,7 +772,13 @@ index 0000000000000000000000000000000000000000..1fa9b40e2f89272fa8bc9d927a9a852b
|
||||
+
|
||||
+ if (args[0].equalsIgnoreCase("reload")) {
|
||||
+ MinecraftServer console = MinecraftServer.getServer();
|
||||
+ AirplaneConfig.load();
|
||||
+ try {
|
||||
+ AirplaneConfig.load();
|
||||
+ } catch (IOException e) {
|
||||
+ sender.sendMessage(Component.text("Failed to reload.", NamedTextColor.RED));
|
||||
+ e.printStackTrace();
|
||||
+ return true;
|
||||
+ }
|
||||
+ console.server.reloadCount++;
|
||||
+
|
||||
+ Command.broadcastCommandMessage(sender, prefix + "Airplane configuration has been reloaded.");
|
||||
@@ -785,37 +791,42 @@ index 0000000000000000000000000000000000000000..1fa9b40e2f89272fa8bc9d927a9a852b
|
||||
+}
|
||||
diff --git a/src/main/java/gg/airplane/AirplaneConfig.java b/src/main/java/gg/airplane/AirplaneConfig.java
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..39ef53c9dd49d5951103777002f866a64a252bfd
|
||||
index 0000000000000000000000000000000000000000..a77e628518920e84b03a8a00e1308a9a53a00896
|
||||
--- /dev/null
|
||||
+++ b/src/main/java/gg/airplane/AirplaneConfig.java
|
||||
@@ -0,0 +1,94 @@
|
||||
@@ -0,0 +1,99 @@
|
||||
+package gg.airplane;
|
||||
+
|
||||
+import gg.airplane.manual.ManualParser;
|
||||
+import co.technove.air.AIR;
|
||||
+import net.minecraft.server.MinecraftServer;
|
||||
+import org.apache.logging.log4j.Level;
|
||||
+
|
||||
+import java.io.File;
|
||||
+import java.io.FileInputStream;
|
||||
+import java.io.FileOutputStream;
|
||||
+import java.io.IOException;
|
||||
+import java.lang.reflect.Method;
|
||||
+import java.lang.reflect.Modifier;
|
||||
+
|
||||
+public class AirplaneConfig {
|
||||
+
|
||||
+ private static ManualParser manual;
|
||||
+ private static AIR config;
|
||||
+
|
||||
+ public static void load() {
|
||||
+ try {
|
||||
+ manual = new ManualParser(new File("airplane.air"));
|
||||
+ } catch (IOException e) {
|
||||
+ e.printStackTrace();
|
||||
+ public static void load() throws IOException {
|
||||
+ File configFile = new File("airplane.air");
|
||||
+ if (configFile.exists()) {
|
||||
+ try (FileInputStream inputStream = new FileInputStream(configFile)) {
|
||||
+ config = new AIR(inputStream);
|
||||
+ }
|
||||
+ } else {
|
||||
+ config = new AIR();
|
||||
+ }
|
||||
+
|
||||
+ manual.get("info.version", "1.0");
|
||||
+ manual.setComment("info",
|
||||
+ config.setComment("info",
|
||||
+ "Airplane Configuration",
|
||||
+ "Read https://blog.airplane.gg/ to find out more about Airplane",
|
||||
+ "Join our Discord to receive support & optimization help: https://discord.gg/3gtc45q");
|
||||
+ config.getString("info.version", "1.0");
|
||||
+
|
||||
+ for (Method method : AirplaneConfig.class.getDeclaredMethods()) {
|
||||
+ if (Modifier.isStatic(method.getModifiers()) && Modifier.isPrivate(method.getModifiers())) {
|
||||
@@ -828,10 +839,8 @@ index 0000000000000000000000000000000000000000..39ef53c9dd49d5951103777002f866a6
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ try {
|
||||
+ manual.save();
|
||||
+ } catch (IOException e) {
|
||||
+ e.printStackTrace();
|
||||
+ try (FileOutputStream outputStream = new FileOutputStream(configFile)) {
|
||||
+ config.save(outputStream);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
@@ -843,45 +852,47 @@ index 0000000000000000000000000000000000000000..39ef53c9dd49d5951103777002f866a6
|
||||
+ public static boolean dynamicHoglinBehavior = true;
|
||||
+
|
||||
+ private static void dynamicActivationRange() {
|
||||
+ manual.setComment("activation-range", "Optimizes how entities act when", "they're far away from the player");
|
||||
+ config.setComment("activation-range", "Optimizes how entities act when", "they're far away from the player");
|
||||
+
|
||||
+ maximumActivationPrio = manual.get("activation-range.max-tick-freq", maximumActivationPrio,
|
||||
+ maximumActivationPrio = config.getInt("activation-range.max-tick-freq", maximumActivationPrio,
|
||||
+ "This value defines how often in ticks, the furthest entity",
|
||||
+ "will get their pathfinders and behaviors ticked. 20 = 1s");
|
||||
+ activationDistanceMod = manual.get("activation-range.activation-dist-mod", activationDistanceMod,
|
||||
+ activationDistanceMod = config.getInt("activation-range.activation-dist-mod", activationDistanceMod,
|
||||
+ "This value defines how much distance modifies an entity's",
|
||||
+ "tick frequency. freq = (distanceToPlayer^2) / (2^value)",
|
||||
+ "If you want further away entities to tick less often, use 8.",
|
||||
+ "If you want further away entities to tick more often, try 10.");
|
||||
+
|
||||
+ manual.setComment("behavior-activation", "A list of entities to use the dynamic activation range", "to modify how often their behaviors are ticked");
|
||||
+ dynamicVillagerBehavior = manual.get("behavior-activation.villager", dynamicVillagerBehavior);
|
||||
+ dynamicPiglinBehavior = manual.get("behavior-activation.piglin", dynamicPiglinBehavior);
|
||||
+ dynamicHoglinBehavior = manual.get("behavior-activation.hoglin", dynamicHoglinBehavior);
|
||||
+ config.setComment("behavior-activation", "A list of entities to use the dynamic activation range", "to modify how often their behaviors are ticked");
|
||||
+
|
||||
+ dynamicVillagerBehavior = config.getBoolean("behavior-activation.villager", dynamicVillagerBehavior);
|
||||
+ dynamicPiglinBehavior = config.getBoolean("behavior-activation.piglin", dynamicPiglinBehavior);
|
||||
+ dynamicHoglinBehavior = config.getBoolean("behavior-activation.hoglin", dynamicHoglinBehavior);
|
||||
+ }
|
||||
+
|
||||
+
|
||||
+ public static String profileWebUrl = "https://flare.airplane.gg";
|
||||
+
|
||||
+ private static void profilerOptions() {
|
||||
+ manual.setComment("flare", "Configures Flare, the built-in profiler");
|
||||
+ config.setComment("flare", "Configures Flare, the built-in profiler");
|
||||
+
|
||||
+ profileWebUrl = manual.get("flare.url", profileWebUrl, "Sets the server to use for profiles.");
|
||||
+ profileWebUrl = config.getString("flare.url", profileWebUrl, "Sets the server to use for profiles.");
|
||||
+ }
|
||||
+
|
||||
+
|
||||
+ public static String accessToken = "";
|
||||
+
|
||||
+ private static void airplaneWebServices() {
|
||||
+ manual.setComment("web-services", "Options for connecting to Airplane's online utilities");
|
||||
+ config.setComment("web-services", "Options for connecting to Airplane's online utilities");
|
||||
+
|
||||
+ accessToken = manual.get("web-services.token", "");
|
||||
+ accessToken = config.getString("web-services.token", "");
|
||||
+ // todo lookup token (off-thread) and let users know if their token is valid
|
||||
+ if (accessToken.length() > 0) {
|
||||
+ gg.airplane.flare.FlareSetup.init(); // Airplane
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+
|
||||
+}
|
||||
diff --git a/src/main/java/gg/airplane/AirplaneLogger.java b/src/main/java/gg/airplane/AirplaneLogger.java
|
||||
new file mode 100644
|
||||
@@ -1385,222 +1396,6 @@ index 0000000000000000000000000000000000000000..86d6650d174a7794a7ebe793cad033b4
|
||||
+ }
|
||||
+
|
||||
+}
|
||||
diff --git a/src/main/java/gg/airplane/manual/ManualParser.java b/src/main/java/gg/airplane/manual/ManualParser.java
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..ace29adb0f140d99a8d85ac824654beded4bf5b8
|
||||
--- /dev/null
|
||||
+++ b/src/main/java/gg/airplane/manual/ManualParser.java
|
||||
@@ -0,0 +1,210 @@
|
||||
+package gg.airplane.manual;
|
||||
+
|
||||
+import java.io.BufferedReader;
|
||||
+import java.io.BufferedWriter;
|
||||
+import java.io.File;
|
||||
+import java.io.FileReader;
|
||||
+import java.io.FileWriter;
|
||||
+import java.io.IOException;
|
||||
+import java.util.ArrayList;
|
||||
+import java.util.Arrays;
|
||||
+import java.util.LinkedHashMap;
|
||||
+import java.util.List;
|
||||
+import java.util.Map;
|
||||
+import java.util.TreeMap;
|
||||
+
|
||||
+// todo make this cleaner and more ergonomic to use
|
||||
+// also probably needs lists eventually
|
||||
+public class ManualParser {
|
||||
+
|
||||
+ private final File file;
|
||||
+ private final Map<String, Section> sections = new LinkedHashMap<>();
|
||||
+
|
||||
+ private static class ManualObject {
|
||||
+ public final String key;
|
||||
+ public final List<String> comments;
|
||||
+
|
||||
+ private ManualObject(String key, List<String> comments) {
|
||||
+ this.key = key;
|
||||
+ this.comments = comments == null ? new ArrayList<>() : comments;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ private static class Section extends ManualObject {
|
||||
+ public final Map<String, Value> values;
|
||||
+
|
||||
+ private Section(String key, List<String> comments) {
|
||||
+ super(key, comments);
|
||||
+ this.values = new LinkedHashMap<>();
|
||||
+ }
|
||||
+
|
||||
+ public void add(String key, Value value) {
|
||||
+ this.values.put(key, value);
|
||||
+ value.parent = this;
|
||||
+ }
|
||||
+
|
||||
+ public Value get(String key) {
|
||||
+ return this.values.computeIfAbsent(key, k -> {
|
||||
+ Value value = new Value(k, null, null);
|
||||
+ value.parent = this;
|
||||
+ return value;
|
||||
+ });
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ private static class Value extends ManualObject {
|
||||
+ public Object value;
|
||||
+ public Section parent;
|
||||
+
|
||||
+ private Value(String key, Object value, List<String> comments) {
|
||||
+ super(key, comments);
|
||||
+ this.value = value;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ public ManualParser(File file) throws IOException {
|
||||
+ this.file = file;
|
||||
+
|
||||
+ if (!file.exists()) {
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ try (BufferedReader reader = new BufferedReader(new FileReader(file))) {
|
||||
+ Section currentSection = null;
|
||||
+ List<String> currentComment = new ArrayList<>();
|
||||
+
|
||||
+ String line;
|
||||
+ while ((line = reader.readLine()) != null) {
|
||||
+ line = line.trim();
|
||||
+
|
||||
+ if (line.length() == 0) {
|
||||
+ continue; // empty line
|
||||
+ }
|
||||
+
|
||||
+ if (line.startsWith("#")) {
|
||||
+ currentComment.add(line.substring(1).trim());
|
||||
+ } else if (line.startsWith("[")) {
|
||||
+ if (!line.endsWith("]")) {
|
||||
+ throw new IllegalArgumentException("Invalid configuration, section '" + line + "' does not end with ]");
|
||||
+ }
|
||||
+ if (line.length() < 3) {
|
||||
+ throw new IllegalArgumentException("Invalid configuration, section '" + line + "' does not have a name");
|
||||
+ }
|
||||
+ String sectionName = line.substring(1, line.length() - 1);
|
||||
+ Section newSection = new Section(sectionName, currentComment);
|
||||
+ currentComment = new ArrayList<>();
|
||||
+ currentSection = newSection;
|
||||
+ this.sections.put(sectionName, newSection);
|
||||
+ } else {
|
||||
+ if (currentSection == null) {
|
||||
+ throw new IllegalArgumentException("Invalid configuration, found value outside of section " + line);
|
||||
+ }
|
||||
+ int equals = line.indexOf("=");
|
||||
+ if (equals <= 1 || equals == line.length() - 1) {
|
||||
+ throw new IllegalArgumentException("Invalid configuration, assignment invalid " + line);
|
||||
+ }
|
||||
+
|
||||
+ String key = line.substring(0, equals).trim();
|
||||
+
|
||||
+ String value = line.substring(equals + 1).trim();
|
||||
+ if (value.length() == 0) {
|
||||
+ throw new IllegalArgumentException("Invalid configuration, value does not exist " + line);
|
||||
+ }
|
||||
+ if (value.startsWith("\"")) {
|
||||
+ if (!value.endsWith("\"")) {
|
||||
+ throw new IllegalArgumentException("Invalid configuration, value has no ending quote " + line);
|
||||
+ }
|
||||
+ String stringValue = value.substring(1, value.length() - 1);
|
||||
+ currentSection.add(key, new Value(key, stringValue, currentComment));
|
||||
+ } else if (Character.isDigit(value.charAt(0))) {
|
||||
+ if (value.contains(".")) {
|
||||
+ double doubleValue = Double.parseDouble(value);
|
||||
+ currentSection.add(key, new Value(key, doubleValue, currentComment));
|
||||
+ } else {
|
||||
+ int intValue = Integer.parseInt(value);
|
||||
+ currentSection.add(key, new Value(key, intValue, currentComment));
|
||||
+ }
|
||||
+ } else if (value.equals("true") || value.equals("false")) {
|
||||
+ boolean boolValue = Boolean.parseBoolean(value);
|
||||
+ currentSection.add(key, new Value(key, boolValue, currentComment));
|
||||
+ } else {
|
||||
+ throw new IllegalArgumentException("Invalid configuration, unknown type for " + line);
|
||||
+ }
|
||||
+ currentComment = new ArrayList<>();
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ public void save() throws IOException {
|
||||
+ try (BufferedWriter writer = new BufferedWriter(new FileWriter(this.file))) {
|
||||
+ for (Map.Entry<String, Section> entry : this.sections.entrySet()) {
|
||||
+ Section section = entry.getValue();
|
||||
+ if (section.comments != null) {
|
||||
+ for (String comment : section.comments) {
|
||||
+ writer.write("# " + comment + "\n");
|
||||
+ }
|
||||
+ }
|
||||
+ writer.write("[" + section.key + "]" + "\n");
|
||||
+ for (Value value : section.values.values()) {
|
||||
+ if (value.comments != null) {
|
||||
+ for (String comment : value.comments) {
|
||||
+ writer.write(" # " + comment + "\n");
|
||||
+ }
|
||||
+ }
|
||||
+ writer.write(" " + value.key + " = " + serialize(value.value) + "\n");
|
||||
+ }
|
||||
+ writer.write("\n");
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ private ManualObject getObject(String key) {
|
||||
+ String[] split = key.split("\\.", 2);
|
||||
+ if (split.length == 1) {
|
||||
+ return this.sections.computeIfAbsent(key, k -> new Section(k, null));
|
||||
+ }
|
||||
+ return this.sections.computeIfAbsent(split[0], k -> new Section(k, null)).get(split[1]);
|
||||
+ }
|
||||
+
|
||||
+ public void setComment(String key, String... comment) {
|
||||
+ ManualObject object = this.getObject(key);
|
||||
+ object.comments.clear();
|
||||
+ object.comments.addAll(Arrays.asList(comment));
|
||||
+ }
|
||||
+
|
||||
+ public <T> T get(String key, T defaultValue, String... comment) {
|
||||
+ String[] split = key.split("\\.", 2);
|
||||
+ if (split.length == 1) {
|
||||
+ throw new IllegalArgumentException("Key " + key + " does not include section");
|
||||
+ }
|
||||
+ Section section = this.sections.computeIfAbsent(split[0], k -> new Section(k, null));
|
||||
+ if (!section.values.containsKey(split[1])) {
|
||||
+ Value value = section.get(split[1]);
|
||||
+ value.value = defaultValue;
|
||||
+ value.comments.addAll(Arrays.asList(comment));
|
||||
+ return defaultValue;
|
||||
+ }
|
||||
+ Value value = section.get(split[1]);
|
||||
+ if (value.comments.isEmpty()) {
|
||||
+ value.comments.addAll(Arrays.asList(comment));
|
||||
+ }
|
||||
+ return (T) value.value;
|
||||
+ }
|
||||
+
|
||||
+ public void set(String key, Object value) {
|
||||
+ ManualObject object = getObject(key);
|
||||
+ if (!(object instanceof Value)) {
|
||||
+ throw new IllegalArgumentException("Invalid key for value " + key);
|
||||
+ }
|
||||
+ ((Value) object).value = value;
|
||||
+ }
|
||||
+
|
||||
+ private String serialize(Object object) {
|
||||
+ if (object instanceof String) {
|
||||
+ return "\"" + object + "\"";
|
||||
+ }
|
||||
+ return String.valueOf(object);
|
||||
+ }
|
||||
+
|
||||
+}
|
||||
diff --git a/src/main/java/net/minecraft/core/BlockPosition.java b/src/main/java/net/minecraft/core/BlockPosition.java
|
||||
index 8edc279e7a3fdfb7e10718f1deee34b7e3fb2f28..73ec17dea5d5668e49c9a6ad679bd3a362960c72 100644
|
||||
--- a/src/main/java/net/minecraft/core/BlockPosition.java
|
||||
@@ -1647,7 +1442,7 @@ index d902efdb8f2d42ea4c3933f7fa76ebe135ee09db..24a46ad36613faa5f5a1a12b70f7af88
|
||||
this.setPVP(dedicatedserverproperties.pvp);
|
||||
this.setAllowFlight(dedicatedserverproperties.allowFlight);
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ChunkProviderServer.java b/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
|
||||
index cb83f1152c52a99d25e4e80cc8bf18c6793e8b50..87c87b9767003652814c3726eece64470dbb69a8 100644
|
||||
index fe040615ff03478a20cdf8376f89a6b7d100ba61..207a9c3928aad7c6e89a120b54d87e003ebd232c 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
|
||||
@@ -1000,6 +1000,7 @@ public class ChunkProviderServer extends IChunkProvider {
|
||||
@@ -1736,10 +1531,10 @@ index d7eede51f1c4ebbe8e00b16efd6331c87db53bb4..bc18b9c3aac4c5feeb1603554e0ac009
|
||||
return this.a(i);
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java
|
||||
index 46f960b9276dced41deb8f741454b6cce5a81529..9d97e2ea5c207c42f1cc9aa14bc87dc8e0a1bb1e 100644
|
||||
index 46baad407de5598ecb23fcbb9a3fb4ee82addb17..c35e7d01af6dde7998edc4da74ed005c8ccc11ee 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/WorldServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/WorldServer.java
|
||||
@@ -1081,11 +1081,12 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
@@ -1083,11 +1083,12 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
// CraftBukkit end */
|
||||
|
||||
gameprofilerfiller.enter("checkDespawn");
|
||||
@@ -1753,7 +1548,7 @@ index 46f960b9276dced41deb8f741454b6cce5a81529..9d97e2ea5c207c42f1cc9aa14bc87dc8
|
||||
this.updateNavigatorsInRegion(entity);
|
||||
}
|
||||
} else {
|
||||
@@ -1105,7 +1106,28 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
@@ -1107,7 +1108,28 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
|
||||
gameprofilerfiller.enter("tick");
|
||||
if (!entity.dead && !(entity instanceof EntityComplexPart)) {
|
||||
@@ -1782,7 +1577,7 @@ index 46f960b9276dced41deb8f741454b6cce5a81529..9d97e2ea5c207c42f1cc9aa14bc87dc8
|
||||
}
|
||||
|
||||
gameprofilerfiller.exit();
|
||||
@@ -1115,7 +1137,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
@@ -1117,7 +1139,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
this.entitiesById.remove(entity.getId()); // Tuinity
|
||||
this.unregisterEntity(entity);
|
||||
} else if (entity.inChunk && entity.valid) { // Tuinity start - optimise notify()
|
||||
@@ -1791,7 +1586,7 @@ index 46f960b9276dced41deb8f741454b6cce5a81529..9d97e2ea5c207c42f1cc9aa14bc87dc8
|
||||
this.updateNavigatorsInRegion(entity);
|
||||
}
|
||||
} else {
|
||||
@@ -1200,6 +1222,8 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
@@ -1202,6 +1224,8 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
private final BiomeBase[] biomeBaseCache = new BiomeBase[1];
|
||||
// Tuinity end - optimise chunk ice snow ticking
|
||||
|
||||
@@ -1800,7 +1595,7 @@ index 46f960b9276dced41deb8f741454b6cce5a81529..9d97e2ea5c207c42f1cc9aa14bc87dc8
|
||||
public void a(Chunk chunk, int i) { final int randomTickSpeed = i; // Paper
|
||||
ChunkCoordIntPair chunkcoordintpair = chunk.getPos();
|
||||
boolean flag = this.isRaining();
|
||||
@@ -1210,7 +1234,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
@@ -1212,7 +1236,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
gameprofilerfiller.enter("thunder");
|
||||
final BlockPosition.MutableBlockPosition blockposition = this.chunkTickMutablePosition; // Paper - use mutable to reduce allocation rate, final to force compile fail on change
|
||||
|
||||
@@ -1809,7 +1604,7 @@ index 46f960b9276dced41deb8f741454b6cce5a81529..9d97e2ea5c207c42f1cc9aa14bc87dc8
|
||||
blockposition.setValues(this.a(this.a(j, 0, k, 15))); // Paper
|
||||
if (this.isRainingAt(blockposition)) {
|
||||
DifficultyDamageScaler difficultydamagescaler = this.getDamageScaler(blockposition);
|
||||
@@ -1234,7 +1258,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
@@ -1236,7 +1260,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
}
|
||||
|
||||
gameprofilerfiller.exitEnter("iceandsnow");
|
||||
@@ -1818,7 +1613,7 @@ index 46f960b9276dced41deb8f741454b6cce5a81529..9d97e2ea5c207c42f1cc9aa14bc87dc8
|
||||
// Paper start - optimise chunk ticking
|
||||
// Tuinity start - optimise chunk ice snow ticking
|
||||
BiomeBase[] biomeCache = this.biomeBaseCache;
|
||||
@@ -1414,7 +1438,9 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
@@ -1415,7 +1439,9 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
}
|
||||
// Tuinity end - log detailed entity tick information
|
||||
|
||||
@@ -1829,7 +1624,7 @@ index 46f960b9276dced41deb8f741454b6cce5a81529..9d97e2ea5c207c42f1cc9aa14bc87dc8
|
||||
// Tuinity start - log detailed entity tick information
|
||||
com.tuinity.tuinity.util.TickThread.ensureTickThread("Cannot tick an entity off-main");
|
||||
try {
|
||||
@@ -1422,7 +1448,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
@@ -1423,7 +1449,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
currentlyTickingEntity.lazySet(entity);
|
||||
}
|
||||
// Tuinity end - log detailed entity tick information
|
||||
@@ -1838,7 +1633,7 @@ index 46f960b9276dced41deb8f741454b6cce5a81529..9d97e2ea5c207c42f1cc9aa14bc87dc8
|
||||
this.chunkCheck(entity);
|
||||
} else {
|
||||
++TimingHistory.entityTicks; // Paper - timings
|
||||
@@ -1448,9 +1474,14 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
@@ -1449,9 +1475,14 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
++entity.ticksLived;
|
||||
GameProfilerFiller gameprofilerfiller = this.getMethodProfiler();
|
||||
|
||||
@@ -1925,7 +1720,7 @@ index aae13c2e6c2a30b69c33417932c6a4d0aefeb7f5..f4440a5c4aedb1d7d303517f86a07c85
|
||||
this.world.getMethodProfiler().exit();
|
||||
this.world.getMethodProfiler().enter("navigation");
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
index 561905be42428855a07a2e63aca80d5dd63b22bf..1a7866bed9cb7f0431454d3af4733de05c0cba78 100644
|
||||
index d933323d57a2a7ff283408f12d4650699f8177e7..5c983a441cd2a06eae6e79bc07ba5440d294574b 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
@@ -111,6 +111,7 @@ import net.minecraft.world.phys.AxisAlignedBB;
|
||||
@@ -2479,10 +2274,10 @@ index d497006f05f79015cd791849888832bb53f4a414..d98526785ff2fa3b72e8ffffcb89a57a
|
||||
|
||||
private static BlockPosition getRandomPosition(World world, Chunk chunk) {
|
||||
diff --git a/src/main/java/net/minecraft/world/level/StructureManager.java b/src/main/java/net/minecraft/world/level/StructureManager.java
|
||||
index acacbf9617f99b97fc7fd2ba718775e1b3e429e9..967ae0212028d57d366497f7f25c61776c1ac3f2 100644
|
||||
index 43418273f00f3703c7bd86586847d469af92c18f..d11e79093f9a5121c98b7da840bc79d204895b65 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/StructureManager.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/StructureManager.java
|
||||
@@ -15,6 +15,11 @@ import net.minecraft.world.level.levelgen.feature.StructureGenerator;
|
||||
@@ -16,6 +16,11 @@ import net.minecraft.world.level.levelgen.feature.StructureGenerator;
|
||||
import net.minecraft.world.level.levelgen.structure.StructurePiece;
|
||||
import net.minecraft.world.level.levelgen.structure.StructureStart;
|
||||
|
||||
@@ -2494,7 +2289,7 @@ index acacbf9617f99b97fc7fd2ba718775e1b3e429e9..967ae0212028d57d366497f7f25c6177
|
||||
public class StructureManager {
|
||||
|
||||
private final GeneratorAccess a; public GeneratorAccess getLevel() { return a; } // Paper - OBFHELPER
|
||||
@@ -51,13 +56,15 @@ public class StructureManager {
|
||||
@@ -52,13 +57,15 @@ public class StructureManager {
|
||||
public java.util.List<StructureStart<?>> getFeatureStarts(SectionPosition sectionPosition, StructureGenerator<?> structureGenerator, IWorldReader world) {
|
||||
// Tuinity end - add world parameter
|
||||
java.util.List<StructureStart<?>> list = new ObjectArrayList<>();
|
||||
@@ -2513,7 +2308,7 @@ index acacbf9617f99b97fc7fd2ba718775e1b3e429e9..967ae0212028d57d366497f7f25c6177
|
||||
return list;
|
||||
}
|
||||
// Paper end
|
||||
@@ -85,7 +92,18 @@ public class StructureManager {
|
||||
@@ -86,7 +93,18 @@ public class StructureManager {
|
||||
}
|
||||
public StructureStart<?> getStructureStarts(BlockPosition blockposition, boolean flag, StructureGenerator<?> structuregenerator, IWorldReader world) {
|
||||
// Paper start - remove structure streams
|
||||
@@ -2533,7 +2328,7 @@ index acacbf9617f99b97fc7fd2ba718775e1b3e429e9..967ae0212028d57d366497f7f25c6177
|
||||
if (structurestart.c().b(blockposition)) {
|
||||
if (!flag) {
|
||||
return structurestart;
|
||||
@@ -96,7 +114,10 @@ public class StructureManager {
|
||||
@@ -97,7 +115,10 @@ public class StructureManager {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,23 +42,22 @@ index be408aebbccbda46e8aa82ef337574137cfa0096..739839314fd8a88b5fca8b9678e1df07
|
||||
private final boolean threadRestricted;
|
||||
|
||||
diff --git a/src/main/java/gg/airplane/AirplaneConfig.java b/src/main/java/gg/airplane/AirplaneConfig.java
|
||||
index 39ef53c9dd49d5951103777002f866a64a252bfd..3886c731a69540f638d57a411285da289d3b704b 100644
|
||||
index a77e628518920e84b03a8a00e1308a9a53a00896..5a20ad857b7c550281000e8d94dac78d72591f31 100644
|
||||
--- a/src/main/java/gg/airplane/AirplaneConfig.java
|
||||
+++ b/src/main/java/gg/airplane/AirplaneConfig.java
|
||||
@@ -91,4 +91,18 @@ public class AirplaneConfig {
|
||||
}
|
||||
@@ -96,4 +96,17 @@ public class AirplaneConfig {
|
||||
}
|
||||
|
||||
+
|
||||
|
||||
+ public static boolean multithreadedEntityTracker = false;
|
||||
+ public static boolean entityTrackerAsyncPackets = false;
|
||||
+
|
||||
+ private static void entityTracker() {
|
||||
+ manual.setComment("tracker", "Options to improve the performance of the entity tracker");
|
||||
+ config.setComment("tracker", "Options to improve the performance of the entity tracker");
|
||||
+
|
||||
+ multithreadedEntityTracker = manual.get("tracker.multithreaded", multithreadedEntityTracker,
|
||||
+ multithreadedEntityTracker = config.getBoolean("tracker.multithreaded", multithreadedEntityTracker,
|
||||
+ "This enables the multithreading of the tracker.");
|
||||
+ entityTrackerAsyncPackets = manual.get("tracker.unsafe-async-packets", entityTrackerAsyncPackets,
|
||||
+ entityTrackerAsyncPackets = config.getBoolean("tracker.unsafe-async-packets", entityTrackerAsyncPackets,
|
||||
+ "This option can break plugins that assume packets from the",
|
||||
+ "entity tracker will be sent sync.");
|
||||
+ }
|
||||
@@ -198,7 +197,7 @@ index 0000000000000000000000000000000000000000..4419fbe94041f4b8a0ea848880798289
|
||||
+
|
||||
+}
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ChunkProviderServer.java b/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
|
||||
index 87c87b9767003652814c3726eece64470dbb69a8..dc1b7db4d39d4dfa65d60e5a059d3b94def6cf62 100644
|
||||
index 207a9c3928aad7c6e89a120b54d87e003ebd232c..424cd048f905cd0ed3f7a4545a26ffde8da1f91f 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
|
||||
@@ -388,7 +388,7 @@ public class ChunkProviderServer extends IChunkProvider {
|
||||
@@ -224,7 +223,7 @@ index 59989db6dcf96a8ab5a75775bb588c31cec3418a..534c7266fe9d6f60b74a71e5e61ed248
|
||||
private final ServerStatisticManager serverStatisticManager;
|
||||
private float lastHealthScored = Float.MIN_VALUE;
|
||||
diff --git a/src/main/java/net/minecraft/server/level/EntityTrackerEntry.java b/src/main/java/net/minecraft/server/level/EntityTrackerEntry.java
|
||||
index a1512ee8422fa39a95e4f19c86fe71b77af54ca0..c830b257054b7f8153aa9225c1f61f49a6ea0a84 100644
|
||||
index 67ca28463f5add7c18f7f16b918c3f36f8feeeda..37e64e24ca3a90370cdf12e5ff9cd1fceede796b 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/EntityTrackerEntry.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/EntityTrackerEntry.java
|
||||
@@ -75,6 +75,10 @@ public class EntityTrackerEntry {
|
||||
@@ -247,7 +246,7 @@ index a1512ee8422fa39a95e4f19c86fe71b77af54ca0..c830b257054b7f8153aa9225c1f61f49
|
||||
List<Entity> list = this.tracker.passengers; // Paper - do not copy list
|
||||
|
||||
if (!list.equals(this.p)) {
|
||||
@@ -117,6 +121,8 @@ public class EntityTrackerEntry {
|
||||
@@ -116,6 +120,8 @@ public class EntityTrackerEntry {
|
||||
ItemStack itemstack = entityitemframe.getItem();
|
||||
|
||||
if (this.tickCounter % 10 == 0 && itemstack.getItem() instanceof ItemWorldMap) { // CraftBukkit - Moved this.tickCounter % 10 logic here so item frames do not enter the other blocks
|
||||
@@ -256,7 +255,7 @@ index a1512ee8422fa39a95e4f19c86fe71b77af54ca0..c830b257054b7f8153aa9225c1f61f49
|
||||
WorldMap worldmap = ItemWorldMap.getSavedMap(itemstack, this.b);
|
||||
Iterator iterator = this.trackedPlayers.iterator(); // CraftBukkit
|
||||
|
||||
@@ -130,6 +136,8 @@ public class EntityTrackerEntry {
|
||||
@@ -129,6 +135,8 @@ public class EntityTrackerEntry {
|
||||
entityplayer.playerConnection.sendPacket(packet);
|
||||
}
|
||||
}
|
||||
@@ -265,7 +264,7 @@ index a1512ee8422fa39a95e4f19c86fe71b77af54ca0..c830b257054b7f8153aa9225c1f61f49
|
||||
}
|
||||
|
||||
this.c();
|
||||
@@ -264,18 +272,25 @@ public class EntityTrackerEntry {
|
||||
@@ -263,18 +271,25 @@ public class EntityTrackerEntry {
|
||||
// CraftBukkit start - Create PlayerVelocity event
|
||||
boolean cancelled = false;
|
||||
|
||||
@@ -295,7 +294,7 @@ index a1512ee8422fa39a95e4f19c86fe71b77af54ca0..c830b257054b7f8153aa9225c1f61f49
|
||||
}
|
||||
|
||||
if (!cancelled) {
|
||||
@@ -359,7 +374,9 @@ public class EntityTrackerEntry {
|
||||
@@ -358,7 +373,9 @@ public class EntityTrackerEntry {
|
||||
if (!list.isEmpty()) {
|
||||
consumer.accept(new PacketPlayOutEntityEquipment(this.tracker.getId(), list));
|
||||
}
|
||||
@@ -305,7 +304,7 @@ index a1512ee8422fa39a95e4f19c86fe71b77af54ca0..c830b257054b7f8153aa9225c1f61f49
|
||||
}
|
||||
|
||||
// CraftBukkit start - Fix for nonsensical head yaw
|
||||
@@ -437,6 +454,10 @@ public class EntityTrackerEntry {
|
||||
@@ -436,6 +453,10 @@ public class EntityTrackerEntry {
|
||||
// Paper end
|
||||
|
||||
private void broadcastIncludingSelf(Packet<?> packet) {
|
||||
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Rebrand
|
||||
|
||||
|
||||
diff --git a/pom.xml b/pom.xml
|
||||
index fc2c3714b6c772d67e258be269aa92dda80cdb12..854c014fb17d7241b8588646fd253381f7e8ff39 100644
|
||||
index 2071c1f39cdf954c7dc15afcabab58cf2e340e68..622519b575b224805f147d3ef60d41b9ca3566de 100644
|
||||
--- a/pom.xml
|
||||
+++ b/pom.xml
|
||||
@@ -27,8 +27,10 @@
|
||||
@@ -21,19 +21,22 @@ index fc2c3714b6c772d67e258be269aa92dda80cdb12..854c014fb17d7241b8588646fd253381
|
||||
<version>${project.version}</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
@@ -174,6 +176,11 @@
|
||||
<id>jitpack.io</id>
|
||||
<url>https://jitpack.io</url>
|
||||
</repository>
|
||||
@@ -175,6 +177,14 @@
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
+ <repositories>
|
||||
+ <!-- Purpur - Snapshots -->
|
||||
+ <repository>
|
||||
+ <id>purpur-snapshots</id>
|
||||
+ <url>https://repo.pl3x.net/</url>
|
||||
+ </repository>
|
||||
</repositories>
|
||||
|
||||
+ </repositories>
|
||||
+
|
||||
<!-- This builds a completely 'ready to start' jar with all dependencies inside -->
|
||||
@@ -353,8 +360,15 @@
|
||||
<build>
|
||||
<finalName>tuinity-${minecraft.version}</finalName>
|
||||
@@ -352,8 +362,15 @@
|
||||
<dependency>
|
||||
<groupId>org.eclipse.jdt</groupId>
|
||||
<artifactId>ecj</artifactId>
|
||||
|
||||
@@ -64,10 +64,10 @@ index 534c7266fe9d6f60b74a71e5e61ed248e515dffd..f30dcbd26ed56ba8f1a99260722a0b39
|
||||
return this.serverStatisticManager;
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java
|
||||
index 9d97e2ea5c207c42f1cc9aa14bc87dc8e0a1bb1e..984a90a0a69f60315536d60eff597f65b6d49c57 100644
|
||||
index c35e7d01af6dde7998edc4da74ed005c8ccc11ee..c4f58ea8818d0c3e6dcd215f4cbb46a4b59ffa3b 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/WorldServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/WorldServer.java
|
||||
@@ -1000,7 +1000,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
@@ -1002,7 +1002,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
// CraftBukkit end
|
||||
|
||||
if (this.everyoneSleeping && this.players.stream().noneMatch((entityplayer) -> {
|
||||
@@ -76,7 +76,7 @@ index 9d97e2ea5c207c42f1cc9aa14bc87dc8e0a1bb1e..984a90a0a69f60315536d60eff597f65
|
||||
})) {
|
||||
// CraftBukkit start
|
||||
long l = this.worldData.getDayTime() + 24000L;
|
||||
@@ -1368,7 +1368,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
@@ -1369,7 +1369,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
while (iterator.hasNext()) {
|
||||
EntityPlayer entityplayer = (EntityPlayer) iterator.next();
|
||||
|
||||
@@ -86,7 +86,7 @@ index 9d97e2ea5c207c42f1cc9aa14bc87dc8e0a1bb1e..984a90a0a69f60315536d60eff597f65
|
||||
} else if (entityplayer.isSleeping()) {
|
||||
++j;
|
||||
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
|
||||
index a5871955d487dbf6552d20e5559f2cb1427aeb3e..9603503f8959379c3b6e30b22946fa2b6b100504 100644
|
||||
index 40a7f69e5e14078977ef615abf3a0f1f61d76f9f..a1db769f91ce52b1179837b5f532875c21a57367 100644
|
||||
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
|
||||
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
|
||||
@@ -397,6 +397,12 @@ public class PlayerConnection implements PacketListenerPlayIn {
|
||||
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] LivingEntity safeFallDistance
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
index 1a7866bed9cb7f0431454d3af4733de05c0cba78..30aabde3d6703eefcb6d57bab43666b97197ba1f 100644
|
||||
index 5c983a441cd2a06eae6e79bc07ba5440d294574b..b987cee913bf909fa0daa6280376838e9429fe5d 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
@@ -228,6 +228,7 @@ public abstract class EntityLiving extends Entity {
|
||||
|
||||
@@ -67,7 +67,7 @@ index f30dcbd26ed56ba8f1a99260722a0b395c220954..7cd1ae92768164b657af9febe9b4feb7
|
||||
public Scoreboard getScoreboard() {
|
||||
return getBukkitEntity().getScoreboard().getHandle();
|
||||
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
|
||||
index 9603503f8959379c3b6e30b22946fa2b6b100504..016e4c92545ee6effe0311ad7651255cb88bd9f2 100644
|
||||
index a1db769f91ce52b1179837b5f532875c21a57367..78522c87e5c6dc63912eb8c329cf7dfa4320b35a 100644
|
||||
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
|
||||
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
|
||||
@@ -1882,6 +1882,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
|
||||
|
||||
@@ -17,7 +17,7 @@ index b4c37287362907b8507d156b978ba5b9d961bb7b..9e6e6636539702507abb78515e002819
|
||||
return this.a;
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
|
||||
index 016e4c92545ee6effe0311ad7651255cb88bd9f2..5173affbc42ca00305557b53f606f1d9eb78d468 100644
|
||||
index 78522c87e5c6dc63912eb8c329cf7dfa4320b35a..87735e7c205d7a9c212935bb56e70b449bb024bb 100644
|
||||
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
|
||||
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
|
||||
@@ -231,6 +231,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
|
||||
|
||||
@@ -38,7 +38,7 @@ index f4440a5c4aedb1d7d303517f86a07c856dd1309b..7443fe924486404931c11793acc67e2f
|
||||
float f = difficultydamagescaler.d();
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
index 30aabde3d6703eefcb6d57bab43666b97197ba1f..ffc5ca763a22a1c4d06ffdb72c30482c13ec0a7b 100644
|
||||
index b987cee913bf909fa0daa6280376838e9429fe5d..7720cf9dcbc5a9680c68f47aef08ff1c3b154022 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
@@ -261,6 +261,7 @@ public abstract class EntityLiving extends Entity {
|
||||
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Zombie horse naturally spawn
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java
|
||||
index 984a90a0a69f60315536d60eff597f65b6d49c57..bdc1aaa02836cb675224062e59cd635c6fe6e28a 100644
|
||||
index c4f58ea8818d0c3e6dcd215f4cbb46a4b59ffa3b..2048b6f05d68eb31154f4a4c36ff8fa9ee225434 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/WorldServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/WorldServer.java
|
||||
@@ -96,6 +96,7 @@ import net.minecraft.world.entity.ai.village.poi.VillagePlace;
|
||||
@@ -16,7 +16,7 @@ index 984a90a0a69f60315536d60eff597f65b6d49c57..bdc1aaa02836cb675224062e59cd635c
|
||||
import net.minecraft.world.entity.animal.horse.EntityHorseSkeleton;
|
||||
import net.minecraft.world.entity.boss.EntityComplexPart;
|
||||
import net.minecraft.world.entity.boss.enderdragon.EntityEnderDragon;
|
||||
@@ -1241,12 +1242,18 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
@@ -1243,12 +1244,18 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
boolean flag1 = this.getGameRules().getBoolean(GameRules.DO_MOB_SPAWNING) && this.random.nextDouble() < (double) difficultydamagescaler.b() * paperConfig.skeleHorseSpawnChance; // Paper
|
||||
|
||||
if (flag1) {
|
||||
|
||||
@@ -26,10 +26,10 @@ index 0eed10a6c4e0c7245f219d19ed1e2e5c94364db9..2b54a5f3347f788b751892105f888663
|
||||
protected boolean h;
|
||||
protected boolean i;
|
||||
diff --git a/src/main/java/net/minecraft/server/level/EntityTrackerEntry.java b/src/main/java/net/minecraft/server/level/EntityTrackerEntry.java
|
||||
index c830b257054b7f8153aa9225c1f61f49a6ea0a84..3a66a34db2b8ac612431131cea80e57ee72de05f 100644
|
||||
index 37e64e24ca3a90370cdf12e5ff9cd1fceede796b..f63ec5fa5a1cb34f4809a06a29d01603efb178f1 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/EntityTrackerEntry.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/EntityTrackerEntry.java
|
||||
@@ -209,6 +209,7 @@ public class EntityTrackerEntry {
|
||||
@@ -208,6 +208,7 @@ public class EntityTrackerEntry {
|
||||
this.o = 0;
|
||||
packet1 = new PacketPlayOutEntityTeleport(this.tracker);
|
||||
}
|
||||
@@ -37,7 +37,7 @@ index c830b257054b7f8153aa9225c1f61f49a6ea0a84..3a66a34db2b8ac612431131cea80e57e
|
||||
}
|
||||
|
||||
if ((this.e || this.tracker.impulse || this.tracker instanceof EntityLiving && ((EntityLiving) this.tracker).isGliding()) && this.tickCounter > 0) {
|
||||
@@ -302,6 +303,22 @@ public class EntityTrackerEntry {
|
||||
@@ -301,6 +302,22 @@ public class EntityTrackerEntry {
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ index b7c72eaf5715a30bb8f82891f9830f9f62ec03c9..c8071e2909c03bd8eafb92fbf8fd8701
|
||||
this.setPositionRotation(entity.locX(), entity.locY(), entity.locZ(), entity.yaw, entity.pitch);
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
index ffc5ca763a22a1c4d06ffdb72c30482c13ec0a7b..1902b706345ff0031aaa8babde8cabffced99b78 100644
|
||||
index 7720cf9dcbc5a9680c68f47aef08ff1c3b154022..ee42f3d97c3453bacfe0be40ee99f08649d44acf 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
@@ -176,7 +176,7 @@ public abstract class EntityLiving extends Entity {
|
||||
|
||||
@@ -17,7 +17,7 @@ index 7cd1ae92768164b657af9febe9b4feb7fd02f55a..fe583fbc58309564d35d4cdd56fafc4d
|
||||
this.playerConnection.sendPacket(new PacketPlayOutOpenSignEditor(tileentitysign.getPosition()));
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
|
||||
index 5173affbc42ca00305557b53f606f1d9eb78d468..5f91259b305a48fd09a156799808c25561788882 100644
|
||||
index 87735e7c205d7a9c212935bb56e70b449bb024bb..ac7618caf6845bd35a5ea5980d1e2f889fb8301f 100644
|
||||
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
|
||||
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
|
||||
@@ -3047,6 +3047,15 @@ public class PlayerConnection implements PacketListenerPlayIn {
|
||||
|
||||
@@ -50,7 +50,7 @@ index fe583fbc58309564d35d4cdd56fafc4de8ba31c8..4a2ea4c83107e957bda69604ca0ae98c
|
||||
|
||||
if (!flag && isSpawnInvulnerable() && damagesource != DamageSource.OUT_OF_WORLD) { // Purpur
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
index 1902b706345ff0031aaa8babde8cabffced99b78..c3acf0de92f1dbbcfbe7a9673c843107a6bd00b7 100644
|
||||
index ee42f3d97c3453bacfe0be40ee99f08649d44acf..09c00dae1d25878a7d55bdc2498b7d6e325dc45a 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
@@ -194,9 +194,9 @@ public abstract class EntityLiving extends Entity {
|
||||
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Disable loot drops on death by cramming
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
index c3acf0de92f1dbbcfbe7a9673c843107a6bd00b7..1602c00e04cccdee4e9eb4f4512145e8b1aeaf57 100644
|
||||
index 09c00dae1d25878a7d55bdc2498b7d6e325dc45a..f338c3fc638d76eb6850573517c6123584bc7e04 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
@@ -1598,8 +1598,10 @@ public abstract class EntityLiving extends Entity {
|
||||
|
||||
@@ -17,7 +17,7 @@ index c8071e2909c03bd8eafb92fbf8fd8701642df1f9..7c9fc120d2b58ca969b8a0ff9619e96f
|
||||
|
||||
public void f(double d0, double d1, double d2) {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
index 1602c00e04cccdee4e9eb4f4512145e8b1aeaf57..c540886511261303d2266ac97353e1b98c1f9601 100644
|
||||
index f338c3fc638d76eb6850573517c6123584bc7e04..7d1b5c992521ae1dae94d3e658d73491387e1d98 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
@@ -2597,7 +2597,7 @@ public abstract class EntityLiving extends Entity {
|
||||
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Add 5 second tps average in /tps
|
||||
|
||||
|
||||
diff --git a/src/main/java/com/destroystokyo/paper/gui/RAMDetails.java b/src/main/java/com/destroystokyo/paper/gui/RAMDetails.java
|
||||
index dc6bc1910ad0f9b27144d5750078c3ca607d03d3..93f78b062688ceee0633a29c05e455cc2d09e8ef 100644
|
||||
index dc6bc1910ad0f9b27144d5750078c3ca607d03d3..e8be35f836ede2630d44902e99a21489a7bad61f 100644
|
||||
--- a/src/main/java/com/destroystokyo/paper/gui/RAMDetails.java
|
||||
+++ b/src/main/java/com/destroystokyo/paper/gui/RAMDetails.java
|
||||
@@ -58,7 +58,7 @@ public class RAMDetails extends JList<String> {
|
||||
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Implement elytra settings
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
index c540886511261303d2266ac97353e1b98c1f9601..5a060b98fe9f3edc199cd520a636505c653556e9 100644
|
||||
index 7d1b5c992521ae1dae94d3e658d73491387e1d98..35936f4651484c495a43529638d79b5df65b82ee 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
@@ -2955,7 +2955,16 @@ public abstract class EntityLiving extends Entity {
|
||||
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Item entity immunities
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/EntityTrackerEntry.java b/src/main/java/net/minecraft/server/level/EntityTrackerEntry.java
|
||||
index 3a66a34db2b8ac612431131cea80e57ee72de05f..70a1ff235690a5990f94bd9cf97d670b2f4c2aea 100644
|
||||
index f63ec5fa5a1cb34f4809a06a29d01603efb178f1..b773480baef218d0aab2f524e7e305c18443517d 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/EntityTrackerEntry.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/EntityTrackerEntry.java
|
||||
@@ -31,6 +31,7 @@ import net.minecraft.world.entity.EntityLiving;
|
||||
@@ -25,7 +25,7 @@ index 3a66a34db2b8ac612431131cea80e57ee72de05f..70a1ff235690a5990f94bd9cf97d670b
|
||||
// Paper start
|
||||
private java.util.Map<EntityPlayer, Boolean> trackedPlayerMap = null;
|
||||
|
||||
@@ -143,6 +144,15 @@ public class EntityTrackerEntry {
|
||||
@@ -142,6 +143,15 @@ public class EntityTrackerEntry {
|
||||
this.c();
|
||||
}
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Allow color codes in books
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
|
||||
index 5f91259b305a48fd09a156799808c25561788882..72dda95171cf7d4632256b4d661338209d2adfb5 100644
|
||||
index ac7618caf6845bd35a5ea5980d1e2f889fb8301f..ac170c62b053e6a56ce6792d243722447565f333 100644
|
||||
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
|
||||
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
|
||||
@@ -1203,7 +1203,8 @@ public class PlayerConnection implements PacketListenerPlayIn {
|
||||
@@ -17,7 +17,7 @@ index 5f91259b305a48fd09a156799808c25561788882..72dda95171cf7d4632256b4d66133820
|
||||
+ list.stream().map(s -> s = color(s, hasPerm, false)).map(NBTTagString::a).forEach(nbttaglist::add); // Purpur - edit book
|
||||
ItemStack old = itemstack.cloneItemStack(); // CraftBukkit
|
||||
itemstack.a("pages", (NBTBase) nbttaglist);
|
||||
CraftEventFactory.handleEditBookEvent(player, i, old, itemstack); // CraftBukkit
|
||||
this.player.inventory.setItem(i, CraftEventFactory.handleEditBookEvent(player, i, old, itemstack)); // CraftBukkit // Paper - Don't ignore result (see other callsite for handleEditBookEvent)
|
||||
@@ -1221,13 +1222,14 @@ public class PlayerConnection implements PacketListenerPlayIn {
|
||||
itemstack1.setTag(nbttagcompound.clone());
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Entity lifespan
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
|
||||
index 72dda95171cf7d4632256b4d661338209d2adfb5..c5549b74a3875c0fa1bfe8f270b25b59317073a3 100644
|
||||
index ac170c62b053e6a56ce6792d243722447565f333..e5092da7731a3fe449d6f4c6ccae2283665edb08 100644
|
||||
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
|
||||
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
|
||||
@@ -2443,6 +2443,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
|
||||
|
||||
@@ -36,7 +36,7 @@ index e129480fa1045fbeaafa97045d53696b44952bcf..9de660f0c679f101512bddf7c6582ca6
|
||||
+ // Purpur end
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
index 5a060b98fe9f3edc199cd520a636505c653556e9..e453502c34f717797c4b67a7149d2e0da1b1232d 100644
|
||||
index 35936f4651484c495a43529638d79b5df65b82ee..a2073fd6fc5c2a5fd2835445019c7ecf86c5eb47 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
@@ -45,6 +45,7 @@ import net.minecraft.network.syncher.DataWatcher;
|
||||
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Totems work in inventory
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
index e453502c34f717797c4b67a7149d2e0da1b1232d..df9ab64ed3800dfdf9e175fc95a8d3d7dba00c51 100644
|
||||
index a2073fd6fc5c2a5fd2835445019c7ecf86c5eb47..451a28b1950bad61de7181a2fb89549063d8e2bf 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
@@ -1426,6 +1426,19 @@ public abstract class EntityLiving extends Entity {
|
||||
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Add no-random-tick block list
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java
|
||||
index bdc1aaa02836cb675224062e59cd635c6fe6e28a..345718ed5b30a2ba1ee6082b571e5771112e381b 100644
|
||||
index 2048b6f05d68eb31154f4a4c36ff8fa9ee225434..ff33ad8917c6325ee6d73cbb3473dc390e49d7cb 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/WorldServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/WorldServer.java
|
||||
@@ -532,14 +532,14 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
@@ -26,10 +26,10 @@ index bdc1aaa02836cb675224062e59cd635c6fe6e28a..345718ed5b30a2ba1ee6082b571e5771
|
||||
this.nextTickListFluid = new TickListServer<>(this, (fluidtype) -> {
|
||||
return fluidtype == null || fluidtype == FluidTypes.EMPTY;
|
||||
diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBase.java b/src/main/java/net/minecraft/world/level/block/state/BlockBase.java
|
||||
index 0b852fa247c65cb1e889ad4e55886e256f89a763..aa78176ddd9eced179ceb8e53a1884172490f059 100644
|
||||
index 6124b56d935386784371422960a07d518f848cf3..e5f66cdf95b6073545efc8d1527b0a5e2741f79d 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/block/state/BlockBase.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/block/state/BlockBase.java
|
||||
@@ -670,10 +670,12 @@ public abstract class BlockBase {
|
||||
@@ -671,10 +671,12 @@ public abstract class BlockBase {
|
||||
}
|
||||
|
||||
public void a(WorldServer worldserver, BlockPosition blockposition, Random random) {
|
||||
|
||||
@@ -24,10 +24,10 @@ index 5ac6b7759cf43dbbad1bcf74d5d86efd69883cf5..240f30f6ca6007ba8e7de1c3e033b2a8
|
||||
int j = MathHelper.f(axisalignedbb.maxX);
|
||||
int k = MathHelper.floor(axisalignedbb.minY);
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/EntitySquid.java b/src/main/java/net/minecraft/world/entity/animal/EntitySquid.java
|
||||
index 92ff03f8e8286f710fd5e63b4d103e489787d453..081929990a8208f643d298a885acc4ddfa401bfb 100644
|
||||
index 1f5f3e0d209426b97e32b82dd15176b800f85816..e6757b22497c6e274c3999d58671653e931ebe2b 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/EntitySquid.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/EntitySquid.java
|
||||
@@ -26,6 +26,7 @@ import net.minecraft.world.level.GeneratorAccess;
|
||||
@@ -27,6 +27,7 @@ import net.minecraft.world.level.GeneratorAccess;
|
||||
import net.minecraft.world.level.World;
|
||||
import net.minecraft.world.level.block.state.IBlockData;
|
||||
import net.minecraft.world.level.material.Fluid;
|
||||
@@ -35,7 +35,7 @@ index 92ff03f8e8286f710fd5e63b4d103e489787d453..081929990a8208f643d298a885acc4dd
|
||||
import net.minecraft.world.phys.Vec3D;
|
||||
|
||||
public class EntitySquid extends EntityWaterAnimal {
|
||||
@@ -51,6 +52,14 @@ public class EntitySquid extends EntityWaterAnimal {
|
||||
@@ -52,6 +53,14 @@ public class EntitySquid extends EntityWaterAnimal {
|
||||
this.bu = 1.0F / (this.random.nextFloat() + 1.0F) * 0.2F;
|
||||
}
|
||||
|
||||
|
||||
@@ -88,7 +88,7 @@ index 9de660f0c679f101512bddf7c6582ca6cd18ca5b..e1a6e4a359eb2aa484d479fde398473c
|
||||
|
||||
public void playerTick() {
|
||||
diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java
|
||||
index 345718ed5b30a2ba1ee6082b571e5771112e381b..88741bec1a16b14c6e80737328411c5deb6a467b 100644
|
||||
index ff33ad8917c6325ee6d73cbb3473dc390e49d7cb..19c2a278ec13efc64c683d63aed5b4f1dd7a4a72 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/WorldServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/WorldServer.java
|
||||
@@ -216,6 +216,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
@@ -100,7 +100,7 @@ index 345718ed5b30a2ba1ee6082b571e5771112e381b..88741bec1a16b14c6e80737328411c5d
|
||||
return new Throwable(entity + " Added to world at " + new java.util.Date());
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
|
||||
index c5549b74a3875c0fa1bfe8f270b25b59317073a3..d5c38de84787089466d73dd5400f3276470716be 100644
|
||||
index e5092da7731a3fe449d6f4c6ccae2283665edb08..851d4ac34feb94f0cd4ba8a5399093dfa40ce1cd 100644
|
||||
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
|
||||
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
|
||||
@@ -2452,6 +2452,8 @@ public class PlayerConnection implements PacketListenerPlayIn {
|
||||
@@ -419,7 +419,7 @@ index c9136f1b54ff0620a621b703b4e7487f4a63b01d..8b7f840bb1b24996b40c9bef85f4c1e9
|
||||
+ // Purpur end
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
index df9ab64ed3800dfdf9e175fc95a8d3d7dba00c51..617657ff7f27996ed7d97801dc49c9a39f59a240 100644
|
||||
index 451a28b1950bad61de7181a2fb89549063d8e2bf..81c0ccc4f8d0d1cf749cc2929c8d8f3c2c6c9887 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
@@ -559,7 +559,7 @@ public abstract class EntityLiving extends Entity {
|
||||
@@ -2296,10 +2296,10 @@ index 44119f52a4f169ffcea53fb69393bfedfd1a62a7..cfcf67e99ae345f77a55771e6a25bdcd
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/EntitySquid.java b/src/main/java/net/minecraft/world/entity/animal/EntitySquid.java
|
||||
index 081929990a8208f643d298a885acc4ddfa401bfb..10e228a36b213a87e17f26a633adfca18a006e94 100644
|
||||
index e6757b22497c6e274c3999d58671653e931ebe2b..a9fa18931d93dd7fa428b8cd6a414d4b3a3b4fbb 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/EntitySquid.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/EntitySquid.java
|
||||
@@ -3,6 +3,7 @@ package net.minecraft.world.entity.animal;
|
||||
@@ -4,6 +4,7 @@ package net.minecraft.world.entity.animal;
|
||||
import java.util.Random;
|
||||
import net.minecraft.core.BlockPosition;
|
||||
import net.minecraft.core.particles.Particles;
|
||||
@@ -2307,7 +2307,7 @@ index 081929990a8208f643d298a885acc4ddfa401bfb..10e228a36b213a87e17f26a633adfca1
|
||||
import net.minecraft.server.level.WorldServer;
|
||||
import net.minecraft.sounds.SoundEffect;
|
||||
import net.minecraft.sounds.SoundEffects;
|
||||
@@ -22,6 +23,7 @@ import net.minecraft.world.entity.EnumMoveType;
|
||||
@@ -23,6 +24,7 @@ import net.minecraft.world.entity.EnumMoveType;
|
||||
import net.minecraft.world.entity.ai.attributes.AttributeProvider;
|
||||
import net.minecraft.world.entity.ai.attributes.GenericAttributes;
|
||||
import net.minecraft.world.entity.ai.goal.PathfinderGoal;
|
||||
@@ -2315,7 +2315,7 @@ index 081929990a8208f643d298a885acc4ddfa401bfb..10e228a36b213a87e17f26a633adfca1
|
||||
import net.minecraft.world.level.GeneratorAccess;
|
||||
import net.minecraft.world.level.World;
|
||||
import net.minecraft.world.level.block.state.IBlockData;
|
||||
@@ -53,17 +55,38 @@ public class EntitySquid extends EntityWaterAnimal {
|
||||
@@ -54,17 +56,38 @@ public class EntitySquid extends EntityWaterAnimal {
|
||||
}
|
||||
|
||||
// Purpur start
|
||||
@@ -2355,7 +2355,7 @@ index 081929990a8208f643d298a885acc4ddfa401bfb..10e228a36b213a87e17f26a633adfca1
|
||||
}
|
||||
|
||||
public static AttributeProvider.Builder m() {
|
||||
@@ -208,6 +231,7 @@ public class EntitySquid extends EntityWaterAnimal {
|
||||
@@ -209,6 +232,7 @@ public class EntitySquid extends EntityWaterAnimal {
|
||||
return blockposition.getY() > generatoraccess.getMinecraftWorld().spigotConfig.squidSpawnRangeMin && blockposition.getY() < maxHeight; // Spigot // Paper
|
||||
}
|
||||
|
||||
@@ -2363,7 +2363,7 @@ index 081929990a8208f643d298a885acc4ddfa401bfb..10e228a36b213a87e17f26a633adfca1
|
||||
public void a(float f, float f1, float f2) {
|
||||
this.bw = f;
|
||||
this.bx = f1;
|
||||
@@ -279,7 +303,7 @@ public class EntitySquid extends EntityWaterAnimal {
|
||||
@@ -280,7 +304,7 @@ public class EntitySquid extends EntityWaterAnimal {
|
||||
|
||||
class PathfinderGoalSquid extends PathfinderGoal {
|
||||
|
||||
@@ -2372,7 +2372,7 @@ index 081929990a8208f643d298a885acc4ddfa401bfb..10e228a36b213a87e17f26a633adfca1
|
||||
|
||||
public PathfinderGoalSquid(EntitySquid entitysquid) {
|
||||
this.b = entitysquid;
|
||||
@@ -292,6 +316,38 @@ public class EntitySquid extends EntityWaterAnimal {
|
||||
@@ -293,6 +317,38 @@ public class EntitySquid extends EntityWaterAnimal {
|
||||
|
||||
@Override
|
||||
public void e() {
|
||||
@@ -6862,7 +6862,7 @@ index dee4d12a49468d38f077784b219199f0070786f2..c524a0994f1c9ef1d0534403efa4e448
|
||||
+ // Purpur end
|
||||
}
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
||||
index 926440e846eff2c1aaa262aa2b3975b7dd225332..9a6c4f292940b1cef2f4ef87c2e47d82ba5cb60f 100644
|
||||
index 9084aa4b7c0059c995a3d1a89188379b52c9d620..7341b1956123d8e5d45d9041e7319de8ee8b768a 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
||||
@@ -530,6 +530,18 @@ public class CraftEventFactory {
|
||||
|
||||
@@ -17,10 +17,10 @@ index 5ea059cde9e1a089c2ade12512e4a7abd07c5b8a..97eb81338207c93125bea08225638494
|
||||
return this == block;
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBase.java b/src/main/java/net/minecraft/world/level/block/state/BlockBase.java
|
||||
index aa78176ddd9eced179ceb8e53a1884172490f059..936933ab4c9e78877e1a2fc250721c2158e3810c 100644
|
||||
index e5f66cdf95b6073545efc8d1527b0a5e2741f79d..23a3b1b317b6b3e9d812f5a7b09b099b0528c59e 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/block/state/BlockBase.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/block/state/BlockBase.java
|
||||
@@ -740,6 +740,7 @@ public abstract class BlockBase {
|
||||
@@ -741,6 +741,7 @@ public abstract class BlockBase {
|
||||
return this.getBlock().a(tag) && predicate.test(this);
|
||||
}
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ Subject: [PATCH] Allow toggling special MobSpawners per world
|
||||
In vanilla, these are all hardcoded on for world type 0 (overworld) and hardcoded off for every other world type. Default config behaviour matches this.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java
|
||||
index 88741bec1a16b14c6e80737328411c5deb6a467b..906af187d9f52cd1df9b6ec47b88230d35860471 100644
|
||||
index 19c2a278ec13efc64c683d63aed5b4f1dd7a4a72..e024b35e8d2f96d2141204ef79f595a8ea13e90c 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/WorldServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/WorldServer.java
|
||||
@@ -92,6 +92,7 @@ import net.minecraft.world.entity.EnumCreatureType;
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Flying squids! Oh my!
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/EntitySquid.java b/src/main/java/net/minecraft/world/entity/animal/EntitySquid.java
|
||||
index 10e228a36b213a87e17f26a633adfca18a006e94..07b1db0e1fff1beffe464a3984716d5d84ea1873 100644
|
||||
index a9fa18931d93dd7fa428b8cd6a414d4b3a3b4fbb..be48e12dd6c9a390bf383129953bcd3d1f818427 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/EntitySquid.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/EntitySquid.java
|
||||
@@ -80,6 +80,11 @@ public class EntitySquid extends EntityWaterAnimal {
|
||||
@@ -81,6 +81,11 @@ public class EntitySquid extends EntityWaterAnimal {
|
||||
vector.setX(cos * x - sine * z);
|
||||
vector.setZ(sine * x + cos * z);
|
||||
}
|
||||
@@ -20,7 +20,7 @@ index 10e228a36b213a87e17f26a633adfca18a006e94..07b1db0e1fff1beffe464a3984716d5d
|
||||
// Purpur end
|
||||
|
||||
@Override
|
||||
@@ -145,6 +150,7 @@ public class EntitySquid extends EntityWaterAnimal {
|
||||
@@ -146,6 +151,7 @@ public class EntitySquid extends EntityWaterAnimal {
|
||||
}
|
||||
|
||||
if (this.aH()) {
|
||||
@@ -28,7 +28,7 @@ index 10e228a36b213a87e17f26a633adfca18a006e94..07b1db0e1fff1beffe464a3984716d5d
|
||||
if (this.bp < 3.1415927F) {
|
||||
float f = this.bp / 3.1415927F;
|
||||
|
||||
@@ -352,7 +358,7 @@ public class EntitySquid extends EntityWaterAnimal {
|
||||
@@ -353,7 +359,7 @@ public class EntitySquid extends EntityWaterAnimal {
|
||||
|
||||
if (i > 100) {
|
||||
this.b.a(0.0F, 0.0F, 0.0F);
|
||||
|
||||
@@ -18,7 +18,7 @@ index 3086ee023685781d94e2fb99fc8dff5264f01165..74c1047305cac5673e274096709c757e
|
||||
public PacketPlayOutUpdateTime() {}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java
|
||||
index 906af187d9f52cd1df9b6ec47b88230d35860471..fc77904699bb75cf55e7ea77a55c8ad4a9412c18 100644
|
||||
index e024b35e8d2f96d2141204ef79f595a8ea13e90c..587bbd1b4cce7cc5ee30471e86c4fe56362b92b8 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/WorldServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/WorldServer.java
|
||||
@@ -64,6 +64,7 @@ import net.minecraft.network.protocol.game.PacketPlayOutExplosion;
|
||||
@@ -45,7 +45,7 @@ index 906af187d9f52cd1df9b6ec47b88230d35860471..fc77904699bb75cf55e7ea77a55c8ad4
|
||||
}
|
||||
|
||||
// Tuinity start - optimise collision
|
||||
@@ -1210,7 +1213,21 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
@@ -1212,7 +1215,21 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
this.nextTickListBlock.nextTick(); // Paper
|
||||
this.nextTickListFluid.nextTick(); // Paper
|
||||
this.worldDataServer.u().a(this.server, i);
|
||||
@@ -68,7 +68,7 @@ index 906af187d9f52cd1df9b6ec47b88230d35860471..fc77904699bb75cf55e7ea77a55c8ad4
|
||||
this.setDayTime(this.worldData.getDayTime() + 1L);
|
||||
}
|
||||
|
||||
@@ -1219,6 +1236,12 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
@@ -1221,6 +1238,12 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
|
||||
public void setDayTime(long i) {
|
||||
this.worldDataServer.setDayTime(i);
|
||||
|
||||
@@ -33,7 +33,7 @@ index 1062317c22171bccee78a2db1841e0fd2b3023d7..907bfe42bd866188639f7d25150fcde0
|
||||
if (flag5) {
|
||||
if (i > 0) {
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
||||
index 9a6c4f292940b1cef2f4ef87c2e47d82ba5cb60f..b068e08e3922536b4de8a54e7d63a1ec943602f3 100644
|
||||
index 7341b1956123d8e5d45d9041e7319de8ee8b768a..470ae06db18a78327cc3218f1f7180bcc859a198 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
||||
@@ -1076,7 +1076,7 @@ public class CraftEventFactory {
|
||||
|
||||
@@ -7,7 +7,7 @@ Configurable chance to spawn a wolf that is rabid.
|
||||
Rabid wolves attack all players, mobs, and animals.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
index 617657ff7f27996ed7d97801dc49c9a39f59a240..f3f528065eb9ee2f385edbaceeeddef39552485c 100644
|
||||
index 81c0ccc4f8d0d1cf749cc2929c8d8f3c2c6c9887..72febe30dfcc731bc357d5fe1ede2a240f3d176d 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
@@ -2200,6 +2200,7 @@ public abstract class EntityLiving extends Entity {
|
||||
|
||||
@@ -384,10 +384,10 @@ index 28b5c22ecfe573ac9d91b74e54ebd3e3c5e6373f..88db8ff8cb415b84ab98cc0550c705d5
|
||||
|
||||
@Override
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/EntitySquid.java b/src/main/java/net/minecraft/world/entity/animal/EntitySquid.java
|
||||
index 07b1db0e1fff1beffe464a3984716d5d84ea1873..2d2a3fc083bff18cdf50b1ef49b198f8253987ec 100644
|
||||
index be48e12dd6c9a390bf383129953bcd3d1f818427..1e7632d2ca4440dee4e406e26da61411ec5bc88f 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/EntitySquid.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/EntitySquid.java
|
||||
@@ -85,6 +85,11 @@ public class EntitySquid extends EntityWaterAnimal {
|
||||
@@ -86,6 +86,11 @@ public class EntitySquid extends EntityWaterAnimal {
|
||||
public boolean isInWater() {
|
||||
return this.inWater || world.purpurConfig.squidsCanFly;
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] PlayerBookTooLargeEvent
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
|
||||
index d5c38de84787089466d73dd5400f3276470716be..42f1216db0832b8606e57fc762d5e016450eaf5b 100644
|
||||
index 851d4ac34feb94f0cd4ba8a5399093dfa40ce1cd..da95a9e8870da7002c6ef47fc48ead32f3ab4856 100644
|
||||
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
|
||||
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
|
||||
@@ -1115,6 +1115,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
|
||||
|
||||
@@ -6,7 +6,7 @@ Subject: [PATCH] Add mobGriefing bypass to everything affected
|
||||
This adds the "bypass-mob-griefing" world config option to everything that is affected by the gamerule.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
index f3f528065eb9ee2f385edbaceeeddef39552485c..1e57358c02e67a6b062149926ada46696da24487 100644
|
||||
index 72febe30dfcc731bc357d5fe1ede2a240f3d176d..ac5b13e943d70cfb982f9e2c8e19ab1e69b6ec43 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
@@ -1571,7 +1571,7 @@ public abstract class EntityLiving extends Entity {
|
||||
|
||||
@@ -82,10 +82,10 @@ index d918194e45953764fa3fd286b715714330a60941..70496562faa89e92da34a4f7b891f845
|
||||
if (this.exitPortal == null && this.world.getTypeKey() == DimensionManager.THE_END) { // CraftBukkit - work in alternate worlds
|
||||
this.a((WorldServer) this.world);
|
||||
diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBase.java b/src/main/java/net/minecraft/world/level/block/state/BlockBase.java
|
||||
index 936933ab4c9e78877e1a2fc250721c2158e3810c..c47c98480572e83b1385fcd62940d4c69a79f9dc 100644
|
||||
index 23a3b1b317b6b3e9d812f5a7b09b099b0528c59e..4f40c6c3397596c81147fae4a6a51bfd517643d2 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/block/state/BlockBase.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/block/state/BlockBase.java
|
||||
@@ -302,6 +302,7 @@ public abstract class BlockBase {
|
||||
@@ -303,6 +303,7 @@ public abstract class BlockBase {
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: BillyGalbreath <blake.galbreath@gmail.com>
|
||||
Date: Mon, 25 Jan 2021 10:22:28 -0600
|
||||
Subject: [PATCH] Fix PlayerEditBookEvent not saving new book
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
|
||||
index 42f1216db0832b8606e57fc762d5e016450eaf5b..c93fc03d49c467a6db2e55f4999edad3452136a4 100644
|
||||
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
|
||||
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
|
||||
@@ -1210,7 +1210,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
|
||||
list.stream().map(s -> s = color(s, hasPerm, false)).map(NBTTagString::a).forEach(nbttaglist::add); // Purpur - edit book
|
||||
ItemStack old = itemstack.cloneItemStack(); // CraftBukkit
|
||||
itemstack.a("pages", (NBTBase) nbttaglist);
|
||||
- CraftEventFactory.handleEditBookEvent(player, i, old, itemstack); // CraftBukkit
|
||||
+ this.player.inventory.setItem(i, CraftEventFactory.handleEditBookEvent(player, i, old, itemstack)); // CraftBukkit // Purpur
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ index 63d93060b350069040876aaacb91c853d674ea7b..e9793954c872baacfe7be80ecf3888e8
|
||||
}
|
||||
return;
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
index 1e57358c02e67a6b062149926ada46696da24487..66f1750172df09f1cbb47ca5a679a77a9ccab282 100644
|
||||
index ac5b13e943d70cfb982f9e2c8e19ab1e69b6ec43..6ef78c9099a234abce3669a23e32777ec3beaba7 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
@@ -2974,6 +2974,7 @@ public abstract class EntityLiving extends Entity {
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Dont run with scissors!
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
|
||||
index c93fc03d49c467a6db2e55f4999edad3452136a4..8359ccf316d292d81c56600887178cea6e33f270 100644
|
||||
index da95a9e8870da7002c6ef47fc48ead32f3ab4856..6672858b163aa9d7c51777f9a0a45f701f6e9ac8 100644
|
||||
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
|
||||
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
|
||||
@@ -1533,6 +1533,12 @@ public class PlayerConnection implements PacketListenerPlayIn {
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] One Punch Man!
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
index 66f1750172df09f1cbb47ca5a679a77a9ccab282..659ccc8075945531ca714c43a034f2d5baa5defb 100644
|
||||
index 6ef78c9099a234abce3669a23e32777ec3beaba7..49fefb5f20bda418ae9fcdc238630c5f27b1b859 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
@@ -2019,6 +2019,23 @@ public abstract class EntityLiving extends Entity {
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Config for skipping night
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java
|
||||
index fc77904699bb75cf55e7ea77a55c8ad4a9412c18..5d8326b465458f1f4eeff9f17ef4fe3f12453225 100644
|
||||
index 587bbd1b4cce7cc5ee30471e86c4fe56362b92b8..32b169df6041ede4d8512b471ebc9da40493c99e 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/WorldServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/WorldServer.java
|
||||
@@ -1026,7 +1026,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
@@ -1028,7 +1028,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
}
|
||||
// CraftBukkit end
|
||||
|
||||
@@ -18,7 +18,7 @@ index d321616b7f726f4ff307b46ced9efce6cc20b82f..c20787a20cf6f273092d2b7ef0d7d90a
|
||||
|
||||
public Iterable<ItemStack> bn() {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
index 659ccc8075945531ca714c43a034f2d5baa5defb..1d319ad82179ae261738d6e70aac3bbbd3aecae7 100644
|
||||
index 49fefb5f20bda418ae9fcdc238630c5f27b1b859..7dbfd2dca4d99fcafc3a2fcd83b39f5d52c24f1c 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
@@ -394,7 +394,7 @@ public abstract class EntityLiving extends Entity {
|
||||
@@ -1,3 +1,10 @@
|
||||
repositories {
|
||||
// Airplane libs...
|
||||
maven("https://jitpack.io") {
|
||||
content { includeGroupByRegex("com\\.github\\..*") }
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation("cat.inspiracio", "rhino-js-engine", "1.7.7.1")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user