mirror of
https://github.com/LeavesMC/Leaves.git
synced 2025-12-24 01:19:19 +00:00
Update Paper
This commit is contained in:
@@ -4,4 +4,4 @@ version=1.19.2-R0.1-SNAPSHOT
|
||||
mcVersion=1.19.2
|
||||
packageVersion=1_19_R1
|
||||
org.gradle.jvmargs=-Xmx2G
|
||||
paperRef=ef0e5a642d33ac62f070c45a61cb42647b2744cd
|
||||
paperRef=77a50b95dada2d73b92fdd95d674d357b64bc7d4
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Leaves Server Config
|
||||
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
|
||||
index da5cab4246bd253fcc4e4d9574bdae1867ebb5ab..866d0825a955e61fdcce488aa9e526c4a32ca37e 100644
|
||||
index e43fef0152468944d8a33036344a43e95fe58476..1b311ecc6a2e4ccb7437eb74dcb7b3a881d035fd 100644
|
||||
--- a/src/main/java/org/bukkit/Server.java
|
||||
+++ b/src/main/java/org/bukkit/Server.java
|
||||
@@ -1947,6 +1947,14 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
|
||||
@@ -1968,6 +1968,14 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
// Paper end
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Add isShrink to EntityResurrectEvent
|
||||
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/event/entity/EntityResurrectEvent.java b/src/main/java/org/bukkit/event/entity/EntityResurrectEvent.java
|
||||
index fa6b6c3b047edd1653f3c81027ec752821bcdb09..4e2e345bafa812c37a46b86e20fb2ce9c8660425 100644
|
||||
index 2f6ad5c2fc7ae7cf22cb424df3543c24f3ee6ebe..379237368070555890f07e71b003d2c42d8ab2b0 100644
|
||||
--- a/src/main/java/org/bukkit/event/entity/EntityResurrectEvent.java
|
||||
+++ b/src/main/java/org/bukkit/event/entity/EntityResurrectEvent.java
|
||||
@@ -13,11 +13,36 @@ import org.jetbrains.annotations.NotNull;
|
||||
@@ -15,19 +15,43 @@ import org.jetbrains.annotations.Nullable;
|
||||
public class EntityResurrectEvent extends EntityEvent implements Cancellable {
|
||||
|
||||
private static final HandlerList handlers = new HandlerList();
|
||||
@@ -17,14 +17,23 @@ index fa6b6c3b047edd1653f3c81027ec752821bcdb09..4e2e345bafa812c37a46b86e20fb2ce9
|
||||
private boolean cancelled;
|
||||
+ private boolean shrink;
|
||||
|
||||
public EntityResurrectEvent(@NotNull LivingEntity what) {
|
||||
private final EquipmentSlot hand;
|
||||
|
||||
- public EntityResurrectEvent(@NotNull LivingEntity what, @Nullable EquipmentSlot hand) {
|
||||
+ public EntityResurrectEvent(@NotNull LivingEntity what, @Nullable EquipmentSlot hand, boolean shrink) {
|
||||
super(what);
|
||||
+ this.shrink = true;
|
||||
+ this.shrink = shrink;
|
||||
this.hand = hand;
|
||||
}
|
||||
|
||||
+ public EntityResurrectEvent(@NotNull LivingEntity what, @Nullable EquipmentSlot hand) {
|
||||
+ this(what, hand, true);
|
||||
+ }
|
||||
+
|
||||
+ public EntityResurrectEvent(@NotNull LivingEntity what, boolean shrink) {
|
||||
+ super(what);
|
||||
+ this.shrink = shrink;
|
||||
@Deprecated
|
||||
public EntityResurrectEvent(@NotNull LivingEntity what) {
|
||||
- this(what, null);
|
||||
+ this(what, null, true);
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Build changes
|
||||
|
||||
|
||||
diff --git a/build.gradle.kts b/build.gradle.kts
|
||||
index 2374cc9bab5039d0a0dc11d4b2ec573ab75778a7..447cd0bae0f082a97b5db79720b0110269d9b3f3 100644
|
||||
index 44e0f265432487fe5c3c00c5245041298ade16a0..23eb2a0803162d4adafddbb2c649401960575741 100644
|
||||
--- a/build.gradle.kts
|
||||
+++ b/build.gradle.kts
|
||||
@@ -9,8 +9,12 @@ plugins {
|
||||
@@ -71,10 +71,10 @@ index 7b1843e16745ca8db2244e17490d291401f22679..0ac8bcb0a4b7d1da3d0e016617db7a81
|
||||
metrics.addCustomChart(new Metrics.DrilldownPie("java_version", () -> {
|
||||
Map<String, Map<String, Integer>> map = new HashMap<>();
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index d2161a3c3b9a2b2d463ac778656c95167c10a49d..c353bd0bb8d6a9bbc1bca535d9a529ba25b52c05 100644
|
||||
index ce81ba5345c8d2fde8a2534b9673275c7e86af8b..5d3b64419e2394d1e60c4bbcbad539354cc7fc5d 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -1673,7 +1673,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1654,7 +1654,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
|
||||
@DontObfuscate
|
||||
public String getServerModName() {
|
||||
@@ -84,7 +84,7 @@ index d2161a3c3b9a2b2d463ac778656c95167c10a49d..c353bd0bb8d6a9bbc1bca535d9a529ba
|
||||
|
||||
public SystemReport fillSystemReport(SystemReport details) {
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
index b443aba38258f501f8f00be6b055f07b709277c4..1123b71cd76b26008e872b96dfc35b31d97a77c1 100644
|
||||
index 111f8276f26350a5c62a7b8577b4598978b5355d..0880f7b55d1ce9ff42206fbb2f201500ec5e6ea5 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
@@ -248,7 +248,7 @@ import javax.annotation.Nullable; // Paper
|
||||
|
||||
@@ -19,10 +19,10 @@ index 06bff37e4c1fddd3be6343049a66787c63fb420c..15ed5a9af5583e2430804662e3b9fa95
|
||||
|
||||
new TimingsExport(listeners, parent, history).start();
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index c353bd0bb8d6a9bbc1bca535d9a529ba25b52c05..1a84e2ee9966997a52b580bb0e4d69d557a48a7a 100644
|
||||
index 5d3b64419e2394d1e60c4bbcbad539354cc7fc5d..2f5ed2d41e9cd768b88b4aab974200e047f916ed 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -1146,6 +1146,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1120,6 +1120,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
LOGGER.info("Done ({})! For help, type \"help\"", doneTime);
|
||||
// Paper end
|
||||
|
||||
@@ -31,7 +31,7 @@ index c353bd0bb8d6a9bbc1bca535d9a529ba25b52c05..1a84e2ee9966997a52b580bb0e4d69d5
|
||||
org.spigotmc.WatchdogThread.hasStarted = true; // Paper
|
||||
Arrays.fill( recentTps, 20 );
|
||||
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
index bdd6560fe85950b0a857a949cb38c044da44ca6b..d27f115b74fe00623985255d1027656166c1c459 100644
|
||||
index 2932d2bb797a49e904cebec4285d24d69b429cd9..18d568093aeb8be69fa76c5f2e3ac6dd61d5479b 100644
|
||||
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
@@ -226,6 +226,9 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
||||
@@ -45,7 +45,7 @@ index bdd6560fe85950b0a857a949cb38c044da44ca6b..d27f115b74fe00623985255d10276561
|
||||
this.setPvpAllowed(dedicatedserverproperties.pvp);
|
||||
this.setFlightAllowed(dedicatedserverproperties.allowFlight);
|
||||
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
||||
index ceb1f18ec16ddcda792ef0393b5f4649fbef3017..4bade8b095550c41f2d651372776fd4c0ca0cbd0 100644
|
||||
index d89471935b2b5888cb5d1f6829ae479003451fda..a69b428d5465b2e434bfd21cd935997c1871bbb6 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/Level.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
||||
@@ -174,6 +174,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
@@ -65,10 +65,10 @@ index ceb1f18ec16ddcda792ef0393b5f4649fbef3017..4bade8b095550c41f2d651372776fd4c
|
||||
this.world = new CraftWorld((ServerLevel) this, gen, biomeProvider, env);
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
index 1123b71cd76b26008e872b96dfc35b31d97a77c1..1fe68b60128f67371e1898023c69e31a7db42204 100644
|
||||
index 0880f7b55d1ce9ff42206fbb2f201500ec5e6ea5..3b738b215ffe6663560dc7a435f6d03905daba0c 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
@@ -961,6 +961,7 @@ public final class CraftServer implements Server {
|
||||
@@ -966,6 +966,7 @@ public final class CraftServer implements Server {
|
||||
|
||||
org.spigotmc.SpigotConfig.init((File) console.options.valueOf("spigot-settings")); // Spigot
|
||||
this.console.paperConfigurations.reloadConfigs(this.console);
|
||||
@@ -76,7 +76,7 @@ index 1123b71cd76b26008e872b96dfc35b31d97a77c1..1fe68b60128f67371e1898023c69e31a
|
||||
for (ServerLevel world : this.console.getAllLevels()) {
|
||||
// world.serverLevelData.setDifficulty(config.difficulty); // Paper - per level difficulty
|
||||
world.setSpawnSettings(world.serverLevelData.getDifficulty() != Difficulty.PEACEFUL && config.spawnMonsters, config.spawnAnimals); // Paper - per level difficulty (from MinecraftServer#setDifficulty(ServerLevel, Difficulty, boolean))
|
||||
@@ -976,6 +977,7 @@ public final class CraftServer implements Server {
|
||||
@@ -981,6 +982,7 @@ public final class CraftServer implements Server {
|
||||
}
|
||||
}
|
||||
world.spigotConfig.init(); // Spigot
|
||||
@@ -84,7 +84,7 @@ index 1123b71cd76b26008e872b96dfc35b31d97a77c1..1fe68b60128f67371e1898023c69e31a
|
||||
}
|
||||
|
||||
Plugin[] pluginClone = pluginManager.getPlugins().clone(); // Paper
|
||||
@@ -991,6 +993,7 @@ public final class CraftServer implements Server {
|
||||
@@ -996,6 +998,7 @@ public final class CraftServer implements Server {
|
||||
this.reloadData();
|
||||
org.spigotmc.SpigotConfig.registerCommands(); // Spigot
|
||||
io.papermc.paper.command.PaperCommands.registerCommands(this.console); // Paper
|
||||
@@ -92,7 +92,7 @@ index 1123b71cd76b26008e872b96dfc35b31d97a77c1..1fe68b60128f67371e1898023c69e31a
|
||||
this.overrideAllCommandBlockCommands = this.commandsConfiguration.getStringList("command-block-overrides").contains("*");
|
||||
this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions");
|
||||
|
||||
@@ -2730,6 +2733,14 @@ public final class CraftServer implements Server {
|
||||
@@ -2735,6 +2738,14 @@ public final class CraftServer implements Server {
|
||||
{
|
||||
return CraftServer.this.console.paperConfigurations.createLegacyObject(CraftServer.this.console);
|
||||
}
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Fix gravity block duper
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index 0b3765ff8a25215bc42298b591eeffe022107079..8366668a5f3084e35b3030d3bb696f2922135385 100644
|
||||
index 756b8e68c6b7c21c1ef78b68da9e41db4828c7c9..efa899ed25ab0a09d9d6a6fc88c02f54bc3aef40 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -460,36 +460,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||
@@ -511,36 +511,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||
return chunkMap.playerEntityTrackerTrackMaps[type.ordinal()].getObjectsInRange(MCUtil.getCoordinateKey(this));
|
||||
}
|
||||
// Paper end - optimise entity tracking
|
||||
@@ -44,9 +44,9 @@ index 0b3765ff8a25215bc42298b591eeffe022107079..8366668a5f3084e35b3030d3bb696f29
|
||||
- // Paper end - make end portalling safe
|
||||
+ // Leaves - fix gravity block duper
|
||||
|
||||
// Paper start
|
||||
/**
|
||||
@@ -2898,7 +2870,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||
public Entity(EntityType<?> type, Level world) {
|
||||
this.id = Entity.ENTITY_COUNTER.incrementAndGet();
|
||||
@@ -2900,7 +2872,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||
}
|
||||
|
||||
this.processPortalCooldown();
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Fix trading with the void
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
index 96bb0e56f12437037b598cd7baabf369e5994517..8efd9b1edb12e415434d71f6b644273876d6ac3d 100644
|
||||
index f1a27e0ea0569438032ff6c5a777a35be4e501ef..e310660e50867715dfcce041d7c8d4904a7dca12 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
@@ -2597,11 +2597,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
@@ -2616,11 +2616,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
// Spigot end
|
||||
// Spigot Start
|
||||
if (entity.getBukkitEntity() instanceof org.bukkit.inventory.InventoryHolder && (!(entity instanceof ServerPlayer) || entity.getRemovalReason() != Entity.RemovalReason.KILLED)) { // SPIGOT-6876: closeInventory clears death message
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Allow vanilla properties def
|
||||
|
||||
|
||||
diff --git a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java
|
||||
index 456595e4b7e0c7f50617aa2694b0d2dfc368ab81..c8901ca493f33881850346d2bc21fcd11863c017 100644
|
||||
index 4a8286c78a9a5e305b19cc5d316bc73a78e49b4d..1c90286f238bf7d1df291f079a57196dce98dd01 100644
|
||||
--- a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java
|
||||
+++ b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java
|
||||
@@ -136,12 +136,12 @@ public class GlobalConfiguration extends ConfigurationPart {
|
||||
@@ -135,12 +135,12 @@ public class GlobalConfiguration extends ConfigurationPart {
|
||||
|
||||
public class UnsupportedSettings extends ConfigurationPart {
|
||||
@Comment("This setting controls if players should be able to break bedrock, end portals and other intended to be permanent blocks.")
|
||||
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Add fakeplayer support
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index 1a84e2ee9966997a52b580bb0e4d69d557a48a7a..7afe46665bdd02bb65636a4f947999831a8d56d8 100644
|
||||
index 2f5ed2d41e9cd768b88b4aab974200e047f916ed..3775a75a54807e50eded612f26fec5ad0229fbca 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -120,6 +120,7 @@ import net.minecraft.util.profiling.metrics.profiling.ServerMetricsSamplersProvi
|
||||
@@ -24,7 +24,7 @@ index 1a84e2ee9966997a52b580bb0e4d69d557a48a7a..7afe46665bdd02bb65636a4f94799983
|
||||
|
||||
public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTask> implements CommandSource, AutoCloseable {
|
||||
|
||||
@@ -928,6 +930,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -938,6 +940,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
MinecraftServer.LOGGER.info("Stopping server");
|
||||
Commands.COMMAND_SENDING_POOL.shutdownNow(); // Paper - Shutdown and don't bother finishing
|
||||
MinecraftTimings.stopServer(); // Paper
|
||||
@@ -57,7 +57,7 @@ index a0c19503aabab5378d672a30163d35a5ba05b6c1..8873e12cbd3d6f9071efedb35ea3c69c
|
||||
AdvancementProgress advancementprogress = this.getOrStartProgress(advancement);
|
||||
boolean flag1 = advancementprogress.isDone();
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
index 3615576c24d5d6790a6894a91180de25fa0e5a9c..b4029e66cf8a0c9028af3f52a81619e1df8565a4 100644
|
||||
index af7acb628b84539b1ee5ef1934f75f091c4cd91e..0a59074eb9ca735d2919a825d27366316631db6b 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -174,6 +174,7 @@ import org.bukkit.event.player.PlayerPortalEvent;
|
||||
@@ -68,7 +68,7 @@ index 3615576c24d5d6790a6894a91180de25fa0e5a9c..b4029e66cf8a0c9028af3f52a81619e1
|
||||
// CraftBukkit end
|
||||
|
||||
public class ServerPlayer extends Player {
|
||||
@@ -1177,6 +1178,13 @@ public class ServerPlayer extends Player {
|
||||
@@ -1163,6 +1164,13 @@ public class ServerPlayer extends Player {
|
||||
this.lastSentHealth = -1.0F;
|
||||
this.lastSentFood = -1;
|
||||
|
||||
@@ -83,7 +83,7 @@ index 3615576c24d5d6790a6894a91180de25fa0e5a9c..b4029e66cf8a0c9028af3f52a81619e1
|
||||
PlayerChangedWorldEvent changeEvent = new PlayerChangedWorldEvent(this.getBukkitEntity(), worldserver1.getWorld());
|
||||
this.level.getCraftServer().getPluginManager().callEvent(changeEvent);
|
||||
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
index 5999d85e38951503fc83b40cfe39671921ae5088..66350e6d0b2deed7bd510d87d13b47a474ea8a52 100644
|
||||
index 06eda955f96b5fe2d08ed0d39229c7a6ebb88931..68233891ccb0f9389e22561421e743aa5c3ba02b 100644
|
||||
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
@@ -76,6 +76,7 @@ import net.minecraft.server.ServerScoreboard;
|
||||
|
||||
@@ -5,15 +5,15 @@ Subject: [PATCH] Add isShrink to EntityResurrectEvent
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
index 33c22f908440664dc9d67f1678a3c4bd8b862457..f0c4dafec12295080550e894c90dadeee389cc26 100644
|
||||
index 0318c9483a4d96eb39ff4df9054a9e6398186bc3..476afe131aa60d91a2d43fd04c55ab591b03337b 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
@@ -1530,12 +1530,12 @@ public abstract class LivingEntity extends Entity {
|
||||
}
|
||||
@@ -1533,12 +1533,12 @@ public abstract class LivingEntity extends Entity {
|
||||
}
|
||||
|
||||
- EntityResurrectEvent event = new EntityResurrectEvent((org.bukkit.entity.LivingEntity) this.getBukkitEntity());
|
||||
+ EntityResurrectEvent event = new EntityResurrectEvent((org.bukkit.entity.LivingEntity) this.getBukkitEntity(), true);
|
||||
org.bukkit.inventory.EquipmentSlot handSlot = (hand != null) ? org.bukkit.craftbukkit.CraftEquipmentSlot.getHand(hand) : null;
|
||||
- EntityResurrectEvent event = new EntityResurrectEvent((org.bukkit.entity.LivingEntity) this.getBukkitEntity(), handSlot);
|
||||
+ EntityResurrectEvent event = new EntityResurrectEvent((org.bukkit.entity.LivingEntity) this.getBukkitEntity(), handSlot, true);
|
||||
event.setCancelled(itemstack == null);
|
||||
this.level.getCraftServer().getPluginManager().callEvent(event);
|
||||
|
||||
@@ -23,7 +23,7 @@ index 33c22f908440664dc9d67f1678a3c4bd8b862457..f0c4dafec12295080550e894c90dadee
|
||||
itemstack1.shrink(1);
|
||||
}
|
||||
if (itemstack != null && this instanceof ServerPlayer) {
|
||||
@@ -4396,3 +4396,4 @@ public abstract class LivingEntity extends Entity {
|
||||
@@ -4378,3 +4378,4 @@ public abstract class LivingEntity extends Entity {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,10 +31,10 @@ index 11183b4a39b9897e1b1067eb2a3556d2b1d90f52..73009fdcc695f41f8953b85bef5d728c
|
||||
|
||||
public static class Players {
|
||||
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
index d27f115b74fe00623985255d1027656166c1c459..b5d5c2346cad59dabffc0c378b4f9fdae90bd48e 100644
|
||||
index 18d568093aeb8be69fa76c5f2e3ac6dd61d5479b..bfcaadc4bd70384d5cea975b18874cfc31d8909e 100644
|
||||
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
@@ -617,7 +617,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
||||
@@ -644,7 +644,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
||||
|
||||
@Override
|
||||
public boolean enforceSecureProfile() {
|
||||
@@ -44,7 +44,7 @@ index d27f115b74fe00623985255d1027656166c1c459..b5d5c2346cad59dabffc0c378b4f9fda
|
||||
|
||||
protected boolean convertOldUsers() {
|
||||
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
index 9eb921fec32afa360f3a402e978411fcf3ec618c..fb0931654a6f34d0ef2722bd6a599d5a8fb37464 100644
|
||||
index 63c9040ed2349eec500ba6e9090440347c514a3b..3aa71562966a31cf2b535f55fd3cf5cf975a9489 100644
|
||||
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
@@ -75,6 +75,8 @@ import net.minecraft.network.protocol.game.ClientboundContainerSetSlotPacket;
|
||||
@@ -56,7 +56,7 @@ index 9eb921fec32afa360f3a402e978411fcf3ec618c..fb0931654a6f34d0ef2722bd6a599d5a
|
||||
import net.minecraft.network.protocol.game.ClientboundPlayerPositionPacket;
|
||||
import net.minecraft.network.protocol.game.ClientboundSetCarriedItemPacket;
|
||||
import net.minecraft.network.protocol.game.ClientboundSetDefaultSpawnPositionPacket;
|
||||
@@ -2147,10 +2149,30 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
|
||||
@@ -2148,10 +2150,30 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
|
||||
|
||||
@Override
|
||||
public void send(Packet<?> packet) {
|
||||
@@ -87,7 +87,7 @@ index 9eb921fec32afa360f3a402e978411fcf3ec618c..fb0931654a6f34d0ef2722bd6a599d5a
|
||||
// CraftBukkit start
|
||||
if (packet == null || this.processedDisconnect) { // Spigot
|
||||
return;
|
||||
@@ -2565,6 +2587,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
|
||||
@@ -2566,6 +2588,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
|
||||
}
|
||||
|
||||
private void broadcastChatMessage(PlayerChatMessage message) {
|
||||
@@ -100,7 +100,7 @@ index 9eb921fec32afa360f3a402e978411fcf3ec618c..fb0931654a6f34d0ef2722bd6a599d5a
|
||||
String s = message.signedContent().plain();
|
||||
if (s.isEmpty()) {
|
||||
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
index 66350e6d0b2deed7bd510d87d13b47a474ea8a52..f1ecb814970206df9ad26bdd5af81d2c96bf3d5c 100644
|
||||
index 68233891ccb0f9389e22561421e743aa5c3ba02b..680ad9d8896aa0ce58ceefc4f9deb624b7384f5b 100644
|
||||
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
@@ -1452,7 +1452,7 @@ public abstract class PlayerList {
|
||||
|
||||
@@ -6,7 +6,7 @@ Subject: [PATCH] Optimize mob spawning
|
||||
This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish)
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index 7afe46665bdd02bb65636a4f947999831a8d56d8..440ed7cce7ce8cc99e8d39ac36fed0c9f8f8948e 100644
|
||||
index 3775a75a54807e50eded612f26fec5ad0229fbca..905103d883311296a914e10a31e13ba9353352f8 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -301,6 +301,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -17,9 +17,9 @@ index 7afe46665bdd02bb65636a4f947999831a8d56d8..440ed7cce7ce8cc99e8d39ac36fed0c9
|
||||
+
|
||||
public static <S extends MinecraftServer> S spin(Function<Thread, S> serverFactory) {
|
||||
AtomicReference<S> atomicreference = new AtomicReference();
|
||||
Thread thread = new Thread(() -> {
|
||||
Thread thread = new io.papermc.paper.util.TickThread(() -> { // Paper - rewrite chunk system
|
||||
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
index b5d5c2346cad59dabffc0c378b4f9fdae90bd48e..4da748a4f6963dea6e33332fe6daf411270a0b80 100644
|
||||
index bfcaadc4bd70384d5cea975b18874cfc31d8909e..aa112d6e0e3a91ef9cf74a0fe9d105416f9a161d 100644
|
||||
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
@@ -341,6 +341,11 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
||||
@@ -35,10 +35,10 @@ index b5d5c2346cad59dabffc0c378b4f9fdae90bd48e..4da748a4f6963dea6e33332fe6daf411
|
||||
}
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||
index c2c01988bf3b6fbb0a7a4716373c2ff0cffce27d..5c112e760f85729bfd1f30aeb39fccba7ab591bc 100644
|
||||
index 73daa8368066e20d251b8b6eb69c916919b48838..9e40e93e233d1f5865681f749cb19454b5f4b65e 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||
@@ -471,7 +471,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||
@@ -334,7 +334,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||
this.dataRegionManager = new io.papermc.paper.chunk.SingleThreadChunkRegionManager(this.level, 2, (1.0 / 3.0), 1, 6, "Data", DataRegionData::new, DataRegionSectionData::new);
|
||||
this.regionManagers.add(this.dataRegionManager);
|
||||
// Paper end
|
||||
@@ -48,7 +48,7 @@ index c2c01988bf3b6fbb0a7a4716373c2ff0cffce27d..5c112e760f85729bfd1f30aeb39fccba
|
||||
this.playerEntityTrackerTrackMaps = new com.destroystokyo.paper.util.misc.PlayerAreaMap[TRACKING_RANGE_TYPES.length];
|
||||
this.entityTrackerTrackRanges = new int[TRACKING_RANGE_TYPES.length];
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
||||
index efcb80efc69a1e5ffc81b579bf535fd94e8144d7..bc174f4c1d015bef37efc3de1ccbf98ae825639e 100644
|
||||
index 6d1f929eb717f62f0d7ebb9e9b52c3788061e240..7d7501e85874e60263d5462dba02a4b3a79f68cb 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
||||
@@ -76,6 +76,11 @@ public class ServerChunkCache extends ChunkSource {
|
||||
@@ -63,7 +63,7 @@ index efcb80efc69a1e5ffc81b579bf535fd94e8144d7..bc174f4c1d015bef37efc3de1ccbf98a
|
||||
private static int getChunkCacheKey(int x, int z) {
|
||||
return x & 3 | ((z & 3) << 2);
|
||||
}
|
||||
@@ -794,18 +799,25 @@ public class ServerChunkCache extends ChunkSource {
|
||||
@@ -711,18 +716,25 @@ public class ServerChunkCache extends ChunkSource {
|
||||
// Paper start - per player mob spawning
|
||||
NaturalSpawner.SpawnState spawnercreature_d; // moved down
|
||||
if ((this.spawnFriendlies || this.spawnEnemies) && this.chunkMap.playerMobDistanceMap != null) { // don't count mobs when animals and monsters are disabled
|
||||
@@ -95,9 +95,9 @@ index efcb80efc69a1e5ffc81b579bf535fd94e8144d7..bc174f4c1d015bef37efc3de1ccbf98a
|
||||
gameprofilerfiller.popPush("filteringLoadedChunks");
|
||||
// Paper - moved down
|
||||
this.level.timings.chunkTicks.startTiming(); // Paper
|
||||
@@ -843,8 +855,8 @@ public class ServerChunkCache extends ChunkSource {
|
||||
@@ -760,8 +772,8 @@ public class ServerChunkCache extends ChunkSource {
|
||||
|
||||
if ((true || this.level.isNaturalSpawningAllowed(chunkcoordintpair)) && this.chunkMap.anyPlayerCloseEnoughForSpawning(holder, chunkcoordintpair, false)) { // Paper - optimise anyPlayerCloseEnoughForSpawning // Paper - replace player chunk loader system
|
||||
if ((true || this.level.isNaturalSpawningAllowed(chunkcoordintpair)) && this.chunkMap.anyPlayerCloseEnoughForSpawning(holder, chunkcoordintpair, false)) { // Paper - optimise anyPlayerCloseEnoughForSpawning // Paper - the chunk is known ticking
|
||||
chunk1.incrementInhabitedTime(j);
|
||||
- if (flag2 && (this.spawnEnemies || this.spawnFriendlies) && this.level.getWorldBorder().isWithinBounds(chunkcoordintpair) && this.chunkMap.anyPlayerCloseEnoughForSpawning(holder, chunkcoordintpair, true)) { // Spigot // Paper - optimise anyPlayerCloseEnoughForSpawning & optimise chunk tick iteration
|
||||
- NaturalSpawner.spawnForChunk(this.level, chunk1, spawnercreature_d, this.spawnFriendlies, this.spawnEnemies, flag1);
|
||||
@@ -105,8 +105,8 @@ index efcb80efc69a1e5ffc81b579bf535fd94e8144d7..bc174f4c1d015bef37efc3de1ccbf98a
|
||||
+ NaturalSpawner.spawnForChunk(this.level, chunk1, lastSpawnState, this.spawnFriendlies, this.spawnEnemies, flag1); // Leaves - optimize mob spawning
|
||||
}
|
||||
|
||||
if (true || this.level.shouldTickBlocksAt(chunkcoordintpair.toLong())) { // Paper - replace player chunk loader system
|
||||
@@ -905,6 +917,30 @@ public class ServerChunkCache extends ChunkSource {
|
||||
if (true || this.level.shouldTickBlocksAt(chunkcoordintpair.toLong())) { // Paper - the chunk is known ticking
|
||||
@@ -822,6 +834,30 @@ public class ServerChunkCache extends ChunkSource {
|
||||
}
|
||||
}
|
||||
// Paper end - controlled flush for entity tracker packets
|
||||
|
||||
@@ -18,10 +18,10 @@ index 0fd814f1d65c111266a2b20f86561839a4cef755..28f853e93b149de9eb838f5aa3b6779d
|
||||
protected final double maxFragFactor;
|
||||
|
||||
diff --git a/src/main/java/io/papermc/paper/world/ChunkEntitySlices.java b/src/main/java/io/papermc/paper/world/ChunkEntitySlices.java
|
||||
index 47b5f75d9f27cf3ab947fd1f69cbd609fb9f2749..b6f4ee2c21361633c2f6ca0851622cf57b9c647c 100644
|
||||
index f597d65d56964297eeeed6c7e77703764178fee0..a584f2d0829db0bb220b2934ae2934dab981fdd5 100644
|
||||
--- a/src/main/java/io/papermc/paper/world/ChunkEntitySlices.java
|
||||
+++ b/src/main/java/io/papermc/paper/world/ChunkEntitySlices.java
|
||||
@@ -27,7 +27,7 @@ public final class ChunkEntitySlices {
|
||||
@@ -35,7 +35,7 @@ public final class ChunkEntitySlices {
|
||||
protected final EntityCollectionBySection allEntities;
|
||||
protected final EntityCollectionBySection hardCollidingEntities;
|
||||
protected final Reference2ObjectOpenHashMap<Class<? extends Entity>, EntityCollectionBySection> entitiesByClass;
|
||||
@@ -31,10 +31,10 @@ index 47b5f75d9f27cf3ab947fd1f69cbd609fb9f2749..b6f4ee2c21361633c2f6ca0851622cf5
|
||||
public ChunkHolder.FullChunkStatus status;
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||
index 5c112e760f85729bfd1f30aeb39fccba7ab591bc..d517bf6a9ed81da9142cd034a6bd0d53ef9bc4c8 100644
|
||||
index 9e40e93e233d1f5865681f749cb19454b5f4b65e..9756f436877992bf56719d023a0ff9a6f41b7bc4 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||
@@ -2077,8 +2077,38 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||
@@ -1237,8 +1237,38 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||
entity.tracker = null; // Paper - We're no longer tracked
|
||||
}
|
||||
|
||||
@@ -73,7 +73,7 @@ index 5c112e760f85729bfd1f30aeb39fccba7ab591bc..d517bf6a9ed81da9142cd034a6bd0d53
|
||||
this.level.timings.tracker1.startTiming();
|
||||
try {
|
||||
for (TrackedEntity tracker : this.entityMap.values()) {
|
||||
@@ -2349,11 +2379,11 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||
@@ -1462,11 +1492,11 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||
|
||||
public class TrackedEntity {
|
||||
|
||||
@@ -88,7 +88,7 @@ index 5c112e760f85729bfd1f30aeb39fccba7ab591bc..d517bf6a9ed81da9142cd034a6bd0d53
|
||||
|
||||
public TrackedEntity(Entity entity, int i, int j, boolean flag) {
|
||||
this.serverEntity = new ServerEntity(ChunkMap.this.level, entity, j, flag, this::broadcast, this.seenBy); // CraftBukkit
|
||||
@@ -2365,7 +2395,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||
@@ -1478,7 +1508,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||
// Paper start - use distance map to optimise tracker
|
||||
com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet<ServerPlayer> lastTrackerCandidates;
|
||||
|
||||
@@ -97,7 +97,7 @@ index 5c112e760f85729bfd1f30aeb39fccba7ab591bc..d517bf6a9ed81da9142cd034a6bd0d53
|
||||
com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet<ServerPlayer> oldTrackerCandidates = this.lastTrackerCandidates;
|
||||
this.lastTrackerCandidates = newTrackerCandidates;
|
||||
|
||||
@@ -2437,7 +2467,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||
@@ -1550,7 +1580,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||
}
|
||||
|
||||
public void removePlayer(ServerPlayer player) {
|
||||
@@ -106,7 +106,7 @@ index 5c112e760f85729bfd1f30aeb39fccba7ab591bc..d517bf6a9ed81da9142cd034a6bd0d53
|
||||
if (this.seenBy.remove(player.connection)) {
|
||||
this.serverEntity.removePairing(player);
|
||||
}
|
||||
@@ -2445,7 +2475,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||
@@ -1558,7 +1588,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||
}
|
||||
|
||||
public void updatePlayer(ServerPlayer player) {
|
||||
@@ -186,10 +186,10 @@ index 8eb4a062489b42b26076d5f3bdfbff368c1a199b..441edf3dbd34c8d15b7b1ba02c92e8f1
|
||||
|
||||
set.clear();
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
index f4e5b84f0bd952676950369eff44b87fe1c46f1b..1ef5e16bc44369eefd58df7d93e031ca83ce7190 100644
|
||||
index f4e5b84f0bd952676950369eff44b87fe1c46f1b..6cff1d44bbbdf998b79c17a5fd78b084d49ce988 100644
|
||||
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
@@ -237,6 +237,15 @@ public final class LeavesConfig {
|
||||
@@ -237,6 +237,19 @@ public final class LeavesConfig {
|
||||
dontSendUselessEntityPackets = getBoolean("settings.performance.dont-send-useless-entity-packets", dontSendUselessEntityPackets);
|
||||
}
|
||||
|
||||
@@ -200,6 +200,10 @@ index f4e5b84f0bd952676950369eff44b87fe1c46f1b..1ef5e16bc44369eefd58df7d93e031ca
|
||||
+ asyncEntityTracker = getBoolean("settings.performance.async-entity-tracker", asyncEntityTracker);
|
||||
+ asyncEntityTrackerLock = true;
|
||||
+ }
|
||||
+
|
||||
+ if (asyncEntityTracker) {
|
||||
+ LeavesLogger.LOGGER.severe("Async EntityTracker is updating, it may work normally");
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
public static final class WorldConfig {
|
||||
|
||||
@@ -18,10 +18,10 @@ index 26bf383caea68834c654b25653ced9017f1b1b22..71e3c7fc5c071e83dfeca6954771e559
|
||||
this.blockPos = mutableBlockPos;
|
||||
setTargetPosition(mutableBlockPos.immutable()); // Paper
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
index 1ef5e16bc44369eefd58df7d93e031ca83ce7190..51c71e922fa98dd30d52d89b1d8d4be77eff491b 100644
|
||||
index 6cff1d44bbbdf998b79c17a5fd78b084d49ce988..d4a3fbec4311947647b479db4cdc75ef0e508d91 100644
|
||||
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
@@ -246,6 +246,11 @@ public final class LeavesConfig {
|
||||
@@ -250,6 +250,11 @@ public final class LeavesConfig {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -6,10 +6,10 @@ Subject: [PATCH] Optimize entity coordinate key
|
||||
This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish)
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/MCUtil.java b/src/main/java/net/minecraft/server/MCUtil.java
|
||||
index 6939ef9b1fe782980e77c351d8a385a573d6a8e6..c15ab575d235fb46fab8ed509cb47fbad00e6762 100644
|
||||
index 99f56658c70f99592fb40c9df0ce3e47053d1bd5..e8782ae74df61be3046b702a2c39513c3c06c9d3 100644
|
||||
--- a/src/main/java/net/minecraft/server/MCUtil.java
|
||||
+++ b/src/main/java/net/minecraft/server/MCUtil.java
|
||||
@@ -207,7 +207,13 @@ public final class MCUtil {
|
||||
@@ -208,7 +208,13 @@ public final class MCUtil {
|
||||
}
|
||||
|
||||
public static long getCoordinateKey(final Entity entity) {
|
||||
@@ -25,7 +25,7 @@ index 6939ef9b1fe782980e77c351d8a385a573d6a8e6..c15ab575d235fb46fab8ed509cb47fba
|
||||
|
||||
public static long getCoordinateKey(final ChunkPos pair) {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index 8366668a5f3084e35b3030d3bb696f2922135385..acd7e50eb1195741d82ea732a264fd2d2f6e3aef 100644
|
||||
index efa899ed25ab0a09d9d6a6fc88c02f54bc3aef40..efbf618db7b8418c4e3f55b16c25e69a7dd5719a 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -292,7 +292,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||
@@ -36,12 +36,12 @@ index 8366668a5f3084e35b3030d3bb696f2922135385..acd7e50eb1195741d82ea732a264fd2d
|
||||
+ public BlockPos blockPosition; // Leaves - private -> public
|
||||
private ChunkPos chunkPosition;
|
||||
private Vec3 deltaMovement;
|
||||
public float yRot; // Paper - private->public
|
||||
private float yRot;
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
index 51c71e922fa98dd30d52d89b1d8d4be77eff491b..338aef7429790cb24bacb790c0180d5516c9c3ba 100644
|
||||
index d4a3fbec4311947647b479db4cdc75ef0e508d91..4d4bded4a24baecd87048bbf37ff513084f400b5 100644
|
||||
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
@@ -251,6 +251,11 @@ public final class LeavesConfig {
|
||||
@@ -255,6 +255,11 @@ public final class LeavesConfig {
|
||||
fixPaper6045 = getBoolean("settings.performance.fix.fix-paper-6045", fixPaper6045);
|
||||
}
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ Subject: [PATCH] Optimize suffocation
|
||||
This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish)
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
index f0c4dafec12295080550e894c90dadeee389cc26..88dad6dd4663255ca143e71136202be483654155 100644
|
||||
index 476afe131aa60d91a2d43fd04c55ab591b03337b..c23e0c6b740878e035a1b84a31bfaa3a5f469007 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
@@ -399,7 +399,7 @@ public abstract class LivingEntity extends Entity {
|
||||
@@ -35,10 +35,10 @@ index f0c4dafec12295080550e894c90dadeee389cc26..88dad6dd4663255ca143e71136202be4
|
||||
public boolean hurt(DamageSource source, float amount) {
|
||||
if (this.isInvulnerableTo(source)) {
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
index 338aef7429790cb24bacb790c0180d5516c9c3ba..4e241398ea555e3696ad969aa37c51311116b92e 100644
|
||||
index 4d4bded4a24baecd87048bbf37ff513084f400b5..4b6def149a55882ba6be5c875aa9661b07119621 100644
|
||||
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
@@ -256,6 +256,11 @@ public final class LeavesConfig {
|
||||
@@ -260,6 +260,11 @@ public final class LeavesConfig {
|
||||
optimizeEntityCoordinateKey = getBoolean("settings.performance.optimize-entity-coordinate-key", optimizeEntityCoordinateKey);
|
||||
}
|
||||
|
||||
|
||||
@@ -6,10 +6,10 @@ Subject: [PATCH] Strip raytracing for EntityLiving#hasLineOfSight
|
||||
This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish)
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
index 88dad6dd4663255ca143e71136202be483654155..83c8ba2fe3f149c704eb9b3232a11a4b9ee5cdde 100644
|
||||
index c23e0c6b740878e035a1b84a31bfaa3a5f469007..11b8d5571ef0224424562407abcaa76aa564e459 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
@@ -3614,7 +3614,13 @@ public abstract class LivingEntity extends Entity {
|
||||
@@ -3595,7 +3595,13 @@ public abstract class LivingEntity extends Entity {
|
||||
Vec3 vec3d1 = new Vec3(entity.getX(), entity.getEyeY(), entity.getZ());
|
||||
|
||||
// Paper - diff on change - used in CraftLivingEntity#hasLineOfSight(Location) and CraftWorld#lineOfSightExists
|
||||
@@ -46,10 +46,10 @@ index d1eefa6ef3e9abfe7af4d8310aa64465fa2d5463..c91735828dc99af0b880a5a105025b42
|
||||
default BlockHitResult clip(ClipContext raytrace1, BlockPos blockposition) {
|
||||
// Paper start - Prevent raytrace from loading chunks
|
||||
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
||||
index 4bade8b095550c41f2d651372776fd4c0ca0cbd0..512bd7b5f01b00d82aa29e3659a5b5b64a1351e7 100644
|
||||
index a69b428d5465b2e434bfd21cd935997c1871bbb6..22838524727a1755739d056b726cf8321b7b4883 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/Level.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
||||
@@ -411,6 +411,91 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
@@ -410,6 +410,91 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -142,10 +142,10 @@ index 4bade8b095550c41f2d651372776fd4c0ca0cbd0..512bd7b5f01b00d82aa29e3659a5b5b6
|
||||
return pos.isInsideBuildHeightAndWorldBoundsHorizontal(this); // Paper - use better/optimized check
|
||||
}
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
index 4e241398ea555e3696ad969aa37c51311116b92e..8de03a1d05888308b64007d78dc01f6be58fd730 100644
|
||||
index 4b6def149a55882ba6be5c875aa9661b07119621..7fa6e2c9c49e2676536abbd4d9414b8969ac2b77 100644
|
||||
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
@@ -261,6 +261,11 @@ public final class LeavesConfig {
|
||||
@@ -265,6 +265,11 @@ public final class LeavesConfig {
|
||||
enableSuffocationOptimization = getBoolean("settings.performance.enable-suffocation-optimization", enableSuffocationOptimization);
|
||||
}
|
||||
|
||||
|
||||
@@ -45,10 +45,10 @@ index 50d4595b81f24949011c7565c5e3fc8c26c86019..8de1653e3fbf29e9de550a1976344bd8
|
||||
@Override
|
||||
protected float getStandingEyeHeight(Pose pose, EntityDimensions dimensions) {
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
index 8de03a1d05888308b64007d78dc01f6be58fd730..f5c07942038a51400e6cdbaee264ad869ebe8b7b 100644
|
||||
index 7fa6e2c9c49e2676536abbd4d9414b8969ac2b77..179e8370fea6a3d18e6efcaa31d605a1f95b5b25 100644
|
||||
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
@@ -266,6 +266,11 @@ public final class LeavesConfig {
|
||||
@@ -270,6 +270,11 @@ public final class LeavesConfig {
|
||||
entityStripRaytracing = getBoolean("settings.performance.strip-raytracing-for-entity", entityStripRaytracing);
|
||||
}
|
||||
|
||||
|
||||
@@ -6,10 +6,10 @@ Subject: [PATCH] Move ThreadUnsafeRandom Initialization
|
||||
This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish)
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
index 8efd9b1edb12e415434d71f6b644273876d6ac3d..69bd4ca57102ef757cfb5ea8442c26eac7cbc1f7 100644
|
||||
index e310660e50867715dfcce041d7c8d4904a7dca12..2ff80dbb41324c5ea9dfa1f0b16983452d8778fa 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
@@ -762,7 +762,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
@@ -792,7 +792,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
}
|
||||
// Paper start - optimise random block ticking
|
||||
private final BlockPos.MutableBlockPos chunkTickMutablePosition = new BlockPos.MutableBlockPos();
|
||||
@@ -19,7 +19,7 @@ index 8efd9b1edb12e415434d71f6b644273876d6ac3d..69bd4ca57102ef757cfb5ea8442c26ea
|
||||
|
||||
public void tickChunk(LevelChunk chunk, int randomTickSpeed) {
|
||||
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
||||
index 512bd7b5f01b00d82aa29e3659a5b5b64a1351e7..32ad2282a78f913c16a94ed06a81b3bdf6de0760 100644
|
||||
index 22838524727a1755739d056b726cf8321b7b4883..2e19e8cf66063a789770531fe399d81ebb20cfda 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/Level.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
||||
@@ -272,6 +272,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
@@ -31,8 +31,8 @@ index 512bd7b5f01b00d82aa29e3659a5b5b64a1351e7..32ad2282a78f913c16a94ed06a81b3bd
|
||||
protected Level(WritableLevelData worlddatamutable, ResourceKey<Level> resourcekey, Holder<DimensionType> holder, Supplier<ProfilerFiller> supplier, boolean flag, boolean flag1, long i, int j, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env, java.util.function.Function<org.spigotmc.SpigotWorldConfig, io.papermc.paper.configuration.WorldConfiguration> paperWorldConfigCreator, java.util.concurrent.Executor executor) { // Paper - Async-Anti-Xray - Pass executor
|
||||
this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot
|
||||
this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper
|
||||
@@ -361,6 +363,12 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
this.entitySliceManager = new io.papermc.paper.world.EntitySliceManager((ServerLevel)this); // Paper
|
||||
@@ -360,6 +362,12 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
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
|
||||
}
|
||||
|
||||
+ // Leaves start - thread unsafe random get
|
||||
|
||||
@@ -6,10 +6,10 @@ Subject: [PATCH] Optimize random calls in chunk ticking
|
||||
This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish)
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
||||
index bc174f4c1d015bef37efc3de1ccbf98ae825639e..7c9fd7293e05d1b689e679b1c7f2e0db19cfa280 100644
|
||||
index 7d7501e85874e60263d5462dba02a4b3a79f68cb..86670ac9be2eca8b68fd0bc5caa3ad54b1b48298 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
||||
@@ -790,6 +790,11 @@ public class ServerChunkCache extends ChunkSource {
|
||||
@@ -707,6 +707,11 @@ public class ServerChunkCache extends ChunkSource {
|
||||
ProfilerFiller gameprofilerfiller = this.level.getProfiler();
|
||||
|
||||
gameprofilerfiller.push("pollingChunks");
|
||||
@@ -22,10 +22,10 @@ index bc174f4c1d015bef37efc3de1ccbf98ae825639e..7c9fd7293e05d1b689e679b1c7f2e0db
|
||||
boolean flag1 = level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) != 0L && worlddata.getGameTime() % level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) == 0L; // CraftBukkit
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
index 69bd4ca57102ef757cfb5ea8442c26eac7cbc1f7..775f44af9289cfc84c149c755efc760f75d8c25b 100644
|
||||
index 2ff80dbb41324c5ea9dfa1f0b16983452d8778fa..114bc179c5ff436801c4f6bfeacf71c74d4d3f37 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
@@ -765,6 +765,13 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
@@ -795,6 +795,13 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
// private final io.papermc.paper.util.math.ThreadUnsafeRandom randomTickRandom = new io.papermc.paper.util.math.ThreadUnsafeRandom(this.random.nextLong()); // Leaves - moved to super
|
||||
// Paper end
|
||||
|
||||
@@ -39,7 +39,7 @@ index 69bd4ca57102ef757cfb5ea8442c26eac7cbc1f7..775f44af9289cfc84c149c755efc760f
|
||||
public void tickChunk(LevelChunk chunk, int randomTickSpeed) {
|
||||
ChunkPos chunkcoordintpair = chunk.getPos();
|
||||
boolean flag = this.isRaining();
|
||||
@@ -775,7 +782,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
@@ -805,7 +812,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
gameprofilerfiller.push("thunder");
|
||||
final BlockPos.MutableBlockPos blockposition = this.chunkTickMutablePosition; // Paper - use mutable to reduce allocation rate, final to force compile fail on change
|
||||
|
||||
@@ -48,7 +48,7 @@ index 69bd4ca57102ef757cfb5ea8442c26eac7cbc1f7..775f44af9289cfc84c149c755efc760f
|
||||
blockposition.set(this.findLightningTargetAround(this.getBlockRandomPos(j, 0, k, 15))); // Paper
|
||||
if (this.isRainingAt(blockposition)) {
|
||||
DifficultyInstance difficultydamagescaler = this.getCurrentDifficultyAt(blockposition);
|
||||
@@ -799,7 +806,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
@@ -829,7 +836,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
}
|
||||
|
||||
gameprofilerfiller.popPush("iceandsnow");
|
||||
@@ -58,12 +58,12 @@ index 69bd4ca57102ef757cfb5ea8442c26eac7cbc1f7..775f44af9289cfc84c149c755efc760f
|
||||
this.getRandomBlockPosition(j, 0, k, 15, blockposition);
|
||||
int normalY = chunk.getHeight(Heightmap.Types.MOTION_BLOCKING, blockposition.getX() & 15, blockposition.getZ() & 15) + 1;
|
||||
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 2292cb0e0c1a3e0ed34b941f028136bfb0bff13e..a6ea5fd73cb1f6b3c6c35d0cde331b6c37c1c770 100644
|
||||
index 05499ae9fc331471db6e763a2adb46b5da8522d3..50de53684c27faa4bceeaf081b414c60b0ff8985 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
|
||||
@@ -94,6 +94,18 @@ public class LevelChunk extends ChunkAccess {
|
||||
}
|
||||
// Paper end
|
||||
@@ -88,6 +88,18 @@ public class LevelChunk extends ChunkAccess {
|
||||
private final LevelChunkTicks<Block> blockTicks;
|
||||
private final LevelChunkTicks<Fluid> fluidTicks;
|
||||
|
||||
+ // Leaves start - instead of using a random every time the chunk is ticked, define when lightning strikes preemptively
|
||||
+ private int lightningTick;
|
||||
@@ -80,7 +80,7 @@ index 2292cb0e0c1a3e0ed34b941f028136bfb0bff13e..a6ea5fd73cb1f6b3c6c35d0cde331b6c
|
||||
public LevelChunk(Level world, ChunkPos pos) {
|
||||
this(world, pos, UpgradeData.EMPTY, new LevelChunkTicks<>(), new LevelChunkTicks<>(), 0L, (LevelChunkSection[]) null, (LevelChunk.PostLoadProcessor) null, (BlendingData) null);
|
||||
}
|
||||
@@ -124,6 +136,11 @@ public class LevelChunk extends ChunkAccess {
|
||||
@@ -118,6 +130,11 @@ public class LevelChunk extends ChunkAccess {
|
||||
this.fluidTicks = fluidTickScheduler;
|
||||
// CraftBukkit start
|
||||
this.bukkitChunk = new org.bukkit.craftbukkit.CraftChunk(this);
|
||||
@@ -93,10 +93,10 @@ index 2292cb0e0c1a3e0ed34b941f028136bfb0bff13e..a6ea5fd73cb1f6b3c6c35d0cde331b6c
|
||||
|
||||
public org.bukkit.Chunk bukkitChunk;
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
index f5c07942038a51400e6cdbaee264ad869ebe8b7b..8eee57b9e0ccd90473d0cbacda6c81e27117dd37 100644
|
||||
index 179e8370fea6a3d18e6efcaa31d605a1f95b5b25..c4384a5b5971660a72cd784581c2fcc8d44fcfcd 100644
|
||||
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
@@ -271,6 +271,15 @@ public final class LeavesConfig {
|
||||
@@ -275,6 +275,15 @@ public final class LeavesConfig {
|
||||
checkSpookySeasonOnceAnHour = getBoolean("settings.performance.check-spooky-season-once-an-hour", checkSpookySeasonOnceAnHour);
|
||||
}
|
||||
|
||||
|
||||
@@ -18,10 +18,10 @@ index 43243537b765a2d270be6de3f053fea77ff67d18..7d8a137068ab2b33690c369f4da46e90
|
||||
this.batchCache.long2ObjectEntrySet().removeIf((entry) -> {
|
||||
return !entry.getValue().isStillValid(time);
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
index 8eee57b9e0ccd90473d0cbacda6c81e27117dd37..3e91b77dd019d3c3d13c1483f00505e7eff849ed 100644
|
||||
index c4384a5b5971660a72cd784581c2fcc8d44fcfcd..073b79855e8c2def9a8e717e16bd753f4b205ed2 100644
|
||||
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
@@ -280,6 +280,11 @@ public final class LeavesConfig {
|
||||
@@ -284,6 +284,11 @@ public final class LeavesConfig {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -29,10 +29,10 @@ index a7575b5ef56af6f53448d391abb4956e130148ca..e2764cbc888be39943728ff810e1e44b
|
||||
return false;
|
||||
}
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
index 3e91b77dd019d3c3d13c1483f00505e7eff849ed..ed22228ea5d1409990a5449ed03272c67faa8362 100644
|
||||
index 073b79855e8c2def9a8e717e16bd753f4b205ed2..f1602f3856be8eb3e9369b6fd714332f1b1a51d4 100644
|
||||
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
@@ -284,6 +284,11 @@ public final class LeavesConfig {
|
||||
@@ -288,6 +288,11 @@ public final class LeavesConfig {
|
||||
private static void skipPOIFindingInVehicle() {
|
||||
skipPOIFindingInVehicle = getBoolean("settings.performance.skip-poi-find-in-vehicle", skipPOIFindingInVehicle);
|
||||
}
|
||||
|
||||
@@ -6,10 +6,10 @@ Subject: [PATCH] Use thread unsafe random for mob spawning
|
||||
This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish)
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/level/NaturalSpawner.java b/src/main/java/net/minecraft/world/level/NaturalSpawner.java
|
||||
index e31a2eea9a62ab2c0bed1a97dab6bae231b8cd8b..cc851e1a9c5b23269c53206a7f1e14f311292e8c 100644
|
||||
index df83b6f0e217eec4c9e9707be0030c129fdeb545..e41e87258da5594c5ec164d76bb59bb327c1d94a 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/NaturalSpawner.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/NaturalSpawner.java
|
||||
@@ -416,12 +416,21 @@ public final class NaturalSpawner {
|
||||
@@ -417,12 +417,21 @@ public final class NaturalSpawner {
|
||||
|
||||
private static BlockPos getRandomPosWithin(Level world, LevelChunk chunk) {
|
||||
ChunkPos chunkcoordintpair = chunk.getPos();
|
||||
@@ -38,10 +38,10 @@ index e31a2eea9a62ab2c0bed1a97dab6bae231b8cd8b..cc851e1a9c5b23269c53206a7f1e14f3
|
||||
|
||||
public static boolean isValidEmptySpawnBlock(BlockGetter blockView, BlockPos pos, BlockState state, FluidState fluidState, EntityType<?> entityType) {
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
index ed22228ea5d1409990a5449ed03272c67faa8362..7935bb83c360fb8d194c57e6f0b5a989a60f24db 100644
|
||||
index f1602f3856be8eb3e9369b6fd714332f1b1a51d4..bc597a8abbc7f5adef832c80633b0c9fc560dbe5 100644
|
||||
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
@@ -290,6 +290,11 @@ public final class LeavesConfig {
|
||||
@@ -294,6 +294,11 @@ public final class LeavesConfig {
|
||||
entityTargetFindingOptimization = getBoolean("settings.performance.entity-target-find-optimization", entityTargetFindingOptimization);
|
||||
}
|
||||
|
||||
|
||||
@@ -6,10 +6,10 @@ Subject: [PATCH] Config to disable method profiler
|
||||
This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish)
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index 440ed7cce7ce8cc99e8d39ac36fed0c9f8f8948e..249bd5e4d74e384a43b8278b737c7326377b0205 100644
|
||||
index 905103d883311296a914e10a31e13ba9353352f8..83d2ac26f2adc7806085147c13b10ee92a98d9cc 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -2258,6 +2258,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -2239,6 +2239,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
}
|
||||
|
||||
public ProfilerFiller getProfiler() {
|
||||
@@ -22,10 +22,10 @@ index 440ed7cce7ce8cc99e8d39ac36fed0c9f8f8948e..249bd5e4d74e384a43b8278b737c7326
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
||||
index 32ad2282a78f913c16a94ed06a81b3bdf6de0760..c656e6dcdaff59ff5131690b5a719b26e69f7d13 100644
|
||||
index 2e19e8cf66063a789770531fe399d81ebb20cfda..2668f11411b4f95fd254b139e758a563007d6625 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/Level.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
||||
@@ -1484,6 +1484,11 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
@@ -1483,6 +1483,11 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
}
|
||||
|
||||
public ProfilerFiller getProfiler() {
|
||||
@@ -38,10 +38,10 @@ index 32ad2282a78f913c16a94ed06a81b3bdf6de0760..c656e6dcdaff59ff5131690b5a719b26
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
index 7935bb83c360fb8d194c57e6f0b5a989a60f24db..4196fc65d8f11a3f9be3f67d0d227e0b95a8ec18 100644
|
||||
index bc597a8abbc7f5adef832c80633b0c9fc560dbe5..d3ee7c7192ca360e28da3616735588ca8938db51 100644
|
||||
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
@@ -295,6 +295,11 @@ public final class LeavesConfig {
|
||||
@@ -299,6 +299,11 @@ public final class LeavesConfig {
|
||||
useMoreThreadUnsafeRandom = getBoolean("settings.performance.use-more-thread-unsafe-random", useMoreThreadUnsafeRandom);
|
||||
}
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ Subject: [PATCH] Throttle goal selector during inactive ticking
|
||||
This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish)
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
index 557e90e54439ce0430075403392b5052d5181feb..30147ad3efc636ccc5fd17684601bff8c201b4ba 100644
|
||||
index fffa6ba329b38433a1df51df339df652d3fda828..f65bdf9a94db15b8b82a6f8dd729fb435610defa 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
@@ -210,11 +210,13 @@ public abstract class Mob extends LivingEntity {
|
||||
@@ -25,10 +25,10 @@ index 557e90e54439ce0430075403392b5052d5181feb..30147ad3efc636ccc5fd17684601bff8
|
||||
}
|
||||
if (this.targetSelector.inactiveTick()) {
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
index 4196fc65d8f11a3f9be3f67d0d227e0b95a8ec18..48af9ecf4bcb8228c91c760e827340276337deac 100644
|
||||
index d3ee7c7192ca360e28da3616735588ca8938db51..0ebb6d850db85af9d9c1caaca90caae246f3ac14 100644
|
||||
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
@@ -300,6 +300,11 @@ public final class LeavesConfig {
|
||||
@@ -304,6 +304,11 @@ public final class LeavesConfig {
|
||||
disableMethodProfiler = getBoolean("settings.misc.disable-method-profiler", disableMethodProfiler);
|
||||
}
|
||||
|
||||
|
||||
@@ -28,10 +28,10 @@ index 35f9b11a3a61976c952a2c1c64bb2a932538f54f..5d678cfca0a39aeed0881c3a38828fdc
|
||||
|
||||
public boolean hasParam(LootContextParam<?> parameter) {
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
index 48af9ecf4bcb8228c91c760e827340276337deac..6bad9270be98411263c34a3d49877cfa5a9d199e 100644
|
||||
index 0ebb6d850db85af9d9c1caaca90caae246f3ac14..8b91e65c765a8293da39d64e564349ebdd7c94ca 100644
|
||||
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
@@ -305,6 +305,11 @@ public final class LeavesConfig {
|
||||
@@ -309,6 +309,11 @@ public final class LeavesConfig {
|
||||
throttleInactiveGoalSelectorTick = getBoolean("settings.performance.inactive-goal-selector-disable", throttleInactiveGoalSelectorTick);
|
||||
}
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ Subject: [PATCH] Reduce entity allocations
|
||||
This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish)
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index acd7e50eb1195741d82ea732a264fd2d2f6e3aef..84a0c358d085960beb5e01ff438688686582a8d3 100644
|
||||
index efbf618db7b8418c4e3f55b16c25e69a7dd5719a..c3e148375f5185cb82956b44406346daad24c28f 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -414,6 +414,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||
@@ -54,10 +54,10 @@ index c770ee21b7b699522941f6a1584d532001c04082..a0672f21797ff90e8bb6b16d3aaa671b
|
||||
|
||||
public boolean hasAttribute(Attribute attribute) {
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
index 6bad9270be98411263c34a3d49877cfa5a9d199e..c350182aea6137ef342e3a5a650cffa560fb6186 100644
|
||||
index 8b91e65c765a8293da39d64e564349ebdd7c94ca..4b5847dbbe0aee10e232d5a5da0f760f22a63898 100644
|
||||
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
@@ -310,6 +310,11 @@ public final class LeavesConfig {
|
||||
@@ -314,6 +314,11 @@ public final class LeavesConfig {
|
||||
skipCloneLootParameters = getBoolean("settings.performance.skip-clone-loot-parameters", skipCloneLootParameters);
|
||||
}
|
||||
|
||||
|
||||
@@ -6,10 +6,10 @@ Subject: [PATCH] Remove lambda from ticking guard
|
||||
This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish)
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
index 775f44af9289cfc84c149c755efc760f75d8c25b..3b52a42956fac41311dfbcfc6984443cf85b33c5 100644
|
||||
index 114bc179c5ff436801c4f6bfeacf71c74d4d3f37..7dac4b8c61db0bbce81a8fd85ed8779629517a9c 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
@@ -695,7 +695,24 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
@@ -725,7 +725,24 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
}
|
||||
|
||||
gameprofilerfiller.push("tick");
|
||||
@@ -36,10 +36,10 @@ index 775f44af9289cfc84c149c755efc760f75d8c25b..3b52a42956fac41311dfbcfc6984443c
|
||||
}
|
||||
}
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
index c350182aea6137ef342e3a5a650cffa560fb6186..cd3c32af781e44ba3e37488b9d66ef4de38cda64 100644
|
||||
index 4b5847dbbe0aee10e232d5a5da0f760f22a63898..623345d9aaa4d47c51351dc0c921791eda8191b1 100644
|
||||
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
@@ -315,6 +315,11 @@ public final class LeavesConfig {
|
||||
@@ -319,6 +319,11 @@ public final class LeavesConfig {
|
||||
reduceEntityAllocations = getBoolean("settings.performance.reduce-entity-allocations", reduceEntityAllocations);
|
||||
}
|
||||
|
||||
|
||||
@@ -55,10 +55,10 @@ index a1a625a8dacf4d2bbf75ddd90dce1b1be663c919..038c5fae763c5d387a23aaacc3264ab3
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
index cd3c32af781e44ba3e37488b9d66ef4de38cda64..17ae3836a43f2c27bed96bce24a5d46fb278bc55 100644
|
||||
index 623345d9aaa4d47c51351dc0c921791eda8191b1..3e59fc8a015b1b44db36550014b16b2196c80280 100644
|
||||
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
@@ -320,6 +320,11 @@ public final class LeavesConfig {
|
||||
@@ -324,6 +324,11 @@ public final class LeavesConfig {
|
||||
removeTickGuardLambda = getBoolean("settings.performance.remove.tick-guard-lambda", removeTickGuardLambda);
|
||||
}
|
||||
|
||||
|
||||
@@ -6,10 +6,10 @@ Subject: [PATCH] Remove streams from getting nearby players
|
||||
This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish)
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index 84a0c358d085960beb5e01ff438688686582a8d3..25cba6659618aa47e0db944b8549eb5126a07d9a 100644
|
||||
index c3e148375f5185cb82956b44406346daad24c28f..3d8a51337b87c246a32dde2e84a4d9e6f47cc7f5 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -439,25 +439,50 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||
@@ -490,25 +490,50 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||
this.isLegacyTrackingEntity = isLegacyTrackingEntity;
|
||||
}
|
||||
|
||||
@@ -68,10 +68,10 @@ index 84a0c358d085960beb5e01ff438688686582a8d3..25cba6659618aa47e0db944b8549eb51
|
||||
return chunkMap.playerEntityTrackerTrackMaps[type.ordinal()].getObjectsInRange(MCUtil.getCoordinateKey(this));
|
||||
}
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
index 17ae3836a43f2c27bed96bce24a5d46fb278bc55..49ab3d4e099f285ade340e41b593951e337f3680 100644
|
||||
index 3e59fc8a015b1b44db36550014b16b2196c80280..eadc86f2dfb004901ba75c704bc36f2887ae3acd 100644
|
||||
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
@@ -325,6 +325,11 @@ public final class LeavesConfig {
|
||||
@@ -329,6 +329,11 @@ public final class LeavesConfig {
|
||||
removeInventoryContainsIterators = getBoolean("settings.performance.remove.inventory-contains-iterators", removeInventoryContainsIterators);
|
||||
}
|
||||
|
||||
|
||||
@@ -6,17 +6,24 @@ Subject: [PATCH] Remove streams and iterators from range check
|
||||
This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish)
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||
index d517bf6a9ed81da9142cd034a6bd0d53ef9bc4c8..5505c5dfa6d3021b20d7d14d0e21d0af411b5a42 100644
|
||||
index 9756f436877992bf56719d023a0ff9a6f41b7bc4..bb39a68ba84c19530dd891c2035b9edaaf07d50b 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||
@@ -2507,19 +2507,45 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||
@@ -1620,19 +1620,45 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||
return ChunkMap.this.level.getServer().getScaledTrackingDistance(initialDistance);
|
||||
}
|
||||
|
||||
- private int getEffectiveRange() {
|
||||
- int i = this.range;
|
||||
- Iterator iterator = this.entity.getIndirectPassengers().iterator();
|
||||
+ // Leaves start
|
||||
+ private static int getHighestRange(Entity parent, int highest) {
|
||||
+ List<Entity> passengers = parent.getPassengers();
|
||||
+
|
||||
|
||||
- while (iterator.hasNext()) {
|
||||
- Entity entity = (Entity) iterator.next();
|
||||
- int j = entity.getType().clientTrackingRange() * 16;
|
||||
- j = org.spigotmc.TrackingRange.getEntityTrackingRange(entity, j); // Paper
|
||||
+ for (int i = 0, size = passengers.size(); i < size; i++) {
|
||||
+ Entity entity = passengers.get(i);
|
||||
+ int range = entity.getType().clientTrackingRange() * 16;
|
||||
@@ -32,27 +39,22 @@ index d517bf6a9ed81da9142cd034a6bd0d53ef9bc4c8..5505c5dfa6d3021b20d7d14d0e21d0af
|
||||
+ return highest;
|
||||
+ }
|
||||
+ // Leaves end
|
||||
+
|
||||
private int getEffectiveRange() {
|
||||
int i = this.range;
|
||||
- Iterator iterator = this.entity.getIndirectPassengers().iterator();
|
||||
|
||||
- if (j > i) {
|
||||
- i = j;
|
||||
+ private int getEffectiveRange() {
|
||||
+ int i = this.range;
|
||||
+ // Leaves start - remove iterators and streams
|
||||
+ if (top.leavesmc.leaves.LeavesConfig.removeRangeCheckStreams) {
|
||||
+ i = getHighestRange(this.entity, i);
|
||||
+ } else {
|
||||
+ Iterator iterator = this.entity.getIndirectPassengers().iterator();
|
||||
|
||||
- while (iterator.hasNext()) {
|
||||
- Entity entity = (Entity) iterator.next();
|
||||
- int j = entity.getType().clientTrackingRange() * 16;
|
||||
- j = org.spigotmc.TrackingRange.getEntityTrackingRange(entity, j); // Paper
|
||||
+
|
||||
+ while (iterator.hasNext()) {
|
||||
+ Entity entity = (Entity) iterator.next();
|
||||
+ int j = entity.getType().clientTrackingRange() * 16;
|
||||
+ j = org.spigotmc.TrackingRange.getEntityTrackingRange(entity, j); // Paper
|
||||
|
||||
- if (j > i) {
|
||||
- i = j;
|
||||
+
|
||||
+ if (j > i) {
|
||||
+ i = j;
|
||||
+ }
|
||||
@@ -63,10 +65,10 @@ index d517bf6a9ed81da9142cd034a6bd0d53ef9bc4c8..5505c5dfa6d3021b20d7d14d0e21d0af
|
||||
return this.scaledRange(i);
|
||||
}
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
index 49ab3d4e099f285ade340e41b593951e337f3680..4a886963a439fee06d6a846947186f8a86dab398 100644
|
||||
index eadc86f2dfb004901ba75c704bc36f2887ae3acd..51671e26df1d041e88484d9ab48e447ed227055d 100644
|
||||
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
@@ -330,6 +330,11 @@ public final class LeavesConfig {
|
||||
@@ -334,6 +334,11 @@ public final class LeavesConfig {
|
||||
removeGetNearPlayerStreams = getBoolean("settings.performance.remove.get-nearby-players-streams", removeGetNearPlayerStreams);
|
||||
}
|
||||
|
||||
|
||||
@@ -358,7 +358,7 @@ index 27cd393e81f6ef9b5690c051624d8d2af50acd34..87f5fd2c616fbb4e0a3c2f9af49f8c0a
|
||||
Vec3 vec3 = this.path.getNextEntityPos(this.mob);
|
||||
if (this.mob.getBlockX() == Mth.floor(vec3.x) && this.mob.getBlockY() == Mth.floor(vec3.y) && this.mob.getBlockZ() == Mth.floor(vec3.z)) {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/ai/navigation/GroundPathNavigation.java b/src/main/java/net/minecraft/world/entity/ai/navigation/GroundPathNavigation.java
|
||||
index f610c06d7bb51ec2c63863dd46711712986a106a..87002da4077978362731a460c0df3a6818ebb9c7 100644
|
||||
index f0248d839255763005ba333b0bfcf691407fb69b..9b1ef3c365d1523ec5dafa6f57b56d7d0f0a0e8a 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/ai/navigation/GroundPathNavigation.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/ai/navigation/GroundPathNavigation.java
|
||||
@@ -15,6 +15,15 @@ import net.minecraft.world.level.pathfinder.WalkNodeEvaluator;
|
||||
@@ -393,10 +393,10 @@ index f610c06d7bb51ec2c63863dd46711712986a106a..87002da4077978362731a460c0df3a68
|
||||
|
||||
@Override
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/ai/navigation/PathNavigation.java b/src/main/java/net/minecraft/world/entity/ai/navigation/PathNavigation.java
|
||||
index 3f672d7c2377fca16a6d8d31cf7aaae4f009fdce..5e47587778ab3e91abaeee896a1c1f3217090202 100644
|
||||
index c1781c92ff59f0c9eb47cbbef01e3252c5e1a1bf..e90d9e189f8543cb8f3fb9e338625ad0cbf7365e 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/ai/navigation/PathNavigation.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/ai/navigation/PathNavigation.java
|
||||
@@ -151,6 +151,9 @@ public abstract class PathNavigation {
|
||||
@@ -150,6 +150,9 @@ public abstract class PathNavigation {
|
||||
return null;
|
||||
} else if (!this.canUpdatePath()) {
|
||||
return null;
|
||||
@@ -406,7 +406,7 @@ index 3f672d7c2377fca16a6d8d31cf7aaae4f009fdce..5e47587778ab3e91abaeee896a1c1f32
|
||||
} else if (this.path != null && !this.path.isDone() && positions.contains(this.targetPos)) {
|
||||
return this.path;
|
||||
} else {
|
||||
@@ -177,11 +180,28 @@ public abstract class PathNavigation {
|
||||
@@ -176,11 +179,28 @@ public abstract class PathNavigation {
|
||||
PathNavigationRegion pathNavigationRegion = new PathNavigationRegion(this.level, blockPos.offset(-i, -i, -i), blockPos.offset(i, i, i));
|
||||
Path path = this.pathFinder.findPath(pathNavigationRegion, this.mob, positions, followRange, distance, this.maxVisitedNodesMultiplier);
|
||||
this.level.getProfiler().pop();
|
||||
@@ -436,7 +436,7 @@ index 3f672d7c2377fca16a6d8d31cf7aaae4f009fdce..5e47587778ab3e91abaeee896a1c1f32
|
||||
|
||||
return path;
|
||||
}
|
||||
@@ -228,8 +248,8 @@ public abstract class PathNavigation {
|
||||
@@ -227,8 +247,8 @@ public abstract class PathNavigation {
|
||||
if (this.isDone()) {
|
||||
return false;
|
||||
} else {
|
||||
@@ -447,7 +447,7 @@ index 3f672d7c2377fca16a6d8d31cf7aaae4f009fdce..5e47587778ab3e91abaeee896a1c1f32
|
||||
return false;
|
||||
} else {
|
||||
this.speedModifier = speed;
|
||||
@@ -253,9 +273,11 @@ public abstract class PathNavigation {
|
||||
@@ -252,9 +272,11 @@ public abstract class PathNavigation {
|
||||
this.recomputePath();
|
||||
}
|
||||
|
||||
@@ -461,27 +461,30 @@ index 3f672d7c2377fca16a6d8d31cf7aaae4f009fdce..5e47587778ab3e91abaeee896a1c1f32
|
||||
Vec3 vec3 = this.getTempMobPos();
|
||||
Vec3 vec32 = this.path.getNextEntityPos(this.mob);
|
||||
@@ -276,6 +298,13 @@ public abstract class PathNavigation {
|
||||
BlockPos blockPos = new BlockPos(pos);
|
||||
return this.level.getBlockState(blockPos.below()).isAir() ? pos.y : WalkNodeEvaluator.getFloorLevel(this.level, blockPos);
|
||||
}
|
||||
+
|
||||
|
||||
+ // Leaves start - this fixes plugin compat by ensuring the isProcessed check is completed properly.
|
||||
+ protected final void followThePathSuper() {
|
||||
+ if (top.leavesmc.leaves.LeavesConfig.asyncPathfinding && !this.path.isProcessed()) return; // Leaves
|
||||
+ followThePath();
|
||||
+ }
|
||||
+ // Leaves end - this fixes plugin compat by ensuring the isProcessed check is completed properly.
|
||||
|
||||
+
|
||||
protected void followThePath() {
|
||||
Vec3 vec3 = this.getTempMobPos();
|
||||
@@ -440,7 +469,7 @@ public abstract class PathNavigation {
|
||||
// Paper start
|
||||
public boolean isViableForPathRecalculationChecking() {
|
||||
return !this.needsPathRecalculation() &&
|
||||
- (this.path != null && !this.path.isDone() && this.path.getNodeCount() != 0);
|
||||
+ (this.path != null && (!top.leavesmc.leaves.LeavesConfig.asyncPathfinding || this.path.isProcessed()) && !this.path.isDone() && this.path.getNodeCount() != 0); // Leaves
|
||||
this.maxDistanceToWaypoint = this.mob.getBbWidth() > 0.75F ? this.mob.getBbWidth() / 2.0F : 0.75F - this.mob.getBbWidth() / 2.0F;
|
||||
@@ -435,4 +464,11 @@ public abstract class PathNavigation {
|
||||
public boolean isStuck() {
|
||||
return this.isStuck;
|
||||
}
|
||||
// Paper end
|
||||
+
|
||||
+ // Paper start
|
||||
+ public boolean isViableForPathRecalculationChecking() {
|
||||
+ return !this.needsPathRecalculation() &&
|
||||
+ (this.path != null && (!top.leavesmc.leaves.LeavesConfig.asyncPathfinding || this.path.isProcessed()) && !this.path.isDone() && this.path.getNodeCount() != 0); // Leaves
|
||||
+ }
|
||||
+ // Paper end
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/ai/sensing/NearestBedSensor.java b/src/main/java/net/minecraft/world/entity/ai/sensing/NearestBedSensor.java
|
||||
index 8db20db72cd51046213625fac46c35854c59ec5d..28040c76ec4216a425e2c6c7216f96a006f10085 100644
|
||||
@@ -756,10 +759,10 @@ index d23481453717f715124156b5d83f6448f720d049..6cc6140f44827ccc055aafdd6bfb3a09
|
||||
protected float distance(Node a, Node b) {
|
||||
return a.distanceTo(b);
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
index 4a886963a439fee06d6a846947186f8a86dab398..746fabb5839357f7506430096768c621d97da6fc 100644
|
||||
index 51671e26df1d041e88484d9ab48e447ed227055d..12b9b7af94e2b1f2fdc936235a3a596ca18dc465 100644
|
||||
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
@@ -335,6 +335,15 @@ public final class LeavesConfig {
|
||||
@@ -339,6 +339,19 @@ public final class LeavesConfig {
|
||||
removeRangeCheckStreams = getBoolean("settings.performance.remove.range-check-streams-and-iterators", removeRangeCheckStreams);
|
||||
}
|
||||
|
||||
@@ -770,6 +773,10 @@ index 4a886963a439fee06d6a846947186f8a86dab398..746fabb5839357f7506430096768c621
|
||||
+ asyncPathfinding = getBoolean("settings.performance.async-pathfinding", asyncPathfinding);
|
||||
+ asyncPathfindingLock = true;
|
||||
+ }
|
||||
+
|
||||
+ if (asyncPathfinding) {
|
||||
+ LeavesLogger.LOGGER.severe("Async Pathfinding is updating, it may not work normally");
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
public static final class WorldConfig {
|
||||
|
||||
@@ -6,10 +6,10 @@ Subject: [PATCH] Cache climbing check for activation
|
||||
This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish)
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
index 83c8ba2fe3f149c704eb9b3232a11a4b9ee5cdde..1b35288762823b9026198c1da9f055cf418972ba 100644
|
||||
index 11b8d5571ef0224424562407abcaa76aa564e459..bcf01d0e8b47a7c5de34edb6e9c55fd95e234306 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
@@ -1912,6 +1912,22 @@ public abstract class LivingEntity extends Entity {
|
||||
@@ -1915,6 +1915,22 @@ public abstract class LivingEntity extends Entity {
|
||||
return this.lastClimbablePos;
|
||||
}
|
||||
|
||||
@@ -46,10 +46,10 @@ index 40b382c2e0e33fe5c24a51b211cd2f9557a60c5e..5da7dc703aeaa4d7c325574ea9f6fd8c
|
||||
return 1; // Paper
|
||||
}
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
index 746fabb5839357f7506430096768c621d97da6fc..dde182e15f5a843ed783d77500e8e532422a9700 100644
|
||||
index 12b9b7af94e2b1f2fdc936235a3a596ca18dc465..c4400ac886e04fb676d7478d3b3c8c4ce737a32a 100644
|
||||
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
@@ -344,6 +344,11 @@ public final class LeavesConfig {
|
||||
@@ -352,6 +352,11 @@ public final class LeavesConfig {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -102,10 +102,10 @@ index ca259e278ad10347567c021376abca0287610432..968937e86bca8568a17988409506bcc0
|
||||
|
||||
public boolean shouldFreeze(LevelReader world, BlockPos blockPos) {
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
index dde182e15f5a843ed783d77500e8e532422a9700..6fddd2151d4ac6acb4898b48627485d9b408e427 100644
|
||||
index c4400ac886e04fb676d7478d3b3c8c4ce737a32a..f71a9fdeaeb392a1498d55c8d054d9febccb8398 100644
|
||||
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
@@ -349,6 +349,15 @@ public final class LeavesConfig {
|
||||
@@ -357,6 +357,15 @@ public final class LeavesConfig {
|
||||
cacheClimbCheck = getBoolean("settings.performance.cache-climb-check", cacheClimbCheck);
|
||||
}
|
||||
|
||||
|
||||
@@ -6,10 +6,10 @@ Subject: [PATCH] Reduce entity fluid lookups if no fluids
|
||||
This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish)
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index 25cba6659618aa47e0db944b8549eb5126a07d9a..187f94c1254d205272688a1fba8d78446a5414e5 100644
|
||||
index 3d8a51337b87c246a32dde2e84a4d9e6f47cc7f5..8ec4e7f9ced0e0fdc0b1fadf1c2b72a26e1a1b84 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -4004,16 +4004,18 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||
@@ -4016,16 +4016,18 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||
}
|
||||
|
||||
public boolean updateFluidHeightAndDoFluidPushing(TagKey<Fluid> tag, double speed) {
|
||||
@@ -35,7 +35,7 @@ index 25cba6659618aa47e0db944b8549eb5126a07d9a..187f94c1254d205272688a1fba8d7844
|
||||
double d1 = 0.0D;
|
||||
boolean flag = this.isPushedByFluid();
|
||||
boolean flag1 = false;
|
||||
@@ -4021,38 +4023,123 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||
@@ -4033,38 +4035,123 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||
int k1 = 0;
|
||||
BlockPos.MutableBlockPos blockposition_mutableblockposition = new BlockPos.MutableBlockPos();
|
||||
|
||||
@@ -217,10 +217,10 @@ index b0c9fce9d4e06cac139e341d218d0b6aac1f1943..f53fee91b78ba4c1e17360a40d5a94fe
|
||||
|
||||
});
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
index 6fddd2151d4ac6acb4898b48627485d9b408e427..bb4c4647bb98535b2e650eaefac50596a1107fb8 100644
|
||||
index f71a9fdeaeb392a1498d55c8d054d9febccb8398..f8b91874f2bc3fdf294ba479ee3b3b52429c1e70 100644
|
||||
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
@@ -358,6 +358,11 @@ public final class LeavesConfig {
|
||||
@@ -366,6 +366,11 @@ public final class LeavesConfig {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -42,10 +42,10 @@ index f22e615dba31619c97bf58930da060476a52facf..c330e65310821248409655953b88717f
|
||||
boolean flag1 = iblockdata.getFluidState().is(FluidTags.WATER);
|
||||
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
index bb4c4647bb98535b2e650eaefac50596a1107fb8..66bbc262a6b272eedd1fae2d0e33e31e8fbcf3bb 100644
|
||||
index f8b91874f2bc3fdf294ba479ee3b3b52429c1e70..ff6806d2671d64eeafa9384ae136856bc9c0a10b 100644
|
||||
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
@@ -363,6 +363,11 @@ public final class LeavesConfig {
|
||||
@@ -371,6 +371,11 @@ public final class LeavesConfig {
|
||||
reduceEntityFluidLookup = getBoolean("settings.performance.reduce-entity-fluid-lookup", reduceEntityFluidLookup);
|
||||
}
|
||||
|
||||
|
||||
@@ -72,10 +72,10 @@ index 0b3b46348ac9195bff1492ffc11fcbff7d3f5c6f..5d4a0081a69f9917aae15a9f2d3d2391
|
||||
}
|
||||
}
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
index 66bbc262a6b272eedd1fae2d0e33e31e8fbcf3bb..9db26677be70717604d040f2174b10a05ea00624 100644
|
||||
index ff6806d2671d64eeafa9384ae136856bc9c0a10b..b8bf577bee9f53bf8652f99b9f6d15e3f6098d77 100644
|
||||
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
@@ -368,6 +368,11 @@ public final class LeavesConfig {
|
||||
@@ -376,6 +376,11 @@ public final class LeavesConfig {
|
||||
reduceChuckLoadAndLookup = getBoolean("settings.performance.reduce-chuck-load-and-lookup", reduceChuckLoadAndLookup);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user