9
0
mirror of https://github.com/Winds-Studio/Leaf.git synced 2025-12-22 16:39:22 +00:00

Some server patches work

This commit is contained in:
Dreeam
2024-06-21 18:11:26 +08:00
parent 6004e01adf
commit 11cbe4af4c
21 changed files with 1837 additions and 2056 deletions

View File

@@ -1,6 +1,6 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Github Actions <no-reply@github.com>
Date: Sun, 21 Jan 2024 08:34:10 -0500
Date: Fri, 21 Jun 2024 03:34:00 +0000
Subject: [PATCH] Purpur generated-api Changes
Original license: MIT

View File

@@ -120,23 +120,37 @@ index 2596e0ee4df5b96f181e28a742ef345981fc97e3..023016de1732f0b299428ec0544128cc
@Override
diff --git a/src/main/java/net/minecraft/CrashReport.java b/src/main/java/net/minecraft/CrashReport.java
index b24265573fdef5d9a964bcd76146f34542c420cf..ae219897f0085b758dcc1b0ad4893336336e6a49 100644
index b24265573fdef5d9a964bcd76146f34542c420cf..aa25fd3ee043003f359b2c67a6d0f6700a0ef893 100644
--- a/src/main/java/net/minecraft/CrashReport.java
+++ b/src/main/java/net/minecraft/CrashReport.java
@@ -125,6 +125,11 @@ public class CrashReport {
StringBuilder stringbuilder = new StringBuilder();
@@ -32,6 +32,7 @@ public class CrashReport {
private boolean trackingStackTrace = true;
private StackTraceElement[] uncategorizedStackTrace = new StackTraceElement[0];
private final SystemReport systemReport = new SystemReport();
+ private List<String> extraInfo = List.of("", "DO NOT REPORT THIS TO PAPER OR GALE! REPORT TO LEAF INSTEAD!", ""); // Leaf - Purpur
type.appendHeader(stringbuilder, extraInfo);
+ // Leaf start - Purpur
+ stringbuilder.append("// ");
+ stringbuilder.append("// DO NOT REPORT THIS TO PAPER OR GALE! REPORT TO LEAF INSTEAD!");
+ // Leaf end - Purpur
+ stringbuilder.append("// ");
stringbuilder.append("Time: ");
stringbuilder.append(CrashReport.DATE_TIME_FORMATTER.format(ZonedDateTime.now()));
stringbuilder.append("\n");
public CrashReport(String message, Throwable cause) {
io.papermc.paper.util.StacktraceDeobfuscator.INSTANCE.deobfuscateThrowable(cause); // Paper
@@ -144,7 +145,7 @@ public class CrashReport {
}
public String getFriendlyReport(ReportType type) {
- return this.getFriendlyReport(type, List.of());
+ return this.getFriendlyReport(type, extraInfo); // Leaf - Purpur
}
@Nullable
@@ -191,7 +192,7 @@ public class CrashReport {
}
public boolean saveToFile(Path path, ReportType type) {
- return this.saveToFile(path, type, List.of());
+ return this.saveToFile(path, type, extraInfo); // Leaf - Purpur
}
public SystemReport getSystemReport() {
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 25d1b4512f81802c658a5e0a03c8212ad69ac04e..f583b65fcb3f93e701bf1af0da9a1f975a216750 100644
index 25d1b4512f81802c658a5e0a03c8212ad69ac04e..44a9ed9f06818f8bcf4caf673c4e6b02f6ed924e 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -956,7 +956,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -144,10 +158,36 @@ index 25d1b4512f81802c658a5e0a03c8212ad69ac04e..f583b65fcb3f93e701bf1af0da9a1f97
but we do want people to report thread issues to Gale.
*/
- MinecraftServer.LOGGER.info("Stopping main thread (Ignore any thread death message you see! - DO NOT REPORT THREAD DEATH TO PAPER - If you think this is a Gale bug, please report it at https://github.com/GaleMC/Gale/issues)");
+ MinecraftServer.LOGGER.info("Stopping main thread (Ignore any thread death message you see! - DO NOT REPORT THREAD DEATH TO PAPER - If you think this is a Leaf bug, please report it at https://github.com/Winds-Studio/Leaf/issues )"); // Leaf
+ MinecraftServer.LOGGER.info("Stopping main thread (Ignore any thread death message you see! - DO NOT REPORT THREAD DEATH TO PAPER - If you think this is a Leaf bug, please report it at https://github.com/Winds-Studio/Leaf/issues)"); // Leaf
// Gale end - branding changes
while (this.getRunningThread().isAlive()) {
this.getRunningThread().stop();
diff --git a/src/main/java/net/minecraft/world/damagesource/DamageSource.java b/src/main/java/net/minecraft/world/damagesource/DamageSource.java
index 4d037e899e0b5548be406ad55acd2062603b7da1..379b36944ddb149e2f48221aa39ad090bbd2faeb 100644
--- a/src/main/java/net/minecraft/world/damagesource/DamageSource.java
+++ b/src/main/java/net/minecraft/world/damagesource/DamageSource.java
@@ -67,7 +67,7 @@ public class DamageSource {
public DamageSource customEventDamager(Entity entity) {
if (this.directEntity != null) {
- throw new IllegalStateException("Cannot set custom event damager when direct entity is already set (report a bug to Paper, if you think this is a Gale bug, please report it at https://github.com/GaleMC/Gale/issues)"); // Gale - branding changes
+ throw new IllegalStateException("Cannot set custom event damager when direct entity is already set (report a bug to Paper, if you think this is a Leaf bug, please report it at https://github.com/Winds-Studio/Leaf/issues)"); // Gale - branding changes // Leaf
}
DamageSource damageSource = this.cloneInstance();
damageSource.customEventDamager = entity;
diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java
index b797ca4b68d110bbf64eac4ae422a7bc8bce145a..e8f0f0e2b3afd305afb6cf4d41f4fc31bf2bc68d 100644
--- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java
+++ b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java
@@ -151,7 +151,7 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise
We do not want people to report thread issues to Paper,
but we do want people to report thread issues to Gale.
*/
- org.apache.logging.log4j.LogManager.getLogger().fatal(msg + " (" + file.toString().replaceAll(".+[\\\\/]", "") + " - " + x + "," + z + ") Go clean it up to remove this message. /minecraft:tp " + (x<<4)+" 128 "+(z<<4) + " - DO NOT REPORT THIS TO PAPER OR GALE - You may ask for help on Discord, but do not file an issue. These error messages can not be removed. - If you think this is a Gale bug, please report it at https://github.com/GaleMC/Gale/issues)");
+ org.apache.logging.log4j.LogManager.getLogger().fatal(msg + " (" + file.toString().replaceAll(".+[\\\\/]", "") + " - " + x + "," + z + ") Go clean it up to remove this message. /minecraft:tp " + (x<<4)+" 128 "+(z<<4) + " - DO NOT REPORT THIS TO PAPER OR LEAF - You may ask for help on Discord, but do not file an issue. These error messages can not be removed. - If you think this is a Leaf bug, please report it at https://github.com/Winds-Studio/Leaf/issues)"); // Leaf
// Gale end - branding changes
}
diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
index 79192e3a0f27d48f35c0378b58e587212ed2c305..006adb2adb27c497ede69f87e78bc3e34499cbf8 100644
--- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java

View File

@@ -27,10 +27,10 @@ index e94224ed280247ee69dfdff8dc960f2b8729be33..5b9725a9a81c0850dc2809c150529e5f
for (Component component : formatProviders(spigotPlugins, sender)) { // Purpur
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 7bba8f957d7b4cbe80000bdd39793ce600201496..1f166b48af314ee85239ae39358a47fb0e6d423c 100644
index b5fd90764d954acd0381cf42c38d5015c200b886..6a652ed876128addfef881903272fc9a891b13b6 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -293,7 +293,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -300,7 +300,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
public static final int TICK_TIME = 1000000000 / MinecraftServer.TPS;
private static final int SAMPLE_INTERVAL = 20; // Paper - improve server tick loop
@Deprecated(forRemoval = true) // Paper
@@ -39,16 +39,16 @@ index 7bba8f957d7b4cbe80000bdd39793ce600201496..1f166b48af314ee85239ae39358a47fb
// Spigot end
public final io.papermc.paper.configuration.PaperConfigurations paperConfigurations; // Paper - add paper configuration files
public final GaleConfigurations galeConfigurations; // Gale - Gale configuration
@@ -306,7 +306,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -312,6 +312,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
public volatile Thread shutdownThread; // Paper
public volatile boolean abnormalExit = false; // Paper
public static final long SERVER_INIT = System.nanoTime(); // Paper - Lag compensation
- public gg.pufferfish.pufferfish.util.AsyncExecutor mobSpawnExecutor = new gg.pufferfish.pufferfish.util.AsyncExecutor("MobSpawning"); // Pufferfish - optimize mob spawning
+ public gg.pufferfish.pufferfish.util.AsyncExecutor mobSpawnExecutor = new gg.pufferfish.pufferfish.util.AsyncExecutor("pufferfish-async-mob-spawning"); // Pufferfish - optimize mob spawning // Leaf - Unify thread name
+ //public gg.pufferfish.pufferfish.util.AsyncExecutor mobSpawnExecutor = new gg.pufferfish.pufferfish.util.AsyncExecutor("pufferfish-async-mob-spawning"); // Pufferfish - optimize mob spawning // Leaf - Unify thread name // Dreeam TODO
+
public static <S extends MinecraftServer> S spin(Function<Thread, S> serverFactory) {
AtomicReference<S> atomicreference = new AtomicReference();
@@ -974,6 +974,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
Thread thread = new io.papermc.paper.util.TickThread(() -> { // Paper - rewrite chunk system
@@ -982,6 +984,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
LOGGER.error("[UPnP] Failed to close port {}", this.getPort());
}
}
@@ -56,7 +56,7 @@ index 7bba8f957d7b4cbe80000bdd39793ce600201496..1f166b48af314ee85239ae39358a47fb
// CraftBukkit start
if (this.server != null) {
this.server.disablePlugins();
@@ -1228,9 +1229,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1241,9 +1244,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
tps15.add(currentTps, diff);
// Backwards compat with bad plugins
@@ -86,11 +86,11 @@ index 096c89bd01cec2abd151bf6fffc4847d1bcd548f..cd0a8a6a1be75cab8bbb8ee3ac17bb73
this.values[this.vp++ & 0xFF] = (int)(l * 100L / Runtime.getRuntime().maxMemory());
this.repaint();
diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
index 4242f2c048a4d1045d4d70680767d943dadf1698..360e1df4574c8257ff52b4a38a26314c0ec1a05e 100644
index 8367edebdfa2f022bcda1ec2b0e7881285d8bb9c..e1d2c90295580e130c7f317fa1164c395caea85f 100644
--- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java
+++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
@@ -540,7 +540,7 @@ public class ServerChunkCache extends ChunkSource {
//this.lastSpawnState = spawnercreature_d; // Pufferfish - this is managed asynchronously
@@ -458,7 +458,7 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
this.lastSpawnState = spawnercreature_d;
// Gale start - MultiPaper - skip unnecessary mob spawning computations
} else {
- spawnercreature_d = null;
@@ -99,10 +99,10 @@ index 4242f2c048a4d1045d4d70680767d943dadf1698..360e1df4574c8257ff52b4a38a26314c
// Gale end - MultiPaper - skip unnecessary mob spawning computations
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index b9d9ef327753272a537bebccc54d9fbc16ed3bdc..f8d11853af6bfc08d1bd8a0f537fd5760bfc04be 100644
index 188030bc6f8d243c2b834a18fa154d50803743e8..528e6e37b5552fe8179b472ec5fbbb90fa1b7b5b 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -843,7 +843,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -657,7 +657,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf.
int i = this.getGameRules().getInt(GameRules.RULE_PLAYERS_SLEEPING_PERCENTAGE);
long j;
@@ -112,23 +112,23 @@ index b9d9ef327753272a537bebccc54d9fbc16ed3bdc..f8d11853af6bfc08d1bd8a0f537fd576
j = this.levelData.getDayTime() + 24000L;
TimeSkipEvent event = new TimeSkipEvent(this.getWorld(), TimeSkipEvent.SkipReason.NIGHT_SKIP, (j - j % 24000L) - this.getDayTime());
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 2afa65c3c8ee8e502fa473bf0b485a02b32989f7..0fafe65e9f0ee85469d80a1033078b20a7abbfcf 100644
index d05aa2a4a88d6c160abf1f10eeb8f1485070a9d4..43b13836406ac6a7f26317f029225e6b2c9f2ea8 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -567,13 +567,29 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
}
@@ -542,13 +542,29 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
// Purpur end
// Purpur start - copied from Mob
+ // Gale start - JettPack - optimize sun burn tick - cache eye blockpos
// Purpur start - copied from Mob - API for any mob to burn daylight
+ // Gale start - JettPack - optimize sun burn tick - cache eye blockpos - copied from Mob#isSunBurnTick
+ private BlockPos cached_eye_blockpos;
+ private int cached_position_hashcode;
+ // Gale end - JettPack - optimize sun burn tick - cache eye blockpos
+ // Gale end - JettPack - optimize sun burn tick - cache eye blockpos - copied from Mob#isSunBurnTick
+
public boolean isSunBurnTick() {
if (this.level().isDay() && !this.level().isClientSide) {
- float f = this.getLightLevelDependentMagicValue();
- BlockPos blockposition = BlockPos.containing(this.getX(), this.getEyeY(), this.getZ());
+ // Gale start - JettPack - optimize sun burn tick - optimizations and cache eye blockpos
+ // Gale start - JettPack - optimize sun burn tick - optimizations and cache eye blockpos - copied from Mob#isSunBurnTick
+ int positionHashCode = this.position.hashCode();
+ if (this.cached_position_hashcode != positionHashCode) {
+ this.cached_eye_blockpos = BlockPos.containing(this.getX(), this.getEyeY(), this.getZ());
@@ -140,15 +140,15 @@ index 2afa65c3c8ee8e502fa473bf0b485a02b32989f7..0fafe65e9f0ee85469d80a1033078b20
+ // Check brightness first
+ if (f <= 0.5F) return false;
+ if (this.random.nextFloat() * 30.0F >= (f - 0.4F) * 2.0F) return false;
+ // Gale end - JettPack - optimize sun burn tick - optimizations and cache eye blockpos
+ // Gale end - JettPack - optimize sun burn tick - optimizations and cache eye blockpos - copied from Mob#isSunBurnTick
boolean flag = this.isInWaterRainOrBubble() || this.isInPowderSnow || this.wasInPowderSnow;
- if (f > 0.5F && this.random.nextFloat() * 30.0F < (f - 0.4F) * 2.0F && !flag && this.level().canSeeSky(blockposition)) {
+ if (!flag && this.level().canSeeSky(this.cached_eye_blockpos)) { // Gale - JettPack - optimize sun burn tick - optimizations and cache eye blockpos
+ if (!flag && this.level().canSeeSky(this.cached_eye_blockpos)) { // Gale - JettPack - optimize sun burn tick - optimizations and cache eye blockpos - copied from Mob#isSunBurnTick
return true;
}
}
@@ -890,7 +906,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -853,7 +869,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
public void tick() {
// Pufferfish start - entity TTL
if (type != EntityType.PLAYER && type.ttl >= 0 && this.tickCount >= type.ttl) {
@@ -158,10 +158,10 @@ index 2afa65c3c8ee8e502fa473bf0b485a02b32989f7..0fafe65e9f0ee85469d80a1033078b20
}
// Pufferfish end - entity TTL
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index 1b092cdccba089684301266a90fe715a55a6f4f8..fa773a29ec77f277546e418aab9b06ccd9567a8f 100644
index a0609bce7035188b48a0f84ebf79ebc5682c94d8..a9c2e9d9b3bb63e8cbbe66994c960aca7303066b 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -1068,17 +1068,19 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -1043,17 +1043,19 @@ public abstract class LivingEntity extends Entity implements Attackable {
if (entity != null) {
EntityType<?> entitytypes = entity.getType();
@@ -186,10 +186,10 @@ index 1b092cdccba089684301266a90fe715a55a6f4f8..fa773a29ec77f277546e418aab9b06cc
// Purpur start
if (entity instanceof LivingEntity entityliving) {
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
index 42ba2c7b037aaea4ae16dec8bc1413a15fbb8317..2e030baabb57de26dcc7340430f0ae0a3a5c1f9f 100644
index 2b4e65eee6fd2ce620238beca649a7f39ca3b2f1..4e5dbee1f43b4114a07adab3c3ddc2b9be53ca9c 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -746,7 +746,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
@@ -707,7 +707,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
@Override
public void aiStep() {
super.aiStep();
@@ -198,9 +198,9 @@ index 42ba2c7b037aaea4ae16dec8bc1413a15fbb8317..2e030baabb57de26dcc7340430f0ae0a
Vec3i baseblockposition = this.getPickupReach();
List<ItemEntity> list = this.level().getEntitiesOfClass(ItemEntity.class, this.getBoundingBox().inflate((double) baseblockposition.getX(), (double) baseblockposition.getY(), (double) baseblockposition.getZ()));
Iterator iterator = list.iterator();
@@ -1859,11 +1859,6 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
return flag;
}
@@ -1760,11 +1760,6 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
protected void playAttackSound() {}
- // Gale start - JettPack - optimize sun burn tick - cache eye blockpos
- private BlockPos cached_eye_blockpos;
@@ -208,50 +208,50 @@ index 42ba2c7b037aaea4ae16dec8bc1413a15fbb8317..2e030baabb57de26dcc7340430f0ae0a
- // Gale end - JettPack - optimize sun burn tick - cache eye blockpos
-
public boolean isSunBurnTick() {
// Purpur - implemented in Entity - API for any mob to burn daylight
return super.isSunBurnTick();
}
diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/TradeWithVillager.java b/src/main/java/net/minecraft/world/entity/ai/behavior/TradeWithVillager.java
index 7db823e9edd70808c5629f0a7efd84fe40f42dd9..833858eacaf5ba788cb9f08a939379f0ff04b2cb 100644
index b1544e028d5a9b84b944e1fb5a12bb163067fb54..5bbbfc414762c4c3b867bba099f06c76131f6984 100644
--- a/src/main/java/net/minecraft/world/entity/ai/behavior/TradeWithVillager.java
+++ b/src/main/java/net/minecraft/world/entity/ai/behavior/TradeWithVillager.java
@@ -20,6 +20,7 @@ import org.jetbrains.annotations.Nullable;
public class TradeWithVillager extends Behavior<Villager> {
// Gale start - optimize villager data storage
private static final Item[] WHEAT_SINGLETON_ARRAY = {Items.WHEAT};
+ private static final Item[] NETHER_WART_SINGLETON_ARRAY = {Items.NETHER_WART}; // Leaf - sync with Gale's Optimize-villager-data-storage.patch
private @NotNull Item @Nullable [] trades = null;
// Gale end - optimize villager data storage
@@ -18,6 +18,7 @@ import net.minecraft.world.item.Items;
@@ -65,7 +66,7 @@ public class TradeWithVillager extends Behavior<Villager> {
public class TradeWithVillager extends Behavior<Villager> {
private Set<Item> trades = ImmutableSet.of();
+ //private static final Item[] NETHER_WART_SINGLETON_ARRAY = {Items.NETHER_WART}; // Leaf - sync with Gale's Optimize-villager-data-storage.patch // TODO
public TradeWithVillager() {
super(
@@ -61,7 +62,8 @@ public class TradeWithVillager extends Behavior<Villager> {
// Purpur start
if (world.purpurConfig.villagerClericsFarmWarts && world.purpurConfig.villagerClericFarmersThrowWarts && entity.getVillagerData().getProfession() == VillagerProfession.CLERIC && entity.getInventory().countItem(Items.NETHER_WART) > Items.NETHER_WART.getDefaultMaxStackSize() / 2) {
- throwHalfStack(entity, ImmutableSet.of(Items.NETHER_WART), villager);
+ throwHalfStack(entity, NETHER_WART_SINGLETON_ARRAY, villager); // Leaf - sync with Gale's Optimize-villager-data-storage.patch
+ throwHalfStack(entity, ImmutableSet.of(Items.NETHER_WART), villager); // TODO
+ //throwHalfStack(entity, NETHER_WART_SINGLETON_ARRAY, villager); // Leaf - sync with Gale's Optimize-villager-data-storage.patch // TODO
}
// Purpur end
diff --git a/src/main/java/net/minecraft/world/entity/ai/sensing/SecondaryPoiSensor.java b/src/main/java/net/minecraft/world/entity/ai/sensing/SecondaryPoiSensor.java
index 9419f230910d0338fc4ac6e2e7b749ee7d5ee362..2fe25397526c77c3b6b5e96d71d3681c6e26a54e 100644
index d548d1b2686667d809f363cd0ae4444bc3918bf2..c3519eb6b28d180c9a5bf673037f1c4324ba5685 100644
--- a/src/main/java/net/minecraft/world/entity/ai/sensing/SecondaryPoiSensor.java
+++ b/src/main/java/net/minecraft/world/entity/ai/sensing/SecondaryPoiSensor.java
@@ -24,19 +24,15 @@ public class SecondaryPoiSensor extends Sensor<Villager> {
@@ -22,19 +22,15 @@ public class SecondaryPoiSensor extends Sensor<Villager> {
@Override
protected void doTick(ServerLevel world, Villager entity) {
- // Gale start - Lithium - skip secondary POI sensor if absent
- var secondaryPoi = entity.getVillagerData().getProfession().secondaryPoi();
- if (secondaryPoi == null) { // Gale - optimize villager data storage
+ // Purpur start - make sure clerics don't wander to soul sand when the option is off
// Gale start - Lithium - skip secondary POI sensor if absent
var secondaryPoi = entity.getVillagerData().getProfession().secondaryPoi();
- if (secondaryPoi.isEmpty()) {
- entity.getBrain().eraseMemory(MemoryModuleType.SECONDARY_JOB_SITE);
- return;
- }
- // Gale end - Lithium - skip secondary POI sensor if absent
// Purpur start - make sure clerics don't wander to soul sand when the option is off
- // Purpur start - make sure clerics don't wander to soul sand when the option is off
Brain<?> brain = entity.getBrain();
- if (!world.purpurConfig.villagerClericsFarmWarts && entity.getVillagerData().getProfession() == net.minecraft.world.entity.npc.VillagerProfession.CLERIC) {
+ // Gale start - Lithium - skip secondary POI sensor if absent
+ var secondaryPoi = entity.getVillagerData().getProfession().secondaryPoi();
+ if (secondaryPoi == null || (!world.purpurConfig.villagerClericsFarmWarts && entity.getVillagerData().getProfession() == net.minecraft.world.entity.npc.VillagerProfession.CLERIC)) { // Gale - optimize villager data storage
+ if (secondaryPoi.isEmpty() || (!world.purpurConfig.villagerClericsFarmWarts && entity.getVillagerData().getProfession() == net.minecraft.world.entity.npc.VillagerProfession.CLERIC)) {
brain.eraseMemory(MemoryModuleType.SECONDARY_JOB_SITE);
return;
}
@@ -260,10 +260,10 @@ index 9419f230910d0338fc4ac6e2e7b749ee7d5ee362..2fe25397526c77c3b6b5e96d71d3681c
ResourceKey<Level> resourceKey = world.dimension();
BlockPos blockPos = entity.blockPosition();
diff --git a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
index 92521cbedcf89a855f10a3401933acaf84bc3f98..0bd72f76a65b6248f4e700877b2bda702f9590df 100644
index ad1ec2578fa428baa6b172c44b6c17e52daa5792..e2ac7e911eb2f46479a9666135894acad0649103 100644
--- a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
+++ b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
@@ -680,7 +680,7 @@ public class ArmorStand extends LivingEntity {
@@ -687,7 +687,7 @@ public class ArmorStand extends LivingEntity {
@Override
public void tick() {
@@ -273,7 +273,7 @@ index 92521cbedcf89a855f10a3401933acaf84bc3f98..0bd72f76a65b6248f4e700877b2bda70
if (!this.canTick) {
if (this.noTickPoseDirty) {
diff --git a/src/main/java/net/minecraft/world/entity/monster/Blaze.java b/src/main/java/net/minecraft/world/entity/monster/Blaze.java
index 27db17e19dd95e99f7bd67747eba3c3072b48ed5..4c87fa47a97a75a270a0f1332ee6aea69f9cf9c5 100644
index 1e1824eb80696452951cdbbdacad952ae0a7482b..b38110d4f01cae6746ccd38b5ae047cff8763d65 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Blaze.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Blaze.java
@@ -72,7 +72,6 @@ public class Blaze extends Monster {
@@ -293,7 +293,7 @@ index 27db17e19dd95e99f7bd67747eba3c3072b48ed5..4c87fa47a97a75a270a0f1332ee6aea6
@Override
protected void registerGoals() {
diff --git a/src/main/java/net/minecraft/world/entity/npc/VillagerProfession.java b/src/main/java/net/minecraft/world/entity/npc/VillagerProfession.java
index 8f36f113e8eb3236ce53ad9cce320c3d6253d248..ebe79d9ad2934b53085c8a720fdfca0a6eda05ca 100644
index 3ca83269311cbc18c9ef3ce62cff6a2d4dc0a683..a636ab87d21c67b152b40b77e62fa8043ca4211e 100644
--- a/src/main/java/net/minecraft/world/entity/npc/VillagerProfession.java
+++ b/src/main/java/net/minecraft/world/entity/npc/VillagerProfession.java
@@ -31,7 +31,7 @@ public record VillagerProfession(
@@ -306,10 +306,10 @@ index 8f36f113e8eb3236ce53ad9cce320c3d6253d248..ebe79d9ad2934b53085c8a720fdfca0a
"farmer",
PoiTypes.FARMER,
diff --git a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
index 330d6badfbd096e4aec873dcb419df7975cb60a3..abb950417bf5db30f37e50605e897150bba67352 100644
index 4275eb588114522d337f39c6f3503cd9d4be92e9..7a9757689e7e32e8e07802aad73af2bc7b840b0a 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
@@ -71,7 +71,7 @@ public abstract class Projectile extends Entity implements TraceableEntity {
@@ -77,7 +77,7 @@ public abstract class Projectile extends Entity implements TraceableEntity {
int maxChunkLoadsPerProjectile = maxProjectileChunkLoadsConfig.perProjectile.max;
if (maxChunkLoadsPerProjectile >= 0 && this.chunksLoadedByProjectile >= maxChunkLoadsPerProjectile) {
if (maxProjectileChunkLoadsConfig.perProjectile.removeFromWorldAfterReachLimit) {
@@ -319,7 +319,7 @@ index 330d6badfbd096e4aec873dcb419df7975cb60a3..abb950417bf5db30f37e50605e897150
this.setDeltaMovement(0, this.getDeltaMovement().y, 0);
}
diff --git a/src/main/java/org/galemc/gale/version/AbstractPaperVersionFetcher.java b/src/main/java/org/galemc/gale/version/AbstractPaperVersionFetcher.java
index 75af21644eaf78abdebd722b671f3c47aa083a25..21d71db5ef632ae685c0a852fda54b8d6be183ee 100644
index 75af21644eaf78abdebd722b671f3c47aa083a25..c55757f0a24a0b5c06333070f5875e7d8a0f7777 100644
--- a/src/main/java/org/galemc/gale/version/AbstractPaperVersionFetcher.java
+++ b/src/main/java/org/galemc/gale/version/AbstractPaperVersionFetcher.java
@@ -101,10 +101,10 @@ public abstract class AbstractPaperVersionFetcher implements VersionFetcher {
@@ -337,3 +337,11 @@ index 75af21644eaf78abdebd722b671f3c47aa083a25..21d71db5ef632ae685c0a852fda54b8d
.append(Component.newline())
.append(text("Download the new version at: ")
.append(text(this.downloadPage, NamedTextColor.GOLD) // Gale - branding changes - version fetcher
@@ -149,6 +149,6 @@ public abstract class AbstractPaperVersionFetcher implements VersionFetcher {
return null;
}
- return text("Previous version: " + oldVersion, NamedTextColor.GRAY, TextDecoration.ITALIC);
+ return text("Previous: " + oldVersion, NamedTextColor.GRAY, TextDecoration.ITALIC); // Purpur
}
}

View File

@@ -7,10 +7,10 @@ Original license: MIT
Original project: https://github.com/PurpurMC/Purpur
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index ede6cd55688e573e003a6568100b18d5e620f878..9b18c076cabdbfc4b266fa605f38e2ad375e8271 100644
index 6a652ed876128addfef881903272fc9a891b13b6..12f41f1bc9ea5f5be7e32236aae380f633abee0e 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1919,7 +1919,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1868,7 +1868,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@DontObfuscate
public String getServerModName() {

View File

@@ -7,10 +7,10 @@ Completely remove the Timings, since it wastes too much performance. Use Spark i
diff --git a/src/main/java/co/aikar/timings/MinecraftTimings.java b/src/main/java/co/aikar/timings/MinecraftTimings.java
deleted file mode 100644
index 4b467f1af93452d13829f756d55dee18b8889d40..0000000000000000000000000000000000000000
index 6b3cde6d4d1e63bec01f502f2027ee9fddac08aa..0000000000000000000000000000000000000000
--- a/src/main/java/co/aikar/timings/MinecraftTimings.java
+++ /dev/null
@@ -1,181 +0,0 @@
@@ -1,178 +0,0 @@
-package co.aikar.timings;
-
-import com.google.common.collect.MapMaker;
@@ -60,9 +60,6 @@ index 4b467f1af93452d13829f756d55dee18b8889d40..00000000000000000000000000000000
- public static final Timing antiXrayUpdateTimer = Timings.ofSafe("anti-xray - update");
- public static final Timing antiXrayObfuscateTimer = Timings.ofSafe("anti-xray - obfuscate");
- public static final Timing scoreboardScoreSearch = Timings.ofSafe("Scoreboard score search"); // Paper - add timings for scoreboard search
- public static final Timing distanceManagerTick = Timings.ofSafe("Distance Manager Tick"); // Paper - add timings for distance manager
-
- public static final Timing midTickChunkTasks = Timings.ofSafe("Mid Tick Chunk Tasks");
-
- private static final Map<Class<?>, String> taskNameCache = new MapMaker().weakKeys().makeMap();
-
@@ -650,10 +647,10 @@ index 429cff43a9f0c74161fdab857f5d45771f774ac2..00000000000000000000000000000000
-}
diff --git a/src/main/java/co/aikar/timings/WorldTimingsHandler.java b/src/main/java/co/aikar/timings/WorldTimingsHandler.java
deleted file mode 100644
index 22687667ec69a954261e55e59261286ac1b8b8cd..0000000000000000000000000000000000000000
index 2f0d9b953802dee821cfde82d22b0567cce8ee91..0000000000000000000000000000000000000000
--- a/src/main/java/co/aikar/timings/WorldTimingsHandler.java
+++ /dev/null
@@ -1,140 +0,0 @@
@@ -1,120 +0,0 @@
-package co.aikar.timings;
-
-import net.minecraft.server.level.ServerLevel;
@@ -715,16 +712,6 @@ index 22687667ec69a954261e55e59261286ac1b8b8cd..00000000000000000000000000000000
-
- public final Timing miscMobSpawning;
-
- public final Timing poiUnload;
- public final Timing chunkUnload;
- public final Timing poiSaveDataSerialization;
- public final Timing chunkSave;
- public final Timing chunkSaveDataSerialization;
- public final Timing chunkSaveIOWait;
- public final Timing chunkUnloadPrepareSave;
- public final Timing chunkUnloadPOISerialization;
- public final Timing chunkUnloadDataSave;
-
- public WorldTimingsHandler(Level server) {
- String name = ((PrimaryLevelData) server.getLevelData()).getLevelName() + " - ";
-
@@ -778,56 +765,12 @@ index 22687667ec69a954261e55e59261286ac1b8b8cd..00000000000000000000000000000000
-
-
- miscMobSpawning = Timings.ofSafe(name + "Mob spawning - Misc");
-
- poiUnload = Timings.ofSafe(name + "Chunk unload - POI");
- chunkUnload = Timings.ofSafe(name + "Chunk unload - Chunk");
- poiSaveDataSerialization = Timings.ofSafe(name + "Chunk save - POI Data serialization");
- chunkSave = Timings.ofSafe(name + "Chunk save - Chunk");
- chunkSaveDataSerialization = Timings.ofSafe(name + "Chunk save - Chunk Data serialization");
- chunkSaveIOWait = Timings.ofSafe(name + "Chunk save - Chunk IO Wait");
- chunkUnloadPrepareSave = Timings.ofSafe(name + "Chunk unload - Async Save Prepare");
- chunkUnloadPOISerialization = Timings.ofSafe(name + "Chunk unload - POI Data Serialization");
- chunkUnloadDataSave = Timings.ofSafe(name + "Chunk unload - Data Serialization");
- }
-
- public static Timing getTickList(ServerLevel worldserver, String timingsType) {
- return Timings.ofSafe(((PrimaryLevelData) worldserver.getLevelData()).getLevelName() + " - Scheduled " + timingsType);
- }
-}
diff --git a/src/main/java/io/papermc/paper/chunk/system/scheduling/ChunkHolderManager.java b/src/main/java/io/papermc/paper/chunk/system/scheduling/ChunkHolderManager.java
index 6bc7c6f16a1649fc9e24e7cf90fca401e5bd4875..5b446e6ac151f99f64f0c442d0b40b5e251bc4c4 100644
--- a/src/main/java/io/papermc/paper/chunk/system/scheduling/ChunkHolderManager.java
+++ b/src/main/java/io/papermc/paper/chunk/system/scheduling/ChunkHolderManager.java
@@ -1316,9 +1316,7 @@ public final class ChunkHolderManager {
}
public boolean processTicketUpdates() {
- co.aikar.timings.MinecraftTimings.distanceManagerTick.startTiming(); try { // Paper - add timings for distance manager
return this.processTicketUpdates(true, true, null);
- } finally { co.aikar.timings.MinecraftTimings.distanceManagerTick.stopTiming(); } // Paper - add timings for distance manager
}
private static final ThreadLocal<List<ChunkProgressionTask>> CURRENT_TICKET_UPDATE_SCHEDULING = new ThreadLocal<>();
diff --git a/src/main/java/io/papermc/paper/chunk/system/scheduling/NewChunkHolder.java b/src/main/java/io/papermc/paper/chunk/system/scheduling/NewChunkHolder.java
index 56b07a3306e5735816c8d89601b519cb0db6379a..524d9f0e2cc9a840fdf74bfa98537b5c8d572961 100644
--- a/src/main/java/io/papermc/paper/chunk/system/scheduling/NewChunkHolder.java
+++ b/src/main/java/io/papermc/paper/chunk/system/scheduling/NewChunkHolder.java
@@ -1779,7 +1779,6 @@ public final class NewChunkHolder {
boolean canSavePOI = !(chunk instanceof LevelChunk levelChunk && levelChunk.mustNotSave) && (poi != null && poi.isDirty());
boolean canSaveEntities = entities != null;
- try (co.aikar.timings.Timing ignored = this.world.timings.chunkSave.startTiming()) { // Paper
if (canSaveChunk) {
canSaveChunk = this.saveChunk(chunk, unloading);
}
@@ -1793,7 +1792,6 @@ public final class NewChunkHolder {
this.lastEntityUnload = null;
}
}
- }
return executedUnloadTask | canSaveChunk | canSaveEntities | canSavePOI ? new SaveStat(executedUnloadTask || canSaveChunk, canSaveEntities, canSavePOI): null;
}
diff --git a/src/main/java/io/papermc/paper/command/brigadier/bukkit/BukkitCommandNode.java b/src/main/java/io/papermc/paper/command/brigadier/bukkit/BukkitCommandNode.java
index 0c3c82b28e581286b798ee58ca4193efc2faff4a..5a2a4f69995f23e799370c05f28f9353aa1a1d39 100644
--- a/src/main/java/io/papermc/paper/command/brigadier/bukkit/BukkitCommandNode.java
@@ -858,7 +801,7 @@ index 0c3c82b28e581286b798ee58ca4193efc2faff4a..5a2a4f69995f23e799370c05f28f9353
// return true as command was handled
return 1;
diff --git a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java
index e246171b3eb3b8d8caab2c2535f305e8af2f3701..f6dd905176605228cbd6673ca2f77431a48248ad 100644
index 4a215cec69f8fe81d55b497c0b5ff98d03f235ae..726d5cc3422368e7a2bbdb8fce7484da30e24174 100644
--- a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java
+++ b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java
@@ -1,6 +1,5 @@
@@ -950,11 +893,11 @@ index 097500a59336db1bbfffcd1aa4cff7a8586e46ec..f06076864582ed153c6154fd7f3e9101
@Override
diff --git a/src/main/java/net/minecraft/network/protocol/PacketUtils.java b/src/main/java/net/minecraft/network/protocol/PacketUtils.java
index 57e76b53e5e314c3e6b8856010f7a84188121582..d6daa27a8d7aca00b181e90d789f4249e8437d29 100644
index d0d36a57ec4896bcb74970f8fb24d8f3e17db133..f7197f1347251a37dd0f6d9ffa2f09bc3a4e1233 100644
--- a/src/main/java/net/minecraft/network/protocol/PacketUtils.java
+++ b/src/main/java/net/minecraft/network/protocol/PacketUtils.java
@@ -50,8 +50,7 @@ public class PacketUtils {
try { // Paper - detailed watchdog information
@@ -31,8 +31,7 @@ public class PacketUtils {
engine.executeIfPossible(() -> {
if (listener instanceof ServerCommonPacketListenerImpl serverCommonPacketListener && serverCommonPacketListener.processedDisconnect) return; // CraftBukkit - Don't handle sync packets for kicked players
if (listener.shouldHandleMessage(packet)) {
- co.aikar.timings.Timing timing = co.aikar.timings.MinecraftTimings.getPacketTiming(packet); // Paper - timings
@@ -964,19 +907,19 @@ index 57e76b53e5e314c3e6b8856010f7a84188121582..d6daa27a8d7aca00b181e90d789f4249
} catch (Exception exception) {
if (exception instanceof ReportedException) {
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 5bf2d1cca0661ff35533c41e84e4f387f1a18af8..03a787c9bafee3a6b300703cf05a6a65bd4e9c03 100644
index 12f41f1bc9ea5f5be7e32236aae380f633abee0e..0eac388d53d65d6dbd6900040be4d661cc799765 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -181,8 +181,6 @@ import org.bukkit.craftbukkit.CraftRegistry;
@@ -187,8 +187,6 @@ import org.bukkit.craftbukkit.CraftRegistry;
import org.bukkit.event.server.ServerLoadEvent;
// CraftBukkit end
-import co.aikar.timings.MinecraftTimings; // Paper
-
public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTask> implements ServerInfo, CommandSource, AutoCloseable {
public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTask> implements ServerInfo, ChunkIOErrorReporter, CommandSource, AutoCloseable, ca.spottedleaf.moonrise.patches.chunk_system.server.ChunkSystemMinecraftServer { // Paper - rewrite chunk system
public static final int SERVER_THREAD_PRIORITY = Integer.getInteger("gale.thread.priority.server", -1); // Gale - server thread priority environment variable
@@ -965,7 +963,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -975,7 +973,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
MinecraftServer.LOGGER.info("Stopping server");
Commands.COMMAND_SENDING_POOL.shutdownNow(); // Paper - Perf: Async command map building; Shutdown and don't bother finishing
@@ -984,7 +927,7 @@ index 5bf2d1cca0661ff35533c41e84e4f387f1a18af8..03a787c9bafee3a6b300703cf05a6a65
// Purpur start
if (upnp) {
if (dev.omega24.upnp4j.UPnP4J.close(this.getPort(), dev.omega24.upnp4j.util.Protocol.TCP)) {
@@ -1396,7 +1393,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1434,7 +1431,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
protected void waitUntilNextTick() {
@@ -992,26 +935,7 @@ index 5bf2d1cca0661ff35533c41e84e4f387f1a18af8..03a787c9bafee3a6b300703cf05a6a65
long tickOversleepStart = System.nanoTime(); // Gale - YAPFA - last tick time
this.managedBlock(() -> {
return !this.canSleepForTickNoOversleep(); // Paper - move oversleep into full server tick
@@ -1477,8 +1473,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
return;
}
- co.aikar.timings.MinecraftTimings.midTickChunkTasks.startTiming();
- try {
for (;;) {
boolean moreTasks = this.tickMidTickTasks();
long currTime = System.nanoTime();
@@ -1503,9 +1497,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
return;
}
}
- } finally {
- co.aikar.timings.MinecraftTimings.midTickChunkTasks.stopTiming();
- }
}
// Paper end - execute chunk tasks mid tick
@@ -1578,15 +1569,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1545,15 +1541,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
public void tickServer(BooleanSupplier shouldKeepTicking) {
@@ -1029,9 +953,9 @@ index 5bf2d1cca0661ff35533c41e84e4f387f1a18af8..03a787c9bafee3a6b300703cf05a6a65
// Paper end
new com.destroystokyo.paper.event.server.ServerTickStartEvent(this.tickCount+1).callEvent(); // Paper - Server Tick Events
@@ -1620,11 +1610,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1575,11 +1570,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
MinecraftServer.LOGGER.debug("Autosave finished");
}
// Paper end - Incremental chunk and player saving
io.papermc.paper.util.CachedLists.reset(); // Paper
- // Paper start - move executeAll() into full server tick timing
- try (co.aikar.timings.Timing ignored = MinecraftTimings.processTasksTimer.startTiming()) {
@@ -1042,7 +966,7 @@ index 5bf2d1cca0661ff35533c41e84e4f387f1a18af8..03a787c9bafee3a6b300703cf05a6a65
// Paper start - Server Tick Events
long endTime = System.nanoTime();
long remaining = (TICK_TIME - (endTime - lastTick)) - catchupTime;
@@ -1644,7 +1630,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1599,7 +1590,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
// Paper end - Add tick times API and /mspt command
this.logTickMethodTime(i);
org.spigotmc.WatchdogThread.tick(); // Spigot
@@ -1050,7 +974,7 @@ index 5bf2d1cca0661ff35533c41e84e4f387f1a18af8..03a787c9bafee3a6b300703cf05a6a65
}
private void logTickMethodTime(long tickStartTime) {
@@ -1715,9 +1700,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1670,9 +1660,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.getPlayerList().getPlayers().forEach((entityplayer) -> {
entityplayer.connection.suspendFlushing();
});
@@ -1060,7 +984,7 @@ index 5bf2d1cca0661ff35533c41e84e4f387f1a18af8..03a787c9bafee3a6b300703cf05a6a65
// Paper start - Folia scheduler API
((io.papermc.paper.threadedregions.scheduler.FoliaGlobalRegionScheduler) Bukkit.getGlobalRegionScheduler()).tick();
getAllLevels().forEach(level -> {
@@ -1733,20 +1716,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1688,20 +1676,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
});
// Paper end - Folia scheduler API
io.papermc.paper.adventure.providers.ClickCallbackProviderImpl.CALLBACK_MANAGER.handleQueue(this.tickCount); // Paper
@@ -1081,7 +1005,7 @@ index 5bf2d1cca0661ff35533c41e84e4f387f1a18af8..03a787c9bafee3a6b300703cf05a6a65
// Send time updates to everyone, it will get the right time from the world the player is in.
// Paper start - Perf: Optimize time updates
for (final ServerLevel level : this.getAllLevels()) {
@@ -1766,7 +1744,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1721,7 +1704,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
}
// Paper end - Perf: Optimize time updates
@@ -1089,22 +1013,17 @@ index 5bf2d1cca0661ff35533c41e84e4f387f1a18af8..03a787c9bafee3a6b300703cf05a6a65
this.isIteratingOverLevels = true; // Paper - Throw exception on world create while being ticked
Iterator iterator = this.getAllLevels().iterator(); // Paper - Throw exception on world create while being ticked; move down
@@ -1785,14 +1762,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1739,9 +1721,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
// CraftBukkit end */
try {
- worldserver.timings.doTick.startTiming(); // Spigot
worldserver.tick(shouldKeepTicking);
// Paper start
for (final io.papermc.paper.chunk.SingleThreadChunkRegionManager regionManager : worldserver.getChunkSource().chunkMap.regionManagers) {
regionManager.recalculateRegions();
}
// Paper end
- worldserver.timings.doTick.stopTiming(); // Spigot
} catch (Throwable throwable) {
CrashReport crashreport = CrashReport.forThrowable(throwable, "Exception ticking world");
@@ -1804,21 +1779,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1753,21 +1733,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
this.isIteratingOverLevels = false; // Paper - Throw exception on world create while being ticked
@@ -1127,10 +1046,10 @@ index 5bf2d1cca0661ff35533c41e84e4f387f1a18af8..03a787c9bafee3a6b300703cf05a6a65
iterator = this.playerList.getPlayers().iterator();
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
index 62379ebae3e6972f88742ff29f607a99879f567d..ee99b0e74abc6447937b1af627c10ffbeeb9e0c0 100644
index ca31ceb08099324df560bfc4f7888a509ad75307..b38470108f0842ee65cb55ff7e376105cc7ba2f6 100644
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
@@ -62,7 +62,6 @@ import org.apache.logging.log4j.Level;
@@ -69,7 +69,6 @@ import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.io.IoBuilder;
import org.bukkit.command.CommandSender;
@@ -1138,7 +1057,7 @@ index 62379ebae3e6972f88742ff29f607a99879f567d..ee99b0e74abc6447937b1af627c10ffb
import org.bukkit.craftbukkit.util.TerminalCompletionHandler;
import org.bukkit.craftbukkit.util.TerminalConsoleWriterThread;
import org.bukkit.event.server.ServerCommandEvent;
@@ -553,7 +552,6 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
@@ -560,7 +559,6 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
}
public void handleConsoleInputs() {
@@ -1146,7 +1065,7 @@ index 62379ebae3e6972f88742ff29f607a99879f567d..ee99b0e74abc6447937b1af627c10ffb
// Paper start - Perf: use proper queue
ConsoleInput servercommand;
while ((servercommand = this.serverCommandQueue.poll()) != null) {
@@ -569,8 +567,6 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
@@ -576,8 +574,6 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
this.server.dispatchServerCommand(this.console, servercommand);
// CraftBukkit end
}
@@ -1155,7 +1074,7 @@ index 62379ebae3e6972f88742ff29f607a99879f567d..ee99b0e74abc6447937b1af627c10ffb
}
@Override
@@ -842,23 +838,9 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
@@ -849,23 +845,9 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
if (event.isCancelled()) {
return;
}
@@ -1180,7 +1099,7 @@ index 62379ebae3e6972f88742ff29f607a99879f567d..ee99b0e74abc6447937b1af627c10ffb
// Paper start
if (waitableArray[0] != null) {
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
index 54c3e32c7ae869d55408d77ea2aa1635f980a39b..1dc4ccbd999964eee18a420c8166e1a8b5f9a3a0 100644
index 79057c2db0e6163f2d5466f50716a4ce230bfdf2..55ae1991316e5e67159c5babbc501190919dde1e 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -1,6 +1,5 @@
@@ -1190,47 +1109,7 @@ index 54c3e32c7ae869d55408d77ea2aa1635f980a39b..1dc4ccbd999964eee18a420c8166e1a8
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableList.Builder;
import com.google.common.collect.Iterables;
@@ -541,13 +540,9 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
}
protected void tick(BooleanSupplier shouldKeepTicking) {
- try (Timing ignored = this.level.timings.poiUnload.startTiming()) { // Paper
this.poiManager.tick(shouldKeepTicking);
- } // Paper
if (!this.level.noSave()) {
- try (Timing ignored = this.level.timings.chunkUnload.startTiming()) { // Paper
this.processUnloads(shouldKeepTicking);
- } // Paper
}
}
@@ -1151,25 +1146,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
// Paper start - optimised tracker
private final void processTrackQueue() {
- this.level.timings.tracker1.startTiming();
- try {
for (TrackedEntity tracker : this.entityMap.values()) {
// update tracker entry
tracker.updatePlayers(tracker.entity.getPlayersInTrackRange());
}
- } finally {
- this.level.timings.tracker1.stopTiming();
- }
-
- this.level.timings.tracker2.startTiming();
- try {
for (TrackedEntity tracker : this.entityMap.values()) {
tracker.serverEntity.sendChanges();
}
- } finally {
- this.level.timings.tracker2.stopTiming();
- }
}
// Paper end - optimised tracker
@@ -1183,7 +1167,6 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -950,7 +949,6 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
List<ServerPlayer> list = Lists.newArrayList();
List<ServerPlayer> list1 = this.level.players();
ObjectIterator objectiterator = this.entityMap.values().iterator();
@@ -1238,7 +1117,7 @@ index 54c3e32c7ae869d55408d77ea2aa1635f980a39b..1dc4ccbd999964eee18a420c8166e1a8
ChunkMap.TrackedEntity playerchunkmap_entitytracker;
@@ -1208,17 +1191,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -975,17 +973,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
playerchunkmap_entitytracker.serverEntity.sendChanges();
}
}
@@ -1257,39 +1136,37 @@ index 54c3e32c7ae869d55408d77ea2aa1635f980a39b..1dc4ccbd999964eee18a420c8166e1a8
}
diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
index 360e1df4574c8257ff52b4a38a26314c0ec1a05e..9115054c05d261dd959e1f1f091c9b96c6a01a79 100644
index e1d2c90295580e130c7f317fa1164c395caea85f..121db0c3b0416e43a7cac8e33d498bbe6765602f 100644
--- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java
+++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
@@ -272,10 +272,8 @@ public class ServerChunkCache extends ChunkSource {
if (!completablefuture.isDone()) { // Paper
io.papermc.paper.chunk.system.scheduling.ChunkTaskScheduler.pushChunkWait(this.level, x1, z1); // Paper - rewrite chunk system
com.destroystokyo.paper.io.SyncLoadFinder.logSyncLoad(this.level, x, z); // Paper - Add debug for sync chunk loads
- this.level.timings.syncChunkLoad.startTiming(); // Paper
chunkproviderserver_b.managedBlock(completablefuture::isDone);
io.papermc.paper.chunk.system.scheduling.ChunkTaskScheduler.popChunkWait(); // Paper - rewrite chunk system
- this.level.timings.syncChunkLoad.stopTiming(); // Paper
} // Paper
ChunkResult<ChunkAccess> chunkresult = (ChunkResult) completablefuture.join();
ChunkAccess ichunkaccess1 = (ChunkAccess) chunkresult.orElse(null); // CraftBukkit - decompile error
@@ -423,17 +421,13 @@ public class ServerChunkCache extends ChunkSource {
@@ -355,12 +355,25 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
}
public void save(boolean flush) {
this.runDistanceManagerUpdates();
- try (co.aikar.timings.Timing timed = level.timings.chunkSaveData.startTiming()) { // Paper - Timings
+<<<<<<< HEAD
// Paper - rewrite chunk system
try (co.aikar.timings.Timing timed = level.timings.chunkSaveData.startTiming()) { // Paper - Timings
+=======
+ this.runDistanceManagerUpdates();
+>>>>>>> Remove Timings
this.chunkMap.saveAllChunks(flush);
- } // Paper - Timings
}
// Paper start - Incremental chunk and player saving; duplicate save, but call incremental
public void saveIncrementally() {
this.runDistanceManagerUpdates();
- try (co.aikar.timings.Timing timed = level.timings.chunkSaveData.startTiming()) { // Paper - Timings
this.chunkMap.saveIncrementally();
- } // Paper - Timings
}
// Paper end - Incremental chunk and player saving
@@ -466,24 +460,18 @@ public class ServerChunkCache extends ChunkSource {
+<<<<<<< HEAD
+=======
+ // Paper start - Incremental chunk and player saving; duplicate save, but call incremental
+ public void saveIncrementally() {
+ this.runDistanceManagerUpdates();
+ this.chunkMap.saveIncrementally();
+ }
+ // Paper end - Incremental chunk and player saving
+
+>>>>>>> Remove Timings
@Override
public void close() throws IOException {
// CraftBukkit start
@@ -382,24 +395,23 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
@Override
public void tick(BooleanSupplier shouldKeepTicking, boolean tickChunks) {
@@ -1301,8 +1178,12 @@ index 360e1df4574c8257ff52b4a38a26314c0ec1a05e..9115054c05d261dd959e1f1f091c9b96
this.runDistanceManagerUpdates();
- this.level.timings.doChunkMap.stopTiming(); // Spigot
if (tickChunks) {
- this.level.timings.chunks.startTiming(); // Paper - timings
this.chunkMap.level.playerChunkLoader.tick(); // Paper - replace player chunk loader - this is mostly required to account for view distance changes
+<<<<<<< HEAD
this.level.timings.chunks.startTiming(); // Paper - timings
((ca.spottedleaf.moonrise.patches.chunk_system.level.ChunkSystemServerLevel)this.level).moonrise$getPlayerChunkLoader().tick(); // Paper - rewrite chunk system
+=======
+ this.chunkMap.level.playerChunkLoader.tick(); // Paper - replace player chunk loader - this is mostly required to account for view distance changes
+>>>>>>> Remove Timings
this.tickChunks();
- this.level.timings.chunks.stopTiming(); // Paper - timings
this.chunkMap.tick();
@@ -1314,16 +1195,20 @@ index 360e1df4574c8257ff52b4a38a26314c0ec1a05e..9115054c05d261dd959e1f1f091c9b96
this.clearCache();
}
@@ -493,8 +481,6 @@ public class ServerChunkCache extends ChunkSource {
@@ -409,9 +421,12 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
this.lastInhabitedUpdate = i;
if (!this.level.isDebug()) {
- // Paper - optimise chunk tick iteration
- if (this.level.getServer().tickRateManager().runsNormally()) this.level.timings.chunkTicks.startTiming(); // Paper
+<<<<<<< HEAD
List<ServerChunkCache.ChunkAndHolder> list = Lists.newArrayListWithCapacity(this.chunkMap.size());
Iterator iterator = this.chunkMap.getChunks().iterator();
if (this.level.getServer().tickRateManager().runsNormally()) this.level.timings.chunkTicks.startTiming(); // Paper
+=======
+>>>>>>> Remove Timings
// Paper - optimise chunk tick iteration
@@ -506,7 +492,6 @@ public class ServerChunkCache extends ChunkSource {
while (iterator.hasNext()) {
ChunkHolder playerchunk = (ChunkHolder) iterator.next();
@@ -429,7 +444,6 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
boolean flagAndHasNaturalSpawn = flag && this.anySpawnCategoryIsSpawnedThisTick();
if (flagAndHasNaturalSpawn) {
// Gale end - MultiPaper - skip unnecessary mob spawning computations
@@ -1331,19 +1216,29 @@ index 360e1df4574c8257ff52b4a38a26314c0ec1a05e..9115054c05d261dd959e1f1f091c9b96
int k = this.distanceManager.getNaturalSpawnChunkCount();
// Paper start - Optional per player mob spawns
int naturalSpawnChunkCount = k;
@@ -535,7 +520,6 @@ public class ServerChunkCache extends ChunkSource {
// Pufferfish end
@@ -453,7 +467,6 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
spawnercreature_d = NaturalSpawner.createState(naturalSpawnChunkCount, this.level.getAllEntities(), this::getFullChunk, !this.level.paperConfig().entities.spawning.perPlayerMobSpawns ? new LocalMobCapCalculator(this.chunkMap) : null, false);
}
// Paper end - Optional per player mob spawns
- this.level.timings.countNaturalMobs.stopTiming(); // Paper - timings
//this.lastSpawnState = spawnercreature_d; // Pufferfish - this is managed asynchronously
this.lastSpawnState = spawnercreature_d;
// Gale start - MultiPaper - skip unnecessary mob spawning computations
@@ -647,17 +631,13 @@ public class ServerChunkCache extends ChunkSource {
@@ -492,20 +505,79 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
}
}
// Paper end - optimise chunk tick iteration
- this.level.timings.chunkTicks.stopTiming(); // Paper
}
+<<<<<<< HEAD
this.level.timings.chunkTicks.stopTiming(); // Paper
+=======
+ // Paper start - optimise chunk tick iteration
+ } finally {
+ if (chunkIterator instanceof io.papermc.paper.util.maplist.IteratorSafeOrderedReferenceSet.Iterator safeIterator) {
+ safeIterator.finishedIterating();
+ }
+ }
+ // Paper end - optimise chunk tick iteration
+>>>>>>> Remove Timings
if (flag) {
- try (co.aikar.timings.Timing ignored = this.level.timings.miscMobSpawning.startTiming()) { // Paper - timings
@@ -1352,21 +1247,67 @@ index 360e1df4574c8257ff52b4a38a26314c0ec1a05e..9115054c05d261dd959e1f1f091c9b96
}
}
// Paper - optimise chunk tick iteration
- this.level.timings.broadcastChunkUpdates.startTiming(); // Paper - timing
// Paper start - optimise chunk tick iteration
if (!this.chunkMap.needsChangeBroadcasting.isEmpty()) {
it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet<ChunkHolder> copy = this.chunkMap.needsChangeBroadcasting.clone();
@@ -671,7 +651,6 @@ public class ServerChunkCache extends ChunkSource {
+<<<<<<< HEAD
list.forEach((chunkproviderserver_a1) -> {
this.level.timings.broadcastChunkUpdates.startTiming(); // Paper - timing
chunkproviderserver_a1.holder.broadcastChanges(chunkproviderserver_a1.chunk);
this.level.timings.broadcastChunkUpdates.stopTiming(); // Paper - timing
});
+=======
+ // Paper - optimise chunk tick iteration
+ // Paper start - optimise chunk tick iteration
+ if (!this.chunkMap.needsChangeBroadcasting.isEmpty()) {
+ it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet<ChunkHolder> copy = this.chunkMap.needsChangeBroadcasting.clone();
+ this.chunkMap.needsChangeBroadcasting.clear();
+ for (ChunkHolder holder : copy) {
+ holder.broadcastChanges(holder.getFullChunkNowUnchecked()); // LevelChunks are NEVER unloaded
+ if (holder.needsBroadcastChanges()) {
+ // I DON'T want to KNOW what DUMB plugins might be doing.
+ this.chunkMap.needsChangeBroadcasting.add(holder);
+ }
+ }
+ }
+ // Paper end - optimise chunk tick iteration
+ // Paper - optimise chunk tick iteration
+ }
+
+ // Pufferfish start - optimize mob spawning
+ if (org.dreeam.leaf.config.modules.async.AsyncMobSpawning.enabled) {
+ for (ServerPlayer player : this.level.players) {
+ // Paper start - per player mob spawning backoff
+ for (int ii = 0; ii < ServerPlayer.MOBCATEGORY_TOTAL_ENUMS; ii++) {
+ player.mobCounts[ii] = 0;
+
+ int newBackoff = player.mobBackoffCounts[ii] - 1; // TODO make configurable bleed // TODO use nonlinear algorithm?
+ if (newBackoff < 0) {
+ newBackoff = 0;
+ }
+ player.mobBackoffCounts[ii] = newBackoff;
+ }
+ // Paper end - per player mob spawning backoff
+ }
+ if (firstRunSpawnCounts) {
+ firstRunSpawnCounts = false;
+ _pufferfish_spawnCountsReady.set(true);
+ }
+ if (_pufferfish_spawnCountsReady.getAndSet(false)) {
+ net.minecraft.server.MinecraftServer.getServer().mobSpawnExecutor.submit(() -> {
+ int mapped = distanceManager.getNaturalSpawnChunkCount();
+ io.papermc.paper.util.maplist.IteratorSafeOrderedReferenceSet.Iterator<Entity> objectiterator =
+ level.entityTickList.entities.iterator(io.papermc.paper.util.maplist.IteratorSafeOrderedReferenceSet.ITERATOR_FLAG_SEE_ADDITIONS);
+ gg.pufferfish.pufferfish.util.IterableWrapper<Entity> wrappedIterator =
+ new gg.pufferfish.pufferfish.util.IterableWrapper<>(objectiterator);
+ lastSpawnState = NaturalSpawner.createState(mapped, wrappedIterator, this::getFullChunk, null, true);
+ objectiterator.finishedIterating();
+ _pufferfish_spawnCountsReady.set(true);
+ });
+ }
+>>>>>>> Remove Timings
}
}
// Paper end - optimise chunk tick iteration
- this.level.timings.broadcastChunkUpdates.stopTiming(); // Paper - timing
// Paper - optimise chunk tick iteration
}
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index f8d11853af6bfc08d1bd8a0f537fd5760bfc04be..e354a9c72ec61896d9752d804517e57a412daea5 100644
index 528e6e37b5552fe8179b472ec5fbbb90fa1b7b5b..4fea04aaf08c8a8e7bbb2add980f28fca08dd97f 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -1,7 +1,6 @@
@@ -1377,7 +1318,7 @@ index f8d11853af6bfc08d1bd8a0f537fd5760bfc04be..e354a9c72ec61896d9752d804517e57a
import com.google.common.collect.Lists;
import com.mojang.datafixers.DataFixer;
import com.mojang.datafixers.util.Pair;
@@ -868,27 +867,19 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -682,27 +681,19 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf.
this.tickTime();
}
@@ -1405,7 +1346,7 @@ index f8d11853af6bfc08d1bd8a0f537fd5760bfc04be..e354a9c72ec61896d9752d804517e57a
}
this.handlingTick = false;
@@ -899,13 +890,11 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -713,13 +704,11 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf.
}
if (flag1 || this.emptyTime++ < 300) {
@@ -1419,7 +1360,7 @@ index f8d11853af6bfc08d1bd8a0f537fd5760bfc04be..e354a9c72ec61896d9752d804517e57a
this.entityTickList.forEach((entity) -> {
entity.activatedPriorityReset = false; // Pufferfish - DAB
if (!entity.isRemoved()) {
@@ -942,8 +931,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -743,8 +732,6 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf.
}
}
});
@@ -1428,27 +1369,27 @@ index f8d11853af6bfc08d1bd8a0f537fd5760bfc04be..e354a9c72ec61896d9752d804517e57a
this.tickBlockEntities();
}
@@ -1077,7 +1064,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -869,7 +856,6 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf.
}
} // Paper - Option to disable ice and snow
- timings.chunkTicksBlocks.startTiming(); // Paper
if (randomTickSpeed > 0) {
// Paper start - optimize random block ticking
LevelChunkSection[] sections = chunk.getSections();
@@ -1110,8 +1096,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
LevelChunkSection[] achunksection = chunk.getSections();
@@ -899,8 +885,6 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf.
}
}
}
// Paper end - optimise random block ticking
-
- timings.chunkTicksBlocks.stopTiming(); // Paper
}
@VisibleForTesting
@@ -1441,31 +1425,21 @@ public class ServerLevel extends Level implements WorldGenLevel {
currentlyTickingEntity.lazySet(entity);
@@ -1200,31 +1184,21 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf.
}
// Paper end - log detailed entity tick information
public void tickNonPassenger(Entity entity) {
- ++TimingHistory.entityTicks; // Paper - timings
// Spigot start
- co.aikar.timings.Timing timer; // Paper
@@ -1477,15 +1418,16 @@ index f8d11853af6bfc08d1bd8a0f537fd5760bfc04be..e354a9c72ec61896d9752d804517e57a
Iterator iterator = entity.getPassengers().iterator();
while (iterator.hasNext()) {
@@ -1473,7 +1447,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1232,8 +1206,6 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf.
this.tickPassenger(entity, entity1);
}
- // } finally { timer.stopTiming(); } // Paper - timings - move up
// Paper start - log detailed entity tick information
} finally {
if (currentlyTickingEntity.get() == entity) {
@@ -1488,9 +1461,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
-
}
private void tickPassenger(Entity vehicle, Entity passenger) {
@@ -1241,9 +1213,6 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf.
if (passenger instanceof Player || this.entityTickList.contains(passenger)) {
// Paper - EAR 2
final boolean isActive = org.spigotmc.ActivationRange.checkIfActive(passenger);
@@ -1494,8 +1436,8 @@ index f8d11853af6bfc08d1bd8a0f537fd5760bfc04be..e354a9c72ec61896d9752d804517e57a
- // Paper end
passenger.setOldPosAndRot();
++passenger.tickCount;
// Paper start - EAR 2
@@ -1511,8 +1481,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1265,8 +1234,6 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf.
this.tickPassenger(passenger, entity2);
}
@@ -1504,30 +1446,7 @@ index f8d11853af6bfc08d1bd8a0f537fd5760bfc04be..e354a9c72ec61896d9752d804517e57a
}
} else {
passenger.stopRiding();
@@ -1532,14 +1500,11 @@ public class ServerLevel extends Level implements WorldGenLevel {
org.bukkit.Bukkit.getPluginManager().callEvent(new org.bukkit.event.world.WorldSaveEvent(getWorld()));
}
- try (co.aikar.timings.Timing ignored = this.timings.worldSave.startTiming()) {
if (doFull) {
this.saveLevelData(true); // Paper - Write SavedData IO async
}
- this.timings.worldSaveChunks.startTiming(); // Paper
if (!this.noSave()) chunkproviderserver.saveIncrementally();
- this.timings.worldSaveChunks.stopTiming(); // Paper
// Copied from save()
// CraftBukkit start - moved from MinecraftServer.saveChunks
@@ -1551,7 +1516,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
this.convertable.saveDataTag(this.server.registryAccess(), this.serverLevelData, this.server.getPlayerList().getSingleplayerData());
}
// CraftBukkit end
- }
}
// Paper end - Incremental chunk and player saving
@@ -1565,7 +1529,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1288,7 +1255,6 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf.
if (!savingDisabled) {
org.bukkit.Bukkit.getPluginManager().callEvent(new org.bukkit.event.world.WorldSaveEvent(this.getWorld())); // CraftBukkit
@@ -1535,20 +1454,18 @@ index f8d11853af6bfc08d1bd8a0f537fd5760bfc04be..e354a9c72ec61896d9752d804517e57a
if (progressListener != null) {
progressListener.progressStartNoAbort(Component.translatable("menu.savingLevel"));
}
@@ -1575,11 +1538,8 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1298,9 +1264,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf.
progressListener.progressStage(Component.translatable("menu.savingChunks"));
}
- timings.worldSaveChunks.startTiming(); // Paper
if (!close) chunkproviderserver.save(flush); // Paper - rewrite chunk system
if (close) chunkproviderserver.close(true); // Paper - rewrite chunk system
if (!close) { chunkproviderserver.save(flush); } // Paper - add close param
- timings.worldSaveChunks.stopTiming(); // Paper
- }// Paper
// Paper - rewrite chunk system - entity saving moved into ChunkHolder
}// Paper
// Paper - rewrite chunk system
} else if (close) { chunkproviderserver.close(false); } // Paper - rewrite chunk system
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index ce4763458258bd5685d3ec02278b6ed829ebf705..9250db41e26d2ffa96146782e898165591f9e819 100644
index d2153c3e909e7e75529ce6e41d649bf54b48752b..33fd3c88f84a5d6f7f7c0212f364a83870c88fc7 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -1,6 +1,5 @@
@@ -1558,24 +1475,20 @@ index ce4763458258bd5685d3ec02278b6ed829ebf705..9250db41e26d2ffa96146782e8981655
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
@@ -1337,7 +1336,6 @@ public abstract class PlayerList {
@@ -1282,11 +1281,9 @@ public abstract class PlayerList {
public void saveAll(int interval) {
public void saveAll() {
io.papermc.paper.util.MCUtil.ensureMain("Save Players" , () -> { // Paper - Ensure main
- MinecraftTimings.savePlayers.startTiming(); // Paper
int numSaved = 0;
long now = MinecraftServer.currentTick;
for (int i = 0; i < this.players.size(); ++i) {
@@ -1348,7 +1346,6 @@ public abstract class PlayerList {
}
// Paper end - Incremental chunk and player saving
this.save(this.players.get(i));
}
- MinecraftTimings.savePlayers.stopTiming(); // Paper
return null; }); // Paper - ensure main
}
diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java
index 32a1b5a1d01fd4dc603a76fde259f3a0d4749fad..4714cbf21f4edb41ee07c7eac180a6806afb7e9e 100644
index d3de0362dd1ef3954d05c4d8fa56a25edfe1bb2b..6ac3dfab99cfb0b51c81cc20e71da1261a8c567c 100644
--- a/src/main/java/net/minecraft/world/entity/EntityType.java
+++ b/src/main/java/net/minecraft/world/entity/EntityType.java
@@ -356,10 +356,6 @@ public class EntityType<T extends Entity> implements FeatureElement, EntityTypeT
@@ -1715,10 +1628,10 @@ index 85b4b24361e785acf75571ff98f924c00ae80748..ac67dd7a30616fe70f73426e332972b7
}
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index 8be636ef55f8f2cb0ed1edad42156b742281b044..e77db67592e13a06133cafb364f227686fcc336b 100644
index e86c8972de653252ae14a8d483941bda69913884..395ccbe442e9c57d11f3f7dc4381b8f6458ad392 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -177,7 +177,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -176,7 +176,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl
public final com.destroystokyo.paper.antixray.ChunkPacketBlockController chunkPacketBlockController; // Paper - Anti-Xray
public final org.purpurmc.purpur.PurpurWorldConfig purpurConfig; // Purpur
@@ -1726,15 +1639,15 @@ index 8be636ef55f8f2cb0ed1edad42156b742281b044..e77db67592e13a06133cafb364f22768
public static BlockPos lastPhysicsProblem; // Spigot
private org.spigotmc.TickLimiter entityLimiter;
private org.spigotmc.TickLimiter tileLimiter;
@@ -353,7 +352,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -400,7 +399,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl
public void onBorderSetDamageSafeZOne(WorldBorder border, double safeZoneRadius) {}
});
// CraftBukkit end
- this.timings = new co.aikar.timings.WorldTimingsHandler(this); // Paper - code below can generate new world and access timings
this.entityLimiter = new org.spigotmc.TickLimiter(this.spigotConfig.entityMaxTickTime);
this.tileLimiter = new org.spigotmc.TickLimiter(this.spigotConfig.tileMaxTickTime);
this.chunkPacketBlockController = this.paperConfig().anticheat.antiXray.enabled ? new com.destroystokyo.paper.antixray.ChunkPacketBlockControllerAntiXray(this, executor) : com.destroystokyo.paper.antixray.ChunkPacketBlockController.NO_OPERATION_INSTANCE; // Paper - Anti-Xray
@@ -1318,15 +1316,12 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
this.entityLookup = new ca.spottedleaf.moonrise.patches.chunk_system.level.entity.dfl.DefaultEntityLookup(this); // Paper - rewrite chunk system
@@ -999,15 +997,12 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl
}
protected void tickBlockEntities() {
@@ -1750,7 +1663,7 @@ index 8be636ef55f8f2cb0ed1edad42156b742281b044..e77db67592e13a06133cafb364f22768
// Spigot start
// Iterator<TickingBlockEntity> iterator = this.blockEntityTickers.iterator();
boolean flag = this.tickRateManager().runsNormally();
@@ -1355,9 +1350,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -1031,9 +1026,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl
}
this.blockEntityTickers.removeAll(toRemove); // Paper - Fix MC-117075
@@ -1761,7 +1674,7 @@ index 8be636ef55f8f2cb0ed1edad42156b742281b044..e77db67592e13a06133cafb364f22768
}
diff --git a/src/main/java/net/minecraft/world/level/NaturalSpawner.java b/src/main/java/net/minecraft/world/level/NaturalSpawner.java
index 27fccd091535f7587aaaa1621361dc1835381b89..885d7c9ef96dd3c7576c28606e5ab83d2a75de71 100644
index d490429ddbb8cd82aeda5e03540075c9167b095e..d556089907bb695a9d87df1961ef0b0ae4382cad 100644
--- a/src/main/java/net/minecraft/world/level/NaturalSpawner.java
+++ b/src/main/java/net/minecraft/world/level/NaturalSpawner.java
@@ -127,7 +127,6 @@ public final class NaturalSpawner {
@@ -1782,10 +1695,10 @@ index 27fccd091535f7587aaaa1621361dc1835381b89..885d7c9ef96dd3c7576c28606e5ab83d
// Paper start - Add mobcaps commands
diff --git a/src/main/java/net/minecraft/world/level/block/Block.java b/src/main/java/net/minecraft/world/level/block/Block.java
index 14aaabb6b9595847358f65ff01c81b179d9548ea..3dc9f10f00dd982ca28a66b364e5088c3413d5ef 100644
index dcfe68a51067b35057ef14813f57e7d91a0f84b6..78c3dabea3dd08ed1f4212375e8ef20e904a9d3a 100644
--- a/src/main/java/net/minecraft/world/level/block/Block.java
+++ b/src/main/java/net/minecraft/world/level/block/Block.java
@@ -107,13 +107,6 @@ public class Block extends BlockBehaviour implements ItemLike {
@@ -106,13 +106,6 @@ public class Block extends BlockBehaviour implements ItemLike {
this != Blocks.STRUCTURE_BLOCK &&
this != Blocks.JIGSAW;
}
@@ -1819,18 +1732,18 @@ index cd0e43f4c53a746dd6183a8406269f9b11ad3571..54657ac895fb2fa9c58910d5421f0082
private static final CraftPersistentDataTypeRegistry DATA_TYPE_REGISTRY = new CraftPersistentDataTypeRegistry();
public CraftPersistentDataContainer persistentDataContainer;
diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
index f2a1787ba10bcb67ad5a2a36165bac55ea7f0a3e..184b69dc39749734f8176d3f3c2bf9f690a099f0 100644
index 5752576087e5ff411ff8c89fde7a761083945c23..95f306d6d896e6aa4ada7ee20880ed862e0e48d8 100644
--- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
+++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
@@ -792,7 +792,6 @@ public class LevelChunk extends ChunkAccess {
this.chunkHolder.getEntityChunk().callEntitiesLoadEvent(); // Paper - rewrite chunk system
@@ -622,7 +622,6 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p
((ca.spottedleaf.moonrise.patches.chunk_system.level.ChunkSystemServerLevel)this.level).moonrise$getChunkTaskScheduler().chunkHolderManager.getChunkHolder(this.locX, this.locZ).getEntityChunk().callEntitiesLoadEvent(); // Paper - rewrite chunk system
if (this.needsDecoration) {
- try (co.aikar.timings.Timing ignored = this.level.timings.chunkLoadPopulate.startTiming()) { // Paper
this.needsDecoration = false;
java.util.Random random = new java.util.Random();
random.setSeed(this.level.getSeed());
@@ -812,7 +811,6 @@ public class LevelChunk extends ChunkAccess {
@@ -642,7 +641,6 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p
}
}
server.getPluginManager().callEvent(new org.bukkit.event.world.ChunkPopulateEvent(bukkitChunk));
@@ -1838,7 +1751,7 @@ index f2a1787ba10bcb67ad5a2a36165bac55ea7f0a3e..184b69dc39749734f8176d3f3c2bf9f6
}
}
}
@@ -1165,7 +1163,6 @@ public class LevelChunk extends ChunkAccess {
@@ -979,7 +977,6 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p
if (LevelChunk.this.isTicking(blockposition)) {
try {
@@ -1846,8 +1759,8 @@ index f2a1787ba10bcb67ad5a2a36165bac55ea7f0a3e..184b69dc39749734f8176d3f3c2bf9f6
BlockState iblockdata = LevelChunk.this.getBlockState(blockposition);
if (this.blockEntity.getType().isValid(iblockdata)) {
@@ -1188,14 +1185,9 @@ public class LevelChunk extends ChunkAccess {
net.minecraft.world.level.chunk.LevelChunk.this.level.getCraftServer().getPluginManager().callEvent(new com.destroystokyo.paper.event.server.ServerExceptionEvent(new ServerInternalException(msg, throwable))); // Paper - ServerExceptionEvent
@@ -1002,14 +999,9 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p
net.minecraft.world.level.chunk.LevelChunk.this.level.getCraftServer().getPluginManager().callEvent(new com.destroystokyo.paper.event.server.ServerExceptionEvent(new com.destroystokyo.paper.exception.ServerInternalException(msg, throwable))); // Paper - ServerExceptionEvent
LevelChunk.this.removeBlockEntity(this.getPos());
// Paper end - Prevent block entity and entity crashes
- // Spigot start
@@ -1862,10 +1775,10 @@ index f2a1787ba10bcb67ad5a2a36165bac55ea7f0a3e..184b69dc39749734f8176d3f3c2bf9f6
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 0523fef009b23eb801acfb6bcc45c02dfbef1833..c8e424d6646f782c8fbd97c1e699115304983533 100644
index d10c10907cefc06afff7e0f4c4cbbca352410c25..ec341e053e8eb539d4401161245039c90609138c 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -474,7 +474,6 @@ public final class CraftServer implements Server {
@@ -477,7 +477,6 @@ public final class CraftServer implements Server {
this.saveCommandsConfig();
this.overrideAllCommandBlockCommands = this.commandsConfiguration.getStringList("command-block-overrides").contains("*");
this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions");
@@ -1873,19 +1786,6 @@ index 0523fef009b23eb801acfb6bcc45c02dfbef1833..c8e424d6646f782c8fbd97c1e6991153
this.overrideSpawnLimits();
console.autosavePeriod = this.configuration.getInt("ticks-per.autosave");
this.warningState = WarningState.value(this.configuration.getString("settings.deprecated-verbose"));
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
index 9f873c07bec896b6c91b306efa51e0f07da1c6a8..ce3572f8044d7a4732d9411a622be79c48da1346 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -375,8 +375,6 @@ public class Main {
tryPreloadClass("org.jline.terminal.impl.MouseSupport");
tryPreloadClass("org.jline.terminal.impl.MouseSupport$1");
tryPreloadClass("org.jline.terminal.Terminal$MouseTracking");
- tryPreloadClass("co.aikar.timings.TimingHistory");
- tryPreloadClass("co.aikar.timings.TimingHistory$MinuteReport");
tryPreloadClass("io.netty.channel.AbstractChannelHandlerContext");
tryPreloadClass("io.netty.channel.AbstractChannelHandlerContext$11");
tryPreloadClass("io.netty.channel.AbstractChannelHandlerContext$12");
diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
index 006adb2adb27c497ede69f87e78bc3e34499cbf8..4ee1c3461d21feab3a54e76a7c2ab80b6ea2ab38 100644
--- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
@@ -2027,7 +1927,7 @@ index b3e1adeb932da9b3bed16acd94e2f16da48a7c72..e9798517b9211c50a20ea5c69603aab3
}
}
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
index 2918b61675e16a0dd023d3ca10f232c4675bf4b0..c8dc6333cddbf25c8211be6d24ce39f5ee64b70a 100644
index 4250752a95301271f09590f0140f821a0090811a..cbb510df86d7470520a007cba3b915bf0f8b6c67 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
@@ -219,9 +219,7 @@ public final class CraftMagicNumbers implements UnsafeValues {
@@ -2051,10 +1951,10 @@ index 2918b61675e16a0dd023d3ca10f232c4675bf4b0..c8dc6333cddbf25c8211be6d24ce39f5
@Override
diff --git a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java
index b4cca06a583fbb7918237de256f43ee61fd8ec6c..dd4a5f610e6e84a73051a8ed46e1961804356ca3 100644
index 9b82eb1cc56e3151ecbd526bb1064ab7ef32186b..f34d71d9e7fccb4b661475101b2c79144c65517d 100644
--- a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java
+++ b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java
@@ -80,41 +80,6 @@ public class GaleGlobalConfiguration extends ConfigurationPart {
@@ -66,41 +66,6 @@ public class GaleGlobalConfiguration extends ConfigurationPart {
public int premiumAccountSlowLoginTimeout = -1; // Gale - make slow login timeout configurable
public boolean ignoreNullLegacyStructureData = false; // Gale - MultiPaper - ignore null legacy structure data
@@ -2257,7 +2157,7 @@ index 139d946346594d2a59a8b2930c4eae794c880dbc..00000000000000000000000000000000
-
-}
diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java
index 638bed116e4c36974b6096524f3f878a1ecb89c5..37e35606e3f47325db4da5deeff02aad9d541e87 100644
index bfd1999476debbd9798d51b2931dfa7e770a6e1f..87a815a942d15f2c1faf1f986bba864f9eea1351 100644
--- a/src/main/java/org/spigotmc/ActivationRange.java
+++ b/src/main/java/org/spigotmc/ActivationRange.java
@@ -34,7 +34,6 @@ import net.minecraft.world.entity.projectile.FireworkRocketEntity;
@@ -2268,7 +2168,7 @@ index 638bed116e4c36974b6096524f3f878a1ecb89c5..37e35606e3f47325db4da5deeff02aad
import net.minecraft.world.entity.schedule.Activity;
import net.minecraft.world.level.Level;
import net.minecraft.world.phys.AABB;
@@ -185,7 +184,6 @@ public class ActivationRange
@@ -181,7 +180,6 @@ public class ActivationRange
*/
public static void activateEntities(Level world)
{
@@ -2276,7 +2176,7 @@ index 638bed116e4c36974b6096524f3f878a1ecb89c5..37e35606e3f47325db4da5deeff02aad
final int miscActivationRange = world.spigotConfig.miscActivationRange;
final int raiderActivationRange = world.spigotConfig.raiderActivationRange;
final int animalActivationRange = world.spigotConfig.animalActivationRange;
@@ -264,7 +262,6 @@ public class ActivationRange
@@ -261,7 +259,6 @@ public class ActivationRange
}
// Paper end
}

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Bump Dependencies
diff --git a/build.gradle.kts b/build.gradle.kts
index 59b84e4c4566e0185c6f7b002374e51c8415cad9..1d520295a7da79c6952ed950765647e2caf4315b 100644
index 397d93b63e412abb96cc8366c51c3927d760afb8..d6a307d6f949348559d3dc3e9bc6a8f98c8ac4f4 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -25,7 +25,7 @@ dependencies {
@@ -17,7 +17,7 @@ index 59b84e4c4566e0185c6f7b002374e51c8415cad9..1d520295a7da79c6952ed950765647e2
implementation("net.minecrell:terminalconsoleappender:1.3.0")
implementation("net.kyori:adventure-text-serializer-ansi:4.17.0") // Keep in sync with adventureVersion from Paper-API build file
/*
@@ -34,28 +34,32 @@ dependencies {
@@ -34,33 +34,43 @@ dependencies {
all its classes to check if they are plugins.
Scanning takes about 1-2 seconds so adding this speeds up the server start.
*/
@@ -37,10 +37,9 @@ index 59b84e4c4566e0185c6f7b002374e51c8415cad9..1d520295a7da79c6952ed950765647e2
implementation("org.ow2.asm:asm-commons:9.7")
implementation("org.spongepowered:configurate-yaml:4.2.0-SNAPSHOT") // Paper - config files
implementation("commons-lang:commons-lang:2.6")
runtimeOnly("org.xerial:sqlite-jdbc:3.45.3.0")
- runtimeOnly("com.mysql:mysql-connector-j:8.3.0")
runtimeOnly("org.xerial:sqlite-jdbc:3.46.0.0")
runtimeOnly("com.mysql:mysql-connector-j:8.4.0")
- runtimeOnly("com.lmax:disruptor:3.4.4") // Paper
+ runtimeOnly("com.mysql:mysql-connector-j:8.4.0") // Leaf - Bump Dependencies
+ runtimeOnly("com.lmax:disruptor:3.4.4") // Paper // Leaf - Bump Dependencies - Waiting Log4j 3.x to support disruptor 4.0.0
// Paper start - Use Velocity cipher
- implementation("com.velocitypowered:velocity-native:3.1.2-SNAPSHOT") {
@@ -58,14 +57,14 @@ index 59b84e4c4566e0185c6f7b002374e51c8415cad9..1d520295a7da79c6952ed950765647e2
+ runtimeOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.9.20")
+ // Leaf end
// Purpur start
implementation("org.mozilla:rhino-runtime:1.7.15")
@@ -63,10 +67,10 @@ dependencies {
implementation("dev.omega24:upnp4j:1.0")
// Purpur end
- testImplementation("io.github.classgraph:classgraph:4.8.47") // Paper - mob goal test
- testImplementation("org.junit.jupiter:junit-jupiter:5.10.2")
+ // Purpur start
+ implementation("org.mozilla:rhino-runtime:1.7.15")
+ implementation("org.mozilla:rhino-engine:1.7.15")
+ implementation("dev.omega24:upnp4j:1.0")
+ // Purpur end
+
+ testImplementation("io.github.classgraph:classgraph:4.8.173") // Paper - mob goal test // Leaf - Bump Dependencies
+ testImplementation("org.junit.jupiter:junit-jupiter:5.11.0-M2") // Leaf - Bump Dependencies
testImplementation("org.hamcrest:hamcrest:2.2")
@@ -74,7 +73,7 @@ index 59b84e4c4566e0185c6f7b002374e51c8415cad9..1d520295a7da79c6952ed950765647e2
testImplementation("org.ow2.asm:asm-tree:9.7")
testImplementation("org.junit-pioneer:junit-pioneer:2.2.0") // Paper - CartesianTest
implementation("net.neoforged:srgutils:1.0.9") // Paper - mappings handling
@@ -77,6 +81,8 @@ dependencies {
@@ -71,6 +81,8 @@ dependencies {
implementation("io.papermc:reflection-rewriter-runtime:$reflectionRewriterVersion")
implementation("io.papermc:reflection-rewriter-proxy-generator:$reflectionRewriterVersion")
// Paper end - Remap reflection
@@ -83,7 +82,7 @@ index 59b84e4c4566e0185c6f7b002374e51c8415cad9..1d520295a7da79c6952ed950765647e2
}
paperweight {
@@ -270,3 +276,8 @@ sourceSets {
@@ -264,3 +276,8 @@ sourceSets {
}
}
// Gale end - package license into jar

View File

@@ -5,19 +5,19 @@ Subject: [PATCH] Remove vanilla username check
diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
index 52c5ce7339029d7cc3bb1164131a9f96598760c0..1d496b2efc44065e91b4d612e17f38382489e876 100644
index 80fdfc08e57ff3d524956aa9651bfe3cba3efc7b..00d8b8d4d2d1c73c4eeeaa9483cca2999df65a54 100644
--- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
@@ -181,7 +181,8 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener,
// Gale start - JettPack - reduce array allocations
Validate.validState(this.state == ServerLoginPacketListenerImpl.State.HELLO, "Unexpected hello packet", ArrayConstants.emptyObjectArray);
public void handleHello(ServerboundHelloPacket packet) {
Validate.validState(this.state == ServerLoginPacketListenerImpl.State.HELLO, "Unexpected hello packet", new Object[0]);
// Paper start - Validate usernames
- if (io.papermc.paper.configuration.GlobalConfiguration.get().proxies.isProxyOnlineMode()
+ if (!org.dreeam.leaf.config.modules.misc.RemoveVanillaUsernameCheck.enabled // Leaf - Remove Vanilla username check
+ && io.papermc.paper.configuration.GlobalConfiguration.get().proxies.isProxyOnlineMode()
&& io.papermc.paper.configuration.GlobalConfiguration.get().unsupportedSettings.performUsernameValidation
&& !this.iKnowThisMayNotBeTheBestIdeaButPleaseDisableUsernameValidation) {
Validate.validState(StringUtil.isReasonablePlayerName(packet.name()), "Invalid characters in username", ArrayConstants.emptyObjectArray);
Validate.validState(StringUtil.isReasonablePlayerName(packet.name()), "Invalid characters in username", new Object[0]);
diff --git a/src/main/java/org/dreeam/leaf/config/modules/misc/RemoveVanillaUsernameCheck.java b/src/main/java/org/dreeam/leaf/config/modules/misc/RemoveVanillaUsernameCheck.java
new file mode 100644
index 0000000000000000000000000000000000000000..2dcdf5adff80f63499e6d160ff24313653cfb315

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Remove Spigot Check for Broken BungeeCord Configurations
diff --git a/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java
index 8e90f35218e66690359dac35828a1485a77f34c1..a544a93deccdff9c7fe6b8cca9650ce8c2a69a7d 100644
index a1e39d4476e932da3d4e0c363ce22eb5be2b8e6c..e4911a420c81a371142f556584cc05a4f76334e1 100644
--- a/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java
@@ -181,7 +181,7 @@ public class ServerHandshakePacketListenerImpl implements ServerHandshakePacketL
@@ -179,7 +179,7 @@ public class ServerHandshakePacketListenerImpl implements ServerHandshakePacketL
{
this.connection.spoofedProfile = ServerHandshakePacketListenerImpl.gson.fromJson(split[3], com.mojang.authlib.properties.Property[].class);
}

View File

@@ -7,10 +7,10 @@ This Check is added in 1.17.x -> 1.18.x that updated by Mojang.
By removing this check, it gives ability for hackers to use some modules of hack clients.
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index c53e01260b4ca6f637b3d55798cda4cab822b5fe..d107cd93a6d43f060a7bcfc4a3ee0c82c51bc9b9 100644
index dc4a4d7de838d8756b0f5cbbc149b1d5cd2b4dd6..e26963501b7608097fc1be8f2c9530b082f2c0ec 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2008,7 +2008,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -1948,7 +1948,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
Vec3 vec3d1 = vec3d.subtract(Vec3.atCenterOf(blockposition));
double d0 = 1.0000001D;

View File

@@ -7,10 +7,10 @@ Original license: MIT
Original project: https://github.com/KeYiMC/KeYi
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index aac21ff5418f76b0d06b6a49a4021bde194cf1da..20cf62169210ba0a5de45ed68e3453cc63a07102 100644
index 41863584c3a85068b807a5aeb93c3da70f133b47..7a7a2acca5980ab3d79346f47e4153dd6c98939b 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -3626,4 +3626,27 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -3647,4 +3647,27 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
this.getHandle().connection.send(new net.minecraft.network.protocol.game.ClientboundPlayerCombatKillPacket(getEntityId(), io.papermc.paper.adventure.PaperAdventure.asVanilla(message)));
}
// Purpur end

View File

@@ -7,10 +7,10 @@ Original license: MIT
Original project: https://github.com/KeYiMC/KeYi
diff --git a/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java b/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java
index 758cc7862121e7c27db5e087f816aab566320162..c3c9fc0d126e3f258fa8f06901fb3cac0d0ab289 100644
index 76718d966a326ba82a92217a9f0fdf5b17f9d643..46254b2f500ad9bec248cd057c87bc729c592ee0 100644
--- a/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java
+++ b/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java
@@ -137,7 +137,7 @@ public class GaleWorldConfiguration extends ConfigurationPart {
@@ -136,7 +136,7 @@ public class GaleWorldConfiguration extends ConfigurationPart {
public boolean loadPortalDestinationChunkBeforeEntityTeleport = false; // Gale - MultiPaper - load portal destination chunk before entity teleport
}

View File

@@ -7,10 +7,10 @@ Original license: MIT
Original project: https://github.com/KeYiMC/KeYi
diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
index e380d1ea5b3dd6e91e79f6d7bd5d980a2c32315a..18d1be51ca12c3ccac5a5130667c47c1f1235935 100644
index f096a9023fe0b54160e957dd5c6baa489ed0c410..7db0a4b53f27622ad2fd85a451613fc83ea87052 100644
--- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
+++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
@@ -356,7 +356,7 @@ public class ItemEntity extends Entity implements TraceableEntity {
@@ -357,7 +357,7 @@ public class ItemEntity extends Entity implements TraceableEntity {
ItemStack itemstack1 = other.getItem();
if (Objects.equals(this.target, other.target) && ItemEntity.areMergable(itemstack, itemstack1)) {

View File

@@ -11,15 +11,15 @@ This is a fully vanilla optimization. Improves: [Blast]Furnace/Campfire/Smoker/S
This was mostly made for the auto crafting table, since the performance boost is much more visible while using that mod
diff --git a/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java b/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java
index a31326e24cb68472c81cd781c5e3041772712862..0662e7afca15cab700dc61fe7de1d62eed27405d 100644
index de7c77c1b25680ecc65f0f43f2391aff269a974f..fa0eccdb5f0b6a7bc1426d32a245095e7846b175 100644
--- a/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java
+++ b/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java
@@ -132,7 +132,7 @@ public class RecipeManager extends SimpleJsonResourceReloadListener {
@@ -128,7 +128,7 @@ public class RecipeManager extends SimpleJsonResourceReloadListener {
}
public <C extends Container, T extends Recipe<C>> List<RecipeHolder<T>> getAllRecipesFor(RecipeType<T> type) {
public <I extends RecipeInput, T extends Recipe<I>> List<RecipeHolder<T>> getAllRecipesFor(RecipeType<T> type) {
- return List.copyOf(this.byType(type));
+ return new java.util.ArrayList<>(this.byType(type)); // Leaf - Carpet-Fixes
}
public <C extends Container, T extends Recipe<C>> List<RecipeHolder<T>> getRecipesFor(RecipeType<T> type, C inventory, Level world) {
public <I extends RecipeInput, T extends Recipe<I>> List<RecipeHolder<T>> getRecipesFor(RecipeType<T> type, I input, Level world) {

View File

@@ -8,10 +8,10 @@ Original license: GPL v3
Original project: https://github.com/Akarin-project/Akarin
diff --git a/src/main/java/net/minecraft/server/players/StoredUserList.java b/src/main/java/net/minecraft/server/players/StoredUserList.java
index 1516232f116f1d48fe383d8c05c7dcc63b38f96a..523255345df9f4d84c5fa514de42620c4605d446 100644
index c038da20b76c0b7b1c18471b20be01e849d29f3a..44b9c8a7c3cd22c0c0e148744e4096d7330f4f34 100644
--- a/src/main/java/net/minecraft/server/players/StoredUserList.java
+++ b/src/main/java/net/minecraft/server/players/StoredUserList.java
@@ -104,6 +104,7 @@ public abstract class StoredUserList<K, V extends StoredUserEntry<K>> {
@@ -103,6 +103,7 @@ public abstract class StoredUserList<K, V extends StoredUserEntry<K>> {
}
public void save() throws IOException {
@@ -19,7 +19,7 @@ index 1516232f116f1d48fe383d8c05c7dcc63b38f96a..523255345df9f4d84c5fa514de42620c
this.removeExpired(); // Paper - remove expired values before saving
JsonArray jsonarray = new JsonArray();
Stream<JsonObject> stream = this.map.values().stream().map((jsonlistentry) -> { // CraftBukkit - decompile error
@@ -115,6 +116,8 @@ public abstract class StoredUserList<K, V extends StoredUserEntry<K>> {
@@ -114,6 +115,8 @@ public abstract class StoredUserList<K, V extends StoredUserEntry<K>> {
Objects.requireNonNull(jsonarray);
stream.forEach(jsonarray::add);
@@ -28,7 +28,7 @@ index 1516232f116f1d48fe383d8c05c7dcc63b38f96a..523255345df9f4d84c5fa514de42620c
BufferedWriter bufferedwriter = Files.newWriter(this.file, StandardCharsets.UTF_8);
try {
@@ -135,6 +138,13 @@ public abstract class StoredUserList<K, V extends StoredUserEntry<K>> {
@@ -134,6 +137,13 @@ public abstract class StoredUserList<K, V extends StoredUserEntry<K>> {
bufferedwriter.close();
}

View File

@@ -7,39 +7,39 @@ Original license: MIT
Original project: https://github.com/Cryptite/Slice
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index fd3f177012d82fe774069b4c53f7efef3e9b991f..9b97d5ca67c0e53f318a54465708e21ae906e994 100644
index d573ae3fee994614bcc6c699bcbe8210874ca414..30f984553e823b3c928b0e2181baf5d2058c2d84 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -303,6 +303,7 @@ public class ServerPlayer extends Player {
@@ -306,6 +306,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple
private boolean tpsBar = false; // Purpur
private boolean compassBar = false; // Purpur
private boolean ramBar = false; // Purpur
+ public boolean smoothWorldTeleport; // Slice
// Paper start - replace player chunk loader
private final java.util.concurrent.atomic.AtomicReference<io.papermc.paper.chunk.system.RegionizedPlayerChunkLoader.ViewDistances> viewDistances = new java.util.concurrent.atomic.AtomicReference<>(new io.papermc.paper.chunk.system.RegionizedPlayerChunkLoader.ViewDistances(-1, -1, -1));
// Paper start - rewrite chunk system
private ca.spottedleaf.moonrise.patches.chunk_system.player.RegionizedPlayerChunkLoader.PlayerChunkLoaderData chunkLoader;
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index 9250db41e26d2ffa96146782e898165591f9e819..2e98c6598e589b498991c745058db3c0efb9cbf6 100644
index 33fd3c88f84a5d6f7f7c0212f364a83870c88fc7..360b52002fe8bc9dd27a4fe3831ed6f5dfe8d6c6 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -969,10 +969,10 @@ public abstract class PlayerList {
ServerLevel worldserver2 = entityplayer1.serverLevel();
LevelData worlddata = worldserver2.getLevelData();
@@ -898,10 +898,10 @@ public abstract class PlayerList {
ServerLevel worldserver1 = entityplayer1.serverLevel();
LevelData worlddata = worldserver1.getLevelData();
- entityplayer1.connection.send(new ClientboundRespawnPacket(entityplayer1.createCommonSpawnInfo(worldserver2), (byte) i));
+ if (!entityplayer.smoothWorldTeleport) entityplayer1.connection.send(new ClientboundRespawnPacket(entityplayer1.createCommonSpawnInfo(worldserver2), (byte) i)); // Slice
entityplayer1.connection.send(new ClientboundSetChunkCacheRadiusPacket(worldserver1.getWorld().getSendViewDistance())); // Spigot // Paper - replace old player chunk management
entityplayer1.connection.send(new ClientboundSetSimulationDistancePacket(worldserver1.getWorld().getSimulationDistance())); // Spigot // Paper - replace old player chunk management
- entityplayer1.connection.teleport(CraftLocation.toBukkit(entityplayer1.position(), worldserver2.getWorld(), entityplayer1.getYRot(), entityplayer1.getXRot())); // CraftBukkit
+ if (!entityplayer.smoothWorldTeleport) entityplayer1.connection.teleport(CraftLocation.toBukkit(entityplayer1.position(), worldserver2.getWorld(), entityplayer1.getYRot(), entityplayer1.getXRot())); // CraftBukkit // Slice
entityplayer1.connection.send(new ClientboundSetDefaultSpawnPositionPacket(worldserver1.getSharedSpawnPos(), worldserver1.getSharedSpawnAngle()));
- entityplayer1.connection.send(new ClientboundRespawnPacket(entityplayer1.createCommonSpawnInfo(worldserver1), (byte) i));
+ if (!entityplayer.smoothWorldTeleport) entityplayer1.connection.send(new ClientboundRespawnPacket(entityplayer1.createCommonSpawnInfo(worldserver1), (byte) i)); // Slice
entityplayer1.connection.send(new ClientboundSetChunkCacheRadiusPacket(worldserver1.spigotConfig.viewDistance)); // Spigot
entityplayer1.connection.send(new ClientboundSetSimulationDistancePacket(worldserver1.spigotConfig.simulationDistance)); // Spigot
- entityplayer1.connection.teleport(CraftLocation.toBukkit(entityplayer1.position(), worldserver1.getWorld(), entityplayer1.getYRot(), entityplayer1.getXRot())); // CraftBukkit
+ if (!entityplayer.smoothWorldTeleport) entityplayer1.connection.teleport(CraftLocation.toBukkit(entityplayer1.position(), worldserver1.getWorld(), entityplayer1.getYRot(), entityplayer1.getXRot())); // CraftBukkit // Slice
entityplayer1.connection.send(new ClientboundSetDefaultSpawnPositionPacket(worldserver.getSharedSpawnPos(), worldserver.getSharedSpawnAngle()));
entityplayer1.connection.send(new ClientboundChangeDifficultyPacket(worlddata.getDifficulty(), worlddata.isDifficultyLocked()));
entityplayer1.connection.send(new ClientboundSetExperiencePacket(entityplayer1.experienceProgress, entityplayer1.totalExperience, entityplayer1.experienceLevel));
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 20cf62169210ba0a5de45ed68e3453cc63a07102..581ef3deffeb66d5d06951e6eadffb05b26a50c4 100644
index 7a7a2acca5980ab3d79346f47e4153dd6c98939b..cf85b3af38258fa34e8f67d1f002a521cc59c81b 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1348,6 +1348,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -1361,6 +1361,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
// Paper end
}

View File

@@ -7,34 +7,33 @@ Original license: GPLv3
Original project: https://github.com/ProjectEdenGG/Parchment
diff --git a/src/main/java/io/papermc/paper/command/subcommands/FixLightCommand.java b/src/main/java/io/papermc/paper/command/subcommands/FixLightCommand.java
index 56524cbe4303901007e1e7fb3703a19efbf79ae7..e461c736e9f386fd7b6c96757f827bec361b78d8 100644
index 85950a1aa732ab8c01ad28bec9e0de140e1a172e..8e8d1a38290c2dc3f88deda64d050e89273a5b89 100644
--- a/src/main/java/io/papermc/paper/command/subcommands/FixLightCommand.java
+++ b/src/main/java/io/papermc/paper/command/subcommands/FixLightCommand.java
@@ -87,18 +87,21 @@ public final class FixLightCommand implements PaperSubcommand {
lightengine.relight(chunks,
@@ -95,17 +95,20 @@ public final class FixLightCommand implements PaperSubcommand {
((StarLightLightingProvider)lightengine).starlight$serverRelightChunks(chunks,
(final ChunkPos chunkPos) -> {
++relitChunks[0];
- sender.getBukkitEntity().sendMessage(text().color(DARK_AQUA).append(
- text("Relit chunk ", BLUE), text(chunkPos.toString()),
- text(", progress: ", BLUE), text((int) (Math.round(100.0 * (double) (relitChunks[0]) / (double) pending[0])) + "%")
- text(", progress: ", BLUE), text(ONE_DECIMAL_PLACES.get().format(100.0 * (double) (relitChunks[0]) / (double) pending[0]) + "%")
- ));
+ sender.getBukkitEntity().sendActionBar(text().color(DARK_AQUA).append(
+ text("Relighting Chunks: ", DARK_AQUA), text(chunkPos.toString()),
+ text(" " + relitChunks[0], net.kyori.adventure.text.format.NamedTextColor.YELLOW),
+ text("/", DARK_AQUA),
+ text(pending[0] + " ", net.kyori.adventure.text.format.NamedTextColor.YELLOW),
+ text("(" + (int) (Math.round(100.0 * (double) (relitChunks[0]) / (double) pending[0])) + "%)", net.kyori.adventure.text.format.NamedTextColor.YELLOW)
+ text("(" + ONE_DECIMAL_PLACES.get().format(100.0 * (double) (relitChunks[0]) / (double) pending[0]) + "%)", net.kyori.adventure.text.format.NamedTextColor.YELLOW)
+ )); // Leaf - Parchment - Make FixLight use action bar
},
(final int totalRelit) -> {
final long end = System.nanoTime();
final long diff = Math.round(1.0e-6 * (end - start));
sender.getBukkitEntity().sendMessage(text().color(DARK_AQUA).append(
- text("Relit ", BLUE), text(totalRelit),
- text(" chunks. Took ", BLUE), text(diff + "ms")
- text(" chunks. Took ", BLUE), text(ONE_DECIMAL_PLACES.get().format(1.0e-6 * (end - start)) + "ms")
- ));
+ text("Relit ", DARK_AQUA), text(totalRelit, net.kyori.adventure.text.format.NamedTextColor.YELLOW),
+ text(" chunks. Took ", DARK_AQUA), text(diff + "ms", net.kyori.adventure.text.format.NamedTextColor.YELLOW)
+ text(" chunks. Took ", DARK_AQUA), text(ONE_DECIMAL_PLACES.get().format(1.0e-6 * (end - start)) + "ms", net.kyori.adventure.text.format.NamedTextColor.YELLOW)
+ )); // Leaf - Parchment - Make FixLight use action bar
if (done != null) {
done.run();