mirror of
https://github.com/Winds-Studio/Leaf.git
synced 2025-12-31 12:56:29 +00:00
Update some Leaf server patches
This commit is contained in:
@@ -70,7 +70,7 @@ index 9afc81ccb237c3655d64cdbe8a0db9a4d7791043..1679f0a3d095a7b758b468c77b6d3a4c
|
||||
private String descriptionId;
|
||||
@Nullable
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
index 035a0a8620fc46dbf026c65ccf2542d9f49e22b0..979b76d58d05c9d83dfae45d3052eea9431dfc65 100644
|
||||
index 2ea1916ef44d1cd5920351c0c6566d4714653488..8bd04d423a444c9b66a1ff787906eb7879721459 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
@@ -224,10 +224,10 @@ public abstract class Mob extends LivingEntity implements Targeting {
|
||||
@@ -260,7 +260,7 @@ index 9ca38f97f5d0d533187cdcd549b1accebc93bc95..55d5aad6ee98bc61dac415b106d0b6d1
|
||||
super.customServerAiStep();
|
||||
if ((this.tickCount + this.getId()) % 120 == 0) {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java
|
||||
index ae3628efe7628427c53bb7d0f7fc6e457a511b94..67d3ce0dc480aa457e4a9ef5e08ae7c63ae146ce 100644
|
||||
index ae3628efe7628427c53bb7d0f7fc6e457a511b94..e0fd0b00057bd715d80d1c223027618eb9c385e4 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
|
||||
@@ -143,6 +143,8 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
@@ -280,15 +280,14 @@ index ae3628efe7628427c53bb7d0f7fc6e457a511b94..67d3ce0dc480aa457e4a9ef5e08ae7c6
|
||||
@Override
|
||||
@Deprecated // Paper
|
||||
protected void customServerAiStep() {
|
||||
@@ -254,7 +257,12 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
@@ -254,7 +257,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
}
|
||||
protected void customServerAiStep(final boolean inactive) {
|
||||
// Paper end
|
||||
- if (!inactive) this.getBrain().tick((ServerLevel) this.level(), this); // Paper
|
||||
+ // Pufferfish start
|
||||
+ if (!inactive) {
|
||||
+ if (this.behaviorTick++ % this.activatedPriority == 0)
|
||||
+ this.getBrain().tick((ServerLevel) this.level(), this); // Paper
|
||||
+ if (!inactive && this.behaviorTick++ % this.activatedPriority == 0) {
|
||||
+ this.getBrain().tick((ServerLevel) this.level(), this); // Paper
|
||||
+ }
|
||||
+ // Pufferfish end
|
||||
if (this.assignProfessionWhenSpawned) {
|
||||
@@ -357,7 +356,7 @@ index 5d161351e7517acf57e98203bab8c9f9ab9d4005..47c7b75b721bb2210eded56a7590612f
|
||||
|
||||
private static void network() {
|
||||
diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java
|
||||
index 392c57d0365cc4371f58637ebac11e2b7492bf97..de4ea65a2bead3f20b205df28656d43636ba16df 100644
|
||||
index aa68ff1abced10ad03957c9c0ac24beaf112adcf..7d2b6657b0dbf5f899446d674dfc01b326fbc9c3 100644
|
||||
--- a/src/main/java/org/spigotmc/ActivationRange.java
|
||||
+++ b/src/main/java/org/spigotmc/ActivationRange.java
|
||||
@@ -40,6 +40,9 @@ import net.minecraft.world.level.Level;
|
||||
|
||||
@@ -12514,7 +12514,7 @@ index 5f407535298a31a34cfe114dd863fd6a9b977707..29c7e33fe961020e5a0007287fe9b663
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java
|
||||
index 67d3ce0dc480aa457e4a9ef5e08ae7c63ae146ce..e45e5dc22d2fb3292a1b3fd6e176a4a9b2433616 100644
|
||||
index e0fd0b00057bd715d80d1c223027618eb9c385e4..03b4f279b3ec2898445a745bb2af02afb0beaa9d 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
|
||||
@@ -142,6 +142,8 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
@@ -12626,7 +12626,7 @@ index 67d3ce0dc480aa457e4a9ef5e08ae7c63ae146ce..e45e5dc22d2fb3292a1b3fd6e176a4a9
|
||||
}
|
||||
|
||||
brain.addActivity(Activity.CORE, VillagerGoalPackages.getCorePackage(villagerprofession, 0.5F));
|
||||
@@ -318,7 +404,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
@@ -317,7 +403,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
if (!itemstack.is(Items.VILLAGER_SPAWN_EGG) && this.isAlive() && !this.isTrading() && !this.isSleeping()) {
|
||||
if (this.isBaby()) {
|
||||
this.setUnhappy();
|
||||
@@ -12635,7 +12635,7 @@ index 67d3ce0dc480aa457e4a9ef5e08ae7c63ae146ce..e45e5dc22d2fb3292a1b3fd6e176a4a9
|
||||
} else {
|
||||
boolean flag = this.getOffers().isEmpty();
|
||||
|
||||
@@ -331,9 +417,10 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
@@ -330,9 +416,10 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
}
|
||||
|
||||
if (flag) {
|
||||
@@ -12648,7 +12648,7 @@ index 67d3ce0dc480aa457e4a9ef5e08ae7c63ae146ce..e45e5dc22d2fb3292a1b3fd6e176a4a9
|
||||
this.startTrading(player);
|
||||
}
|
||||
|
||||
@@ -502,7 +589,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
@@ -501,7 +588,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
while (iterator.hasNext()) {
|
||||
MerchantOffer merchantrecipe = (MerchantOffer) iterator.next();
|
||||
|
||||
@@ -12657,7 +12657,7 @@ index 67d3ce0dc480aa457e4a9ef5e08ae7c63ae146ce..e45e5dc22d2fb3292a1b3fd6e176a4a9
|
||||
}
|
||||
|
||||
}
|
||||
@@ -752,7 +839,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
@@ -751,7 +838,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
|
||||
@Override
|
||||
public boolean canBreed() {
|
||||
@@ -12666,7 +12666,7 @@ index 67d3ce0dc480aa457e4a9ef5e08ae7c63ae146ce..e45e5dc22d2fb3292a1b3fd6e176a4a9
|
||||
}
|
||||
|
||||
private boolean hungry() {
|
||||
@@ -966,6 +1053,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
@@ -965,6 +1052,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
|
||||
public boolean hasFarmSeeds() {
|
||||
return this.getInventory().hasAnyMatching((itemstack) -> {
|
||||
@@ -12678,7 +12678,7 @@ index 67d3ce0dc480aa457e4a9ef5e08ae7c63ae146ce..e45e5dc22d2fb3292a1b3fd6e176a4a9
|
||||
return itemstack.is(ItemTags.VILLAGER_PLANTABLE_SEEDS);
|
||||
});
|
||||
}
|
||||
@@ -1015,6 +1107,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
@@ -1014,6 +1106,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
}
|
||||
|
||||
public void spawnGolemIfNeeded(ServerLevel world, long time, int requiredCount) {
|
||||
@@ -12686,7 +12686,7 @@ index 67d3ce0dc480aa457e4a9ef5e08ae7c63ae146ce..e45e5dc22d2fb3292a1b3fd6e176a4a9
|
||||
if (this.wantsToSpawnGolem(time)) {
|
||||
AABB axisalignedbb = this.getBoundingBox().inflate(10.0D, 10.0D, 10.0D);
|
||||
List<Villager> list = world.getEntitiesOfClass(Villager.class, axisalignedbb);
|
||||
@@ -1088,6 +1181,12 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
@@ -1087,6 +1180,12 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
|
||||
@Override
|
||||
public void startSleeping(BlockPos pos) {
|
||||
@@ -18653,45 +18653,6 @@ index 2959f713ce75a1df9c6c7cf5e021690cfcb6e1e7..3fa9539cfb2c35beeba6d44fa05cee97
|
||||
DefaultPermissions.registerPermission(CommandPermissions.PREFIX + "experience", "Allows the user to give themselves or others arbitrary values of experience", PermissionDefault.OP, commands); // Paper - wrong permission; redirects are de-redirected and the root literal name is used, so xp -> experience
|
||||
DefaultPermissions.registerPermission(CommandPermissions.PREFIX + "defaultgamemode", "Allows the user to change the default gamemode of the server", PermissionDefault.OP, commands);
|
||||
DefaultPermissions.registerPermission(CommandPermissions.PREFIX + "seed", "Allows the user to view the seed of the world", PermissionDefault.OP, commands);
|
||||
diff --git a/src/main/java/org/galemc/gale/version/AbstractPaperVersionFetcher.java b/src/main/java/org/galemc/gale/version/AbstractPaperVersionFetcher.java
|
||||
index 7fee1c2779ab390586b2d3f75f56890846323500..5fdb227acfd1d8f55b770c8a66e97494c36db33c 100644
|
||||
--- a/src/main/java/org/galemc/gale/version/AbstractPaperVersionFetcher.java
|
||||
+++ b/src/main/java/org/galemc/gale/version/AbstractPaperVersionFetcher.java
|
||||
@@ -68,7 +68,7 @@ public abstract class AbstractPaperVersionFetcher implements VersionFetcher {
|
||||
// Gale end - branding changes - version fetcher
|
||||
final Component history = getHistory();
|
||||
|
||||
- return history != null ? TextComponent.ofChildren(updateMessage, Component.newline(), history) : updateMessage;
|
||||
+ return history != null ? Component.join(net.kyori.adventure.text.JoinConfiguration.separator(Component.newline()), history, updateMessage) : updateMessage; // Purpur
|
||||
}
|
||||
|
||||
protected @Nullable String getMinecraftVersion() { // Gale - branding changes - version fetcher
|
||||
@@ -120,13 +120,13 @@ public abstract class AbstractPaperVersionFetcher implements VersionFetcher {
|
||||
|
||||
switch (distance) {
|
||||
case -1:
|
||||
- return Component.text("Error obtaining version information", NamedTextColor.YELLOW);
|
||||
+ return Component.text("* Error obtaining version information", NamedTextColor.RED); // Purpur
|
||||
case 0:
|
||||
- return Component.text("You are running the latest version", NamedTextColor.GREEN);
|
||||
+ return Component.text("* You are running the latest version", NamedTextColor.GREEN); // Purpur
|
||||
case -2:
|
||||
- return Component.text("Unknown version", NamedTextColor.YELLOW);
|
||||
+ return Component.text("* Unknown version", NamedTextColor.YELLOW); // Purpur
|
||||
default:
|
||||
- return Component.text("You are " + distance + " version(s) behind", NamedTextColor.YELLOW)
|
||||
+ return Component.text("* You are " + distance + " version(s) behind", NamedTextColor.YELLOW) // Purpur
|
||||
.append(Component.newline())
|
||||
.append(Component.text("Download the new version at: ")
|
||||
.append(Component.text(this.downloadPage, NamedTextColor.GOLD) // Gale - branding changes - version fetcher
|
||||
@@ -174,6 +174,6 @@ public abstract class AbstractPaperVersionFetcher implements VersionFetcher {
|
||||
return null;
|
||||
}
|
||||
|
||||
- return Component.text("Previous version: " + oldVersion, NamedTextColor.GRAY, TextDecoration.ITALIC);
|
||||
+ return org.bukkit.ChatColor.parseMM("<grey>Previous: %s", oldVersion); // Purpur
|
||||
}
|
||||
}
|
||||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..8299aab5c29c8c6d996087537d9522b653b03ffa
|
||||
|
||||
53
patches/server/0012-Configurable-server-GUI-name.patch
Normal file
53
patches/server/0012-Configurable-server-GUI-name.patch
Normal file
@@ -0,0 +1,53 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Dreeam <61569423+Dreeam-qwq@users.noreply.github.com>
|
||||
Date: Sun, 14 Jan 2024 05:14:09 -0500
|
||||
Subject: [PATCH] Configurable server GUI name
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/gui/MinecraftServerGui.java b/src/main/java/net/minecraft/server/gui/MinecraftServerGui.java
|
||||
index be7b3fe2dc84493dcde9e185717b0b7c7c2e9822..a1dc1924039b7d51dc2915cefda02d0ba5d0e439 100644
|
||||
--- a/src/main/java/net/minecraft/server/gui/MinecraftServerGui.java
|
||||
+++ b/src/main/java/net/minecraft/server/gui/MinecraftServerGui.java
|
||||
@@ -56,7 +56,7 @@ public class MinecraftServerGui extends JComponent {
|
||||
;
|
||||
}
|
||||
|
||||
- final JFrame jframe = new JFrame("Purpur Minecraft server"); // Purpur
|
||||
+ final JFrame jframe = new JFrame(org.dreeam.leaf.LeafConfig.serverGUIName); // Purpur // Leaf - Configurable server GUI name
|
||||
final MinecraftServerGui servergui = new MinecraftServerGui(server);
|
||||
|
||||
jframe.setDefaultCloseOperation(2);
|
||||
@@ -64,7 +64,7 @@ public class MinecraftServerGui extends JComponent {
|
||||
jframe.pack();
|
||||
jframe.setLocationRelativeTo((Component) null);
|
||||
jframe.setVisible(true);
|
||||
- jframe.setName("Purpur Minecraft server"); // Paper // Purpur
|
||||
+ jframe.setName(org.dreeam.leaf.LeafConfig.serverGUIName); // Paper // Purpur // Leaf - Configurable server GUI name
|
||||
|
||||
// Paper start - Add logo as frame image
|
||||
try {
|
||||
@@ -76,7 +76,7 @@ public class MinecraftServerGui extends JComponent {
|
||||
jframe.addWindowListener(new WindowAdapter() {
|
||||
public void windowClosing(WindowEvent windowevent) {
|
||||
if (!servergui.isClosing.getAndSet(true)) {
|
||||
- jframe.setTitle("Purpur Minecraft server - shutting down!"); // Purpur
|
||||
+ jframe.setTitle(org.dreeam.leaf.config.modules.misc.ServerBrand.serverGUIName + " - shutting down!"); // Purpur // Leaf - Configurable server GUI name
|
||||
server.halt(true);
|
||||
servergui.runFinalizers();
|
||||
}
|
||||
diff --git a/src/main/java/org/dreeam/leaf/LeafConfig.java b/src/main/java/org/dreeam/leaf/LeafConfig.java
|
||||
index 80a196442edbc6b4eb44bb6a405100871aea2f6a..ffed6b74b1bc2137e238f7d2955e2f39cb82b42d 100644
|
||||
--- a/src/main/java/org/dreeam/leaf/LeafConfig.java
|
||||
+++ b/src/main/java/org/dreeam/leaf/LeafConfig.java
|
||||
@@ -169,6 +169,11 @@ public class LeafConfig {
|
||||
serverModName = getString("server-mod-name", serverModName);
|
||||
}
|
||||
|
||||
+ public static String serverGUIName = "Leaf Console";
|
||||
+ private static void serverGUIName() {
|
||||
+ serverGUIName = getString("server-gui-name", serverGUIName);
|
||||
+ }
|
||||
+
|
||||
private static void removal() {
|
||||
}
|
||||
|
||||
@@ -22,11 +22,11 @@ index badb262810effd22ca1ba021a1e746a777a19cbc..9baf55e9c3259aed431022a50c12d4f2
|
||||
ServerLoginPacketListenerImpl.this.disconnect("Failed to verify username!");
|
||||
return;
|
||||
diff --git a/src/main/java/org/dreeam/leaf/LeafConfig.java b/src/main/java/org/dreeam/leaf/LeafConfig.java
|
||||
index 80a196442edbc6b4eb44bb6a405100871aea2f6a..1e9a440d790bdd521c58dfc9c1575e2759006d02 100644
|
||||
index ffed6b74b1bc2137e238f7d2955e2f39cb82b42d..ceda895277f3358f0cd37d50ca496c3e211b6a45 100644
|
||||
--- a/src/main/java/org/dreeam/leaf/LeafConfig.java
|
||||
+++ b/src/main/java/org/dreeam/leaf/LeafConfig.java
|
||||
@@ -169,7 +169,11 @@ public class LeafConfig {
|
||||
serverModName = getString("server-mod-name", serverModName);
|
||||
@@ -174,7 +174,11 @@ public class LeafConfig {
|
||||
serverGUIName = getString("server-gui-name", serverGUIName);
|
||||
}
|
||||
|
||||
+ public static boolean removeMojangUsernameCheck = true;
|
||||
@@ -18,10 +18,10 @@ index 2821de09a36fc315897129f4691ba713386737db..5468b2fe5d0dd3e2b0ef774dff57e42e
|
||||
this.connection.send(new ClientboundLoginDisconnectPacket(chatmessage));
|
||||
this.connection.disconnect(chatmessage);
|
||||
diff --git a/src/main/java/org/dreeam/leaf/LeafConfig.java b/src/main/java/org/dreeam/leaf/LeafConfig.java
|
||||
index 1e9a440d790bdd521c58dfc9c1575e2759006d02..267f88d799fe98d1741a837c33d8c748362077ee 100644
|
||||
index ceda895277f3358f0cd37d50ca496c3e211b6a45..41e43d7b0b3627c3f2771008ef7d91cdd03f074e 100644
|
||||
--- a/src/main/java/org/dreeam/leaf/LeafConfig.java
|
||||
+++ b/src/main/java/org/dreeam/leaf/LeafConfig.java
|
||||
@@ -170,10 +170,14 @@ public class LeafConfig {
|
||||
@@ -175,10 +175,14 @@ public class LeafConfig {
|
||||
}
|
||||
|
||||
public static boolean removeMojangUsernameCheck = true;
|
||||
@@ -7,7 +7,7 @@ This Check is added in 1.17.x -> 1.18.x update by Mojang.
|
||||
By removing this check, it enable 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 40f32af1976323fd5ffe9aef0725025284daffb3..97958536a31f4a5f3b1935f5afeb9c81ecfa458b 100644
|
||||
index 89d40b2e1fbd0f0de03b90922c71e33db9efd3ae..c373f084d846e12faa42455c76f580b67b634717 100644
|
||||
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
@@ -2101,7 +2101,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
|
||||
@@ -20,10 +20,10 @@ index 40f32af1976323fd5ffe9aef0725025284daffb3..97958536a31f4a5f3b1935f5afeb9c81
|
||||
|
||||
this.player.resetLastActionTime();
|
||||
diff --git a/src/main/java/org/dreeam/leaf/LeafConfig.java b/src/main/java/org/dreeam/leaf/LeafConfig.java
|
||||
index 267f88d799fe98d1741a837c33d8c748362077ee..83fee46886a21349d652b6bc871bd03ffbac2a7d 100644
|
||||
index 41e43d7b0b3627c3f2771008ef7d91cdd03f074e..39c81e23a260aba4cbe70fb68adb5ebbceafefd4 100644
|
||||
--- a/src/main/java/org/dreeam/leaf/LeafConfig.java
|
||||
+++ b/src/main/java/org/dreeam/leaf/LeafConfig.java
|
||||
@@ -171,6 +171,8 @@ public class LeafConfig {
|
||||
@@ -176,6 +176,8 @@ public class LeafConfig {
|
||||
|
||||
public static boolean removeMojangUsernameCheck = true;
|
||||
public static boolean removeSpigotCheckBungeeConfig = true;
|
||||
@@ -32,7 +32,7 @@ index 267f88d799fe98d1741a837c33d8c748362077ee..83fee46886a21349d652b6bc871bd03f
|
||||
private static void removal() {
|
||||
removeMojangUsernameCheck = getBoolean("remove-Mojang-username-check", removeMojangUsernameCheck,
|
||||
"Remove username check of Mojang",
|
||||
@@ -178,6 +180,9 @@ public class LeafConfig {
|
||||
@@ -183,6 +185,9 @@ public class LeafConfig {
|
||||
removeSpigotCheckBungeeConfig = getBoolean("remove-Spigot-check-bungee-config", removeSpigotCheckBungeeConfig,
|
||||
"Enable player enter backend server through proxy",
|
||||
"without backend server enabling its bungee mode");
|
||||
@@ -1,15 +1,15 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Bjarne Koll <lynxplay101@gmail.com>
|
||||
Date: Sun, 19 Feb 2023 16:14:28 +0100
|
||||
Subject: [PATCH] KTP: Optimize spigot event bus
|
||||
Subject: [PATCH] KTP: Allow unknown event thread execution
|
||||
|
||||
Original license: GPL v3
|
||||
Original project: https://github.com/lynxplay/ktp
|
||||
|
||||
This patch contains a lot of small optimizations to the spigot event bus
|
||||
to improve its speed as much as possible, allowing for a large amount of
|
||||
events to be published by the server without impacting the overall
|
||||
performance too much.
|
||||
This patch allows events to actively define that they may or may not be
|
||||
called on the main thread of the server.
|
||||
This is preferred over passing the "asyncness" of the event as async
|
||||
bool parameter to the event instance every time.
|
||||
|
||||
diff --git a/src/main/java/io/papermc/paper/plugin/manager/PaperEventManager.java b/src/main/java/io/papermc/paper/plugin/manager/PaperEventManager.java
|
||||
index a1c9726d25479b5326fe2fa2b0f5a98d6b2da4c5..06dfd0b27ac0006a2be07f54a0702519a691c6ec 100644
|
||||
@@ -7,7 +7,7 @@ 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 668d825a2469706e4de11629a0b41877de700ca6..441e6e70a9bc40fe986c05d4c4b46e498aa849ea 100644
|
||||
index 720a81da72a8002ff02cc39e5fca42354519c742..27203a4f30f719652dab80103eb3bd4c2104a9e3 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
@@ -29,6 +29,11 @@ import java.util.Optional;
|
||||
@@ -20,10 +20,10 @@ index 3ff5c2a4a2cca5c9a89ceafd9fddeb1012344433..90ab4610026b23ac84e6c941c6581d13
|
||||
} else {
|
||||
ItemEntity.merge(other, itemstack1, this, itemstack);
|
||||
diff --git a/src/main/java/org/dreeam/leaf/LeafConfig.java b/src/main/java/org/dreeam/leaf/LeafConfig.java
|
||||
index 83fee46886a21349d652b6bc871bd03ffbac2a7d..fc3938c16c43277e22b7a322177fa2a9150f1ff8 100644
|
||||
index 39c81e23a260aba4cbe70fb68adb5ebbceafefd4..dc492bc4aab5f5e305282f4ebb239341fe8f30f0 100644
|
||||
--- a/src/main/java/org/dreeam/leaf/LeafConfig.java
|
||||
+++ b/src/main/java/org/dreeam/leaf/LeafConfig.java
|
||||
@@ -194,6 +194,7 @@ public class LeafConfig {
|
||||
@@ -199,6 +199,7 @@ public class LeafConfig {
|
||||
public static int activationDistanceMod = 8;
|
||||
public static boolean throttleInactiveGoalSelectorTick = true;
|
||||
public static Map<String, Integer> projectileTimeouts;
|
||||
@@ -31,7 +31,7 @@ index 83fee46886a21349d652b6bc871bd03ffbac2a7d..fc3938c16c43277e22b7a322177fa2a9
|
||||
private static void performance() {
|
||||
boolean asyncMobSpawning = getBoolean("performance.enable-async-mob-spawning", enableAsyncMobSpawning,
|
||||
"Whether or not asynchronous mob spawning should be enabled.",
|
||||
@@ -242,6 +243,7 @@ public class LeafConfig {
|
||||
@@ -247,6 +248,7 @@ public class LeafConfig {
|
||||
String type = EntityType.getKey(entityType).getPath().toUpperCase(Locale.ROOT);
|
||||
entityType.ttl = config.getInt("entity_timeouts." + type, -1);
|
||||
}
|
||||
@@ -7,7 +7,7 @@ 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 54807be5d539fd768f9cb7a8ce912983ae328b46..26f904d5c63bd25d7aac3ab667ec45900d84ae5a 100644
|
||||
index 7206e59afd73e8b00993518a671dd2de1af34242..e3b66651df8a67b3cddfd027316a57986510788c 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -284,6 +284,7 @@ public class ServerPlayer extends Player {
|
||||
@@ -38,7 +38,7 @@ index e3d1e030063a8746dbdaea14c6de7d900bc1ad0f..ec1dd7c0046ac9091d5b6b2cd7032378
|
||||
|
||||
// entityplayer1.connection.teleport(entityplayer1.getX(), entityplayer1.getY(), entityplayer1.getZ(), entityplayer1.getYRot(), entityplayer1.getXRot());
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
index 441e6e70a9bc40fe986c05d4c4b46e498aa849ea..70459d17c359d4cb90f9ca1d40492acf657d733f 100644
|
||||
index 27203a4f30f719652dab80103eb3bd4c2104a9e3..41d67b3c57f55c6b5f685d8b00ca98ae1cd82881 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
@@ -1265,6 +1265,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
@@ -81,10 +81,10 @@ index 62e4e6e840dd1d5dcbab14d2f5708839a08a8d4d..5c7264f1f1147d27b22164c905ebfaa1
|
||||
// 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))
|
||||
diff --git a/src/main/java/org/dreeam/leaf/LeafConfig.java b/src/main/java/org/dreeam/leaf/LeafConfig.java
|
||||
index fc3938c16c43277e22b7a322177fa2a9150f1ff8..9445177d2cb64ae1cd0bd88d0c0b2ad89ef924f6 100644
|
||||
index dc492bc4aab5f5e305282f4ebb239341fe8f30f0..46ab8b1b5edad18c1283db012efe25cada186630 100644
|
||||
--- a/src/main/java/org/dreeam/leaf/LeafConfig.java
|
||||
+++ b/src/main/java/org/dreeam/leaf/LeafConfig.java
|
||||
@@ -246,7 +246,9 @@ public class LeafConfig {
|
||||
@@ -251,7 +251,9 @@ public class LeafConfig {
|
||||
useSpigotItemMergingMechanism = getBoolean("performance.use-spigot-item-merging-mechanism", useSpigotItemMergingMechanism);
|
||||
}
|
||||
|
||||
@@ -57,10 +57,10 @@ index 5c7264f1f1147d27b22164c905ebfaa1de438faf..164f07df76b10521b0f946258d4667ac
|
||||
// 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))
|
||||
diff --git a/src/main/java/org/dreeam/leaf/LeafConfig.java b/src/main/java/org/dreeam/leaf/LeafConfig.java
|
||||
index 9445177d2cb64ae1cd0bd88d0c0b2ad89ef924f6..56dc6cb0b5659619ec5df42088fbecf758e652c6 100644
|
||||
index 46ab8b1b5edad18c1283db012efe25cada186630..1de68bd11291f7ccb38365212904ef5874b8e492 100644
|
||||
--- a/src/main/java/org/dreeam/leaf/LeafConfig.java
|
||||
+++ b/src/main/java/org/dreeam/leaf/LeafConfig.java
|
||||
@@ -247,8 +247,10 @@ public class LeafConfig {
|
||||
@@ -252,8 +252,10 @@ public class LeafConfig {
|
||||
}
|
||||
|
||||
public static boolean jadeProtocol = false;
|
||||
@@ -19,7 +19,7 @@ index 7637dbf519568693fd1b707490d4cd8a2776c3a7..605da20aa58e5fbe9b306078c458d932
|
||||
// CraftBukkit start - handle player weather
|
||||
// entityplayer.connection.send(new PacketPlayOutGameStateChange(PacketPlayOutGameStateChange.START_RAINING, 0.0F));
|
||||
diff --git a/src/main/java/org/dreeam/leaf/LeafConfig.java b/src/main/java/org/dreeam/leaf/LeafConfig.java
|
||||
index 56dc6cb0b5659619ec5df42088fbecf758e652c6..4cf74bc39f61e024b7d453759cdc9397f0e3d4f5 100644
|
||||
index 1de68bd11291f7ccb38365212904ef5874b8e492..7725cadfdae94c88b77bb1eb51d66609f20adc60 100644
|
||||
--- a/src/main/java/org/dreeam/leaf/LeafConfig.java
|
||||
+++ b/src/main/java/org/dreeam/leaf/LeafConfig.java
|
||||
@@ -19,6 +19,7 @@ import java.util.Collections;
|
||||
@@ -30,7 +30,7 @@ index 56dc6cb0b5659619ec5df42088fbecf758e652c6..4cf74bc39f61e024b7d453759cdc9397
|
||||
|
||||
public class LeafConfig {
|
||||
|
||||
@@ -248,9 +249,13 @@ public class LeafConfig {
|
||||
@@ -253,9 +254,13 @@ public class LeafConfig {
|
||||
|
||||
public static boolean jadeProtocol = false;
|
||||
public static boolean appleskinProtocol = false;
|
||||
@@ -14,7 +14,7 @@ This patch was ported downstream from the Petal fork.
|
||||
Makes most pathfinding-related work happen asynchronously
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
index b27b1df608bca3242bed8bc5b7603d0e88fa50bf..34789645c9c0dd69e1c6787853c3ea17bfcc2145 100644
|
||||
index 455a0a96ac6aa6106e9011cd41be228b5a880fe5..211099df1a84748eafccfba984926fc545ed3c14 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
@@ -292,6 +292,7 @@ public abstract class Mob extends LivingEntity implements Targeting {
|
||||
@@ -943,7 +943,7 @@ index 0e2b14e7dfedf209d63279c81723fd7955122d78..079b278e2e262af433bb5bd0c12b3d8d
|
||||
|
||||
public SwimNodeEvaluator(boolean canJumpOutOfWater) {
|
||||
diff --git a/src/main/java/org/dreeam/leaf/LeafConfig.java b/src/main/java/org/dreeam/leaf/LeafConfig.java
|
||||
index 4cf74bc39f61e024b7d453759cdc9397f0e3d4f5..4ec2954384a7c99b4f489b1b2a666f93ee69e98f 100644
|
||||
index 7725cadfdae94c88b77bb1eb51d66609f20adc60..13c2e89a84905dd988b4d296158b9985b960aad7 100644
|
||||
--- a/src/main/java/org/dreeam/leaf/LeafConfig.java
|
||||
+++ b/src/main/java/org/dreeam/leaf/LeafConfig.java
|
||||
@@ -4,6 +4,7 @@ import com.google.common.collect.ImmutableMap;
|
||||
@@ -962,7 +962,7 @@ index 4cf74bc39f61e024b7d453759cdc9397f0e3d4f5..4ec2954384a7c99b4f489b1b2a666f93
|
||||
|
||||
public class LeafConfig {
|
||||
|
||||
@@ -196,6 +198,9 @@ public class LeafConfig {
|
||||
@@ -201,6 +203,9 @@ public class LeafConfig {
|
||||
public static boolean throttleInactiveGoalSelectorTick = true;
|
||||
public static Map<String, Integer> projectileTimeouts;
|
||||
public static boolean useSpigotItemMergingMechanism = true;
|
||||
@@ -972,7 +972,7 @@ index 4cf74bc39f61e024b7d453759cdc9397f0e3d4f5..4ec2954384a7c99b4f489b1b2a666f93
|
||||
private static void performance() {
|
||||
boolean asyncMobSpawning = getBoolean("performance.enable-async-mob-spawning", enableAsyncMobSpawning,
|
||||
"Whether or not asynchronous mob spawning should be enabled.",
|
||||
@@ -245,6 +250,17 @@ public class LeafConfig {
|
||||
@@ -250,6 +255,17 @@ public class LeafConfig {
|
||||
entityType.ttl = config.getInt("entity_timeouts." + type, -1);
|
||||
}
|
||||
useSpigotItemMergingMechanism = getBoolean("performance.use-spigot-item-merging-mechanism", useSpigotItemMergingMechanism);
|
||||
@@ -64,10 +64,10 @@ index c9b7b12470afac45b0132858407aacb8f91aac68..c27ffbc08a206a1e270b6419d38a7ad1
|
||||
while (iterator.hasNext()) {
|
||||
Entity entity1 = (Entity) iterator.next();
|
||||
diff --git a/src/main/java/org/dreeam/leaf/LeafConfig.java b/src/main/java/org/dreeam/leaf/LeafConfig.java
|
||||
index 4ec2954384a7c99b4f489b1b2a666f93ee69e98f..d9477d6570ac6bfb9a0256a0dc734b1cfe5ea6c9 100644
|
||||
index 13c2e89a84905dd988b4d296158b9985b960aad7..3113970b5cb5d9b1a18c7f82b44c29afe89a0730 100644
|
||||
--- a/src/main/java/org/dreeam/leaf/LeafConfig.java
|
||||
+++ b/src/main/java/org/dreeam/leaf/LeafConfig.java
|
||||
@@ -201,6 +201,7 @@ public class LeafConfig {
|
||||
@@ -206,6 +206,7 @@ public class LeafConfig {
|
||||
public static boolean asyncPathfinding = false;
|
||||
public static int asyncPathfindingMaxThreads = 0;
|
||||
public static int asyncPathfindingKeepalive = 60;
|
||||
@@ -75,7 +75,7 @@ index 4ec2954384a7c99b4f489b1b2a666f93ee69e98f..d9477d6570ac6bfb9a0256a0dc734b1c
|
||||
private static void performance() {
|
||||
boolean asyncMobSpawning = getBoolean("performance.enable-async-mob-spawning", enableAsyncMobSpawning,
|
||||
"Whether or not asynchronous mob spawning should be enabled.",
|
||||
@@ -261,6 +262,9 @@ public class LeafConfig {
|
||||
@@ -266,6 +267,9 @@ public class LeafConfig {
|
||||
asyncPathfindingMaxThreads = 0;
|
||||
else
|
||||
Bukkit.getLogger().log(Level.INFO, "Using " + asyncPathfindingMaxThreads + " threads for Async Pathfinding");
|
||||
@@ -6,7 +6,7 @@ Subject: [PATCH] Reduce canSee work
|
||||
Credit by: Martijn Muijsers <martijnmuijsers@live.nl>, MachineBreaker<machinebreaker>
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
||||
index 7f7d5b9ac42bd510e29834d1df7f49d5659fbfa2..97c7e9c8dc2dc3860de4e697ecd2c1179ef6fd56 100644
|
||||
index 78f2bea7ae34be7a2152d7c31e90a524eac1ddfe..9ce1676e9a51ae7fd59bc4ef29efdcb160a86657 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/Level.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
||||
@@ -442,11 +442,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
@@ -35,7 +35,7 @@ index 7f7d5b9ac42bd510e29834d1df7f49d5659fbfa2..97c7e9c8dc2dc3860de4e697ecd2c117
|
||||
return false;
|
||||
}
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
index 70459d17c359d4cb90f9ca1d40492acf657d733f..8ee373cacbc1f9c7cb4f8300dcdbeeae4195fdae 100644
|
||||
index 41d67b3c57f55c6b5f685d8b00ca98ae1cd82881..b988261eebba51f4205df8ffe8661e7539c72c9c 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
@@ -578,12 +578,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Faster Random for xaeroMapServerID generation
|
||||
|
||||
|
||||
diff --git a/src/main/java/org/dreeam/leaf/LeafConfig.java b/src/main/java/org/dreeam/leaf/LeafConfig.java
|
||||
index d9477d6570ac6bfb9a0256a0dc734b1cfe5ea6c9..bf4c5ce82ecee2e7040d6cea173df7827606a8b8 100644
|
||||
index 3113970b5cb5d9b1a18c7f82b44c29afe89a0730..4974ba174afe8cfd30e4dbbd59d4e88f62f45380 100644
|
||||
--- a/src/main/java/org/dreeam/leaf/LeafConfig.java
|
||||
+++ b/src/main/java/org/dreeam/leaf/LeafConfig.java
|
||||
@@ -2,6 +2,7 @@ package org.dreeam.leaf;
|
||||
@@ -16,7 +16,7 @@ index d9477d6570ac6bfb9a0256a0dc734b1cfe5ea6c9..bf4c5ce82ecee2e7040d6cea173df782
|
||||
import net.minecraft.server.MinecraftServer;
|
||||
import net.minecraft.world.entity.EntityType;
|
||||
import org.bukkit.Bukkit;
|
||||
@@ -270,7 +271,7 @@ public class LeafConfig {
|
||||
@@ -275,7 +276,7 @@ public class LeafConfig {
|
||||
public static boolean jadeProtocol = false;
|
||||
public static boolean appleskinProtocol = false;
|
||||
public static boolean xaeroMapProtocol = false;
|
||||
@@ -40,10 +40,10 @@ index 004dce26ff073f1de52a84cd425c4f60fdab5e50..a02d4233c9dbb4e37532c3ab6c20bb1c
|
||||
if (flag1) {
|
||||
this.notifyNeighbors(world, pos, enumdirection);
|
||||
diff --git a/src/main/java/org/dreeam/leaf/LeafConfig.java b/src/main/java/org/dreeam/leaf/LeafConfig.java
|
||||
index bf4c5ce82ecee2e7040d6cea173df7827606a8b8..f24c52777e3f73a6b432d4b407e32217bcd6e038 100644
|
||||
index 4974ba174afe8cfd30e4dbbd59d4e88f62f45380..e25b4f2ad080d0fbd6782cee305a7c5f4f206a2a 100644
|
||||
--- a/src/main/java/org/dreeam/leaf/LeafConfig.java
|
||||
+++ b/src/main/java/org/dreeam/leaf/LeafConfig.java
|
||||
@@ -288,4 +288,9 @@ public class LeafConfig {
|
||||
@@ -293,4 +293,9 @@ public class LeafConfig {
|
||||
gg.pufferfish.pufferfish.sentry.SentryManager.init();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,113 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Dreeam <61569423+Dreeam-qwq@users.noreply.github.com>
|
||||
Date: Thu, 22 Feb 2024 18:30:22 -0500
|
||||
Subject: [PATCH] Fix MC-249136: lag when attempting to locate a buried
|
||||
treasure or opening/breaking a chest containing a map
|
||||
|
||||
This patch ported from 1.20.5 snapshot - 24w04a
|
||||
Mojang issues: https://bugs.mojang.com/browse/MC-249136
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/level/StructureManager.java b/src/main/java/net/minecraft/world/level/StructureManager.java
|
||||
index 09c85ed428b8eaf51f8b3c6e45cce925f05ab354..07a0be7393215ce891799b444c27b4b34e2d293d 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/StructureManager.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/StructureManager.java
|
||||
@@ -23,6 +23,7 @@ import net.minecraft.world.level.levelgen.structure.StructureCheck;
|
||||
import net.minecraft.world.level.levelgen.structure.StructureCheckResult;
|
||||
import net.minecraft.world.level.levelgen.structure.StructurePiece;
|
||||
import net.minecraft.world.level.levelgen.structure.StructureStart;
|
||||
+import net.minecraft.world.level.levelgen.structure.placement.StructurePlacement;
|
||||
|
||||
public class StructureManager {
|
||||
public final LevelAccessor level;
|
||||
@@ -163,9 +164,11 @@ public class StructureManager {
|
||||
return this.level.getChunk(sectionPos.x(), sectionPos.z(), ChunkStatus.STRUCTURE_REFERENCES).getAllReferences();
|
||||
}
|
||||
|
||||
- public StructureCheckResult checkStructurePresence(ChunkPos chunkPos, Structure structure, boolean skipExistingChunk) {
|
||||
- return this.structureCheck.checkStart(chunkPos, structure, skipExistingChunk);
|
||||
+ // Leaf start - Fix MC-249136
|
||||
+ public StructureCheckResult checkStructurePresence(ChunkPos chunkPos, Structure structure, StructurePlacement placement, boolean skipExistingChunk) {
|
||||
+ return this.structureCheck.checkStart(chunkPos, structure, placement, skipExistingChunk);
|
||||
}
|
||||
+ // Leaf end
|
||||
|
||||
public void addReference(StructureStart structureStart) {
|
||||
structureStart.addReference();
|
||||
diff --git a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java
|
||||
index d5c2a608e1b4c8099c96b33d9d758e968350a46d..91c1e312ca50abbe8cf04a45bb421551dba03c25 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java
|
||||
@@ -302,7 +302,7 @@ public abstract class ChunkGenerator {
|
||||
}
|
||||
|
||||
holder = (Holder) iterator.next();
|
||||
- structurecheckresult = structureAccessor.checkStructurePresence(pos, (Structure) holder.value(), skipReferencedStructures);
|
||||
+ structurecheckresult = structureAccessor.checkStructurePresence(pos, (Structure) holder.value(), placement, skipReferencedStructures); // Leaf - Fix MC-249136
|
||||
} while (structurecheckresult == StructureCheckResult.START_NOT_PRESENT);
|
||||
|
||||
if (!skipReferencedStructures && structurecheckresult == StructureCheckResult.START_PRESENT) {
|
||||
diff --git a/src/main/java/net/minecraft/world/level/levelgen/structure/StructureCheck.java b/src/main/java/net/minecraft/world/level/levelgen/structure/StructureCheck.java
|
||||
index 16356d7f388561300e794a52f3f263b8e7d9b880..1e973bcbc79de7fdbeb22e3b577ea51c8a165c79 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/levelgen/structure/StructureCheck.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/levelgen/structure/StructureCheck.java
|
||||
@@ -32,6 +32,7 @@ import net.minecraft.world.level.chunk.ChunkGenerator;
|
||||
import net.minecraft.world.level.chunk.storage.ChunkScanAccess;
|
||||
import net.minecraft.world.level.chunk.storage.ChunkStorage;
|
||||
import net.minecraft.world.level.levelgen.RandomState;
|
||||
+import net.minecraft.world.level.levelgen.structure.placement.StructurePlacement;
|
||||
import net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplateManager;
|
||||
import org.slf4j.Logger;
|
||||
|
||||
@@ -161,7 +162,7 @@ public class StructureCheck {
|
||||
this.structureConfigs = registryManager.registryOrThrow(Registries.STRUCTURE);
|
||||
}
|
||||
|
||||
- public StructureCheckResult checkStart(ChunkPos pos, Structure type, boolean skipReferencedStructures) {
|
||||
+ public StructureCheckResult checkStart(ChunkPos pos, Structure type, StructurePlacement placement, boolean skipReferencedStructures) { // Leaf - Fix MC-249136
|
||||
long l = pos.toLong();
|
||||
Object2IntMap<Structure> object2IntMap = this.loadedChunksSafe.get(l); // Paper - rewrite chunk system - synchronise this class
|
||||
if (object2IntMap != null) {
|
||||
@@ -171,6 +172,11 @@ public class StructureCheck {
|
||||
if (structureCheckResult != null) {
|
||||
return structureCheckResult;
|
||||
} else {
|
||||
+ // Leaf start - Fix MC-249136
|
||||
+ if (!placement.applyAdditionalChunkRestrictions(pos.x, pos.z, this.seed, null)) {
|
||||
+ return StructureCheckResult.START_NOT_PRESENT;
|
||||
+ }
|
||||
+ // Leaf end
|
||||
boolean bl = this.featureChecksSafe.computeIfAbsent(type, (structure2) -> { // Paper - rewrite chunk system - synchronise this class
|
||||
return new SynchronisedLong2BooleanMap(PER_FEATURE_CHECK_LIMIT); // Paper - rewrite chunk system - synchronise this class
|
||||
}).getOrCompute(l, (chunkPos) -> { // Paper - rewrite chunk system - synchronise this class
|
||||
diff --git a/src/main/java/net/minecraft/world/level/levelgen/structure/placement/StructurePlacement.java b/src/main/java/net/minecraft/world/level/levelgen/structure/placement/StructurePlacement.java
|
||||
index 594a2dd3b1d4c29c969d1992b8e93795da00e682..463f8f20136cc2615f4fb3fdda26c0c91254d3d9 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/levelgen/structure/placement/StructurePlacement.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/levelgen/structure/placement/StructurePlacement.java
|
||||
@@ -74,14 +74,20 @@ public abstract class StructurePlacement {
|
||||
}
|
||||
}
|
||||
// Paper end
|
||||
- if (!this.isPlacementChunk(calculator, chunkX, chunkZ)) {
|
||||
- return false;
|
||||
- } else if (this.frequency < 1.0F && !this.frequencyReductionMethod.shouldGenerate(calculator.getLevelSeed(), this.salt, chunkX, chunkZ, this.frequency, saltOverride)) { // Paper
|
||||
- return false;
|
||||
- } else {
|
||||
- return !this.exclusionZone.isPresent() || !this.exclusionZone.get().isPlacementForbidden(calculator, chunkX, chunkZ);
|
||||
- }
|
||||
+ // Leaf start - Fix MC-249136
|
||||
+ return this.isPlacementChunk(calculator, chunkX, chunkZ)
|
||||
+ && this.applyAdditionalChunkRestrictions(chunkX, chunkZ, calculator.getLevelSeed(), saltOverride)
|
||||
+ && this.applyInteractionsWithOtherStructures(calculator, chunkX, chunkZ);
|
||||
+ }
|
||||
+
|
||||
+ public boolean applyAdditionalChunkRestrictions(int chunkX, int chunkZ, long levelSeed, Integer saltOverride) {
|
||||
+ return !(this.frequency < 1.0f) || this.frequencyReductionMethod.shouldGenerate(levelSeed, this.salt, chunkX, chunkZ, this.frequency, saltOverride); // Paper - Add missing structure set seed configs
|
||||
+ }
|
||||
+
|
||||
+ public boolean applyInteractionsWithOtherStructures(ChunkGeneratorStructureState calculator, int chunkX, int chunkZ) {
|
||||
+ return this.exclusionZone.isEmpty() || !this.exclusionZone.get().isPlacementForbidden(calculator, chunkX, chunkZ);
|
||||
}
|
||||
+ // Leaf end
|
||||
|
||||
protected abstract boolean isPlacementChunk(ChunkGeneratorStructureState calculator, int chunkX, int chunkZ);
|
||||
|
||||
58
patches/server/0043-Fix-MC-172047.patch
Normal file
58
patches/server/0043-Fix-MC-172047.patch
Normal file
@@ -0,0 +1,58 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: HaHaWTH <fsjk947@gmail.com>
|
||||
Date: Fri, 15 Mar 2024 02:12:38 +0800
|
||||
Subject: [PATCH] Fix MC-172047
|
||||
|
||||
Mojang issues: https://bugs.mojang.com/browse/MC-172047
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Wolf.java b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
|
||||
index 64bceae4d06b35fcbecb0daca2496ba30e39d995..47d1ca92aa71a6101496f8fdbd70d02ef75a55df 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
|
||||
@@ -58,6 +58,7 @@ import net.minecraft.world.entity.ai.goal.target.OwnerHurtTargetGoal;
|
||||
import net.minecraft.world.entity.ai.goal.target.ResetUniversalAngerTargetGoal;
|
||||
import net.minecraft.world.entity.animal.horse.AbstractHorse;
|
||||
import net.minecraft.world.entity.animal.horse.Llama;
|
||||
+import net.minecraft.world.entity.decoration.ArmorStand;
|
||||
import net.minecraft.world.entity.monster.AbstractSkeleton;
|
||||
import net.minecraft.world.entity.monster.Creeper;
|
||||
import net.minecraft.world.entity.monster.Ghast;
|
||||
@@ -670,17 +671,29 @@ public class Wolf extends TamableAnimal implements NeutralMob {
|
||||
|
||||
@Override
|
||||
public boolean wantsToAttack(LivingEntity target, LivingEntity owner) {
|
||||
- if (!(target instanceof Creeper) && !(target instanceof Ghast)) {
|
||||
- if (target instanceof Wolf) {
|
||||
- Wolf entitywolf = (Wolf) target;
|
||||
-
|
||||
- return !entitywolf.isTame() || entitywolf.getOwner() != owner;
|
||||
- } else {
|
||||
- return target instanceof Player && owner instanceof Player && !((Player) owner).canHarmPlayer((Player) target) ? false : (target instanceof AbstractHorse && ((AbstractHorse) target).isTamed() ? false : !(target instanceof TamableAnimal) || !((TamableAnimal) target).isTame());
|
||||
- }
|
||||
- } else {
|
||||
+ // Leaf start - Improve readability
|
||||
+ if (target instanceof Creeper || target instanceof Ghast || target instanceof ArmorStand) { // Leaf - Fix MC-172047
|
||||
return false;
|
||||
}
|
||||
+
|
||||
+ if (target instanceof Wolf entityWolf) {
|
||||
+ return !entityWolf.isTame() || entityWolf.getOwner() != owner;
|
||||
+ }
|
||||
+
|
||||
+ if (target instanceof Player targetPlayer && owner instanceof Player ownerPlayer) {
|
||||
+ return ownerPlayer.canHarmPlayer(targetPlayer);
|
||||
+ }
|
||||
+
|
||||
+ if (target instanceof AbstractHorse targetHorse) {
|
||||
+ return !targetHorse.isTamed();
|
||||
+ }
|
||||
+
|
||||
+ if (target instanceof TamableAnimal tamableAnimalTarget) {
|
||||
+ return !tamableAnimalTarget.isTame();
|
||||
+ }
|
||||
+
|
||||
+ return true;
|
||||
+ // Leaf end
|
||||
}
|
||||
|
||||
@Override
|
||||
61
patches/server/0044-Configurable-bamboo-collision.patch
Normal file
61
patches/server/0044-Configurable-bamboo-collision.patch
Normal file
@@ -0,0 +1,61 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: HaHaWTH <fsjk947@gmail.com>
|
||||
Date: Sun, 12 May 2024 16:04:13 +0800
|
||||
Subject: [PATCH] Configurable-bamboo-collision
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/level/block/BambooStalkBlock.java b/src/main/java/net/minecraft/world/level/block/BambooStalkBlock.java
|
||||
index a5d391af2c6b733d653188f4aeeec2afffd96adf..5413c59c50f8cf60eaddbb0dce62b5e72f90e4fd 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/block/BambooStalkBlock.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/block/BambooStalkBlock.java
|
||||
@@ -33,7 +33,7 @@ public class BambooStalkBlock extends Block implements BonemealableBlock {
|
||||
protected static final float COLLISION_AABB_OFFSET = 1.5F;
|
||||
protected static final VoxelShape SMALL_SHAPE = Block.box(5.0D, 0.0D, 5.0D, 11.0D, 16.0D, 11.0D);
|
||||
protected static final VoxelShape LARGE_SHAPE = Block.box(3.0D, 0.0D, 3.0D, 13.0D, 16.0D, 13.0D);
|
||||
- protected static final VoxelShape COLLISION_SHAPE = Block.box(6.5D, 0.0D, 6.5D, 9.5D, 16.0D, 9.5D);
|
||||
+ protected static final VoxelShape COLLISION_SHAPE = org.dreeam.leaf.config.modules.gameplay.ConfigurableBambooCollision.enableCollision ? Block.box(6.5D, 0.0D, 6.5D, 9.5D, 16.0D, 9.5D) : Block.box(0.0D, 15.9D, 0.0D, 16.0D, 16.0D, 16.0D); // Leaf - Configurable bamboo collision
|
||||
public static final IntegerProperty AGE = BlockStateProperties.AGE_1;
|
||||
public static final EnumProperty<BambooLeaves> LEAVES = BlockStateProperties.BAMBOO_LEAVES;
|
||||
public static final IntegerProperty STAGE = BlockStateProperties.STAGE;
|
||||
@@ -73,9 +73,17 @@ public class BambooStalkBlock extends Block implements BonemealableBlock {
|
||||
|
||||
@Override
|
||||
public VoxelShape getCollisionShape(BlockState state, BlockGetter world, BlockPos pos, CollisionContext context) {
|
||||
- Vec3 vec3d = state.getOffset(world, pos);
|
||||
+ // Leaf start - Configurable bamboo collision
|
||||
+ if (org.dreeam.leaf.config.modules.gameplay.ConfigurableBambooCollision.enableCollision) {
|
||||
+ Vec3 vec3d = state.getOffset(world, pos);
|
||||
|
||||
- return BambooStalkBlock.COLLISION_SHAPE.move(vec3d.x, vec3d.y, vec3d.z);
|
||||
+ return BambooStalkBlock.COLLISION_SHAPE.move(vec3d.x, vec3d.y, vec3d.z);
|
||||
+ } else {
|
||||
+ return context.isAbove(net.minecraft.world.phys.shapes.Shapes.block(), pos, true)
|
||||
+ ? COLLISION_SHAPE // Prevent desync
|
||||
+ : net.minecraft.world.phys.shapes.Shapes.empty();
|
||||
+ }
|
||||
+ // Leaf end
|
||||
}
|
||||
|
||||
@Override
|
||||
diff --git a/src/main/java/org/dreeam/leaf/LeafConfig.java b/src/main/java/org/dreeam/leaf/LeafConfig.java
|
||||
index e25b4f2ad080d0fbd6782cee305a7c5f4f206a2a..4eadad401c642ec28845f60ed7485bd35bc6b488 100644
|
||||
--- a/src/main/java/org/dreeam/leaf/LeafConfig.java
|
||||
+++ b/src/main/java/org/dreeam/leaf/LeafConfig.java
|
||||
@@ -1,5 +1,6 @@
|
||||
package org.dreeam.leaf;
|
||||
|
||||
+import com.electronwill.nightconfig.core.file.CommentedFileConfig;
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import net.minecraft.core.registries.BuiltInRegistries;
|
||||
import java.util.concurrent.ThreadLocalRandom;
|
||||
@@ -295,7 +296,9 @@ public class LeafConfig {
|
||||
}
|
||||
|
||||
public static boolean fixTripwireDupe = true;
|
||||
- private static void tripwireDupe() {
|
||||
+ public static boolean configurableBambooCollision = true;
|
||||
+ private static void gameplay() {
|
||||
fixTripwireDupe = getBoolean("gameplay.fix-tripwire-dupe", fixTripwireDupe);
|
||||
+ configurableBambooCollision = getBoolean("gameplay.configurable_bamboo_collision", configurableBambooCollision);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: nostalfinals <yuu8583@proton.me>
|
||||
Date: Tue, 12 Mar 2024 01:10:54 +0800
|
||||
Subject: [PATCH] Use a shadow fork that supports Java 21
|
||||
|
||||
|
||||
diff --git a/build.gradle.kts b/build.gradle.kts
|
||||
index 99cf0bebf6bd1579c1f347e0c1750c7b13f74566..09dd1b8b9471b3e742b102e8ddf205f9be66e412 100644
|
||||
--- a/build.gradle.kts
|
||||
+++ b/build.gradle.kts
|
||||
@@ -3,7 +3,7 @@ import io.papermc.paperweight.util.*
|
||||
plugins {
|
||||
java
|
||||
`maven-publish`
|
||||
- id("com.github.johnrengelman.shadow")
|
||||
+ id("io.github.goooler.shadow") // Leaf - use a shadow fork that supports Java 21
|
||||
}
|
||||
|
||||
val log4jPlugins = sourceSets.create("log4jPlugins")
|
||||
Reference in New Issue
Block a user