aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/server/0675-Improve-and-expand-AsyncCatcher.patch
diff options
context:
space:
mode:
authorBjarne Koll <[email protected]>2023-06-08 11:18:51 +0200
committerBjarne Koll <[email protected]>2023-06-08 11:18:51 +0200
commit1c1270169172e85588980eeb93dab9633b4e9af4 (patch)
treedd9c16f2a832d833af54a1450bae14fbb9c2ed26 /patches/server/0675-Improve-and-expand-AsyncCatcher.patch
parentd5682d77c3651e1543a9c978e896dc90bdb77996 (diff)
downloadPaper-1c1270169172e85588980eeb93dab9633b4e9af4.tar.gz
Paper-1c1270169172e85588980eeb93dab9633b4e9af4.zip
Update fluid chunk loading patch
Diffstat (limited to 'patches/server/0675-Improve-and-expand-AsyncCatcher.patch')
-rw-r--r--patches/server/0675-Improve-and-expand-AsyncCatcher.patch191
1 files changed, 0 insertions, 191 deletions
diff --git a/patches/server/0675-Improve-and-expand-AsyncCatcher.patch b/patches/server/0675-Improve-and-expand-AsyncCatcher.patch
deleted file mode 100644
index f7c7d429a6..0000000000
--- a/patches/server/0675-Improve-and-expand-AsyncCatcher.patch
+++ /dev/null
@@ -1,191 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Spottedleaf <[email protected]>
-Date: Wed, 25 Aug 2021 20:17:12 -0700
-Subject: [PATCH] Improve and expand AsyncCatcher
-
-Log when the async catcher is tripped
- The chunk system can swallow the exception given it's all
- built with completablefuture, so ensure it is at least printed.
-
-Add/move several async catchers
-
-Async catch modifications to critical entity state
- These used to be here from Spigot, but were dropped with 1.17.
- Now in 1.17, this state is _even more_ critical than it was before,
- so these must exist to catch stupid plugins.
-
-Co-authored-by: Jake Potrebic <[email protected]>
-
-diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index ca8ceca79ee191b7366c5c84fffa47852de61ec0..ee5f58ae4c276b4529d7dd35aa5cfa515e058d77 100644
---- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1653,6 +1653,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
- }
-
- public void internalTeleport(double d0, double d1, double d2, float f, float f1, Set<RelativeMovement> set) { // Paper
-+ org.spigotmc.AsyncCatcher.catchOp("teleport"); // Paper
- // Paper start
- if (player.isRemoved()) {
- LOGGER.info("Attempt to teleport removed player {} restricted", player.getScoreboardName());
-diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 3017e7a6c2685e4ab82a425025c363133209222d..dffce1de1254f0194db2f28b797155846d3beeb0 100644
---- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
-+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -1120,7 +1120,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
- }
-
- public boolean addEffect(MobEffectInstance mobeffect, @Nullable Entity entity, EntityPotionEffectEvent.Cause cause) {
-- org.spigotmc.AsyncCatcher.catchOp("effect add"); // Spigot
-+ // org.spigotmc.AsyncCatcher.catchOp("effect add"); // Spigot // Paper - move to API
- if (this.isTickingEffects) {
- this.effectsToProcess.add(new ProcessableEffect(mobeffect, cause));
- return true;
-diff --git a/src/main/java/net/minecraft/world/level/entity/PersistentEntitySectionManager.java b/src/main/java/net/minecraft/world/level/entity/PersistentEntitySectionManager.java
-index 47bab513feec217d875192afef61f3af95b93d24..d3fb277878adb26c7d80cf21f27070380fdfacd1 100644
---- a/src/main/java/net/minecraft/world/level/entity/PersistentEntitySectionManager.java
-+++ b/src/main/java/net/minecraft/world/level/entity/PersistentEntitySectionManager.java
-@@ -77,6 +77,7 @@ public class PersistentEntitySectionManager<T extends EntityAccess> implements A
- }
-
- private boolean addEntityUuid(T entity) {
-+ org.spigotmc.AsyncCatcher.catchOp("Entity add by UUID"); // Paper
- if (!this.knownUuids.add(entity.getUUID())) {
- PersistentEntitySectionManager.LOGGER.warn("UUID of added entity already exists: {}", entity);
- return false;
-@@ -90,6 +91,7 @@ public class PersistentEntitySectionManager<T extends EntityAccess> implements A
- }
-
- private boolean addEntity(T entity, boolean existing) {
-+ org.spigotmc.AsyncCatcher.catchOp("Entity add"); // Paper
- // Paper start - chunk system hooks
- if (existing) {
- // I don't want to know why this is a generic type.
-@@ -145,19 +147,23 @@ public class PersistentEntitySectionManager<T extends EntityAccess> implements A
- }
-
- void startTicking(T entity) {
-+ org.spigotmc.AsyncCatcher.catchOp("Entity start ticking"); // Paper
- this.callbacks.onTickingStart(entity);
- }
-
- void stopTicking(T entity) {
-+ org.spigotmc.AsyncCatcher.catchOp("Entity stop ticking"); // Paper
- this.callbacks.onTickingEnd(entity);
- }
-
- void startTracking(T entity) {
-+ org.spigotmc.AsyncCatcher.catchOp("Entity start tracking"); // Paper
- this.visibleEntityStorage.add(entity);
- this.callbacks.onTrackingStart(entity);
- }
-
- void stopTracking(T entity) {
-+ org.spigotmc.AsyncCatcher.catchOp("Entity stop tracking"); // Paper
- this.callbacks.onTrackingEnd(entity);
- this.visibleEntityStorage.remove(entity);
- }
-@@ -169,6 +175,7 @@ public class PersistentEntitySectionManager<T extends EntityAccess> implements A
- }
-
- public void updateChunkStatus(ChunkPos chunkPos, Visibility trackingStatus) {
-+ org.spigotmc.AsyncCatcher.catchOp("Update chunk status"); // Paper
- long i = chunkPos.toLong();
-
- if (trackingStatus == Visibility.HIDDEN) {
-@@ -213,6 +220,7 @@ public class PersistentEntitySectionManager<T extends EntityAccess> implements A
- }
-
- public void ensureChunkQueuedForLoad(long chunkPos) {
-+ org.spigotmc.AsyncCatcher.catchOp("Entity chunk save"); // Paper
- PersistentEntitySectionManager.ChunkLoadStatus persistententitysectionmanager_b = (PersistentEntitySectionManager.ChunkLoadStatus) this.chunkLoadStatuses.get(chunkPos);
-
- if (persistententitysectionmanager_b == PersistentEntitySectionManager.ChunkLoadStatus.FRESH) {
-@@ -257,6 +265,7 @@ public class PersistentEntitySectionManager<T extends EntityAccess> implements A
- }
-
- private void requestChunkLoad(long chunkPos) {
-+ org.spigotmc.AsyncCatcher.catchOp("Entity chunk load request"); // Paper
- this.chunkLoadStatuses.put(chunkPos, PersistentEntitySectionManager.ChunkLoadStatus.PENDING);
- ChunkPos chunkcoordintpair = new ChunkPos(chunkPos);
- CompletableFuture completablefuture = this.permanentStorage.loadEntities(chunkcoordintpair);
-@@ -270,6 +279,7 @@ public class PersistentEntitySectionManager<T extends EntityAccess> implements A
- }
-
- private boolean processChunkUnload(long chunkPos) {
-+ org.spigotmc.AsyncCatcher.catchOp("Entity chunk unload process"); // Paper
- boolean flag = this.storeChunkSections(chunkPos, (entityaccess) -> {
- entityaccess.getPassengersAndSelf().forEach(this::unloadEntity);
- }, true); // CraftBukkit - add boolean for event call
-@@ -294,6 +304,7 @@ public class PersistentEntitySectionManager<T extends EntityAccess> implements A
- }
-
- private void processPendingLoads() {
-+ org.spigotmc.AsyncCatcher.catchOp("Entity chunk process pending loads"); // Paper
- ChunkEntities<T> chunkentities; // CraftBukkit - decompile error
-
- while ((chunkentities = (ChunkEntities) this.loadingInbox.poll()) != null) {
-@@ -310,6 +321,7 @@ public class PersistentEntitySectionManager<T extends EntityAccess> implements A
- }
-
- public void tick() {
-+ org.spigotmc.AsyncCatcher.catchOp("Entity manager tick"); // Paper
- this.processPendingLoads();
- this.processUnloads();
- }
-@@ -330,6 +342,7 @@ public class PersistentEntitySectionManager<T extends EntityAccess> implements A
- }
-
- public void autoSave() {
-+ org.spigotmc.AsyncCatcher.catchOp("Entity manager autosave"); // Paper
- this.getAllChunksToSave().forEach((java.util.function.LongConsumer) (i) -> { // CraftBukkit - decompile error
- boolean flag = this.chunkVisibility.get(i) == Visibility.HIDDEN;
-
-@@ -344,6 +357,7 @@ public class PersistentEntitySectionManager<T extends EntityAccess> implements A
- }
-
- public void saveAll() {
-+ org.spigotmc.AsyncCatcher.catchOp("Entity manager save"); // Paper
- LongSet longset = this.getAllChunksToSave();
-
- while (!longset.isEmpty()) {
-@@ -446,6 +460,7 @@ public class PersistentEntitySectionManager<T extends EntityAccess> implements A
- long i = SectionPos.asLong(blockposition);
-
- if (i != this.currentSectionKey) {
-+ org.spigotmc.AsyncCatcher.catchOp("Entity move"); // Paper
- Visibility visibility = this.currentSection.getStatus();
-
- if (!this.currentSection.remove(this.entity)) {
-@@ -500,6 +515,7 @@ public class PersistentEntitySectionManager<T extends EntityAccess> implements A
-
- @Override
- public void onRemove(Entity.RemovalReason reason) {
-+ org.spigotmc.AsyncCatcher.catchOp("Entity remove"); // Paper
- if (!this.currentSection.remove(this.entity)) {
- PersistentEntitySectionManager.LOGGER.warn("Entity {} wasn't found in section {} (destroying due to {})", new Object[]{this.entity, SectionPos.of(this.currentSectionKey), reason});
- }
-diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index 1973a8ed75f9bacebebfa74dd2d06bf7d840ea4a..8b6cae9a005a6db608be85805382704ff5dc6669 100644
---- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-@@ -455,6 +455,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
-
- @Override
- public boolean addPotionEffect(PotionEffect effect, boolean force) {
-+ org.spigotmc.AsyncCatcher.catchOp("effect add"); // Paper
- this.getHandle().addEffect(new MobEffectInstance(MobEffect.byId(effect.getType().getId()), effect.getDuration(), effect.getAmplifier(), effect.isAmbient(), effect.hasParticles(), effect.hasIcon()), EntityPotionEffectEvent.Cause.PLUGIN); // Paper - Don't ignore icon
- return true;
- }
-diff --git a/src/main/java/org/spigotmc/AsyncCatcher.java b/src/main/java/org/spigotmc/AsyncCatcher.java
-index 5409f230fdd53b70fc03c58177438534731ad4e6..c02a04d284734b5f545b64307ed4aea337c1465f 100644
---- a/src/main/java/org/spigotmc/AsyncCatcher.java
-+++ b/src/main/java/org/spigotmc/AsyncCatcher.java
-@@ -12,6 +12,7 @@ public class AsyncCatcher
- {
- if ( !io.papermc.paper.util.TickThread.isTickThread() ) // Paper // Paper - rewrite chunk system
- {
-+ MinecraftServer.LOGGER.error("Thread " + Thread.currentThread().getName() + " failed main thread check: " + reason, new Throwable()); // Paper
- throw new IllegalStateException( "Asynchronous " + reason + "!" );
- }
- }