mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-17 16:37:43 +01:00
Updated Upstream (Paper)
Upstream has released updates that appears to apply and compile correctly Paper Changes: cf82dad3 Fix Non Full Status Chunk NBT Memory Leak 5a12515a Update Log4J Configuration file to stop truncating stack traces 7c001d64 More Improvements to Chunks e1c45196 Fix high memory use of non ticking chunks ee9f0d51 Fix another case of breaking blocks causing sync chunk loads 6009ba8f Drop AABB limit patch until it can be tested more 0e9c24e5 Fix log spam about Hanging entities bounding boxes 83fadad7 Fix conversion for deserializing raw nbt itemstacks - Fixes #3424 4d38ee11 Many fixes and improvements to chunk prioritization 281181c7 Use saner Entity bounding box limits edd6b6a2 Protect the visible chunk map from plugins touching it, trim Timing Errors 18c68657 Optimize performance of object pool 7e1525ea Many improvements to chunk prioritization and bug fixes c82b292a Fix pooled buffer leak resulting in dynmap black spots - Fixes #3386 63274472 Fix ./paper edit continue for Windows eb5a3058 Fix path in CONTRIBUTING.md (#3406) f6ed326d Fix a small error in CONTRIBUTING.md (#3403) 614a664b Implement Chunk Priority / Urgency System for Chunks
This commit is contained in:
2
Paper
2
Paper
Submodule Paper updated: c8028d1c76...cf82dad399
@@ -1 +1 @@
|
||||
1.15.2--0c6830d7565eff99b423b84111c1159be356df13
|
||||
1.15.2--4b2e1d61714587ba29125b8ceb75a8cbb6c65824
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
From 219ff737bfd7175c99cc7ab05733cd32ebee471d Mon Sep 17 00:00:00 2001
|
||||
From 2eebb2917735c5dbb2fee924861f3da007d84acf Mon Sep 17 00:00:00 2001
|
||||
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
|
||||
Date: Thu, 26 Mar 2020 13:17:09 -0500
|
||||
Subject: [PATCH] Add language asset purpur.lang
|
||||
@@ -12,10 +12,10 @@ Subject: [PATCH] Add language asset purpur.lang
|
||||
create mode 100644 src/main/resources/purpur.lang
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
|
||||
index 0f9bca8b8..90c5dc1d6 100644
|
||||
index d60f659b3..4b88a74ff 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
|
||||
@@ -1560,6 +1560,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
|
||||
@@ -1561,6 +1561,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
|
||||
}
|
||||
|
||||
public void a(IChatBaseComponent ichatbasecomponent, ChatMessageType chatmessagetype) {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
From a4bd5ae6b15eae7ff3ef922097ac77434a3b26b9 Mon Sep 17 00:00:00 2001
|
||||
From 03e8fc205943d49907e5d9604466408dc809681b Mon Sep 17 00:00:00 2001
|
||||
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
|
||||
Date: Thu, 6 Feb 2020 19:53:59 -0600
|
||||
Subject: [PATCH] Ridables
|
||||
@@ -3366,10 +3366,10 @@ index 0357c9da9..98a657cec 100644
|
||||
this.targetSelector.a(2, new PathfinderGoalNearestAttackableTarget<>(this, EntityHuman.class, true));
|
||||
this.targetSelector.a(3, new PathfinderGoalNearestAttackableTarget<>(this, EntityVillagerAbstract.class, false));
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
|
||||
index 62f1e4c5f..a657522cc 100644
|
||||
index 4b88a74ff..3970576cf 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
|
||||
@@ -1291,6 +1291,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
|
||||
@@ -1292,6 +1292,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
|
||||
}
|
||||
|
||||
public void a(float f, float f1, boolean flag, boolean flag1) {
|
||||
@@ -3377,7 +3377,7 @@ index 62f1e4c5f..a657522cc 100644
|
||||
if (this.isPassenger()) {
|
||||
if (f >= -1.0F && f <= 1.0F) {
|
||||
this.aZ = f;
|
||||
@@ -1303,7 +1304,6 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
|
||||
@@ -1304,7 +1305,6 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
|
||||
this.jumping = flag;
|
||||
this.setSneaking(flag1);
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
From 6736a689133e386f0ec23a3f9c1c95b55fc6d8b8 Mon Sep 17 00:00:00 2001
|
||||
From 8befdaeb526895946d1ac88ac55dada3011d2317 Mon Sep 17 00:00:00 2001
|
||||
From: William Blake Galbreath <blake.galbreath@gmail.com>
|
||||
Date: Thu, 6 Jun 2019 17:40:30 -0500
|
||||
Subject: [PATCH] Signs allow color codes
|
||||
@@ -11,10 +11,10 @@ Subject: [PATCH] Signs allow color codes
|
||||
4 files changed, 25 insertions(+)
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
|
||||
index a657522cc..c3dc8ada8 100644
|
||||
index 3970576cf..b66f9cd2c 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
|
||||
@@ -1131,6 +1131,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
|
||||
@@ -1132,6 +1132,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
|
||||
@Override
|
||||
public void openSign(TileEntitySign tileentitysign) {
|
||||
tileentitysign.a((EntityHuman) this);
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
From dfcd5e0469a2c910964d8f9b2071b925625be773 Mon Sep 17 00:00:00 2001
|
||||
From 08028ae0a027ecced21386341be053dc433ec59f Mon Sep 17 00:00:00 2001
|
||||
From: William Blake Galbreath <blake.galbreath@gmail.com>
|
||||
Date: Thu, 8 Aug 2019 15:29:15 -0500
|
||||
Subject: [PATCH] Implement AFK API
|
||||
@@ -50,10 +50,10 @@ index 27cfc6654..d62174e9c 100644
|
||||
super(EntityTypes.PLAYER, world);
|
||||
this.bV = ItemStack.a;
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
|
||||
index c3dc8ada8..0d57cff87 100644
|
||||
index b66f9cd2c..0834ca328 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
|
||||
@@ -1624,8 +1624,51 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
|
||||
@@ -1625,8 +1625,51 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
|
||||
|
||||
public void resetIdleTimer() {
|
||||
this.cj = SystemUtils.getMonotonicMillis();
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
From b92e256e7ef06b9ac02a78cd870f085556d9008d Mon Sep 17 00:00:00 2001
|
||||
From 8ffeee36c43f81997d2494e86506bc642ff6b614 Mon Sep 17 00:00:00 2001
|
||||
From: William Blake Galbreath <blake.galbreath@gmail.com>
|
||||
Date: Sun, 21 Jul 2019 18:01:46 -0500
|
||||
Subject: [PATCH] Players should not cram to death
|
||||
@@ -8,10 +8,10 @@ Subject: [PATCH] Players should not cram to death
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
|
||||
index 40a2308e4..2453f0149 100644
|
||||
index 0834ca328..5a64da6a3 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
|
||||
@@ -1104,7 +1104,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
|
||||
@@ -1105,7 +1105,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
|
||||
|
||||
@Override
|
||||
public boolean isInvulnerable(DamageSource damagesource) {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
From 0007148e4418e7676942bae638381c265f9df97c Mon Sep 17 00:00:00 2001
|
||||
From 634656de202a96a0b4004e5a7820b014b315641c Mon Sep 17 00:00:00 2001
|
||||
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
|
||||
Date: Sat, 1 Feb 2020 22:22:16 -0600
|
||||
Subject: [PATCH] Add moon phase API
|
||||
@@ -8,10 +8,10 @@ Subject: [PATCH] Add moon phase API
|
||||
1 file changed, 8 insertions(+)
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||
index 874240d9d..08175e300 100644
|
||||
index 7230ddbf6..2c2176919 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||
@@ -2463,6 +2463,14 @@ public class CraftWorld implements World {
|
||||
@@ -2462,6 +2462,14 @@ public class CraftWorld implements World {
|
||||
|
||||
return new CraftDragonBattle(((WorldProviderTheEnd) worldProvider).o()); // PAIL rename getDragonBattle
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
From 906e4e33c188c9ab482b9de4adea2b605b21a775 Mon Sep 17 00:00:00 2001
|
||||
From dc561d5d0f39071ea710f243bfe8581ebb71de5d Mon Sep 17 00:00:00 2001
|
||||
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
|
||||
Date: Sat, 8 Feb 2020 23:30:17 -0600
|
||||
Subject: [PATCH] Add getPlacementBlockData to World
|
||||
@@ -66,10 +66,10 @@ index 9c9b93f28..74a722cce 100644
|
||||
public static final Item bZ = a(Blocks.CHEST, CreativeModeTab.c);
|
||||
public static final Item ca = a(Blocks.DIAMOND_ORE, CreativeModeTab.b);
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||
index 08175e300..177eec1c6 100644
|
||||
index 2c2176919..1524d0ed2 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||
@@ -2469,6 +2469,11 @@ public class CraftWorld implements World {
|
||||
@@ -2468,6 +2468,11 @@ public class CraftWorld implements World {
|
||||
public net.pl3x.purpur.MoonPhase getMoonPhase() {
|
||||
return net.pl3x.purpur.MoonPhase.getPhase(getFullTime() / 24000L);
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
From 1a9eb647458d4f89ab12c198f611534dbff7904c Mon Sep 17 00:00:00 2001
|
||||
From d93cab923b90c3110303ddc0fa5639fa9bb766e9 Mon Sep 17 00:00:00 2001
|
||||
From: William Blake Galbreath <blake.galbreath@gmail.com>
|
||||
Date: Sat, 19 Oct 2019 01:42:50 -0500
|
||||
Subject: [PATCH] Fix SpawnChangeEvent not firing for all use-cases
|
||||
@@ -25,10 +25,10 @@ index 4c04e2120..7356d794d 100644
|
||||
|
||||
public boolean a(EntityHuman entityhuman, BlockPosition blockposition) {
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||
index 177eec1c6..b32031815 100644
|
||||
index 1524d0ed2..4ba2ec7df 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||
@@ -385,12 +385,16 @@ public class CraftWorld implements World {
|
||||
@@ -384,12 +384,16 @@ public class CraftWorld implements World {
|
||||
@Override
|
||||
public boolean setSpawnLocation(int x, int y, int z) {
|
||||
try {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
From 1940aae5b2ec54b55798f99c4aa15b14f7d02d1a Mon Sep 17 00:00:00 2001
|
||||
From 91ce35606f22d364618692367be15758f0b27e56 Mon Sep 17 00:00:00 2001
|
||||
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
|
||||
Date: Tue, 18 Feb 2020 20:07:08 -0600
|
||||
Subject: [PATCH] Add option to disable saving projectiles to disk
|
||||
@@ -15,10 +15,10 @@ Subject: [PATCH] Add option to disable saving projectiles to disk
|
||||
8 files changed, 58 insertions(+)
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
|
||||
index 82264bf65..10764dd10 100644
|
||||
index 1685237df..a8c0f9216 100644
|
||||
--- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java
|
||||
+++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
|
||||
@@ -441,6 +441,7 @@ public class ChunkRegionLoader {
|
||||
@@ -468,6 +468,7 @@ public class ChunkRegionLoader {
|
||||
|
||||
while (iterator1.hasNext()) {
|
||||
Entity entity = (Entity) iterator1.next();
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
From 8c0c22b4f9bcaa2c8671de1f4cefe082c18b9692 Mon Sep 17 00:00:00 2001
|
||||
From 996bfc559c8d08e6ba40434b6dd1ef37778779e9 Mon Sep 17 00:00:00 2001
|
||||
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
|
||||
Date: Thu, 2 Apr 2020 00:28:06 -0500
|
||||
Subject: [PATCH] Optimize Chunk Ticks
|
||||
@@ -9,10 +9,10 @@ Subject: [PATCH] Optimize Chunk Ticks
|
||||
2 files changed, 25 insertions(+), 39 deletions(-)
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java
|
||||
index 8ca6adbac..389b42afa 100644
|
||||
index 54e89c9cc..9af2c5c74 100644
|
||||
--- a/src/main/java/net/minecraft/server/ChunkProviderServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java
|
||||
@@ -771,11 +771,12 @@ public class ChunkProviderServer extends IChunkProvider {
|
||||
@@ -781,11 +781,12 @@ public class ChunkProviderServer extends IChunkProvider {
|
||||
int k = this.world.getGameRules().getInt(GameRules.RANDOM_TICK_SPEED);
|
||||
BlockPosition blockposition = this.world.getSpawn();
|
||||
// CraftBukkit start - Other mob type spawn tick rate
|
||||
@@ -30,7 +30,7 @@ index 8ca6adbac..389b42afa 100644
|
||||
// CraftBukkit end
|
||||
|
||||
this.world.getMethodProfiler().enter("naturalSpawnCount");
|
||||
@@ -821,40 +822,11 @@ public class ChunkProviderServer extends IChunkProvider {
|
||||
@@ -831,40 +832,11 @@ public class ChunkProviderServer extends IChunkProvider {
|
||||
if (flag1 && (this.allowMonsters || this.allowAnimals) && this.world.getWorldBorder().isInBounds(chunk.getPos()) && !this.playerChunkMap.isOutsideOfRange(playerchunk, chunkcoordintpair, true)) { // Spigot // Paper - optimise isOutsideOfRange
|
||||
this.world.getMethodProfiler().enter("spawner");
|
||||
this.world.timings.mobSpawn.startTiming(); // Spigot
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
From 62f89ef6290a97c5149e838728a711a2766356ad Mon Sep 17 00:00:00 2001
|
||||
From 4f5c6cd5333bd2f911b097d038ab0b87e0b5a166 Mon Sep 17 00:00:00 2001
|
||||
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
|
||||
Date: Sat, 2 May 2020 20:55:44 -0500
|
||||
Subject: [PATCH] Player invulnerabilities
|
||||
@@ -12,7 +12,7 @@ Subject: [PATCH] Player invulnerabilities
|
||||
5 files changed, 42 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
|
||||
index c4a6f94a3..d6415a506 100644
|
||||
index 5a64da6a3..265bb0757 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
|
||||
@@ -131,6 +131,8 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
|
||||
@@ -24,7 +24,7 @@ index c4a6f94a3..d6415a506 100644
|
||||
}
|
||||
|
||||
// Yes, this doesn't match Vanilla, but it's the best we can do for now.
|
||||
@@ -726,6 +728,12 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
|
||||
@@ -727,6 +729,12 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
|
||||
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@ index c4a6f94a3..d6415a506 100644
|
||||
@Override
|
||||
public boolean damageEntity(DamageSource damagesource, float f) {
|
||||
if (this.isInvulnerable(damagesource)) {
|
||||
@@ -733,7 +741,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
|
||||
@@ -734,7 +742,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
|
||||
} else {
|
||||
boolean flag = this.server.m() && this.canPvP() && "fall".equals(damagesource.translationIndex);
|
||||
|
||||
@@ -46,7 +46,7 @@ index c4a6f94a3..d6415a506 100644
|
||||
return false;
|
||||
} else {
|
||||
if (damagesource instanceof EntityDamageSource) {
|
||||
@@ -1000,6 +1008,8 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
|
||||
@@ -1001,6 +1009,8 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
|
||||
PlayerChangedWorldEvent changeEvent = new PlayerChangedWorldEvent(this.getBukkitEntity(), worldserver.getWorld());
|
||||
this.world.getServer().getPluginManager().callEvent(changeEvent);
|
||||
// CraftBukkit end
|
||||
@@ -55,7 +55,7 @@ index c4a6f94a3..d6415a506 100644
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@@ -1988,9 +1998,17 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
|
||||
@@ -1989,9 +1999,17 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
|
||||
|
||||
@Override
|
||||
public boolean isFrozen() { // Paper - protected > public
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
From e20f17afdb64be8a7b94f2a8b4ff7de1bf76befc Mon Sep 17 00:00:00 2001
|
||||
From 24c75bc95d5b36139730c743f4d32357295f90c6 Mon Sep 17 00:00:00 2001
|
||||
From: chase <chasewhip20@gmail.com>
|
||||
Date: Sun, 15 Mar 2020 18:32:22 -0600
|
||||
Subject: [PATCH] PaperPR - Per World Spawn limits
|
||||
@@ -31,10 +31,10 @@ index 7e7f10351..f2281d325 100644
|
||||
public boolean batRidableInWater = false;
|
||||
public boolean batRequireShiftToMount = true;
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||
index b32031815..bfd500587 100644
|
||||
index 4ba2ec7df..066b07f5a 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||
@@ -334,6 +334,13 @@ public class CraftWorld implements World {
|
||||
@@ -333,6 +333,13 @@ public class CraftWorld implements World {
|
||||
this.generator = gen;
|
||||
|
||||
environment = env;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
From fb5246adbd39b33de4c97f8ab9ece717ac69b1cb Mon Sep 17 00:00:00 2001
|
||||
From d2c2b464f6e94a3c3904e410164da9c97e9dde84 Mon Sep 17 00:00:00 2001
|
||||
From: Spottedleaf <Spottedleaf@users.noreply.github.com>
|
||||
Date: Fri, 25 Oct 2019 02:11:30 -0700
|
||||
Subject: [PATCH] Tuinity - Delay chunk unloads
|
||||
@@ -35,10 +35,10 @@ index 55f9f4e6e..ac21fdb4c 100644
|
||||
this.a(ChunkCoordIntPair.a, i, j, flag);
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/ChunkMapDistance.java b/src/main/java/net/minecraft/server/ChunkMapDistance.java
|
||||
index 716d4eab3..8eddb1fa1 100644
|
||||
index 771d87971..6d46ca591 100644
|
||||
--- a/src/main/java/net/minecraft/server/ChunkMapDistance.java
|
||||
+++ b/src/main/java/net/minecraft/server/ChunkMapDistance.java
|
||||
@@ -30,7 +30,7 @@ public abstract class ChunkMapDistance {
|
||||
@@ -31,7 +31,7 @@ public abstract class ChunkMapDistance {
|
||||
private static final int b = 33 + ChunkStatus.a(ChunkStatus.FULL) - 2;
|
||||
private final Long2ObjectMap<ObjectSet<EntityPlayer>> c = new Long2ObjectOpenHashMap();
|
||||
public final Long2ObjectOpenHashMap<ArraySetSorted<Ticket<?>>> tickets = new Long2ObjectOpenHashMap();
|
||||
@@ -46,8 +46,8 @@ index 716d4eab3..8eddb1fa1 100644
|
||||
+ private final ChunkMapDistance.a e = new ChunkMapDistance.a(); final ChunkMapDistance.a getTicketTracker() { return this.e; } // Purpur - OBFHELPER
|
||||
public static final int MOB_SPAWN_RANGE = 8; //private final ChunkMapDistance.b f = new ChunkMapDistance.b(8); // Paper - no longer used
|
||||
private final ChunkMapDistance.c g = new ChunkMapDistance.c(33);
|
||||
private final java.util.Queue<PlayerChunk> pendingChunkUpdates = new java.util.ArrayDeque<>(); // PAIL pendingChunkUpdates // Paper - use a queue
|
||||
@@ -42,6 +42,46 @@ public abstract class ChunkMapDistance {
|
||||
// Paper start use a queue, but still keep unique requirement
|
||||
@@ -52,6 +52,46 @@ public abstract class ChunkMapDistance {
|
||||
private long currentTick;
|
||||
|
||||
PlayerChunkMap chunkMap; // Paper
|
||||
@@ -94,7 +94,7 @@ index 716d4eab3..8eddb1fa1 100644
|
||||
|
||||
protected ChunkMapDistance(Executor executor, Executor executor1) {
|
||||
executor1.getClass();
|
||||
@@ -58,12 +98,30 @@ public abstract class ChunkMapDistance {
|
||||
@@ -68,12 +108,30 @@ public abstract class ChunkMapDistance {
|
||||
++this.currentTick;
|
||||
ObjectIterator objectiterator = this.tickets.long2ObjectEntrySet().fastIterator();
|
||||
|
||||
@@ -126,15 +126,15 @@ index 716d4eab3..8eddb1fa1 100644
|
||||
this.e.b(entry.getLongKey(), a((ArraySetSorted) entry.getValue()), false);
|
||||
}
|
||||
|
||||
@@ -74,6 +132,7 @@ public abstract class ChunkMapDistance {
|
||||
@@ -84,6 +142,7 @@ public abstract class ChunkMapDistance {
|
||||
|
||||
}
|
||||
|
||||
+ private static int getLowestTicketLevel(ArraySetSorted<Ticket<?>> arraysetsorted) { return a(arraysetsorted); } // Purpur - OBFHELPER
|
||||
private static int a(ArraySetSorted<Ticket<?>> arraysetsorted) {
|
||||
AsyncCatcher.catchOp("ChunkMapDistance::getHighestTicketLevel"); // Paper
|
||||
return !arraysetsorted.isEmpty() ? ((Ticket) arraysetsorted.b()).b() : PlayerChunkMap.GOLDEN_TICKET + 1;
|
||||
}
|
||||
@@ -156,6 +215,11 @@ public abstract class ChunkMapDistance {
|
||||
@@ -175,6 +234,11 @@ public abstract class ChunkMapDistance {
|
||||
boolean removed = false; // CraftBukkit
|
||||
if (arraysetsorted.remove(ticket)) {
|
||||
removed = true; // CraftBukkit
|
||||
@@ -147,7 +147,7 @@ index 716d4eab3..8eddb1fa1 100644
|
||||
|
||||
if (arraysetsorted.isEmpty()) {
|
||||
diff --git a/src/main/java/net/minecraft/server/Ticket.java b/src/main/java/net/minecraft/server/Ticket.java
|
||||
index 7a8397815..8aae0b63e 100644
|
||||
index 0d6e0f2dd..ce0aef25c 100644
|
||||
--- a/src/main/java/net/minecraft/server/Ticket.java
|
||||
+++ b/src/main/java/net/minecraft/server/Ticket.java
|
||||
@@ -5,9 +5,10 @@ import java.util.Objects;
|
||||
@@ -160,10 +160,10 @@ index 7a8397815..8aae0b63e 100644
|
||||
- private long d; public final long getCreationTick() { return this.d; } // Paper - OBFHELPER
|
||||
+ private long d; public final long getCreationTick() { return this.d; } public final void setCreationTick(final long value) { this.d = value; } // Paper - OBFHELPER // Purpur - OBFHELPER
|
||||
+ boolean isCached; // Purpur - delay chunk unloads, this defends against really stupid plugins
|
||||
public int priority = 0; // Paper
|
||||
|
||||
protected Ticket(TicketType<T> tickettype, int i, T t0) {
|
||||
this.a = tickettype;
|
||||
@@ -60,6 +61,7 @@ public final class Ticket<T> implements Comparable<Ticket<?>> {
|
||||
@@ -61,6 +62,7 @@ public final class Ticket<T> implements Comparable<Ticket<?>> {
|
||||
this.d = i;
|
||||
}
|
||||
|
||||
@@ -172,13 +172,13 @@ index 7a8397815..8aae0b63e 100644
|
||||
long j = this.a.b();
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/TicketType.java b/src/main/java/net/minecraft/server/TicketType.java
|
||||
index 8055f5998..93587068f 100644
|
||||
index 24ec5d77c..1243134bc 100644
|
||||
--- a/src/main/java/net/minecraft/server/TicketType.java
|
||||
+++ b/src/main/java/net/minecraft/server/TicketType.java
|
||||
@@ -23,6 +23,7 @@ public class TicketType<T> {
|
||||
public static final TicketType<org.bukkit.plugin.Plugin> PLUGIN_TICKET = a("plugin_ticket", (plugin1, plugin2) -> plugin1.getClass().getName().compareTo(plugin2.getClass().getName())); // CraftBukkit
|
||||
public static final TicketType<Long> FUTURE_AWAIT = a("future_await", Long::compareTo); // Paper
|
||||
@@ -25,6 +25,7 @@ public class TicketType<T> {
|
||||
public static final TicketType<Long> ASYNC_LOAD = a("async_load", Long::compareTo); // Paper
|
||||
public static final TicketType<ChunkCoordIntPair> PRIORITY = a("priority", Comparator.comparingLong(ChunkCoordIntPair::pair), 300); // Paper
|
||||
public static final TicketType<ChunkCoordIntPair> URGENT = a("urgent", Comparator.comparingLong(ChunkCoordIntPair::pair), 300); // Paper
|
||||
+ public static final TicketType<Long> DELAYED_UNLOAD = a("delayed_unload", Long::compareTo); // Purpur
|
||||
|
||||
public static <T> TicketType<T> a(String s, Comparator<T> comparator) {
|
||||
@@ -209,10 +209,10 @@ index ab88636ca..becb13e0e 100644
|
||||
+ }
|
||||
}
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||
index bfd500587..643080f6f 100644
|
||||
index 066b07f5a..067272cf3 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||
@@ -489,6 +489,7 @@ public class CraftWorld implements World {
|
||||
@@ -488,6 +488,7 @@ public class CraftWorld implements World {
|
||||
net.minecraft.server.IChunkAccess chunk = world.getChunkProvider().getChunkAtIfLoadedImmediately(x, z); // Paper
|
||||
if (chunk != null) {
|
||||
world.getChunkProvider().removeTicket(TicketType.PLUGIN, chunk.getPos(), 1, Unit.INSTANCE);
|
||||
|
||||
Reference in New Issue
Block a user