9
0
mirror of https://github.com/LeavesMC/Leaves.git synced 2026-01-06 15:51:33 +00:00

Fix more patch

This commit is contained in:
violetc
2023-06-10 15:48:52 +08:00
parent 1f130d7682
commit f8afff5618
8 changed files with 19 additions and 43 deletions

View File

@@ -2144,7 +2144,7 @@ index 0000000000000000000000000000000000000000..d92ea54770bce73c2f10f1ebcb0dff5b
+}
diff --git a/src/main/java/top/leavesmc/leaves/bot/agent/actions/JumpAction.java b/src/main/java/top/leavesmc/leaves/bot/agent/actions/JumpAction.java
new file mode 100644
index 0000000000000000000000000000000000000000..62bd3679e1114abc5283dfc769cde0e1d7024d40
index 0000000000000000000000000000000000000000..d99f667992e45e85c0fe0bd74682d563fe1315eb
--- /dev/null
+++ b/src/main/java/top/leavesmc/leaves/bot/agent/actions/JumpAction.java
@@ -0,0 +1,35 @@
@@ -2175,7 +2175,7 @@ index 0000000000000000000000000000000000000000..62bd3679e1114abc5283dfc769cde0e1
+
+ @Override
+ public boolean doTick(@NotNull ServerBot bot) {
+ if (bot.isOnGround()) {
+ if (bot.onGround()) {
+ bot.jumpFromGround();
+ return true;
+ } else {

View File

@@ -123,7 +123,7 @@ index 3e3e11d4207172d6c24895cef6c7b5a0b09352ee..9e374eb89e28a5406784a38ec146ee31
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 ae82ab0e3d8e99f87ca8465fbcbb44b5ce18bf96..99e982f81745a65f0df6ccdf26b050ec0def4d31 100644
index ae82ab0e3d8e99f87ca8465fbcbb44b5ce18bf96..9c68dd4633d23310e7e1afb4fea52ceaeea00c02 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2141,10 +2141,27 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -133,7 +133,7 @@ index ae82ab0e3d8e99f87ca8465fbcbb44b5ce18bf96..99e982f81745a65f0df6ccdf26b050ec
+ // Leaves start - no ClientboundPlayerChatHeaderPacket and rebuild ClientboundPlayerChatPacket
+ if (top.leavesmc.leaves.LeavesConfig.noChatSign) {
+ if (packet instanceof ClientboundPlayerChatPacket chat) {
+ packet = new ClientboundSystemChatPacket(chat.chatType().resolve(this.player.level.registryAccess())
+ packet = new ClientboundSystemChatPacket(chat.chatType().resolve(this.player.level().registryAccess())
+ .get().decorate(chat.unsignedContent() != null ? chat.unsignedContent()
+ : Component.literal(chat.body().content())), false);
+ }
@@ -155,7 +155,7 @@ index ae82ab0e3d8e99f87ca8465fbcbb44b5ce18bf96..99e982f81745a65f0df6ccdf26b050ec
if (packet == null || this.processedDisconnect) { // Spigot
return;
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index 254171bacd48142cc7bd0c8b79c6526984cd0033..e50bb5b8624411f775d05d59515db1af18d04355 100644
index 4eaf7ae37557075ebe735827861507bee6b61eed..794386d40e2f53f2707b401907af5bb73e199eb1 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -1450,7 +1450,7 @@ public abstract class PlayerList {

View File

@@ -5,30 +5,6 @@ Subject: [PATCH] Skip cloning loot parameters
This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish)
diff --git a/src/main/java/net/minecraft/world/level/storage/loot/LootContext.java b/src/main/java/net/minecraft/world/level/storage/loot/LootContext.java
index 17df8b341c65ca24fd2a18424f221918d0a7a111..c666e7f401b0ed453e03e8bad9c2aca10b367bda 100644
--- a/src/main/java/net/minecraft/world/level/storage/loot/LootContext.java
+++ b/src/main/java/net/minecraft/world/level/storage/loot/LootContext.java
@@ -28,6 +28,19 @@ public class LootContext {
LootContext(LootParams parameters, RandomSource random, LootDataResolver dataLookup) {
this.params = parameters;
this.random = random;
+ this.luck = luck;
+ this.level = world;
+ this.lootTables = tableGetter;
+ this.conditions = conditionGetter;
+ // Leaves start - use unmodifiable maps instead of immutable ones to skip the copy
+ if (top.leavesmc.leaves.LeavesConfig.skipCloneLootParameters) {
+ this.params = java.util.Collections.unmodifiableMap(parameters);
+ this.dynamicDrops = java.util.Collections.unmodifiableMap(drops);
+ } else {
+ this.params = ImmutableMap.copyOf(parameters);
+ this.dynamicDrops = ImmutableMap.copyOf(drops);
+ }
+ // Leaves end - use unmodifiable maps instead of immutable ones to skip the copy
this.lootDataResolver = dataLookup;
}
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
index 53ccd141c53faa3fa53127f546ba0faeb685d731..1335959fc27da3e53ea845dff83fcac0b3a1e873 100644
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java

View File

@@ -6,7 +6,7 @@ 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 bf05f321373c9cb5d42fd6cace010a75dc98b90a..5a373196692fd6eb408492c9c4539ec941a819b9 100644
index bf05f321373c9cb5d42fd6cace010a75dc98b90a..c47df8d18be8ac7d32a16e6662dbbd850efc8e8a 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -869,7 +869,24 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -22,7 +22,7 @@ index bf05f321373c9cb5d42fd6cace010a75dc98b90a..5a373196692fd6eb408492c9c4539ec9
+ } catch (Throwable throwable) {
+ if (throwable instanceof ThreadDeath) throw throwable; // Paper
+ // Paper start - Prevent tile entity and entity crashes
+ final String msg = String.format("Entity threw exception at %s:%s,%s,%s", entity.level.getWorld().getName(), entity.getX(), entity.getY(), entity.getZ());
+ final String msg = String.format("Entity threw exception at %s:%s,%s,%s", entity.level().getWorld().getName(), entity.getX(), entity.getY(), entity.getZ());
+ MinecraftServer.LOGGER.error(msg, throwable);
+ getCraftServer().getPluginManager().callEvent(new com.destroystokyo.paper.event.server.ServerExceptionEvent(new com.destroystokyo.paper.exception.ServerInternalException(msg, throwable)));
+ entity.discard();

View File

@@ -6,7 +6,7 @@ Subject: [PATCH] Remove iterators from inventory contains
This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish)
diff --git a/src/main/java/net/minecraft/world/entity/player/Inventory.java b/src/main/java/net/minecraft/world/entity/player/Inventory.java
index 395cecc385e4126a7534ac9aeb15cf323efab03e..fee876947e0c00f3e0d0914cf84b5969cc788696 100644
index 395cecc385e4126a7534ac9aeb15cf323efab03e..a8e8ed277bf467ca8a34e040bf7b1257ffe8a17e 100644
--- a/src/main/java/net/minecraft/world/entity/player/Inventory.java
+++ b/src/main/java/net/minecraft/world/entity/player/Inventory.java
@@ -681,21 +681,35 @@ public class Inventory implements Container, Nameable {
@@ -21,7 +21,7 @@ index 395cecc385e4126a7534ac9aeb15cf323efab03e..fee876947e0c00f3e0d0914cf84b5969
+ for (int j = 0; j < list.size(); j++) {
+ ItemStack itemstack1 = list.get(j);
+
+ if (!itemstack1.isEmpty() && itemstack1.sameItem(stack)) {
+ if (!itemstack1.isEmpty() && ItemStack.isSameItemSameTags(itemstack1, stack)) {
+ return true;
+ }
+ }

View File

@@ -6,7 +6,7 @@ Subject: [PATCH] Reduce chunk loading & lookups
This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish)
diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
index 4616addb05fcc20b1ec6ca1dea01cbefed697acd..5fe47a97498177d7d131d32c95a7fbe8ee9c380f 100644
index 4616addb05fcc20b1ec6ca1dea01cbefed697acd..2fce5952352ca09335d3ba74e6d779c447b1a734 100644
--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
+++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
@@ -322,11 +322,28 @@ public class EnderMan extends Monster implements NeutralMob {
@@ -18,12 +18,12 @@ index 4616addb05fcc20b1ec6ca1dea01cbefed697acd..5fe47a97498177d7d131d32c95a7fbe8
+ // Leaves start - single chunk lookup
+ BlockState iblockdata;
+ if (top.leavesmc.leaves.LeavesConfig.reduceChuckLoadAndLookup) {
+ net.minecraft.world.level.chunk.LevelChunk chunk = this.level.getChunkIfLoaded(blockposition_mutableblockposition);
+ net.minecraft.world.level.chunk.LevelChunk chunk = this.level().getChunkIfLoaded(blockposition_mutableblockposition);
+ if (chunk == null) {
+ return false;
+ }
+
+ while (blockposition_mutableblockposition.getY() > this.level.getMinBuildHeight() && !chunk.getBlockState(blockposition_mutableblockposition).getMaterial().blocksMotion()) {
+ while (blockposition_mutableblockposition.getY() > this.level().getMinBuildHeight() && !chunk.getBlockState(blockposition_mutableblockposition).blocksMotion()) {
+ blockposition_mutableblockposition.move(Direction.DOWN);
+ }
+

View File

@@ -6,7 +6,7 @@ Subject: [PATCH] PCA sync protocol
This patch is Powered by plusls-carpet-addition(https://github.com/plusls/plusls-carpet-addition)
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 99e982f81745a65f0df6ccdf26b050ec0def4d31..ba990b85172a44333d619f82f4ad7f2b67c8765c 100644
index 9c68dd4633d23310e7e1afb4fea52ceaeea00c02..5bf8c3e04905031c56ed775aaba762ef2fa35662 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -245,6 +245,7 @@ import org.bukkit.inventory.CraftingInventory;
@@ -63,7 +63,7 @@ index 79b6e241f425622fdc575b77d8dce7061c0ab783..57579e83cb2ba6ad82509e9e7b8fdda9
this.updateContainerEquipment();
diff --git a/src/main/java/net/minecraft/world/entity/npc/AbstractVillager.java b/src/main/java/net/minecraft/world/entity/npc/AbstractVillager.java
index 564908ce0a560c2190fb624e77d227d3b7031024..806526e79c7d5380955e4dd9d6da865c73647329 100644
index 564908ce0a560c2190fb624e77d227d3b7031024..5304ee89ce843c9ca860d68091162a976daee0ea 100644
--- a/src/main/java/net/minecraft/world/entity/npc/AbstractVillager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/AbstractVillager.java
@@ -65,6 +65,15 @@ public abstract class AbstractVillager extends AgeableMob implements InventoryCa
@@ -71,7 +71,7 @@ index 564908ce0a560c2190fb624e77d227d3b7031024..806526e79c7d5380955e4dd9d6da865c
this.setPathfindingMalus(BlockPathTypes.DANGER_FIRE, 16.0F);
this.setPathfindingMalus(BlockPathTypes.DAMAGE_FIRE, -1.0F);
+ // Leaves start - pca
+ if (!this.level.isClientSide()) {
+ if (!this.level().isClientSide()) {
+ this.inventory.addListener(inventory -> {
+ if (top.leavesmc.leaves.LeavesConfig.pcaSyncProtocol) {
+ top.leavesmc.leaves.protocol.PcaSyncProtocol.syncEntityToClient(this);

View File

@@ -6,7 +6,7 @@ Subject: [PATCH] Return nether portal fix
This patch is powered by NetherPortalFix(https://github.com/TwelveIterationMods/NetherPortalFix)
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index afcc518ff50066e846e9b1a79cb99dc25cac4f24..02e1b6725f0129bb0dacc39b71b0397c9fe8da93 100644
index afcc518ff50066e846e9b1a79cb99dc25cac4f24..90b6d5e4495526dd8d623443ae8cc3c0ee072734 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -186,6 +186,7 @@ import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
@@ -24,7 +24,7 @@ index afcc518ff50066e846e9b1a79cb99dc25cac4f24..02e1b6725f0129bb0dacc39b71b0397c
+ // Leaves start - nether portal fix
+ if (top.leavesmc.leaves.LeavesConfig.netherPortalFix) {
+ final ResourceKey<Level> fromDim = worldserver1.dimension();
+ final ResourceKey<Level> toDim = getLevel().dimension();
+ final ResourceKey<Level> toDim = level().dimension();
+ final ResourceKey<Level> OVERWORLD = Level.OVERWORLD;
+ final ResourceKey<Level> THE_NETHER = Level.NETHER;
+ if (!((fromDim != OVERWORLD || toDim != THE_NETHER) && (fromDim != THE_NETHER || toDim != OVERWORLD))) {
@@ -49,8 +49,8 @@ index afcc518ff50066e846e9b1a79cb99dc25cac4f24..02e1b6725f0129bb0dacc39b71b0397c
+ // Leaves start - nether portal fix
+ if (top.leavesmc.leaves.LeavesConfig.netherPortalFix) {
+ BlockPos fromPos = blockPosition();
+ final ResourceKey<Level> fromDim = level.dimension();
+ final ResourceKey<Level> toDim = level.dimension();
+ final ResourceKey<Level> fromDim = level().dimension();
+ final ResourceKey<Level> toDim = level().dimension();
+ final ResourceKey<Level> OVERWORLD = Level.OVERWORLD;
+ final ResourceKey<Level> THE_NETHER = Level.NETHER;
+ boolean isTeleportBetweenNetherAndOverworld = (fromDim == OVERWORLD && toDim == THE_NETHER)