Debug sync chunk loads

This commit is contained in:
Cryptite
2022-04-02 07:53:27 -05:00
parent fbcc0c8d7e
commit 8297dd7053
7 changed files with 88 additions and 10 deletions

View File

@@ -2,7 +2,7 @@ group=com.lokamc.slice
version=1.18.2-R0.1-SNAPSHOT
mcVersion=1.18.2
paperRef=fa68bb1e816d8c7013dd2ce512724d8b4c8135a5
paperRef=ea2c81e4b9232447f9896af2aac4cd0bf62386fd
org.gradle.caching=true
org.gradle.parallel=true

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] World Instance flag
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
index 8a688583e65cd22e0417f9fd24e51803486d095e..4be062a2404b509594d723eea59d9656eaa228f1 100644
index 3421be8309c9083c0aaa80afec13c8acc4fc85dd..6ee4e186f164dd6df32079a10778f35bc66f65b2 100644
--- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java
@@ -2608,6 +2608,11 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
@@ -2610,6 +2610,11 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
*/
public void setAutoSave(boolean value);

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Set BlockData without light update
diff --git a/src/main/java/net/minecraft/server/level/WorldGenRegion.java b/src/main/java/net/minecraft/server/level/WorldGenRegion.java
index a24f605bd033f249a374e83ba094880106260eee..192e0a7be3ebe1ddd30af478928e581bfdd229a6 100644
index 1e656438d9ee89b97c660f3b3ec671be6546c6b7..787c14495616c2ccc6cbb41a44010f1ede1ff16d 100644
--- a/src/main/java/net/minecraft/server/level/WorldGenRegion.java
+++ b/src/main/java/net/minecraft/server/level/WorldGenRegion.java
@@ -225,7 +225,7 @@ public class WorldGenRegion implements WorldGenLevel {
@@ -17,7 +17,7 @@ index a24f605bd033f249a374e83ba094880106260eee..192e0a7be3ebe1ddd30af478928e581b
}
}
@@ -291,7 +291,7 @@ public class WorldGenRegion implements WorldGenLevel {
@@ -300,7 +300,7 @@ public class WorldGenRegion implements WorldGenLevel {
}
@Override

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Don't send fire packets if player has Fire Resistance
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 84fce7dccf9232209f939a32acfc3131e62eb27c..a57d8aa70fe3df462279c494686056459dc70271 100644
index 49cf3601df7b145d49b1fe9a71ba0bc60c5394b3..382d32045417174f5ef3fe556762146d07e30e17 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -780,7 +780,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i
@@ -780,7 +780,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
this.checkOutOfWorld();
if (!this.level.isClientSide) {

View File

@@ -130,7 +130,7 @@ index 1d88edfd09a909044f6e3175af652914b4d06311..e4f8403c6544e1a00571f28954458a14
}
}
diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java
index 1092ba200a945d8d70e48f956535f56e2743302d..a7f2cc53a0b66d7cd3705f419337bd7ee8c78ec3 100644
index f91e1a876ad4c46a7c92cead18947a941b4d9e68..13973b8803afefd491dc05e1df6e9b10174e0108 100644
--- a/src/main/java/net/minecraft/server/level/ServerEntity.java
+++ b/src/main/java/net/minecraft/server/level/ServerEntity.java
@@ -371,7 +371,19 @@ public class ServerEntity {
@@ -155,10 +155,10 @@ index 1092ba200a945d8d70e48f956535f56e2743302d..a7f2cc53a0b66d7cd3705f419337bd7e
if (this.entity instanceof LivingEntity) {
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index a57d8aa70fe3df462279c494686056459dc70271..172d8008c2f5558962e889dd49f205b9a3800aa2 100644
index 382d32045417174f5ef3fe556762146d07e30e17..d76e8d2030adba305368590158d8767cfe5190e1 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -3006,7 +3006,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i
@@ -2991,7 +2991,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
this.entityData.markDirty(Entity.DATA_AIR_SUPPLY_ID);
return;
}

View File

@@ -0,0 +1,19 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Cryptite <cryptite@gmail.com>
Date: Thu, 31 Mar 2022 09:06:19 -0500
Subject: [PATCH] Set Mutton nutrition equal to Beef/Porkchop
diff --git a/src/main/java/net/minecraft/world/food/Foods.java b/src/main/java/net/minecraft/world/food/Foods.java
index b16d9e2eaa589f19c563ee70b1a56d67dbcdecb0..c6ff08efc7f0c0e782f8e78e01b9d9cea5cdcaed 100644
--- a/src/main/java/net/minecraft/world/food/Foods.java
+++ b/src/main/java/net/minecraft/world/food/Foods.java
@@ -17,7 +17,7 @@ public class Foods {
public static final FoodProperties COOKED_BEEF = (new FoodProperties.Builder()).nutrition(8).saturationMod(0.8F).meat().build();
public static final FoodProperties COOKED_CHICKEN = (new FoodProperties.Builder()).nutrition(6).saturationMod(0.6F).meat().build();
public static final FoodProperties COOKED_COD = (new FoodProperties.Builder()).nutrition(5).saturationMod(0.6F).build();
- public static final FoodProperties COOKED_MUTTON = (new FoodProperties.Builder()).nutrition(6).saturationMod(0.8F).meat().build();
+ public static final FoodProperties COOKED_MUTTON = (new FoodProperties.Builder()).nutrition(8).saturationMod(0.8F).meat().build();
public static final FoodProperties COOKED_PORKCHOP = (new FoodProperties.Builder()).nutrition(8).saturationMod(0.8F).meat().build();
public static final FoodProperties COOKED_RABBIT = (new FoodProperties.Builder()).nutrition(5).saturationMod(0.6F).meat().build();
public static final FoodProperties COOKED_SALMON = (new FoodProperties.Builder()).nutrition(6).saturationMod(0.8F).build();

View File

@@ -0,0 +1,59 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Cryptite <cryptite@gmail.com>
Date: Sat, 2 Apr 2022 17:25:28 -0500
Subject: [PATCH] Debug sync chunk loads
diff --git a/src/main/java/com/destroystokyo/paper/PaperCommand.java b/src/main/java/com/destroystokyo/paper/PaperCommand.java
index d0c55497040158d959693ef2ddf3ff03bd6df05f..62d87903f339669ed0730118d2d0707062f766c8 100644
--- a/src/main/java/com/destroystokyo/paper/PaperCommand.java
+++ b/src/main/java/com/destroystokyo/paper/PaperCommand.java
@@ -70,7 +70,7 @@ import java.util.stream.Collectors;
public class PaperCommand extends Command {
private static final String BASE_PERM = "bukkit.command.paper.";
- private static final ImmutableSet<String> SUBCOMMANDS = ImmutableSet.<String>builder().add("heap", "entity", "reload", "version", "debug", "chunkinfo", "fixlight", "syncloadinfo", "dumpitem", "mobcaps", "playermobcaps").build();
+ private static final ImmutableSet<String> SUBCOMMANDS = ImmutableSet.<String>builder().add("heap", "entity", "reload", "version", "debug", "chunkinfo", "fixlight", "syncloadinfo", "dumpitem", "mobcaps", "playermobcaps", "debugsyncload").build(); // Slice
public PaperCommand(String name) {
super(name);
@@ -122,6 +122,12 @@ public class PaperCommand extends Command {
return getListMatchingLast(sender, args, "clear");
}
break;
+ // Slice start
+ case "debugsyncload":
+ SyncLoadFinder.DEBUG = !SyncLoadFinder.DEBUG;
+ MinecraftServer.LOGGER.info("Debugging sync chunk loads now " + (SyncLoadFinder.DEBUG ? "ON" : "OFF"));
+ break;
+ // Slice end
}
return Collections.emptyList();
}
diff --git a/src/main/java/com/destroystokyo/paper/io/SyncLoadFinder.java b/src/main/java/com/destroystokyo/paper/io/SyncLoadFinder.java
index d3e619655382e50e9ac9323ed942502d85c9599c..ff222a54a320eee467383a612f2ce17614b0fe2a 100644
--- a/src/main/java/com/destroystokyo/paper/io/SyncLoadFinder.java
+++ b/src/main/java/com/destroystokyo/paper/io/SyncLoadFinder.java
@@ -17,6 +17,8 @@ public class SyncLoadFinder {
public static final boolean ENABLED = Boolean.getBoolean("paper.debug-sync-loads");
+ public static boolean DEBUG; // Slice
+
private static final WeakHashMap<Level, Object2ObjectOpenHashMap<ThrowableWithEquals, SyncLoadInformation>> SYNC_LOADS = new WeakHashMap<>();
private static final class SyncLoadInformation {
@@ -37,6 +39,13 @@ public class SyncLoadFinder {
final ThrowableWithEquals stacktrace = new ThrowableWithEquals(Thread.currentThread().getStackTrace());
+ // Slice start
+ if (DEBUG) {
+ org.bukkit.Bukkit.getServer().getLogger().log(java.util.logging.Level.WARNING, "Sync chunk load at " + world.getWorld().getName() + " (" + chunkX + "," + chunkZ + ")");
+ Thread.dumpStack();
+ }
+ // Slice end
+
SYNC_LOADS.compute(world, (final Level keyInMap, Object2ObjectOpenHashMap<ThrowableWithEquals, SyncLoadInformation> map) -> {
if (map == null) {
map = new Object2ObjectOpenHashMap<>();