9
0
mirror of https://github.com/LeavesMC/Leaves.git synced 2025-12-19 14:59:32 +00:00

feat: temp merge

This commit is contained in:
MC_XiaoHei
2025-09-25 15:54:57 +08:00
parent 114c92430b
commit c3b0b6dff7
100 changed files with 822 additions and 809 deletions

View File

@@ -2368,7 +2368,7 @@ index 5753b9bce89db2ac378ec41f1b61907cc2e23335..00000000000000000000000000000000
-}
diff --git a/src/main/java/co/aikar/util/LoadingMap.java b/src/main/java/co/aikar/util/LoadingMap.java
deleted file mode 100644
index 1786eeb5cbeaad75602c9c5649bbcd9b2af5cf81..0000000000000000000000000000000000000000
index 207b6853a0cb0185492b62c0c5d9602d48b7959c..0000000000000000000000000000000000000000
--- a/src/main/java/co/aikar/util/LoadingMap.java
+++ /dev/null
@@ -1,369 +0,0 @@
@@ -2456,9 +2456,9 @@ index 1786eeb5cbeaad75602c9c5649bbcd9b2af5cf81..00000000000000000000000000000000
- /**
- * Creates a LoadingMap with an auto instantiating loader.
- *
- * Will auto construct class of of Value when not found
- * Will auto construct class of Value when not found
- *
- * Since this uses Reflection, It is more effecient to define your own static loader
- * Since this uses Reflection, It is more efficient to define your own static loader
- * than using this helper, but if performance is not critical, this is easier.
- *
- * @param backingMap Actual map being used.
@@ -2476,9 +2476,9 @@ index 1786eeb5cbeaad75602c9c5649bbcd9b2af5cf81..00000000000000000000000000000000
- /**
- * Creates a LoadingMap with an auto instantiating loader.
- *
- * Will auto construct class of of Value when not found
- * Will auto construct class of Value when not found
- *
- * Since this uses Reflection, It is more effecient to define your own static loader
- * Since this uses Reflection, It is more efficient to define your own static loader
- * than using this helper, but if performance is not critical, this is easier.
- *
- * @param backingMap Actual map being used.
@@ -2860,7 +2860,7 @@ index 3e61a926620a67daec3af54b72a1b911eaef2ed4..00000000000000000000000000000000
- }
-}
diff --git a/src/main/java/org/bukkit/command/Command.java b/src/main/java/org/bukkit/command/Command.java
index 27a7c69f23084e821d945d5e97e51a94ddd94e58..d645ee8470a2dd9f7b8eff2b7ff2211aba9c342f 100644
index e387ba67f0b6cde8ee2be7acba8f791792802ad4..06402e9d811b62ea59c67ecbffe9272c73f2040d 100644
--- a/src/main/java/org/bukkit/command/Command.java
+++ b/src/main/java/org/bukkit/command/Command.java
@@ -32,16 +32,6 @@ public abstract class Command {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add fakeplayer api
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
index 3bde4ad79ade5aae18e9073307f637717e8dd9e3..9971ed1347f0f37800911c6cd9d0f8ae1a4f100c 100644
index 14d81c7b138ebf999d5812d26fbf869209c100f3..3b0513fbbf46e7cbb1790264eebaed9862d48eb5 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
@@ -3016,4 +3016,15 @@ public final class Bukkit {
@@ -3003,4 +3003,15 @@ public final class Bukkit {
public static void restart() {
server.restart();
}
@@ -25,10 +25,10 @@ index 3bde4ad79ade5aae18e9073307f637717e8dd9e3..9971ed1347f0f37800911c6cd9d0f8ae
+ // Leaves end - Bot API
}
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
index 9bab00ab10c78908090c8a1a12d4c84e9324b08b..3e7aad4ddf573f7c868b7824c4f0f34fa08cb1fe 100644
index 964b57bb240151ddf4f11c203b67e8be6469e473..865842a857e5371bd82133a018582c7b88566403 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
@@ -2723,4 +2723,13 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
@@ -2760,4 +2760,13 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
*/
void allowPausing(@NotNull org.bukkit.plugin.Plugin plugin, boolean value);
// Paper end - API to check if the server is sleeping

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Replay Mod API
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
index 9971ed1347f0f37800911c6cd9d0f8ae1a4f100c..803611b793daed2d51ef6ab34d01fc8b0a3ecd23 100644
index 3b0513fbbf46e7cbb1790264eebaed9862d48eb5..44ee8036e2f813e947c2c166e1876030cabf86ff 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
@@ -3027,4 +3027,10 @@ public final class Bukkit {
@@ -3014,4 +3014,10 @@ public final class Bukkit {
return server.getBotManager();
}
// Leaves end - Bot API
@@ -20,10 +20,10 @@ index 9971ed1347f0f37800911c6cd9d0f8ae1a4f100c..803611b793daed2d51ef6ab34d01fc8b
+ // Leaves end - Photographer API
}
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
index 3e7aad4ddf573f7c868b7824c4f0f34fa08cb1fe..ce128dd8120b75884cb208d7ba7d316ee110333b 100644
index 865842a857e5371bd82133a018582c7b88566403..74f704d4245199205afff5a992805f40a365cc81 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
@@ -2732,4 +2732,8 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
@@ -2769,4 +2769,8 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
*/
@NotNull org.leavesmc.leaves.entity.bot.BotManager getBotManager();
// Leaves end - Bot API

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Bytebuf API
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
index 803611b793daed2d51ef6ab34d01fc8b0a3ecd23..0149af5bd4234f925e12d78251766be5a16e5060 100644
index 44ee8036e2f813e947c2c166e1876030cabf86ff..c25729882f87a904e59680967f3d20b02df50eae 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
@@ -3033,4 +3033,10 @@ public final class Bukkit {
@@ -3020,4 +3020,10 @@ public final class Bukkit {
return server.getPhotographerManager();
}
// Leaves end - Photographer API
@@ -20,10 +20,10 @@ index 803611b793daed2d51ef6ab34d01fc8b0a3ecd23..0149af5bd4234f925e12d78251766be5
+ // Leaves end - Bytebuf API
}
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
index ce128dd8120b75884cb208d7ba7d316ee110333b..e63fb4e0c55929f2721e16f69e0c0a4b455477fa 100644
index 74f704d4245199205afff5a992805f40a365cc81..9f9051214c81e1fc4a6f1a0b0d18ea98bdf2fe92 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
@@ -2736,4 +2736,8 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
@@ -2773,4 +2773,8 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
// Leaves start - Photographer API
@NotNull org.leavesmc.leaves.entity.photographer.PhotographerManager getPhotographerManager();
// Leaves end - Photographer API
@@ -33,10 +33,10 @@ index ce128dd8120b75884cb208d7ba7d316ee110333b..e63fb4e0c55929f2721e16f69e0c0a4b
+ // Leaves end - Bytebuf API
}
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 3584ca0a89f59e391ab6d5be8f2274a6801d025f..4171ac88c491c071af9def920084292e108587f0 100644
index 25c6779582284e793366401ee60d03143d36e8a1..6b63bd1d7d35351af82be8b40228fc3e6a3637f6 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -3859,6 +3859,12 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -3930,6 +3930,12 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
boolean isChunkSent(long chunkKey);
// Paper end

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Leaves Config API
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
index 0149af5bd4234f925e12d78251766be5a16e5060..3c019280bc751e0710f1d34478b56986bc6000fc 100644
index c25729882f87a904e59680967f3d20b02df50eae..5cc913f9e903ea5ef51c2e2b8cc18fdad8838c1e 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
@@ -3039,4 +3039,10 @@ public final class Bukkit {
@@ -3026,4 +3026,10 @@ public final class Bukkit {
return server.getBytebufManager();
}
// Leaves end - Bytebuf API
@@ -20,10 +20,10 @@ index 0149af5bd4234f925e12d78251766be5a16e5060..3c019280bc751e0710f1d34478b56986
+ // Leaves end - Config API
}
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
index e63fb4e0c55929f2721e16f69e0c0a4b455477fa..37ff5eabaf0fd3ab72eb37a1f21904b5a1adebe0 100644
index 9f9051214c81e1fc4a6f1a0b0d18ea98bdf2fe92..95621c3b4279f4d1b7786772cc035f3747e9d84f 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
@@ -2740,4 +2740,8 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
@@ -2777,4 +2777,8 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
// Leaves start - Bytebuf API
org.leavesmc.leaves.bytebuf.BytebufManager getBytebufManager();
// Leaves end - Bytebuf API

View File

@@ -6,10 +6,10 @@ Subject: [PATCH] Leaves Plugin
This patch is licensed under the MIT license.
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
index 6c7a84baee27bd1e1ab95fe3a84057b8109c78d1..195a63c86c565ea0a1672138b9d217abaa0258ad 100644
index 5cc913f9e903ea5ef51c2e2b8cc18fdad8838c1e..554b8977c9b358f177e29907bcebaed8ab2100fc 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
@@ -3017,6 +3017,12 @@ public final class Bukkit {
@@ -3004,6 +3004,12 @@ public final class Bukkit {
server.restart();
}
@@ -23,10 +23,10 @@ index 6c7a84baee27bd1e1ab95fe3a84057b8109c78d1..195a63c86c565ea0a1672138b9d217ab
/**
* Returns a bot manager.
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
index 8aa35daa8c80d90c4e863902a4db85175885cfe8..6e0d00d3d7220cacac781b010dac4212c64d5b08 100644
index 95621c3b4279f4d1b7786772cc035f3747e9d84f..cdc5295db1dbbd4b20a0acc99fdcc9013d6a5489 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
@@ -2724,6 +2724,10 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
@@ -2761,6 +2761,10 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
void allowPausing(@NotNull org.bukkit.plugin.Plugin plugin, boolean value);
// Paper end - API to check if the server is sleeping

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Build changes
diff --git a/ca/spottedleaf/moonrise/paper/PaperHooks.java b/ca/spottedleaf/moonrise/paper/PaperHooks.java
index 42899a91b9061b85985fbbd0de4032c757f4aa8f..a93f00d1a64e4deb9b89435bab258f3bad487e2f 100644
index 4b87e48309323faee2bf5cc65428a28d8646ef7a..d129f160acf0da81cadeacab9587d86dcc49dc6a 100644
--- a/ca/spottedleaf/moonrise/paper/PaperHooks.java
+++ b/ca/spottedleaf/moonrise/paper/PaperHooks.java
@@ -29,7 +29,7 @@ import net.minecraft.world.phys.AABB;
@@ -18,10 +18,10 @@ index 42899a91b9061b85985fbbd0de4032c757f4aa8f..a93f00d1a64e4deb9b89435bab258f3b
private static final org.slf4j.Logger LOGGER = com.mojang.logging.LogUtils.getLogger();
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
index 9243bb11e3f968d0bf0eb2e3dc9295c0232bc15d..9ba90e9e1c6dae13579337edb5a5bede0daa4098 100644
index f0e16de0cd2e5794c0a86b54979d9ac043c704df..68fddcab51a72af0548cd845ab07569c2ffc5957 100644
--- a/net/minecraft/server/MinecraftServer.java
+++ b/net/minecraft/server/MinecraftServer.java
@@ -1194,7 +1194,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1126,7 +1126,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
LOGGER.info("*************************************************************************************");
LOGGER.info("This is the first time you're starting this server.");
LOGGER.info("It's recommended you read our 'Getting Started' documentation for guidance.");
@@ -30,7 +30,7 @@ index 9243bb11e3f968d0bf0eb2e3dc9295c0232bc15d..9ba90e9e1c6dae13579337edb5a5bede
LOGGER.info("*************************************************************************************");
}
// Paper end - Add onboarding message for initial server start
@@ -1856,7 +1856,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1800,7 +1800,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@DontObfuscate
public String getServerModName() {
@@ -40,16 +40,16 @@ index 9243bb11e3f968d0bf0eb2e3dc9295c0232bc15d..9ba90e9e1c6dae13579337edb5a5bede
public SystemReport fillSystemReport(SystemReport systemReport) {
diff --git a/net/minecraft/server/dedicated/DedicatedServer.java b/net/minecraft/server/dedicated/DedicatedServer.java
index 98927d4a5fba2a0dcdb147ac10b82c3286ccdc6b..461dc90ac9ae7f9af693653bc56a8cf448b7823e 100644
index 9b3894ec6d458a8d7ed8078fb51193c5dfa1641c..147be1e79b36283d9eb8d0b93d0ca1dc2e73c185 100644
--- a/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/net/minecraft/server/dedicated/DedicatedServer.java
@@ -182,9 +182,10 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
@@ -275,11 +275,17 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
thread.start(); // Paper - Enhance console tab completions for brigadier commands; start console thread after MinecraftServer.console & PaperConfig are initialized
io.papermc.paper.command.PaperCommands.registerCommands(this); // Paper - setup /paper command
this.server.spark.registerCommandBeforePlugins(this.server); // Paper - spark
- com.destroystokyo.paper.Metrics.PaperMetrics.startMetrics(); // Paper - start metrics
com.destroystokyo.paper.VersionHistoryManager.INSTANCE.getClass(); // Paper - load version history now
+ com.destroystokyo.paper.Metrics.PaperMetrics.startMetrics(); // Paper - start metrics // Leaves - down
+
this.setPvpAllowed(properties.pvp);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Leaves Server Config And Command
diff --git a/net/minecraft/server/dedicated/DedicatedServer.java b/net/minecraft/server/dedicated/DedicatedServer.java
index c22234df51a61954d1728b8406545f753dd8a3c2..d4775a33ee63a61e15ec3c1051261c01f2af28e0 100644
index 147be1e79b36283d9eb8d0b93d0ca1dc2e73c185..4f0f0a6f8c8a3dd95213ce9148c2093010b440d9 100644
--- a/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/net/minecraft/server/dedicated/DedicatedServer.java
@@ -184,6 +184,8 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
@@ -277,6 +277,8 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
this.server.spark.registerCommandBeforePlugins(this.server); // Paper - spark
com.destroystokyo.paper.VersionHistoryManager.INSTANCE.getClass(); // Paper - load version history now

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Leaves Utils
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
index 70b6ea8ab35e88989b5b1f5ffd64490a9d743b56..ea616ff83c14dd582bdb49442bc0b9103fc8f1b3 100644
index 2d74876cd072e0fd0380bc53ed34da1cb1bc3a29..fd9621f05aca61a92cb7d2859acef73ed3ef8861 100644
--- a/net/minecraft/world/entity/Entity.java
+++ b/net/minecraft/world/entity/Entity.java
@@ -372,6 +372,8 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -374,6 +374,8 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name
public boolean isTemporarilyActive;
public long activatedImmunityTick = Integer.MIN_VALUE;
@@ -17,7 +17,7 @@ index 70b6ea8ab35e88989b5b1f5ffd64490a9d743b56..ea616ff83c14dd582bdb49442bc0b910
public void inactiveTick() {
}
// Paper end - EAR 2
@@ -2585,6 +2587,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -2637,6 +2639,7 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name
output.putBoolean("Paper.FreezeLock", true);
}
// Paper end
@@ -25,7 +25,7 @@ index 70b6ea8ab35e88989b5b1f5ffd64490a9d743b56..ea616ff83c14dd582bdb49442bc0b910
} catch (Throwable var7) {
CrashReport crashReport = CrashReport.forThrowable(var7, "Saving entity NBT");
CrashReportCategory crashReportCategory = crashReport.addCategory("Entity being saved");
@@ -2705,6 +2708,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -2757,6 +2760,7 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name
}
freezeLocked = input.getBooleanOr("Paper.FreezeLock", false);
// Paper end
@@ -33,16 +33,16 @@ index 70b6ea8ab35e88989b5b1f5ffd64490a9d743b56..ea616ff83c14dd582bdb49442bc0b910
} catch (Throwable var7) {
CrashReport crashReport = CrashReport.forThrowable(var7, "Loading entity NBT");
CrashReportCategory crashReportCategory = crashReport.addCategory("Entity being loaded");
@@ -4422,7 +4426,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
return SlotAccess.NULL;
@@ -4541,7 +4545,7 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name
return this.getType().is(EntityTypeTags.DEFLECTS_PROJECTILES) ? ProjectileDeflection.REVERSE : ProjectileDeflection.NONE;
}
- @Nullable
+ @org.jetbrains.annotations.NotNull // Leaves - notnull
public MinecraftServer getServer() {
return this.level().getServer();
public net.minecraft.world.entity.LivingEntity getControllingPassenger() {
return null;
}
@@ -5364,4 +5368,9 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -5441,4 +5445,9 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name
return ((ServerLevel) this.level()).isPositionEntityTicking(this.blockPosition());
}
// Paper end - Expose entity id counter
@@ -53,10 +53,10 @@ index 70b6ea8ab35e88989b5b1f5ffd64490a9d743b56..ea616ff83c14dd582bdb49442bc0b910
+ // Leaves end - leaves ex data
}
diff --git a/net/minecraft/world/level/Level.java b/net/minecraft/world/level/Level.java
index c41df4b1fff1f65532256e835dc30fadbb4f8c8b..9383d9f940163f42db8802f0a260925a83119160 100644
index a0cc94561c77b5e20b9dcee3190fe26cdaf55036..b6ec576ecc6f7924ee5f039ddacaf7195f02fef7 100644
--- a/net/minecraft/world/level/Level.java
+++ b/net/minecraft/world/level/Level.java
@@ -962,7 +962,7 @@ public abstract class Level implements LevelAccessor, UUIDLookup<Entity>, AutoCl
@@ -915,7 +915,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl
return this.isClientSide;
}
@@ -66,7 +66,7 @@ index c41df4b1fff1f65532256e835dc30fadbb4f8c8b..9383d9f940163f42db8802f0a260925a
public MinecraftServer getServer() {
return null;
diff --git a/net/minecraft/world/level/LevelAccessor.java b/net/minecraft/world/level/LevelAccessor.java
index 5f28df24876f93866312c3c7d19cb6bcaf5e2f8b..049133cba588612127b45c1489f80d2fe6d6e330 100644
index 1c769bb3de2c3271db574e9cd81ccdfdb669e5f9..881d0b5dc336b15177fdad30af6584ee9feec4b1 100644
--- a/net/minecraft/world/level/LevelAccessor.java
+++ b/net/minecraft/world/level/LevelAccessor.java
@@ -46,7 +46,7 @@ public interface LevelAccessor extends CommonLevelAccessor, LevelTimeAccess, Sch
@@ -79,10 +79,10 @@ index 5f28df24876f93866312c3c7d19cb6bcaf5e2f8b..049133cba588612127b45c1489f80d2f
default Difficulty getDifficulty() {
diff --git a/net/minecraft/world/level/block/Block.java b/net/minecraft/world/level/block/Block.java
index be6f37f91569c659c609e5e8d38671ca86f8cd95..958914e40fceda5d67a98154817b4c5ce478a62d 100644
index 4fd746ccfd0018f5e551490e24aa68265d609295..57574f93763ab98a4bc109f56cfc3af08962a878 100644
--- a/net/minecraft/world/level/block/Block.java
+++ b/net/minecraft/world/level/block/Block.java
@@ -610,6 +610,13 @@ public class Block extends BlockBehaviour implements ItemLike {
@@ -649,6 +649,13 @@ public class Block extends BlockBehaviour implements ItemLike {
}
// CraftBukkit end
@@ -97,10 +97,10 @@ index be6f37f91569c659c609e5e8d38671ca86f8cd95..958914e40fceda5d67a98154817b4c5c
@Override
public boolean equals(Object other) {
diff --git a/net/minecraft/world/level/block/state/BlockBehaviour.java b/net/minecraft/world/level/block/state/BlockBehaviour.java
index 834e27ef2f7b342b074ff9e1e390e02f3ca1c399..be66f0f1cb1b0bcec8f9489a1fdd8777df1adb6b 100644
index dff1c4fa389d5168bd9ec1aff4c7e4bc63c4110e..ad0a833bd86cc46c700032ae66b97c11b7b707ba 100644
--- a/net/minecraft/world/level/block/state/BlockBehaviour.java
+++ b/net/minecraft/world/level/block/state/BlockBehaviour.java
@@ -763,7 +763,7 @@ public abstract class BlockBehaviour implements FeatureElement {
@@ -766,7 +766,7 @@ public abstract class BlockBehaviour implements FeatureElement {
}
public PushReaction getPistonPushReaction() {

View File

@@ -33,10 +33,10 @@ index fb263fa1f30a7dfcb7ec2656abfb38e5fe88eac9..56fd1ed7ccaf96e7eedea60fbdbf7f93
};
}
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
index 9ba90e9e1c6dae13579337edb5a5bede0daa4098..eb6d5e82b6a2576af14c0c080a05a87022f90c93 100644
index 68fddcab51a72af0548cd845ab07569c2ffc5957..8ecf53977841396693ab01d7897c24b67fe9b5cb 100644
--- a/net/minecraft/server/MinecraftServer.java
+++ b/net/minecraft/server/MinecraftServer.java
@@ -1745,6 +1745,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1685,6 +1685,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
profilerFiller.popPush("server gui refresh");
@@ -46,10 +46,10 @@ index 9ba90e9e1c6dae13579337edb5a5bede0daa4098..eb6d5e82b6a2576af14c0c080a05a870
this.tickables.get(i).run();
}
diff --git a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
index f02800e4e941b05bde6f0d5fac76e2b6ec5b9832..7a7090a2a7b41762d94cebf847cc6a795c9bc862 100644
index c6db2c96db96453daaf49779f588f75f7c3d3d60..adb26ae4dfd5dc111cc55000b71c15f95239b090 100644
--- a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
+++ b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
@@ -57,6 +57,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
@@ -58,6 +58,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
public @Nullable String playerBrand;
public final java.util.Set<String> pluginMessagerChannels;
// Paper end - retain certain values
@@ -57,7 +57,7 @@ index f02800e4e941b05bde6f0d5fac76e2b6ec5b9832..7a7090a2a7b41762d94cebf847cc6a79
public ServerCommonPacketListenerImpl(MinecraftServer server, Connection connection, CommonListenerCookie cookie) {
this.server = server;
@@ -70,6 +71,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
@@ -71,6 +72,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
this.pluginMessagerChannels = cookie.channels();
this.keepAlive = cookie.keepAlive();
// Paper end
@@ -65,7 +65,7 @@ index f02800e4e941b05bde6f0d5fac76e2b6ec5b9832..7a7090a2a7b41762d94cebf847cc6a79
}
// Paper start - configuration phase API
@@ -149,6 +151,18 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
@@ -150,6 +152,18 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
@Override
public void handleCustomPayload(ServerboundCustomPayloadPacket packet) {
@@ -84,7 +84,7 @@ index f02800e4e941b05bde6f0d5fac76e2b6ec5b9832..7a7090a2a7b41762d94cebf847cc6a79
// Paper start
if (!(packet.payload() instanceof final net.minecraft.network.protocol.common.custom.DiscardedPayload discardedPayload)) {
return;
@@ -208,10 +222,11 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
@@ -209,10 +223,11 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
final String channel = new String(data, from, length, java.nio.charset.StandardCharsets.US_ASCII);
if (register) {
bridge.addChannel(channel);
@@ -97,7 +97,7 @@ index f02800e4e941b05bde6f0d5fac76e2b6ec5b9832..7a7090a2a7b41762d94cebf847cc6a79
}
@Override
@@ -379,9 +394,9 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
@@ -380,9 +395,9 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
net.minecraft.server.level.ServerPlayer player = serverGamePacketListener.player;
org.bukkit.event.player.PlayerKickEvent.Cause cause = disconnectionDetails.disconnectionReason().orElseThrow().game().orElse(org.bukkit.event.player.PlayerKickEvent.Cause.UNKNOWN);
org.bukkit.event.player.PlayerKickEvent event = new org.bukkit.event.player.PlayerKickEvent(
@@ -110,7 +110,7 @@ index f02800e4e941b05bde6f0d5fac76e2b6ec5b9832..7a7090a2a7b41762d94cebf847cc6a79
);
@@ -414,10 +429,10 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
@@ -415,10 +430,10 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
private void disconnect0(DisconnectionDetails disconnectionDetails) {
this.connection
@@ -126,19 +126,19 @@ index f02800e4e941b05bde6f0d5fac76e2b6ec5b9832..7a7090a2a7b41762d94cebf847cc6a79
this.connection.setReadOnly();
// CraftBukkit - Don't wait
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
index e1fd699b33832c0f01b14023db7cc2b9d6797227..e064fd73a3904bf6aeb6ba38978cfea81e79e5dc 100644
index 9d7be1695f797c2c041d21a8326aeea46b0488d7..080f4e97422a8499923351e47c9e57e4dda203bd 100644
--- a/net/minecraft/server/players/PlayerList.java
+++ b/net/minecraft/server/players/PlayerList.java
@@ -335,6 +335,8 @@ public abstract class PlayerList {
return;
}
@@ -238,6 +238,8 @@ public abstract class PlayerList {
return;
}
+ org.leavesmc.leaves.protocol.core.LeavesProtocolManager.handlePlayerJoin(player);
+
final net.kyori.adventure.text.Component jm = playerJoinEvent.joinMessage();
final net.kyori.adventure.text.Component jm = playerJoinEvent.joinMessage();
if (jm != null && !jm.equals(net.kyori.adventure.text.Component.empty())) { // Paper - Adventure
@@ -507,6 +509,7 @@ public abstract class PlayerList {
if (jm != null && !jm.equals(net.kyori.adventure.text.Component.empty())) { // Paper - Adventure
@@ -423,6 +425,7 @@ public abstract class PlayerList {
return this.remove(player, net.kyori.adventure.text.Component.translatable("multiplayer.player.left", net.kyori.adventure.text.format.NamedTextColor.YELLOW, io.papermc.paper.configuration.GlobalConfiguration.get().messages.useDisplayNameInQuitMessage ? player.getBukkitEntity().displayName() : io.papermc.paper.adventure.PaperAdventure.asAdventure(player.getDisplayName())));
}
public @Nullable net.kyori.adventure.text.Component remove(ServerPlayer player, net.kyori.adventure.text.Component leaveMessage) {
@@ -146,7 +146,7 @@ index e1fd699b33832c0f01b14023db7cc2b9d6797227..e064fd73a3904bf6aeb6ba38978cfea8
// Paper end - Fix kick event leave message not being sent
ServerLevel serverLevel = player.level();
player.awardStat(Stats.LEAVE_GAME);
@@ -1396,6 +1399,7 @@ public abstract class PlayerList {
@@ -1331,6 +1334,7 @@ public abstract class PlayerList {
serverPlayer.connection.send(clientboundUpdateRecipesPacket);
serverPlayer.getRecipeBook().sendInitialRecipeBook(serverPlayer);
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Configurable trading with the void
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
index dda8d38ef61672cc714d9e5a475f9b0412ed5ff9..364d5e28646ea341034921622354c7b19644b343 100644
index 442a19b07542226c1cabceacbccbd34177b5f126..d34f60bea2a607714e601c2718e8028ae7cf02d5 100644
--- a/net/minecraft/server/level/ServerLevel.java
+++ b/net/minecraft/server/level/ServerLevel.java
@@ -2727,7 +2727,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -2793,7 +2793,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
// Spigot start
if (entity.getBukkitEntity() instanceof org.bukkit.inventory.InventoryHolder && (!(entity instanceof ServerPlayer) || entity.getRemovalReason() != Entity.RemovalReason.KILLED)) { // SPIGOT-6876: closeInventory clears death message
// Paper start - Fix merchant inventory not closing on entity removal
@@ -18,10 +18,10 @@ index dda8d38ef61672cc714d9e5a475f9b0412ed5ff9..364d5e28646ea341034921622354c7b1
}
// Paper end - Fix merchant inventory not closing on entity removal
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
index 91f505c9d84aba773d237664c2aaaf9750cadadf..184d116320f0cd3e9fba47a86e94e0a8424c913f 100644
index 080f4e97422a8499923351e47c9e57e4dda203bd..03ae88e05414a2e46d096e52039faabaf14d2b7f 100644
--- a/net/minecraft/server/players/PlayerList.java
+++ b/net/minecraft/server/players/PlayerList.java
@@ -551,7 +551,7 @@ public abstract class PlayerList {
@@ -467,7 +467,7 @@ public abstract class PlayerList {
player.stopRiding();
rootVehicle.getPassengersAndSelf().forEach(entity -> {
// Paper start - Fix villager boat exploit

View File

@@ -17,10 +17,10 @@ index a82d84283632342bd30bc3449983431ba43583e0..f59526f6bfa1b4af5b474f0b438513c9
Set<CriterionTrigger.Listener<T>> set = (Set) advancements.criterionData.get(this); // Paper - fix PlayerAdvancements leak
if (set != null && !set.isEmpty()) {
diff --git a/net/minecraft/network/Connection.java b/net/minecraft/network/Connection.java
index 41005f6b9f53a9c1125ad5e08538d9f5aacb3571..3e9b8c5fb2157f767de8bddc3e767512c5f7651f 100644
index c5b3f7544a968f835b13819cc61cfacf06af53a2..d36a33a9ea2cc262f746314eda9770e19e328ddd 100644
--- a/net/minecraft/network/Connection.java
+++ b/net/minecraft/network/Connection.java
@@ -96,7 +96,7 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
@@ -95,7 +95,7 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
@Nullable
private volatile PacketListener disconnectListener;
@Nullable
@@ -30,10 +30,10 @@ index 41005f6b9f53a9c1125ad5e08538d9f5aacb3571..3e9b8c5fb2157f767de8bddc3e767512
private DisconnectionDetails disconnectionDetails;
private boolean encrypted;
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
index eb6d5e82b6a2576af14c0c080a05a87022f90c93..5c49816db8241694eed640a34c056effbf382934 100644
index 8ecf53977841396693ab01d7897c24b67fe9b5cb..d78c566d282e3be1f793c3d8dbec56f6e3d92c4b 100644
--- a/net/minecraft/server/MinecraftServer.java
+++ b/net/minecraft/server/MinecraftServer.java
@@ -304,6 +304,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -311,6 +311,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
private final Set<String> pluginsBlockingSleep = new java.util.HashSet<>(); // Paper - API to allow/disallow tick sleeping
public static final long SERVER_INIT = System.nanoTime(); // Paper - Lag compensation
@@ -42,7 +42,7 @@ index eb6d5e82b6a2576af14c0c080a05a87022f90c93..5c49816db8241694eed640a34c056eff
public static <S extends MinecraftServer> S spin(Function<Thread, S> threadFunction) {
ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry.init(); // Paper - rewrite data converter system
AtomicReference<S> atomicReference = new AtomicReference<>();
@@ -996,6 +998,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -928,6 +930,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
LOGGER.info("Stopping server");
Commands.COMMAND_SENDING_POOL.shutdownNow(); // Paper - Perf: Async command map building; Shutdown and don't bother finishing
@@ -50,8 +50,8 @@ index eb6d5e82b6a2576af14c0c080a05a87022f90c93..5c49816db8241694eed640a34c056eff
// CraftBukkit start
if (this.server != null) {
this.server.spark.disable(); // Paper - spark
@@ -1493,7 +1496,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
int i = this.pauseWhileEmptySeconds() * 20;
@@ -1429,7 +1432,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
int i = this.pauseWhenEmptySeconds() * 20;
this.removeDisabledPluginsBlockingSleep(); // Paper - API to allow/disallow tick sleeping
if (i > 0) {
- if (this.playerList.getPlayerCount() == 0 && !this.tickRateManager.isSprinting() && this.pluginsBlockingSleep.isEmpty()) { // Paper - API to allow/disallow tick sleeping
@@ -59,7 +59,7 @@ index eb6d5e82b6a2576af14c0c080a05a87022f90c93..5c49816db8241694eed640a34c056eff
this.emptyTicks++;
} else {
this.emptyTicks = 0;
@@ -1763,6 +1766,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1712,6 +1715,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
public void tickConnection() {
this.getConnection().tick();
@@ -67,8 +67,8 @@ index eb6d5e82b6a2576af14c0c080a05a87022f90c93..5c49816db8241694eed640a34c056eff
}
private void synchronizeTime(ServerLevel level) {
@@ -2815,6 +2819,16 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
return 0;
@@ -2826,6 +2830,16 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
return this.debugSubscribers;
}
+ // Leaves start - fakeplayer
@@ -101,7 +101,7 @@ index fdeca41d40705f28864ce4443d01cd872c9d51b0..5c0e338dc1b0eb5724d10a73d6fc7975
AdvancementProgress orStartProgress = this.getOrStartProgress(advancement);
boolean isDone = orStartProgress.isDone();
diff --git a/net/minecraft/server/commands/BanIpCommands.java b/net/minecraft/server/commands/BanIpCommands.java
index bb5dbfeb6915a808d6f70e332bf9f0a3f9b7d19a..62f23d47b55eb59956d69153d508b5c9ab544adf 100644
index 79910948d3d835ac0eaec5785efbf87440dc5489..ad29caa0cd6e8b84760f9a19252d6d4f52f4227e 100644
--- a/net/minecraft/server/commands/BanIpCommands.java
+++ b/net/minecraft/server/commands/BanIpCommands.java
@@ -44,6 +44,12 @@ public class BanIpCommands {
@@ -118,35 +118,26 @@ index bb5dbfeb6915a808d6f70e332bf9f0a3f9b7d19a..62f23d47b55eb59956d69153d508b5c9
return banIp(source, playerByName.getIpAddress(), reason);
} else {
diff --git a/net/minecraft/server/commands/BanPlayerCommands.java b/net/minecraft/server/commands/BanPlayerCommands.java
index ac3ba9d0ea344fa189912d359b718fbe05e7aa49..61a4db144f721b47ac1000df72263bceb6e38ec0 100644
index ac88de89b4a66e17f25ed4d36d911dc5e84dc892..4ab56431509f3344d759ae31f70bda23cb1cef95 100644
--- a/net/minecraft/server/commands/BanPlayerCommands.java
+++ b/net/minecraft/server/commands/BanPlayerCommands.java
@@ -44,8 +44,16 @@ public class BanPlayerCommands {
private static int banPlayers(CommandSourceStack source, Collection<GameProfile> gameProfiles, @Nullable Component reason) throws CommandSyntaxException {
@@ -44,8 +44,15 @@ public class BanPlayerCommands {
private static int banPlayers(CommandSourceStack source, Collection<NameAndId> gameProfiles, @Nullable Component reason) throws CommandSyntaxException {
UserBanList bans = source.getServer().getPlayerList().getBans();
int i = 0;
-
+ boolean hasBot = false; // Leaves - disable kick
for (GameProfile gameProfile : gameProfiles) {
for (NameAndId nameAndId : gameProfiles) {
+ // Leaves start - disable ban
+ if (gameProfile instanceof org.leavesmc.leaves.bot.BotList.CustomGameProfile) {
+ if (nameAndId instanceof org.leavesmc.leaves.bot.BotList.CustomGameProfile) {
+ source.sendFailure(Component.literal("Permission denied"));
+ hasBot = true;
+ continue;
+ }
+ // Leaves end - disable ban
+ ServerPlayer player = source.getServer().getPlayerList().getPlayer(gameProfile.getId());
if (!bans.isBanned(gameProfile)) {
if (!bans.isBanned(nameAndId)) {
UserBanListEntry userBanListEntry = new UserBanListEntry(
gameProfile, null, source.getTextName(), null, reason == null ? null : reason.getString()
@@ -55,7 +63,6 @@ public class BanPlayerCommands {
source.sendSuccess(
() -> Component.translatable("commands.ban.success", Component.literal(gameProfile.getName()), userBanListEntry.getReason()), true
);
- ServerPlayer player = source.getServer().getPlayerList().getPlayer(gameProfile.getId());
if (player != null) {
player.connection.disconnect(Component.translatable("multiplayer.disconnect.banned"), org.bukkit.event.player.PlayerKickEvent.Cause.BANNED); // Paper - kick event cause
}
nameAndId, null, source.getTextName(), null, reason == null ? null : reason.getString()
@@ -63,7 +70,13 @@ public class BanPlayerCommands {
}
@@ -163,7 +154,7 @@ index ac3ba9d0ea344fa189912d359b718fbe05e7aa49..61a4db144f721b47ac1000df72263bce
return i;
}
diff --git a/net/minecraft/server/commands/KickCommand.java b/net/minecraft/server/commands/KickCommand.java
index 14e2e0fcf20c8fa875bbefb97a673be4928d099a..8af40a77dc3da1599da2793168488f88686b8785 100644
index a5e5b0e0cd67a65b9fe3f69416070429196c5fa8..1a756a09cd281e60e8802a4111f71b0be1c70dcf 100644
--- a/net/minecraft/server/commands/KickCommand.java
+++ b/net/minecraft/server/commands/KickCommand.java
@@ -46,9 +46,17 @@ public class KickCommand {
@@ -181,7 +172,7 @@ index 14e2e0fcf20c8fa875bbefb97a673be4928d099a..8af40a77dc3da1599da2793168488f88
+ continue;
+ }
+ // Leaves end - disable kick
if (!source.getServer().isSingleplayerOwner(serverPlayer.getGameProfile())) {
if (!source.getServer().isSingleplayerOwner(serverPlayer.nameAndId())) {
serverPlayer.connection.disconnect(reason, org.bukkit.event.player.PlayerKickEvent.Cause.KICK_COMMAND); // Paper - kick event cause
source.sendSuccess(() -> Component.translatable("commands.kick.success", serverPlayer.getDisplayName(), reason), true);
@@ -57,7 +65,13 @@ public class KickCommand {
@@ -200,22 +191,22 @@ index 14e2e0fcf20c8fa875bbefb97a673be4928d099a..8af40a77dc3da1599da2793168488f88
return i;
}
diff --git a/net/minecraft/server/commands/OpCommand.java b/net/minecraft/server/commands/OpCommand.java
index f2286b96b8f40b4588f817913c42ae7b4a92340f..e6c7bbb023000b9de90c1256274ff5aba4a6478a 100644
index 72e593966e66e27064030f5486f68a905885da1f..a1f0fb0f5532e39f4b12bfe40786a0eba1ffbaba 100644
--- a/net/minecraft/server/commands/OpCommand.java
+++ b/net/minecraft/server/commands/OpCommand.java
@@ -43,6 +43,7 @@ public class OpCommand {
int i = 0;
for (GameProfile gameProfile : gameProfiles) {
+ if (gameProfile instanceof org.leavesmc.leaves.bot.BotList.CustomGameProfile) continue; // Leaves - disable op
if (!playerList.isOp(gameProfile)) {
playerList.op(gameProfile);
for (NameAndId nameAndId : gameProfiles) {
+ if (nameAndId instanceof org.leavesmc.leaves.bot.BotList.CustomGameProfile) continue; // Leaves - disable op
if (!playerList.isOp(nameAndId)) {
playerList.op(nameAndId);
i++;
diff --git a/net/minecraft/server/dedicated/DedicatedServer.java b/net/minecraft/server/dedicated/DedicatedServer.java
index 414a8357a7498c69341fa634ada2e664e18ca03a..f85993fc507d699728e058b12bb49dcb7aaea44b 100644
index 4f0f0a6f8c8a3dd95213ce9148c2093010b440d9..a3a47b5ee911f48452d3521692373d331ce10db2 100644
--- a/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/net/minecraft/server/dedicated/DedicatedServer.java
@@ -162,6 +162,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
@@ -255,6 +255,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
}
// Spigot start
@@ -223,7 +214,7 @@ index 414a8357a7498c69341fa634ada2e664e18ca03a..f85993fc507d699728e058b12bb49dcb
this.setPlayerList(new DedicatedPlayerList(this, this.registries(), this.playerDataStorage));
org.spigotmc.SpigotConfig.init((java.io.File) this.options.valueOf("spigot-settings"));
org.spigotmc.SpigotConfig.registerCommands();
@@ -185,6 +186,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
@@ -278,6 +279,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
com.destroystokyo.paper.VersionHistoryManager.INSTANCE.getClass(); // Paper - load version history now
org.leavesmc.leaves.LeavesConfig.init((java.io.File) options.valueOf("leaves-settings")); // Leaves - Server Config
@@ -232,13 +223,13 @@ index 414a8357a7498c69341fa634ada2e664e18ca03a..f85993fc507d699728e058b12bb49dcb
com.destroystokyo.paper.Metrics.PaperMetrics.startMetrics(); // Paper - start metrics // Leaves - down
diff --git a/net/minecraft/server/level/ChunkMap.java b/net/minecraft/server/level/ChunkMap.java
index eb352aa4296abc3ed4cf31c590bc0be66daf4de3..019886669966c69936ae6591598c97a8afbfd3db 100644
index 48027c1869d851e47e3a39f228e4ce063bd0454d..9f315d6b20562e35b226ea3420b75db5a30b36e4 100644
--- a/net/minecraft/server/level/ChunkMap.java
+++ b/net/minecraft/server/level/ChunkMap.java
@@ -1317,6 +1317,13 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -1362,6 +1362,13 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
}
} else if (this.seenBy.remove(player.connection)) {
this.serverEntity.removePairing(player);
} else {
this.removePlayer(player);
+ // Leaves start - render bot
+ if (entity instanceof org.leavesmc.leaves.bot.ServerBot bot) {
+ if (bot.needSendFakeData(player)) {
@@ -250,10 +241,10 @@ index eb352aa4296abc3ed4cf31c590bc0be66daf4de3..019886669966c69936ae6591598c97a8
}
}
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
index 364d5e28646ea341034921622354c7b19644b343..c61c0b6d58f96955bfbdad0caaeb56f073a95181 100644
index d34f60bea2a607714e601c2718e8028ae7cf02d5..5ecbbd9174dae94e0a1964ad29566099f2f8a7e8 100644
--- a/net/minecraft/server/level/ServerLevel.java
+++ b/net/minecraft/server/level/ServerLevel.java
@@ -214,6 +214,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -222,6 +222,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
public boolean hasPhysicsEvent = true; // Paper - BlockPhysicsEvent
public boolean hasEntityMoveEvent; // Paper - Add EntityMoveEvent
private final alternate.current.wire.WireHandler wireHandler = new alternate.current.wire.WireHandler(this); // Paper - optimize redstone (Alternate Current)
@@ -261,7 +252,7 @@ index 364d5e28646ea341034921622354c7b19644b343..c61c0b6d58f96955bfbdad0caaeb56f0
@Override
public @Nullable LevelChunk getChunkIfLoaded(int x, int z) {
@@ -675,6 +676,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -692,6 +693,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
this.chunkDataController = new ca.spottedleaf.moonrise.patches.chunk_system.io.datacontroller.ChunkDataController((ServerLevel)(Object)this, this.chunkTaskScheduler);
// Paper end - rewrite chunk system
this.getCraftServer().addWorld(this.getWorld()); // CraftBukkit
@@ -269,7 +260,7 @@ index 364d5e28646ea341034921622354c7b19644b343..c61c0b6d58f96955bfbdad0caaeb56f0
}
// Paper start
@@ -2226,6 +2228,12 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -2282,6 +2284,12 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
return this.players;
}
@@ -282,7 +273,7 @@ index 364d5e28646ea341034921622354c7b19644b343..c61c0b6d58f96955bfbdad0caaeb56f0
@Override
public void updatePOIOnBlockStateChange(BlockPos pos, BlockState oldState, BlockState newState) {
Optional<Holder<PoiType>> optional = PoiTypes.forState(oldState);
@@ -2661,6 +2669,11 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -2727,6 +2735,11 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
// ServerLevel.this.getChunkSource().addEntity(entity); // Paper - ignore and warn about illegal addEntity calls instead of crashing server; moved down below valid=true
if (entity instanceof ServerPlayer serverPlayer) {
ServerLevel.this.players.add(serverPlayer);
@@ -294,7 +285,7 @@ index 364d5e28646ea341034921622354c7b19644b343..c61c0b6d58f96955bfbdad0caaeb56f0
if (serverPlayer.isReceivingWaypoints()) {
ServerLevel.this.getWaypointManager().addPlayer(serverPlayer);
}
@@ -2739,6 +2752,11 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -2805,6 +2818,11 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
ServerLevel.this.getChunkSource().removeEntity(entity);
if (entity instanceof ServerPlayer serverPlayer) {
ServerLevel.this.players.remove(serverPlayer);
@@ -307,10 +298,10 @@ index 364d5e28646ea341034921622354c7b19644b343..c61c0b6d58f96955bfbdad0caaeb56f0
ServerLevel.this.updateSleepingPlayerList();
}
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
index 8f94c963f2c59668d72d162f46f7505d6a6b06a5..87c8c4c7ca52f7d804ddaff87aaf381552e1aee2 100644
index 2a10190f00d406b4fc747ef207a399f6d3fa4c08..87181a351a1494038c391682781e4c9e0d46a795 100644
--- a/net/minecraft/server/level/ServerPlayer.java
+++ b/net/minecraft/server/level/ServerPlayer.java
@@ -219,7 +219,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
@@ -227,7 +227,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
private static final boolean DEFAULT_SPAWN_EXTRA_PARTICLES_ON_FALL = false;
public ServerGamePacketListenerImpl connection;
private final MinecraftServer server;
@@ -319,7 +310,7 @@ index 8f94c963f2c59668d72d162f46f7505d6a6b06a5..87c8c4c7ca52f7d804ddaff87aaf3815
private final PlayerAdvancements advancements;
private final ServerStatsCounter stats;
private float lastRecordedHealthAndAbsorption = Float.MIN_VALUE;
@@ -240,7 +240,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
@@ -248,7 +248,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
private Entity camera;
public boolean isChangingDimension;
public boolean seenCredits = false;
@@ -328,7 +319,7 @@ index 8f94c963f2c59668d72d162f46f7505d6a6b06a5..87c8c4c7ca52f7d804ddaff87aaf3815
@Nullable
private Vec3 levitationStartPos;
private int levitationStartTime;
@@ -1454,6 +1454,11 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
@@ -1565,6 +1565,11 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
this.lastSentHealth = -1.0F;
this.lastSentFood = -1;
this.teleportSpectators(teleportTransition, serverLevel);
@@ -340,48 +331,48 @@ index 8f94c963f2c59668d72d162f46f7505d6a6b06a5..87c8c4c7ca52f7d804ddaff87aaf3815
// CraftBukkit start
org.bukkit.event.player.PlayerChangedWorldEvent changeEvent = new org.bukkit.event.player.PlayerChangedWorldEvent(this.getBukkitEntity(), serverLevel.getWorld());
this.level().getCraftServer().getPluginManager().callEvent(changeEvent);
diff --git a/net/minecraft/server/players/GameProfileCache.java b/net/minecraft/server/players/GameProfileCache.java
index 066f84df5c31242ab542932f1e243369d0e766e2..52706e843923666940e679a83a302db7a243dd11 100644
--- a/net/minecraft/server/players/GameProfileCache.java
+++ b/net/minecraft/server/players/GameProfileCache.java
@@ -125,6 +125,12 @@ public class GameProfileCache {
// Paper end
diff --git a/net/minecraft/server/players/CachedUserNameToIdResolver.java b/net/minecraft/server/players/CachedUserNameToIdResolver.java
index c4c1274481cf2353c8af5c1feb697a1bcf0ce5f4..a358e6727c6952e902689d3521393eeb9686b425 100644
--- a/net/minecraft/server/players/CachedUserNameToIdResolver.java
+++ b/net/minecraft/server/players/CachedUserNameToIdResolver.java
@@ -121,6 +121,12 @@ public class CachedUserNameToIdResolver implements UserNameToIdResolver {
public Optional<GameProfile> get(String name) {
@Override
public Optional<NameAndId> get(String username) {
+ // Leaves start - fix bot
+ org.leavesmc.leaves.bot.ServerBot bot = org.leavesmc.leaves.bot.BotList.INSTANCE.getBotByName(name);
+ org.leavesmc.leaves.bot.ServerBot bot = org.leavesmc.leaves.bot.BotList.INSTANCE.getBotByName(username);
+ if (bot != null) {
+ return Optional.of(bot.getGameProfile());
+ return Optional.of(bot.nameAndId());
+ }
+ // Leaves end - fix bot
String string = name.toLowerCase(Locale.ROOT);
String string = username.toLowerCase(Locale.ROOT);
boolean stateLocked = true; try { this.stateLock.lock(); // Paper - Fix GameProfileCache concurrency
GameProfileCache.GameProfileInfo gameProfileInfo = this.profilesByName.get(string);
CachedUserNameToIdResolver.GameProfileInfo gameProfileInfo = this.profilesByName.get(string);
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
index 2dffdc770529e048c4e8df7d70de59c94d3a77be..1135d32f1f275306792b95d10f76ac233e265e0d 100644
index 03ae88e05414a2e46d096e52039faabaf14d2b7f..cf362c3c8b3018378173c7bf25e29fcb398a517a 100644
--- a/net/minecraft/server/players/PlayerList.java
+++ b/net/minecraft/server/players/PlayerList.java
@@ -337,6 +337,19 @@ public abstract class PlayerList {
@@ -240,6 +240,19 @@ public abstract class PlayerList {
org.leavesmc.leaves.protocol.core.LeavesProtocolManager.handlePlayerJoin(player);
+ // Leaves start - bot support
+ if (org.leavesmc.leaves.LeavesConfig.modify.fakeplayer.enable) {
+ org.leavesmc.leaves.bot.ServerBot bot = this.server.getBotList().getBotByName(player.getScoreboardName());
+ if (bot != null) {
+ this.server.getBotList().removeBot(bot, org.leavesmc.leaves.event.bot.BotRemoveEvent.RemoveReason.INTERNAL, player.getBukkitEntity(), false);
+ }
+ this.server.getBotList().bots.forEach(bot1 -> {
+ bot1.sendPlayerInfo(player);
+ bot1.sendFakeDataIfNeed(player, true);
+ }); // Leaves - render bot
+ // Leaves start - bot support
+ if (org.leavesmc.leaves.LeavesConfig.modify.fakeplayer.enable) {
+ org.leavesmc.leaves.bot.ServerBot bot = this.server.getBotList().getBotByName(player.getScoreboardName());
+ if (bot != null) {
+ this.server.getBotList().removeBot(bot, org.leavesmc.leaves.event.bot.BotRemoveEvent.RemoveReason.INTERNAL, player.getBukkitEntity(), false);
+ }
+ // Leaves end - bot support
+ this.server.getBotList().bots.forEach(bot1 -> {
+ bot1.sendPlayerInfo(player);
+ bot1.sendFakeDataIfNeed(player, true);
+ }); // Leaves - render bot
+ }
+ // Leaves end - bot support
+
final net.kyori.adventure.text.Component jm = playerJoinEvent.joinMessage();
final net.kyori.adventure.text.Component jm = playerJoinEvent.joinMessage();
if (jm != null && !jm.equals(net.kyori.adventure.text.Component.empty())) { // Paper - Adventure
@@ -827,6 +840,12 @@ public abstract class PlayerList {
if (jm != null && !jm.equals(net.kyori.adventure.text.Component.empty())) { // Paper - Adventure
@@ -745,6 +758,12 @@ public abstract class PlayerList {
}
// Paper end - Add PlayerPostRespawnEvent
@@ -394,7 +385,7 @@ index 2dffdc770529e048c4e8df7d70de59c94d3a77be..1135d32f1f275306792b95d10f76ac23
// CraftBukkit end
return serverPlayer;
@@ -931,11 +950,16 @@ public abstract class PlayerList {
@@ -848,11 +867,16 @@ public abstract class PlayerList {
}
public String[] getPlayerNamesArray() {
@@ -402,7 +393,7 @@ index 2dffdc770529e048c4e8df7d70de59c94d3a77be..1135d32f1f275306792b95d10f76ac23
+ String[] strings = new String[this.players.size() + this.server.getBotList().bots.size()]; // Leaves - fakeplayer support
for (int i = 0; i < this.players.size(); i++) {
strings[i] = this.players.get(i).getGameProfile().getName();
strings[i] = this.players.get(i).getGameProfile().name();
}
+ // Leaves start - fakeplayer support
+ for (int i = this.players.size(); i < strings.length; ++i) {
@@ -412,7 +403,7 @@ index 2dffdc770529e048c4e8df7d70de59c94d3a77be..1135d32f1f275306792b95d10f76ac23
return strings;
}
@@ -1038,7 +1062,14 @@ public abstract class PlayerList {
@@ -967,7 +991,14 @@ public abstract class PlayerList {
@Nullable
public ServerPlayer getPlayerByName(String username) {
@@ -428,7 +419,7 @@ index 2dffdc770529e048c4e8df7d70de59c94d3a77be..1135d32f1f275306792b95d10f76ac23
}
public void broadcast(@Nullable Player except, double x, double y, double z, double radius, ResourceKey<Level> dimension, Packet<?> packet) {
@@ -1354,7 +1385,13 @@ public abstract class PlayerList {
@@ -1278,7 +1309,13 @@ public abstract class PlayerList {
@Nullable
public ServerPlayer getPlayer(UUID playerUUID) {
@@ -442,7 +433,7 @@ index 2dffdc770529e048c4e8df7d70de59c94d3a77be..1135d32f1f275306792b95d10f76ac23
+ // Leaves start - fakeplayer support
}
public boolean canBypassPlayerLimit(GameProfile profile) {
@Nullable
diff --git a/net/minecraft/server/waypoints/ServerWaypointManager.java b/net/minecraft/server/waypoints/ServerWaypointManager.java
index f9e7532f86122a379692561a639a209a126e8bba..2412f46837e967694222730e68e7d25ac32225cf 100644
--- a/net/minecraft/server/waypoints/ServerWaypointManager.java
@@ -472,10 +463,10 @@ index f9e7532f86122a379692561a639a209a126e8bba..2412f46837e967694222730e68e7d25a
for (WaypointTransmitter waypointTransmitter : this.waypoints) {
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
index 541bd2361b094f04dc2705979204930c564f8323..05730869d237439d3988635d4c8b048a7b654ca7 100644
index fd9621f05aca61a92cb7d2859acef73ed3ef8861..6b380737fa5faa510b6c816fb0d8cba6563b7457 100644
--- a/net/minecraft/world/entity/Entity.java
+++ b/net/minecraft/world/entity/Entity.java
@@ -1173,7 +1173,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -1183,7 +1183,7 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name
BlockPos onPosLegacy = this.getOnPosLegacy();
BlockState blockState = this.level().getBlockState(onPosLegacy);
@@ -484,7 +475,7 @@ index 541bd2361b094f04dc2705979204930c564f8323..05730869d237439d3988635d4c8b048a
this.checkFallDamage(vec3.y, this.onGround(), blockState, onPosLegacy);
}
@@ -1487,7 +1487,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -1504,7 +1504,7 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name
}
// Paper start - optimise collisions
@@ -494,10 +485,10 @@ index 541bd2361b094f04dc2705979204930c564f8323..05730869d237439d3988635d4c8b048a
final boolean yZero = movement.y == 0.0;
final boolean zZero = movement.z == 0.0;
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
index 0268e02d2ef2cb3d699644a804e23a6da4521f4c..cc17fa4aa24d9fa258d61a74ba49c08979774698 100644
index 659657a489abeb2ded277cb26dbad5b3278f74e1..7d7b93cc9806c7a347df0dc557766b04612f3954 100644
--- a/net/minecraft/world/entity/LivingEntity.java
+++ b/net/minecraft/world/entity/LivingEntity.java
@@ -3117,7 +3117,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
@@ -3149,7 +3149,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
private void travelRidden(Player player, Vec3 travelVector) {
Vec3 riddenInput = this.getRiddenInput(player, travelVector);
this.tickRidden(player, riddenInput);
@@ -506,16 +497,16 @@ index 0268e02d2ef2cb3d699644a804e23a6da4521f4c..cc17fa4aa24d9fa258d61a74ba49c089
this.setSpeed(this.getRiddenSpeed(player));
this.travel(riddenInput);
} else {
@@ -3971,7 +3971,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
@@ -3998,7 +3998,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
// Paper start - lag compensate eating
// we add 1 to the expected time to avoid lag compensating when we should not
final boolean shouldLagCompensate = this.useItem.has(DataComponents.FOOD) && this.eatStartTime != -1 && (System.nanoTime() - this.eatStartTime) > ((1L + this.totalEatTimeTicks) * 50L * (1000L * 1000L));
- if ((--this.useItemRemaining == 0 || shouldLagCompensate) && !this.level().isClientSide && !usingItem.useOnRelease()) {
+ if ((--this.useItemRemaining == 0 || shouldLagCompensate) && !(this instanceof org.leavesmc.leaves.bot.ServerBot) && !this.level().isClientSide && !usingItem.useOnRelease()) { // Leaves - Fakeplayer skip this check
- if ((--this.useItemRemaining == 0 || shouldLagCompensate) && !this.level().isClientSide() && !usingItem.useOnRelease()) {
+ if ((--this.useItemRemaining == 0 || shouldLagCompensate) && !(this instanceof org.leavesmc.leaves.bot.ServerBot) && !this.level().isClientSide() && !usingItem.useOnRelease()) {
this.useItemRemaining = 0;
// Paper end - lag compensate eating
this.completeUsingItem();
@@ -4148,6 +4148,23 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
@@ -4175,6 +4175,23 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
this.stopUsingItem();
}
@@ -537,13 +528,13 @@ index 0268e02d2ef2cb3d699644a804e23a6da4521f4c..cc17fa4aa24d9fa258d61a74ba49c089
+ // Leaves end - Fakeplayer
+
public void stopUsingItem() {
if (!this.level().isClientSide) {
if (!this.level().isClientSide()) {
boolean isUsingItem = this.isUsingItem();
diff --git a/net/minecraft/world/entity/player/Player.java b/net/minecraft/world/entity/player/Player.java
index 8f4c45fbea2d7c1317aff36031bb834b07b23a82..8ec6f52f58bcc985fdc758a692798a35d6c86378 100644
index 14e8332cd07ebbd474015ad50abb191f4ad43b18..468097eafe73b45924697d36acc962b7bf9ca17b 100644
--- a/net/minecraft/world/entity/player/Player.java
+++ b/net/minecraft/world/entity/player/Player.java
@@ -205,7 +205,7 @@ public abstract class Player extends LivingEntity {
@@ -166,7 +166,7 @@ public abstract class Player extends Avatar implements ContainerUser {
private int lastLevelUpTime;
public GameProfile gameProfile;
private boolean reducedDebugInfo;
@@ -552,7 +543,7 @@ index 8f4c45fbea2d7c1317aff36031bb834b07b23a82..8ec6f52f58bcc985fdc758a692798a35
private final ItemCooldowns cooldowns = this.createItemCooldowns();
private Optional<GlobalPos> lastDeathLocation = Optional.empty();
@Nullable
@@ -372,6 +372,12 @@ public abstract class Player extends LivingEntity {
@@ -308,6 +308,12 @@ public abstract class Player extends Avatar implements ContainerUser {
}
}
@@ -565,8 +556,8 @@ index 8f4c45fbea2d7c1317aff36031bb834b07b23a82..8ec6f52f58bcc985fdc758a692798a35
@Override
protected float getMaxHeadRotationRelativeToBody() {
return this.isBlocking() ? 15.0F : super.getMaxHeadRotationRelativeToBody();
@@ -674,7 +680,7 @@ public abstract class Player extends LivingEntity {
}
@@ -536,7 +542,7 @@ public abstract class Player extends Avatar implements ContainerUser {
public void removeEntitiesOnShoulder() {
}
- private void touch(Entity entity) {
@@ -574,7 +565,7 @@ index 8f4c45fbea2d7c1317aff36031bb834b07b23a82..8ec6f52f58bcc985fdc758a692798a35
entity.playerTouch(this);
}
@@ -1299,7 +1305,7 @@ public abstract class Player extends LivingEntity {
@@ -1147,7 +1153,7 @@ public abstract class Player extends Avatar implements ContainerUser {
this.sweepAttack();
}
@@ -584,7 +575,7 @@ index 8f4c45fbea2d7c1317aff36031bb834b07b23a82..8ec6f52f58bcc985fdc758a692798a35
boolean cancelled = false;
org.bukkit.entity.Player player = (org.bukkit.entity.Player) target.getBukkitEntity();
diff --git a/net/minecraft/world/entity/projectile/FishingHook.java b/net/minecraft/world/entity/projectile/FishingHook.java
index 5f3abbe943be394e9cb987945a238208940b5015..8c139d572bd3c44b8e2b6205e28ab09f82c9abfe 100644
index 89767d2e8b2438db0f9bfe3504e637934725e995..0d761284b7d7bb8f4cb3919e1e8f216fb7c55f96 100644
--- a/net/minecraft/world/entity/projectile/FishingHook.java
+++ b/net/minecraft/world/entity/projectile/FishingHook.java
@@ -58,7 +58,7 @@ public class FishingHook extends Projectile {
@@ -597,10 +588,10 @@ index 5f3abbe943be394e9cb987945a238208940b5015..8c139d572bd3c44b8e2b6205e28ab09f
public int timeUntilHooked;
public float fishAngle;
diff --git a/net/minecraft/world/entity/vehicle/AbstractBoat.java b/net/minecraft/world/entity/vehicle/AbstractBoat.java
index df360ff06d10fc7f996055dce5148825539e9261..b67ae301db4ed3c45a08941f036dc48078a9f12a 100644
index 4e3cd5974a872212eab8df8671da12df749a40a6..62f3c73818673ca294499480a45c8d0f5d4e0943 100644
--- a/net/minecraft/world/entity/vehicle/AbstractBoat.java
+++ b/net/minecraft/world/entity/vehicle/AbstractBoat.java
@@ -271,6 +271,11 @@ public abstract class AbstractBoat extends VehicleEntity implements Leashable {
@@ -269,6 +269,11 @@ public abstract class AbstractBoat extends VehicleEntity implements Leashable {
}
this.move(MoverType.SELF, this.getDeltaMovement());
@@ -612,7 +603,7 @@ index df360ff06d10fc7f996055dce5148825539e9261..b67ae301db4ed3c45a08941f036dc480
} else {
this.setDeltaMovement(Vec3.ZERO);
}
@@ -381,6 +386,13 @@ public abstract class AbstractBoat extends VehicleEntity implements Leashable {
@@ -377,6 +382,13 @@ public abstract class AbstractBoat extends VehicleEntity implements Leashable {
}
}
@@ -662,10 +653,10 @@ index 06846950348954328c07f64cd9b3359e79a1a468..e1783ad0adbb791b2ff7441243c9f0ae
FeatureFlagSet featureFlagSet = player.level().enabledFeatures();
return carriedItem.isItemEnabled(featureFlagSet) && carriedItem.overrideStackedOnOther(slot, action, player)
diff --git a/net/minecraft/world/item/ItemStack.java b/net/minecraft/world/item/ItemStack.java
index da16f4831c875e07c25d7ed041bed493db614658..462e2e4173ea07811022838e4fb592ab5f65e653 100644
index 25bc90eb527547487fb5191dc135f2c6030f3a19..671216613df044fb47e728070490beabb008fb04 100644
--- a/net/minecraft/world/item/ItemStack.java
+++ b/net/minecraft/world/item/ItemStack.java
@@ -442,7 +442,7 @@ public final class ItemStack implements DataComponentHolder {
@@ -443,7 +443,7 @@ public final class ItemStack implements DataComponentHolder {
placeEvent = org.bukkit.craftbukkit.event.CraftEventFactory.callBlockPlaceEvent(serverLevel, player, hand, blocks.getFirst(), clickedPos);
}
@@ -674,7 +665,7 @@ index da16f4831c875e07c25d7ed041bed493db614658..462e2e4173ea07811022838e4fb592ab
interactionResult = InteractionResult.FAIL; // cancel placement
// PAIL: Remove this when MC-99075 fixed
player.containerMenu.forceHeldSlot(hand);
@@ -938,6 +938,20 @@ public final class ItemStack implements DataComponentHolder {
@@ -939,6 +939,20 @@ public final class ItemStack implements DataComponentHolder {
}
}
@@ -696,7 +687,7 @@ index da16f4831c875e07c25d7ed041bed493db614658..462e2e4173ea07811022838e4fb592ab
return this.getItem().useOnRelease(this);
}
diff --git a/net/minecraft/world/level/block/piston/PistonMovingBlockEntity.java b/net/minecraft/world/level/block/piston/PistonMovingBlockEntity.java
index f1ce4cff1c03a0037ade2c8ef989cf327c973a7e..0976aef81b950a062152094501372d00c20bb2b7 100644
index 564a8f9465c5768a6e9bbace4cc5ed580403cac2..e8f556f175bb9192445b9c464c6b587296ce8e1b 100644
--- a/net/minecraft/world/level/block/piston/PistonMovingBlockEntity.java
+++ b/net/minecraft/world/level/block/piston/PistonMovingBlockEntity.java
@@ -135,7 +135,7 @@ public class PistonMovingBlockEntity extends BlockEntity {
@@ -709,7 +700,7 @@ index f1ce4cff1c03a0037ade2c8ef989cf327c973a7e..0976aef81b950a062152094501372d00
double d1 = deltaMovement.x;
double d2 = deltaMovement.y;
diff --git a/net/minecraft/world/level/levelgen/PhantomSpawner.java b/net/minecraft/world/level/levelgen/PhantomSpawner.java
index b3cfab9c82fe12694f5d2f56bd922828e51df680..3d5f64f67c402d7a86fd8a8e79b9fc90e61548a8 100644
index 801a50ba4d202df0289339f26968e7f6bb9ca767..196f5dd260701d520cc8a037a896f34c87f74934 100644
--- a/net/minecraft/world/level/levelgen/PhantomSpawner.java
+++ b/net/minecraft/world/level/levelgen/PhantomSpawner.java
@@ -48,6 +48,11 @@ public class PhantomSpawner implements CustomSpawner {
@@ -738,10 +729,10 @@ index bef794c3f58c41d910aa0bcc63fbdeea7225fddf..a601da588e6973cc5b87d3e3eeba49b5
}
diff --git a/net/minecraft/world/level/storage/PlayerDataStorage.java b/net/minecraft/world/level/storage/PlayerDataStorage.java
index fe44d8d17d2622b3d6021c11579af85ef96737bb..0aae211dc2048f8cd14213c2a868394d1ed16070 100644
index 02f72bf880e2c162e94a9ebea32890cb25738758..1d660873c11f7e50ffe16d90e45bd86708ab3880 100644
--- a/net/minecraft/world/level/storage/PlayerDataStorage.java
+++ b/net/minecraft/world/level/storage/PlayerDataStorage.java
@@ -19,7 +19,7 @@ import net.minecraft.util.datafix.DataFixTypes;
@@ -20,7 +20,7 @@ import net.minecraft.util.datafix.DataFixTypes;
import net.minecraft.world.entity.player.Player;
import org.slf4j.Logger;

View File

@@ -5,12 +5,12 @@ Subject: [PATCH] Make shears in dispenser can unlimited use
diff --git a/net/minecraft/core/dispenser/ShearsDispenseItemBehavior.java b/net/minecraft/core/dispenser/ShearsDispenseItemBehavior.java
index b4a9be09452a889c228612a466b8925cb3768102..38442a054bbe87db8dcfab20147d19b2c758d225 100644
index 7d8f8ab3657e4a872e64176f89eca54d09c71ef1..6d3c6506ed82f24090496189402ff8946b960325 100644
--- a/net/minecraft/core/dispenser/ShearsDispenseItemBehavior.java
+++ b/net/minecraft/core/dispenser/ShearsDispenseItemBehavior.java
@@ -45,7 +45,7 @@ public class ShearsDispenseItemBehavior extends OptionalDispenseItemBehavior {
BlockPos blockPos = blockSource.pos().relative(blockSource.state().getValue(DispenserBlock.FACING));
this.setSuccess(tryShearBeehive(serverLevel, blockPos) || tryShearEntity(serverLevel, blockPos, item, bukkitBlock, craftItem)); // CraftBukkit
this.setSuccess(tryShearBeehive(serverLevel, item, blockPos) || tryShearEntity(serverLevel, blockPos, item, bukkitBlock, craftItem)); // CraftBukkit
if (this.isSuccess()) {
- item.hurtAndBreak(1, serverLevel, null, item1 -> {});
+ item.hurtAndBreak(1, serverLevel, null, item1 -> { if (org.leavesmc.leaves.LeavesConfig.modify.oldMC.shearsInDispenserCanZeroAmount) item.grow(1); }); // Leaves - Make shears in dispenser can unlimited use

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add isShrink to EntityResurrectEvent
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
index 1ba342a1a60951f828034d3ed535b577b3990bf6..7a7971ec03fcdf72ecaa1e934d5ab3c62113c251 100644
index 7d7b93cc9806c7a347df0dc557766b04612f3954..97e137825dd2c045cd376504eab0ace04d4846a1 100644
--- a/net/minecraft/world/entity/LivingEntity.java
+++ b/net/minecraft/world/entity/LivingEntity.java
@@ -1733,14 +1733,14 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
@@ -1741,14 +1741,14 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
}
final org.bukkit.inventory.EquipmentSlot handSlot = (hand != null) ? org.bukkit.craftbukkit.CraftEquipmentSlot.getHand(hand) : null;

View File

@@ -72,10 +72,10 @@ index 1df628ac0b414511aaed6e09d78f884c4170f730..b92081d70ffeec47c304e553ce1aea0a
}
}
diff --git a/net/minecraft/network/protocol/status/ServerStatus.java b/net/minecraft/network/protocol/status/ServerStatus.java
index a491be4250de3199c3e1aa9e5482b568692bd2f5..9844b19020ef6e4fa5a3008dcd768bb674657d2f 100644
index 88447fc2108126ccfad2fb7eb79ac94537f132d3..1bca4150c63da064bd2d1ee8f504f2ebbc9d96a0 100644
--- a/net/minecraft/network/protocol/status/ServerStatus.java
+++ b/net/minecraft/network/protocol/status/ServerStatus.java
@@ -20,7 +20,8 @@ public record ServerStatus(
@@ -19,7 +19,8 @@ public record ServerStatus(
Optional<ServerStatus.Players> players,
Optional<ServerStatus.Version> version,
Optional<ServerStatus.Favicon> favicon,
@@ -85,7 +85,7 @@ index a491be4250de3199c3e1aa9e5482b568692bd2f5..9844b19020ef6e4fa5a3008dcd768bb6
) {
public static final Codec<ServerStatus> CODEC = RecordCodecBuilder.create(
instance -> instance.group(
@@ -28,11 +29,18 @@ public record ServerStatus(
@@ -27,11 +28,18 @@ public record ServerStatus(
ServerStatus.Players.CODEC.lenientOptionalFieldOf("players").forGetter(ServerStatus::players),
ServerStatus.Version.CODEC.lenientOptionalFieldOf("version").forGetter(ServerStatus::version),
ServerStatus.Favicon.CODEC.lenientOptionalFieldOf("favicon").forGetter(ServerStatus::favicon),
@@ -106,10 +106,10 @@ index a491be4250de3199c3e1aa9e5482b568692bd2f5..9844b19020ef6e4fa5a3008dcd768bb6
private static final String PREFIX = "data:image/png;base64,";
public static final Codec<ServerStatus.Favicon> CODEC = Codec.STRING.comapFlatMap(string -> {
diff --git a/net/minecraft/server/dedicated/DedicatedServer.java b/net/minecraft/server/dedicated/DedicatedServer.java
index f85993fc507d699728e058b12bb49dcb7aaea44b..91babab6152bb12768399ef6f2ea6afcb5e644b7 100644
index a3a47b5ee911f48452d3521692373d331ce10db2..97b95b07d378c2159d123f918f80d7f86bcaed7a 100644
--- a/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/net/minecraft/server/dedicated/DedicatedServer.java
@@ -573,7 +573,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
@@ -787,7 +787,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
// Paper start - Add setting for proxy online mode status
return properties.enforceSecureProfile
&& io.papermc.paper.configuration.GlobalConfiguration.get().proxies.isProxyOnlineMode()
@@ -119,10 +119,10 @@ index f85993fc507d699728e058b12bb49dcb7aaea44b..91babab6152bb12768399ef6f2ea6afc
}
diff --git a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
index 2dd95aca955f19ce48be35b1ca9bcc94c3a1984d..e9d328dacdc23eea792ab350ec2ea9f8337ae008 100644
index adb26ae4dfd5dc111cc55000b71c15f95239b090..20b9dfe68dfbcd5bb999ee4ec0500bdf6bc7fdd5 100644
--- a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
+++ b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
@@ -322,10 +322,24 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
@@ -323,10 +323,24 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
}
public void send(Packet<?> packet) {
@@ -136,11 +136,11 @@ index 2dd95aca955f19ce48be35b1ca9bcc94c3a1984d..e9d328dacdc23eea792ab350ec2ea9f8
this.send(packet, null);
}
public void send(Packet<?> packet, @Nullable ChannelFutureListener channelFutureListener) {
public void send(Packet<?> packet, @Nullable ChannelFutureListener sendListener) {
+ // Leaves start - no ClientboundPlayerChatHeaderPacket and rebuild ClientboundPlayerChatPacket
+ if (org.leavesmc.leaves.LeavesConfig.mics.noChatSign) {
+ if (packet instanceof net.minecraft.network.protocol.game.ClientboundPlayerChatPacket && channelFutureListener != null) {
+ channelFutureListener = null;
+ if (packet instanceof net.minecraft.network.protocol.game.ClientboundPlayerChatPacket && sendListener != null) {
+ sendListener = null;
+ }
+ }
+ // Leaves end - no ClientboundPlayerChatHeaderPacket and rebuild ClientboundPlayerChatPacket
@@ -148,10 +148,10 @@ index 2dd95aca955f19ce48be35b1ca9bcc94c3a1984d..e9d328dacdc23eea792ab350ec2ea9f8
if (packet == null || this.processedDisconnect) { // Spigot
return;
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
index 1135d32f1f275306792b95d10f76ac233e265e0d..e59a4178100532a2a52b4242409a270ed62498f6 100644
index cf362c3c8b3018378173c7bf25e29fcb398a517a..f951ea1c6c2b63cc6b7f330cd3100adb507f8e54 100644
--- a/net/minecraft/server/players/PlayerList.java
+++ b/net/minecraft/server/players/PlayerList.java
@@ -1313,7 +1313,7 @@ public abstract class PlayerList {
@@ -1237,7 +1237,7 @@ public abstract class PlayerList {
}
public boolean verifyChatTrusted(PlayerChatMessage message) {

View File

@@ -6,10 +6,10 @@ Subject: [PATCH] Dont send useless entity packets
This patch is Powered by Purpur(https://github.com/PurpurMC/Purpur)
diff --git a/net/minecraft/server/level/ServerEntity.java b/net/minecraft/server/level/ServerEntity.java
index e96d4dee14c05f2fa329bfb1588ec795d4e3d730..f6b2d541fdfd11c6ff6033fbf4cd5153796634e3 100644
index 638432a2e6506d3db6a25c068a33eeafb13cf0d6..1099280bd8e28c167702b74041928f260695ba7c 100644
--- a/net/minecraft/server/level/ServerEntity.java
+++ b/net/minecraft/server/level/ServerEntity.java
@@ -200,6 +200,11 @@ public class ServerEntity {
@@ -188,6 +188,11 @@ public class ServerEntity {
} else if (flag) {
packet = new ClientboundMoveEntityPacket.Rot(this.entity.getId(), b, b1, this.entity.onGround());
flag4 = true;
@@ -21,7 +21,7 @@ index e96d4dee14c05f2fa329bfb1588ec795d4e3d730..f6b2d541fdfd11c6ff6033fbf4cd5153
}
} else {
packet = new ClientboundMoveEntityPacket.PosRot(this.entity.getId(), (short)l, (short)l1, (short)l2, b, b1, this.entity.onGround());
@@ -319,6 +324,21 @@ public class ServerEntity {
@@ -300,6 +305,21 @@ public class ServerEntity {
this.positionCodec.setBase(this.entity.position());
}

View File

@@ -6,19 +6,19 @@ Subject: [PATCH] Optimize suffocation
This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish)
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
index 7a7971ec03fcdf72ecaa1e934d5ab3c62113c251..f0ff74a4f2831ead191bc12cb4873162a470c71f 100644
index 97e137825dd2c045cd376504eab0ace04d4846a1..e64624226282b572e1f69ff11320a0cfaaf02485 100644
--- a/net/minecraft/world/entity/LivingEntity.java
+++ b/net/minecraft/world/entity/LivingEntity.java
@@ -437,7 +437,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
@@ -440,7 +440,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
profilerFiller.push("livingEntityBaseTick");
if (this.isAlive() && this.level() instanceof ServerLevel serverLevel1) {
boolean flag = this instanceof Player;
- if (this.isInWall()) {
+ if ((!org.leavesmc.leaves.LeavesConfig.performance.enableSuffocationOptimization || this instanceof WitherBoss || (tickCount % 10 == 0 && couldPossiblyBeHurt(1.0F))) && this.isInWall()) { // Leaves - optimize suffocation
this.hurtServer(serverLevel1, this.damageSources().inWall(), 1.0F);
} else if (flag && !serverLevel1.getWorldBorder().isWithinBounds(this.getBoundingBox())) {
double d = serverLevel1.getWorldBorder().getDistanceToBorder(this) + serverLevel1.getWorldBorder().getDamageSafeZone();
@@ -1404,6 +1404,12 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
double d = serverLevel1.getWorldBorder().getDistanceToBorder(this) + serverLevel1.getWorldBorder().getSafeZone();
@@ -1411,6 +1411,12 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
return this.getHealth() <= 0.0F;
}

View File

@@ -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/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
index 5c49816db8241694eed640a34c056effbf382934..af5fde7121211887672045c00aa404e2f68c43c1 100644
index d78c566d282e3be1f793c3d8dbec56f6e3d92c4b..acf1eb032bfaad863ef3627f45c8cd2cbb639772 100644
--- a/net/minecraft/server/MinecraftServer.java
+++ b/net/minecraft/server/MinecraftServer.java
@@ -1249,7 +1249,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1181,7 +1181,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
lastTick = currentTime;
this.nextTickTimeNanos += l;

View File

@@ -6,10 +6,10 @@ Subject: [PATCH] Throttle goal selector during inactive ticking
This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish)
diff --git a/net/minecraft/world/entity/Mob.java b/net/minecraft/world/entity/Mob.java
index e0b3cb2b2694768803ed347a1026b881fd624951..16cb4b7472b05c8aab195d5b865dd21ccd4adef8 100644
index 4994dcb209dd82d60559cfc453198b75cbfa1511..37ad911648aa88bdb5132a819806a5a303438dbf 100644
--- a/net/minecraft/world/entity/Mob.java
+++ b/net/minecraft/world/entity/Mob.java
@@ -207,11 +207,13 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
@@ -217,11 +217,13 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
return this.lookControl;
}

View File

@@ -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/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
index c61c0b6d58f96955bfbdad0caaeb56f073a95181..ed05aaa76e1e34ca82fcc7cfb73f371a11600eee 100644
index 5ecbbd9174dae94e0a1964ad29566099f2f8a7e8..99153cbb1de2d6de7289955b24d0e5fe633453d6 100644
--- a/net/minecraft/server/level/ServerLevel.java
+++ b/net/minecraft/server/level/ServerLevel.java
@@ -810,7 +810,24 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -831,7 +831,24 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
}
profilerFiller.push("tick");

View File

@@ -19,10 +19,10 @@ index ae2bb9a73106febfe5f0d090abd4252bbb5fd27e..b3e536400efa41ba754e52f1ee224365
}
if (entity instanceof final Mob mob && mob.getTarget() != null) {
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
index f0ff74a4f2831ead191bc12cb4873162a470c71f..33d14040a8ac97758881cd31a88d950a14a78450 100644
index e64624226282b572e1f69ff11320a0cfaaf02485..16154e00d4548dfef44b0a8926bb86397fb8e5f2 100644
--- a/net/minecraft/world/entity/LivingEntity.java
+++ b/net/minecraft/world/entity/LivingEntity.java
@@ -2126,6 +2126,22 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
@@ -2158,6 +2158,22 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
return this.lastClimbablePos;
}

View File

@@ -6,10 +6,10 @@ Subject: [PATCH] Reduce chunk loading & lookups
This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish)
diff --git a/net/minecraft/world/entity/monster/EnderMan.java b/net/minecraft/world/entity/monster/EnderMan.java
index 4edd94ac765d2ab107612504b67e6e07da609313..6760bfd91f59139922768db5e5d362c5e7e4e473 100644
index dcb49e8305aa8b9215da9f77fa147f701fdbbef0..0732709d0ca78f59ad6b7f8ac5e7bfbe5506f60b 100644
--- a/net/minecraft/world/entity/monster/EnderMan.java
+++ b/net/minecraft/world/entity/monster/EnderMan.java
@@ -296,11 +296,28 @@ public class EnderMan extends Monster implements NeutralMob {
@@ -302,11 +302,28 @@ public class EnderMan extends Monster implements NeutralMob {
private boolean teleport(double x, double y, double z) {
BlockPos.MutableBlockPos mutableBlockPos = new BlockPos.MutableBlockPos(x, y, z);

View File

@@ -6,10 +6,10 @@ Subject: [PATCH] InstantBlockUpdater Reintroduced
This patch is Powered by Carpet-TIS-Addition(https://github.com/plusls/Carpet-TIS-Addition)
diff --git a/net/minecraft/world/level/Level.java b/net/minecraft/world/level/Level.java
index c41df4b1fff1f65532256e835dc30fadbb4f8c8b..ef8a072838558caab19e8a85f4b59cac570c2635 100644
index b6ec576ecc6f7924ee5f039ddacaf7195f02fef7..2518ddaa6bd35e6df88ce74531b772a7a1017e66 100644
--- a/net/minecraft/world/level/Level.java
+++ b/net/minecraft/world/level/Level.java
@@ -873,7 +873,13 @@ public abstract class Level implements LevelAccessor, UUIDLookup<Entity>, AutoCl
@@ -862,7 +862,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl
this.thread = Thread.currentThread();
this.biomeManager = new BiomeManager(this, biomeZoomSeed);
this.isDebug = isDebug;
@@ -22,5 +22,5 @@ index c41df4b1fff1f65532256e835dc30fadbb4f8c8b..ef8a072838558caab19e8a85f4b59cac
+ }
+ // Leaves end - instantBlockUpdaterReintroduced
this.registryAccess = registryAccess;
this.palettedContainerFactory = PalettedContainerFactory.create(registryAccess);
this.damageSources = new DamageSources(registryAccess);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] BBOR Protocol
diff --git a/net/minecraft/world/level/chunk/LevelChunk.java b/net/minecraft/world/level/chunk/LevelChunk.java
index 75578e6ed7233a03d9b6cd3c6d3997f1c6148392..f24db919989bc2e5768e18b4fda68c38d6cde7e0 100644
index 4dcec2e8a3120a3dfa078e8cf6857ba99ca01a2d..90287336da43a8eefd5f154c00fba6ee90eda211 100644
--- a/net/minecraft/world/level/chunk/LevelChunk.java
+++ b/net/minecraft/world/level/chunk/LevelChunk.java
@@ -749,6 +749,11 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p
@@ -757,6 +757,11 @@ public class LevelChunk extends ChunkAccess implements DebugValueSource, ca.spot
public void setLoaded(boolean loaded) {
this.loaded = loaded;

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/net/minecraft/world/entity/animal/horse/AbstractHorse.java b/net/minecraft/world/entity/animal/horse/AbstractHorse.java
index 31ed5d7cfbda1a1f98ebfc89f5cbc65332cabdae..18c683f7d7e18200a24cfc8d26e83f578681f7f5 100644
index fde1f235332127f727da8491e03b54680e42ea4a..32e8f67e61b7611c846a75cac042dcf7860d5f69 100644
--- a/net/minecraft/world/entity/animal/horse/AbstractHorse.java
+++ b/net/minecraft/world/entity/animal/horse/AbstractHorse.java
@@ -305,6 +305,13 @@ public abstract class AbstractHorse extends Animal implements HasCustomInventory
@@ -24,7 +24,7 @@ index 31ed5d7cfbda1a1f98ebfc89f5cbc65332cabdae..18c683f7d7e18200a24cfc8d26e83f57
int min = Math.min(simpleContainer.getContainerSize(), this.inventory.getContainerSize());
diff --git a/net/minecraft/world/entity/npc/AbstractVillager.java b/net/minecraft/world/entity/npc/AbstractVillager.java
index f8782cdcf3015cad2693663a3c222bd60822f45b..38572ecba568072b132b9e7fc12e6c0c38edd2e2 100644
index cf4703cb909aa5906fdd689082208ea4dd77fc0f..54ba469380b51b38327c107e3a1c5574395f3507 100644
--- a/net/minecraft/world/entity/npc/AbstractVillager.java
+++ b/net/minecraft/world/entity/npc/AbstractVillager.java
@@ -48,6 +48,15 @@ public abstract class AbstractVillager extends AgeableMob implements InventoryCa
@@ -44,7 +44,7 @@ index f8782cdcf3015cad2693663a3c222bd60822f45b..38572ecba568072b132b9e7fc12e6c0c
@Override
diff --git a/net/minecraft/world/entity/vehicle/AbstractMinecartContainer.java b/net/minecraft/world/entity/vehicle/AbstractMinecartContainer.java
index 6a008c86f4e360c916b93f0e3a62a9d8b43e74e6..7781ca07a0c8fe1140f341b695e66de95802ee2e 100644
index 8643d46d21852e9e14f9b2448f1c0eb26a737ebb..991ae9f719e63cb77e692213d4a80f0486b86528 100644
--- a/net/minecraft/world/entity/vehicle/AbstractMinecartContainer.java
+++ b/net/minecraft/world/entity/vehicle/AbstractMinecartContainer.java
@@ -65,6 +65,11 @@ public abstract class AbstractMinecartContainer extends AbstractMinecart impleme
@@ -81,10 +81,10 @@ index 36a72a11d28f99bfe85868461925b778cc01478e..bebe8737b71fc37336342f14b6ea4cfa
public void setRecipeUsed(@Nullable RecipeHolder<?> recipe) {
if (recipe != null) {
diff --git a/net/minecraft/world/level/block/entity/BarrelBlockEntity.java b/net/minecraft/world/level/block/entity/BarrelBlockEntity.java
index d679ab599dfd0bdbdc3ab5530d7fcd1c38baf7fa..f0ba09c0edc598dfc4e501ba69016e8a2f8d3a7c 100644
index f8cad05f5f1692c9a8701ff01f33d83477600c34..e265dbe8f84f80314f3e19c3724fff24929e3a13 100644
--- a/net/minecraft/world/level/block/entity/BarrelBlockEntity.java
+++ b/net/minecraft/world/level/block/entity/BarrelBlockEntity.java
@@ -121,6 +121,16 @@ public class BarrelBlockEntity extends RandomizableContainerBlockEntity {
@@ -123,6 +123,16 @@ public class BarrelBlockEntity extends RandomizableContainerBlockEntity {
this.items = items;
}
@@ -100,12 +100,12 @@ index d679ab599dfd0bdbdc3ab5530d7fcd1c38baf7fa..f0ba09c0edc598dfc4e501ba69016e8a
+
@Override
protected Component getDefaultName() {
return Component.translatable("container.barrel");
return DEFAULT_NAME;
diff --git a/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java b/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java
index 91f7ee163107d846e7f6a5783be6eff96e783886..cbbe3dee3dda06d0e2451597dae0ac03009330e0 100644
index 2e58d918abe1d825af3b05dfd38d76cc12df3403..be0693e53eb7dc6851a8bc642a072797cf2efe90 100644
--- a/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java
+++ b/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java
@@ -147,6 +147,11 @@ public class BeehiveBlockEntity extends BlockEntity {
@@ -149,6 +149,11 @@ public class BeehiveBlockEntity extends BlockEntity {
super.setChanged();
}
@@ -117,7 +117,7 @@ index 91f7ee163107d846e7f6a5783be6eff96e783886..cbbe3dee3dda06d0e2451597dae0ac03
return list;
}
@@ -204,6 +209,11 @@ public class BeehiveBlockEntity extends BlockEntity {
@@ -206,6 +211,11 @@ public class BeehiveBlockEntity extends BlockEntity {
this.level.gameEvent(GameEvent.BLOCK_CHANGE, blockPos, GameEvent.Context.of(bee, this.getBlockState()));
}
@@ -129,7 +129,7 @@ index 91f7ee163107d846e7f6a5783be6eff96e783886..cbbe3dee3dda06d0e2451597dae0ac03
bee.discard(org.bukkit.event.entity.EntityRemoveEvent.Cause.ENTER_BLOCK); // CraftBukkit - add Bukkit remove cause
super.setChanged();
}
@@ -325,6 +335,11 @@ public class BeehiveBlockEntity extends BlockEntity {
@@ -327,6 +337,11 @@ public class BeehiveBlockEntity extends BlockEntity {
if (releaseOccupant(level, pos, state, beeData.toOccupant(), null, beeReleaseStatus, savedFlowerPos)) {
flag = true;
iterator.remove();
@@ -154,10 +154,10 @@ index 91f7ee163107d846e7f6a5783be6eff96e783886..cbbe3dee3dda06d0e2451597dae0ac03
@Override
diff --git a/net/minecraft/world/level/block/entity/BrewingStandBlockEntity.java b/net/minecraft/world/level/block/entity/BrewingStandBlockEntity.java
index 79a9f1c87de30cda479b55cf70fbc3219a3dcad4..7eac2188a38fff2ecfa4082b5d023b111cf7d8f6 100644
index 8602a42967ebc28821d6156c07e0aad69c12fa9d..6124a10814c1122ea1685646541395b452e9d4b3 100644
--- a/net/minecraft/world/level/block/entity/BrewingStandBlockEntity.java
+++ b/net/minecraft/world/level/block/entity/BrewingStandBlockEntity.java
@@ -331,4 +331,14 @@ public class BrewingStandBlockEntity extends BaseContainerBlockEntity implements
@@ -332,4 +332,14 @@ public class BrewingStandBlockEntity extends BaseContainerBlockEntity implements
protected AbstractContainerMenu createMenu(int id, Inventory player) {
return new BrewingStandMenu(id, player, this, this.dataAccess);
}
@@ -173,10 +173,10 @@ index 79a9f1c87de30cda479b55cf70fbc3219a3dcad4..7eac2188a38fff2ecfa4082b5d023b11
+ // Leaves end - pca
}
diff --git a/net/minecraft/world/level/block/entity/ChestBlockEntity.java b/net/minecraft/world/level/block/entity/ChestBlockEntity.java
index b7d94ebe0ee995392c355c4237da8443dcc79b21..784e146b28370dc2dac094d5f2ac654a5bc47e01 100644
index c0d4dd95812172a86e5b6f4217bf3cb9d7ee6f2a..8a6593f99525bc3375d8c4a263f2fd12635ca7c5 100644
--- a/net/minecraft/world/level/block/entity/ChestBlockEntity.java
+++ b/net/minecraft/world/level/block/entity/ChestBlockEntity.java
@@ -202,6 +202,16 @@ public class ChestBlockEntity extends RandomizableContainerBlockEntity implement
@@ -214,6 +214,16 @@ public class ChestBlockEntity extends RandomizableContainerBlockEntity implement
otherChest.setItems(items);
}
@@ -215,10 +215,10 @@ index 6b5179ae4269829b1e356840c9a8c33153334c32..b78ee57634471bc6e5308fb30c8f974f
return this.output;
}
diff --git a/net/minecraft/world/level/block/entity/DispenserBlockEntity.java b/net/minecraft/world/level/block/entity/DispenserBlockEntity.java
index ae52dc75335799e55e403e3d3f11e9f1d67e4305..36b9362e1ce31b63c100ec65921e095fb7871e82 100644
index b4a155cc914092dad83977df714fbbc033c69d19..2fbfe925c81126cb99a4330a232d7d1b1f035973 100644
--- a/net/minecraft/world/level/block/entity/DispenserBlockEntity.java
+++ b/net/minecraft/world/level/block/entity/DispenserBlockEntity.java
@@ -104,6 +104,16 @@ public class DispenserBlockEntity extends RandomizableContainerBlockEntity {
@@ -105,6 +105,16 @@ public class DispenserBlockEntity extends RandomizableContainerBlockEntity {
return stack;
}
@@ -234,12 +234,12 @@ index ae52dc75335799e55e403e3d3f11e9f1d67e4305..36b9362e1ce31b63c100ec65921e095f
+
@Override
protected Component getDefaultName() {
return Component.translatable("container.dispenser");
return DEFAULT_NAME;
diff --git a/net/minecraft/world/level/block/entity/HopperBlockEntity.java b/net/minecraft/world/level/block/entity/HopperBlockEntity.java
index 800b7e78ae989868ed0b9e060c80dcd002759412..5f42af7c6fc82d6672ed06a2315254c9c5886ce4 100644
index 28348e3881c3c8591053a01b193fb2a956f79726..ab88bca97fe275528a2feb22e5da89252be683c3 100644
--- a/net/minecraft/world/level/block/entity/HopperBlockEntity.java
+++ b/net/minecraft/world/level/block/entity/HopperBlockEntity.java
@@ -122,6 +122,16 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
@@ -123,6 +123,16 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
this.facing = blockState.getValue(HopperBlock.FACING);
}
@@ -255,8 +255,8 @@ index 800b7e78ae989868ed0b9e060c80dcd002759412..5f42af7c6fc82d6672ed06a2315254c9
+
@Override
protected Component getDefaultName() {
return Component.translatable("container.hopper");
@@ -198,6 +208,11 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
return DEFAULT_NAME;
@@ -199,6 +209,11 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
if (flag) {
blockEntity.setCooldown(level.spigotConfig.hopperTransfer); // Spigot
setChanged(level, pos, state);
@@ -269,10 +269,10 @@ index 800b7e78ae989868ed0b9e060c80dcd002759412..5f42af7c6fc82d6672ed06a2315254c9
}
}
diff --git a/net/minecraft/world/level/block/entity/ShulkerBoxBlockEntity.java b/net/minecraft/world/level/block/entity/ShulkerBoxBlockEntity.java
index ebea67223ce1d350087c73dff0cc3fe6d7b47ca0..a820ab9a2b6dc6b95d4de61aaaad4e79c521efe4 100644
index e2a2811464ff7455e513944b7565f9f226a5ed34..10c123b9cffdc79d069a82d09e57b24bc1572771 100644
--- a/net/minecraft/world/level/block/entity/ShulkerBoxBlockEntity.java
+++ b/net/minecraft/world/level/block/entity/ShulkerBoxBlockEntity.java
@@ -267,6 +267,16 @@ public class ShulkerBoxBlockEntity extends RandomizableContainerBlockEntity impl
@@ -268,6 +268,16 @@ public class ShulkerBoxBlockEntity extends RandomizableContainerBlockEntity impl
this.itemStacks = items;
}

View File

@@ -9,10 +9,10 @@ MasaGadget(https://github.com/plusls/MasaGadget)
litematica(https://github.com/maruohon/litematica)
diff --git a/net/minecraft/world/item/BlockItem.java b/net/minecraft/world/item/BlockItem.java
index 6db566adf2d0df1d26221eda04aa01738df6d3d2..8f112f382190d606a87f38da8bcdf8dd5f31d1c5 100644
index dceb2b683064bbf4286c3fe71e0fd0c5a644cb07..19649f75889d1c4243519eb8ccb46f4b9abd0f68 100644
--- a/net/minecraft/world/item/BlockItem.java
+++ b/net/minecraft/world/item/BlockItem.java
@@ -149,7 +149,7 @@ public class BlockItem extends Item {
@@ -148,7 +148,7 @@ public class BlockItem extends Item {
@Nullable
protected BlockState getPlacementState(BlockPlaceContext context) {
@@ -43,10 +43,10 @@ index 12c6c8aeec89a0a55633c62fe98f5a3aa75fd476..1f0e7c391d02b18e2c89700025713ec3
blockState = blockState1;
break;
diff --git a/net/minecraft/world/level/block/Block.java b/net/minecraft/world/level/block/Block.java
index 958914e40fceda5d67a98154817b4c5ce478a62d..3c5fd8efbe577c9b262870444984ad249097b8c2 100644
index 57574f93763ab98a4bc109f56cfc3af08962a878..c9318bda7ea2cb25939516fb1c3cc90488bb8e6c 100644
--- a/net/minecraft/world/level/block/Block.java
+++ b/net/minecraft/world/level/block/Block.java
@@ -439,6 +439,33 @@ public class Block extends BlockBehaviour implements ItemLike {
@@ -478,6 +478,33 @@ public class Block extends BlockBehaviour implements ItemLike {
public void stepOn(Level level, BlockPos pos, BlockState state, Entity entity) {
}

View File

@@ -6,7 +6,7 @@ Subject: [PATCH] Jade Protocol
This patch is Powered by Jade(https://github.com/Snownee/Jade)
diff --git a/net/minecraft/world/entity/animal/armadillo/Armadillo.java b/net/minecraft/world/entity/animal/armadillo/Armadillo.java
index c1798db2972c8f2a343cf6e16fd9354ff212d906..a8d617b16ab2b2c0cdb289a0aa05fa171940cd7e 100644
index 4792e7e6b720a315d64f18d9c3b12f703da8fb21..11ccba9fc53a68d7c7dd4b7938b931b92ba45e9a 100644
--- a/net/minecraft/world/entity/animal/armadillo/Armadillo.java
+++ b/net/minecraft/world/entity/animal/armadillo/Armadillo.java
@@ -63,7 +63,7 @@ public class Armadillo extends Animal {
@@ -19,10 +19,10 @@ index c1798db2972c8f2a343cf6e16fd9354ff212d906..a8d617b16ab2b2c0cdb289a0aa05fa17
public Armadillo(EntityType<? extends Animal> entityType, Level level) {
diff --git a/net/minecraft/world/entity/animal/frog/Tadpole.java b/net/minecraft/world/entity/animal/frog/Tadpole.java
index 17f58246849ed407821a987b200cc765eb7943f9..ac27df3ba0ce9bbdf2f32ea87171fbb9407008d6 100644
index d216c2fbf2fe846c0d9b7164d24eb3815b7235ff..21ca8235f5b165bf9e83190883f6c25661a27396 100644
--- a/net/minecraft/world/entity/animal/frog/Tadpole.java
+++ b/net/minecraft/world/entity/animal/frog/Tadpole.java
@@ -254,7 +254,7 @@ public class Tadpole extends AbstractFish {
@@ -247,7 +247,7 @@ public class Tadpole extends AbstractFish {
}
}

View File

@@ -6,10 +6,10 @@ Subject: [PATCH] Player operation limiter
This patch is Powered by plusls-carpet-addition(https://github.com/plusls/plusls-carpet-addition)
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
index 87c8c4c7ca52f7d804ddaff87aaf381552e1aee2..29b8e7b6d96ff7ca2dd53f00ea2010e6aad83a52 100644
index 87181a351a1494038c391682781e4c9e0d46a795..cda496fe531953a78c868fab96705e652ec41a99 100644
--- a/net/minecraft/server/level/ServerPlayer.java
+++ b/net/minecraft/server/level/ServerPlayer.java
@@ -429,6 +429,10 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
@@ -442,6 +442,10 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
public boolean isRealPlayer; // Paper
public @Nullable com.destroystokyo.paper.event.entity.PlayerNaturallySpawnCreaturesEvent playerNaturallySpawnedEvent; // Paper - PlayerNaturallySpawnCreaturesEvent
public @Nullable org.bukkit.event.player.PlayerQuitEvent.QuitReason quitReason = null; // Paper - Add API for quit reason; there are a lot of changes to do if we change all methods leading to the event
@@ -20,7 +20,7 @@ index 87c8c4c7ca52f7d804ddaff87aaf381552e1aee2..29b8e7b6d96ff7ca2dd53f00ea2010e6
// Paper start - rewrite chunk system
private ca.spottedleaf.moonrise.patches.chunk_system.player.RegionizedPlayerChunkLoader.PlayerChunkLoaderData chunkLoader;
@@ -745,6 +749,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
@@ -722,6 +726,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
}
// CraftBukkit end
this.tickClientLoadTimeout();
@@ -28,7 +28,7 @@ index 87c8c4c7ca52f7d804ddaff87aaf381552e1aee2..29b8e7b6d96ff7ca2dd53f00ea2010e6
this.gameMode.tick();
this.wardenSpawnTracker.tick();
if (this.invulnerableTime > 0) {
@@ -2981,4 +2986,31 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
@@ -3110,4 +3115,31 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
return (org.bukkit.craftbukkit.entity.CraftPlayer) super.getBukkitEntity();
}
// CraftBukkit end
@@ -61,10 +61,10 @@ index 87c8c4c7ca52f7d804ddaff87aaf381552e1aee2..29b8e7b6d96ff7ca2dd53f00ea2010e6
+ // Leaves end - player operation limiter
}
diff --git a/net/minecraft/server/level/ServerPlayerGameMode.java b/net/minecraft/server/level/ServerPlayerGameMode.java
index cfbf34964288526e93d0a5b212c1b60296c10430..9cce442c16ced8d9320a5760580ff13f02cbf8f1 100644
index 1c40e40ffb0d4d2ce523616edfb301f856f4d71e..3a1108b1e98629a7d2ade8c25a604175cedcd42e 100644
--- a/net/minecraft/server/level/ServerPlayerGameMode.java
+++ b/net/minecraft/server/level/ServerPlayerGameMode.java
@@ -300,6 +300,19 @@ public class ServerPlayerGameMode {
@@ -320,6 +320,19 @@ public class ServerPlayerGameMode {
}
public void destroyAndAck(BlockPos pos, int sequence, String message) {
@@ -85,10 +85,10 @@ index cfbf34964288526e93d0a5b212c1b60296c10430..9cce442c16ced8d9320a5760580ff13f
this.debugLogging(pos, true, sequence, message);
} else {
diff --git a/net/minecraft/world/item/BlockItem.java b/net/minecraft/world/item/BlockItem.java
index 8f112f382190d606a87f38da8bcdf8dd5f31d1c5..a46a50d1385897cc7fcf0d6976f0de7e8078d260 100644
index 19649f75889d1c4243519eb8ccb46f4b9abd0f68..27f6cb2e8104f1e12bed65d090d857b408297013 100644
--- a/net/minecraft/world/item/BlockItem.java
+++ b/net/minecraft/world/item/BlockItem.java
@@ -65,6 +65,21 @@ public class BlockItem extends Item {
@@ -64,6 +64,21 @@ public class BlockItem extends Item {
final org.bukkit.block.BlockState oldBukkitState = bukkitState != null ? bukkitState : org.bukkit.craftbukkit.block.CraftBlockStates.getBlockState(blockPlaceContext.getLevel(), blockPlaceContext.getClickedPos()); // Paper - Reset placed block on exception
// CraftBukkit end

View File

@@ -6,10 +6,10 @@ Subject: [PATCH] Renewable Elytra
This patch is Powered by Carpet-TIS-Addition(https://github.com/plusls/Carpet-TIS-Addition)
diff --git a/net/minecraft/world/entity/monster/Phantom.java b/net/minecraft/world/entity/monster/Phantom.java
index ffcfdbc80df2a9e6c546348b86e7615e6109eb49..d985f224f06f5a823f74b276477ededdbe77596a 100644
index 16783b21906e0595d46c876f87c29d02920ca784..64d230eac0d5b28c7be86ca3f9eaaddb3b9d767e 100644
--- a/net/minecraft/world/entity/monster/Phantom.java
+++ b/net/minecraft/world/entity/monster/Phantom.java
@@ -246,6 +246,20 @@ public class Phantom extends Mob implements Enemy {
@@ -241,6 +241,20 @@ public class Phantom extends Mob implements Enemy {
return targetingConditions.test(level, this, entity);
}

View File

@@ -6,10 +6,10 @@ Subject: [PATCH] MC Technical Survival Mode
Will automatically overwrite some configuration after startup
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
index 29b8e7b6d96ff7ca2dd53f00ea2010e6aad83a52..217bcd7f9aab84b9bff82af0f3cab95818ba51a2 100644
index cda496fe531953a78c868fab96705e652ec41a99..a01c80065ecdabc89276fc755f0aee29a3fe4542 100644
--- a/net/minecraft/server/level/ServerPlayer.java
+++ b/net/minecraft/server/level/ServerPlayer.java
@@ -1654,7 +1654,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
@@ -1768,7 +1768,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
public boolean isInvulnerableTo(ServerLevel level, DamageSource damageSource) {
return (super.isInvulnerableTo(level, damageSource) // Paper - disable player cramming;
|| this.isChangingDimension() && !damageSource.is(DamageTypes.ENDER_PEARL)
@@ -19,10 +19,10 @@ index 29b8e7b6d96ff7ca2dd53f00ea2010e6aad83a52..217bcd7f9aab84b9bff82af0f3cab958
@Override
diff --git a/net/minecraft/world/entity/ai/behavior/AcquirePoi.java b/net/minecraft/world/entity/ai/behavior/AcquirePoi.java
index 57befff1f0675e889304a6258258384d8de02c87..36be5f1e3547d29fd85e3b3f0c39e8f5ec1adf4e 100644
index ffc960a4e66ed03a358b363a4ce1dcee0b29ac36..c1671664618428d5b82df721b559ce7280b9e8b7 100644
--- a/net/minecraft/world/entity/ai/behavior/AcquirePoi.java
+++ b/net/minecraft/world/entity/ai/behavior/AcquirePoi.java
@@ -70,7 +70,7 @@ public class AcquirePoi {
@@ -69,7 +69,7 @@ public class AcquirePoi {
return false;
} else {
mutableLong.setValue(time + 20L + level.getRandom().nextInt(20));
@@ -45,7 +45,7 @@ index a0e0fad40838fa7d835f31e5ce4ae3ab40e0bfa4..d8effc3a9773d29319b8e2bd15abbf03
|| ((ServerLevel) this.level()).getDragonFight() == null
|| ((ServerLevel) this.level()).getDragonFight().respawnStage == null
diff --git a/net/minecraft/world/entity/item/PrimedTnt.java b/net/minecraft/world/entity/item/PrimedTnt.java
index 17d54d38dcec39eefeb989cd576cc640a36e82f5..1d7a1739d6a3a55aacb33d57a58712350b150f64 100644
index e199ae22af6675fa602cf39d9e6bf1ffd73f64f7..c373eae8aa8df57d5925021635237a32bada444a 100644
--- a/net/minecraft/world/entity/item/PrimedTnt.java
+++ b/net/minecraft/world/entity/item/PrimedTnt.java
@@ -100,7 +100,7 @@ public class PrimedTnt extends Entity implements TraceableEntity {
@@ -58,10 +58,10 @@ index 17d54d38dcec39eefeb989cd576cc640a36e82f5..1d7a1739d6a3a55aacb33d57a5871235
this.applyGravity();
this.move(MoverType.SELF, this.getDeltaMovement());
diff --git a/net/minecraft/world/level/NaturalSpawner.java b/net/minecraft/world/level/NaturalSpawner.java
index 4f647507d06d45a65b4b1793219d90c65e110225..dac4646902a93eaaa287f5b6da324eea81ea3150 100644
index 6198d6d4952088f1fef28e84f65f22e702b4435d..a5c43adaa560540670f083302e79004edad6829a 100644
--- a/net/minecraft/world/level/NaturalSpawner.java
+++ b/net/minecraft/world/level/NaturalSpawner.java
@@ -82,7 +82,7 @@ public final class NaturalSpawner {
@@ -84,7 +84,7 @@ public final class NaturalSpawner {
MobCategory category = entity.getType().getCategory();
if (category != MobCategory.MISC) {
// Paper start - Only count natural spawns
@@ -71,10 +71,10 @@ index 4f647507d06d45a65b4b1793219d90c65e110225..dac4646902a93eaaa287f5b6da324eea
entity.spawnReason == org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.CHUNK_GEN)) {
continue;
diff --git a/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java b/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java
index cbbe3dee3dda06d0e2451597dae0ac03009330e0..aa94abe106ae0f47f61e6c431f1abcbdbf945dfa 100644
index be0693e53eb7dc6851a8bc642a072797cf2efe90..17f8827e86e4bc9d326a0daee7855fc0188410e1 100644
--- a/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java
+++ b/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java
@@ -342,7 +342,7 @@ public class BeehiveBlockEntity extends BlockEntity {
@@ -344,7 +344,7 @@ public class BeehiveBlockEntity extends BlockEntity {
// Leaves end - pca
}
// Paper start - Fix bees aging inside; use exitTickCounter to keep actual bee life
@@ -84,10 +84,10 @@ index cbbe3dee3dda06d0e2451597dae0ac03009330e0..aa94abe106ae0f47f61e6c431f1abcbd
}
// Paper end - Fix bees aging inside; use exitTickCounter to keep actual bee life
diff --git a/net/minecraft/world/level/block/entity/HopperBlockEntity.java b/net/minecraft/world/level/block/entity/HopperBlockEntity.java
index d7755e6a4641b5463eb39885bf53b6950c09bfc9..52ef2891eb9b6c8c8db763c9836fc6470746c68f 100644
index ab88bca97fe275528a2feb22e5da89252be683c3..ca5707060e415a32fdb50509c24e79494d3ad28f 100644
--- a/net/minecraft/world/level/block/entity/HopperBlockEntity.java
+++ b/net/minecraft/world/level/block/entity/HopperBlockEntity.java
@@ -275,7 +275,7 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
@@ -276,7 +276,7 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
origItemStack.setCount(originalItemCount);
}
}
@@ -96,7 +96,7 @@ index d7755e6a4641b5463eb39885bf53b6950c09bfc9..52ef2891eb9b6c8c8db763c9836fc647
hopper.setCooldown(level.spigotConfig.hopperTransfer);
}
return false;
@@ -316,7 +316,7 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
@@ -317,7 +317,7 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
}
origItemStack.setCount(originalItemCount);

View File

@@ -26,7 +26,7 @@ index 643797124fe5a4489d0b7419b7e600c04f283ef2..04b4100da96aad50f08e8c59200eec93
public String serialize(HolderLookup.Provider levelRegistry) {
diff --git a/net/minecraft/server/commands/GiveCommand.java b/net/minecraft/server/commands/GiveCommand.java
index adba92a9ebef64561147427d1339f70e2701d93c..fc367026ca84b125bf3ccd261ef43a3833c1da5c 100644
index 4f56cdcf658234b1ca92d38c3df3d31e9be34a15..f6e18d62db18616a422ae74d6f329d1b3a96300b 100644
--- a/net/minecraft/server/commands/GiveCommand.java
+++ b/net/minecraft/server/commands/GiveCommand.java
@@ -55,7 +55,7 @@ public class GiveCommand {
@@ -39,10 +39,10 @@ index adba92a9ebef64561147427d1339f70e2701d93c..fc367026ca84b125bf3ccd261ef43a38
if (count > i) {
source.sendFailure(Component.translatable("commands.give.failed.toomanyitems", i, itemStack.getDisplayName()));
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index ca13dd72f173be6714965c506f2d48dcd3c9e569..87201eca6bbcb0dbf2612b59219d97960db29d01 100644
index 11d55309f3030399386b4deeab58d5f760b3574d..0708331ed67723b6d9aef0486b7d89771e07a60a 100644
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2987,7 +2987,7 @@ public class ServerGamePacketListenerImpl
@@ -2997,7 +2997,7 @@ public class ServerGamePacketListenerImpl
} else if (slot.mayPlace(cursor)) {
if (ItemStack.isSameItemSameComponents(clickedItem, cursor)) {
int toPlace = packet.buttonNum() == 0 ? cursor.getCount() : 1;
@@ -51,7 +51,7 @@ index ca13dd72f173be6714965c506f2d48dcd3c9e569..87201eca6bbcb0dbf2612b59219d9796
toPlace = Math.min(toPlace, slot.container.getMaxStackSize() - clickedItem.getCount());
if (toPlace == 1) {
action = InventoryAction.PLACE_ONE;
@@ -3023,7 +3023,7 @@ public class ServerGamePacketListenerImpl
@@ -3033,7 +3033,7 @@ public class ServerGamePacketListenerImpl
}
} else if (ItemStack.isSameItemSameComponents(cursor, clickedItem)) {
if (clickedItem.getCount() >= 0) {
@@ -60,7 +60,7 @@ index ca13dd72f173be6714965c506f2d48dcd3c9e569..87201eca6bbcb0dbf2612b59219d9796
// As of 1.5, this is result slots only
action = InventoryAction.PICKUP_ALL;
}
@@ -3234,6 +3234,7 @@ public class ServerGamePacketListenerImpl
@@ -3244,6 +3244,7 @@ public class ServerGamePacketListenerImpl
this.player.containerMenu.broadcastFullState();
} else {
this.player.containerMenu.broadcastChanges();
@@ -68,7 +68,7 @@ index ca13dd72f173be6714965c506f2d48dcd3c9e569..87201eca6bbcb0dbf2612b59219d9796
}
if (packet.buttonNum() == Inventory.SLOT_OFFHAND && this.player.containerMenu != this.player.inventoryMenu) this.player.containerSynchronizer.sendOffHandSlotChange(); // Paper - update offhand data when the player is clicking in an inventory not their own as the sychronizer does not include offhand slots
if (io.papermc.paper.configuration.GlobalConfiguration.get().unsupportedSettings.updateEquipmentOnPlayerActions) this.player.detectEquipmentUpdates(); // Paper - Force update attributes.
@@ -3345,7 +3346,7 @@ public class ServerGamePacketListenerImpl
@@ -3355,7 +3356,7 @@ public class ServerGamePacketListenerImpl
}
boolean flag1 = packet.slotNum() >= 1 && packet.slotNum() <= 45;
@@ -77,7 +77,7 @@ index ca13dd72f173be6714965c506f2d48dcd3c9e569..87201eca6bbcb0dbf2612b59219d9796
if (flag || (flag1 && !ItemStack.matches(this.player.inventoryMenu.getSlot(packet.slotNum()).getItem(), packet.itemStack()))) { // Insist on valid slot
// CraftBukkit start - Call click event
org.bukkit.inventory.InventoryView inventory = this.player.inventoryMenu.getBukkitView();
@@ -3387,6 +3388,7 @@ public class ServerGamePacketListenerImpl
@@ -3397,6 +3398,7 @@ public class ServerGamePacketListenerImpl
this.player.inventoryMenu.getSlot(packet.slotNum()).setByPlayer(itemStack);
this.player.inventoryMenu.setRemoteSlot(packet.slotNum(), itemStack);
this.player.inventoryMenu.broadcastChanges();
@@ -86,10 +86,10 @@ index ca13dd72f173be6714965c506f2d48dcd3c9e569..87201eca6bbcb0dbf2612b59219d9796
} else if (flag && flag2) {
if (this.dropSpamThrottler.isUnderThreshold()) {
diff --git a/net/minecraft/world/Container.java b/net/minecraft/world/Container.java
index b382665cc125b8b5c0938e5e55984e4bf91d37ff..86cac164a2bf0e76528396e6aabbfd64cfc29559 100644
index 8e6f097b4d17aaaf8eccc16e11ce2bd01ad63322..5493576c54e87823f68bbf8a18441b373aae0461 100644
--- a/net/minecraft/world/Container.java
+++ b/net/minecraft/world/Container.java
@@ -32,6 +32,12 @@ public interface Container extends Clearable, Iterable<ItemStack> {
@@ -34,6 +34,12 @@ public interface Container extends Clearable, Iterable<ItemStack> {
return Math.min(this.getMaxStackSize(), stack.getMaxStackSize());
}
@@ -125,10 +125,10 @@ index d907e24d563e27acab2f2bf9711b1755ea9afd19..75170c8d3be477a6ea2a1d62018a6ab6
if (min > 0) {
other.grow(min);
diff --git a/net/minecraft/world/entity/item/ItemEntity.java b/net/minecraft/world/entity/item/ItemEntity.java
index 51804b611f469f2ab53e455e8c633b867b00cc88..df24938d5136948b151d3c1c72ccb2ec97640478 100644
index e9a7630b7f2a4b49e2794fcd64dc19b7002d27a1..9c898022b8985a42a653d1c6ddc03f4e9e840b8e 100644
--- a/net/minecraft/world/entity/item/ItemEntity.java
+++ b/net/minecraft/world/entity/item/ItemEntity.java
@@ -279,10 +279,15 @@ public class ItemEntity extends Entity implements TraceableEntity {
@@ -270,10 +270,15 @@ public class ItemEntity extends Entity implements TraceableEntity {
private boolean isMergable() {
ItemStack item = this.getItem();
@@ -146,10 +146,10 @@ index 51804b611f469f2ab53e455e8c633b867b00cc88..df24938d5136948b151d3c1c72ccb2ec
ItemStack item1 = itemEntity.getItem();
if (Objects.equals(this.target, itemEntity.target) && areMergable(item, item1)) {
diff --git a/net/minecraft/world/entity/player/Inventory.java b/net/minecraft/world/entity/player/Inventory.java
index a6bb436dc80daf6901dc027a6011ead4b3ed27e2..71df58ae26325a2d28b6679733c474c0c59f7654 100644
index 41e59f3739945ca7f6ab710c993b5c0f15fcd529..b849b04f227b43d036f4f6b3ae7accfafc389d9f 100644
--- a/net/minecraft/world/entity/player/Inventory.java
+++ b/net/minecraft/world/entity/player/Inventory.java
@@ -165,10 +165,12 @@ public class Inventory implements Container, Nameable {
@@ -166,10 +166,12 @@ public class Inventory implements Container, Nameable {
}
private boolean hasRemainingSpaceForItem(ItemStack destination, ItemStack origin) {
@@ -164,7 +164,7 @@ index a6bb436dc80daf6901dc027a6011ead4b3ed27e2..71df58ae26325a2d28b6679733c474c0
}
// CraftBukkit start - Watch method above! :D
@@ -181,7 +183,7 @@ public class Inventory implements Container, Nameable {
@@ -182,7 +184,7 @@ public class Inventory implements Container, Nameable {
}
if (this.hasRemainingSpaceForItem(itemInSlot, itemStack)) {
@@ -173,7 +173,7 @@ index a6bb436dc80daf6901dc027a6011ead4b3ed27e2..71df58ae26325a2d28b6679733c474c0
}
if (remains <= 0) {
return itemStack.getCount();
@@ -190,7 +192,7 @@ public class Inventory implements Container, Nameable {
@@ -191,7 +193,7 @@ public class Inventory implements Container, Nameable {
ItemStack itemInOffhand = this.equipment.get(EquipmentSlot.OFFHAND);
if (this.hasRemainingSpaceForItem(itemInOffhand, itemStack)) {
@@ -182,7 +182,7 @@ index a6bb436dc80daf6901dc027a6011ead4b3ed27e2..71df58ae26325a2d28b6679733c474c0
}
if (remains <= 0) {
return itemStack.getCount();
@@ -314,7 +316,7 @@ public class Inventory implements Container, Nameable {
@@ -315,7 +317,7 @@ public class Inventory implements Container, Nameable {
this.setItem(slot, item);
}
@@ -191,7 +191,7 @@ index a6bb436dc80daf6901dc027a6011ead4b3ed27e2..71df58ae26325a2d28b6679733c474c0
int min = Math.min(count, i);
if (min == 0) {
return count;
@@ -420,7 +422,7 @@ public class Inventory implements Container, Nameable {
@@ -421,7 +423,7 @@ public class Inventory implements Container, Nameable {
break;
}
@@ -353,10 +353,10 @@ index 5ceb8964476b40db4511bec91ff13c4f522a1357..f416d7976e41a06b5a8be93485eaa233
@Nullable
diff --git a/net/minecraft/world/item/ItemStack.java b/net/minecraft/world/item/ItemStack.java
index da16f4831c875e07c25d7ed041bed493db614658..3ba64f91883b88f3131d4582c771b511bbccfcd9 100644
index 671216613df044fb47e728070490beabb008fb04..13d5cb566f31ce0657b93c24c8e20a5ce3559fa4 100644
--- a/net/minecraft/world/item/ItemStack.java
+++ b/net/minecraft/world/item/ItemStack.java
@@ -162,7 +162,7 @@ public final class ItemStack implements DataComponentHolder {
@@ -164,7 +164,7 @@ public final class ItemStack implements DataComponentHolder {
@Deprecated
@Nullable
private Item item;
@@ -365,7 +365,7 @@ index da16f4831c875e07c25d7ed041bed493db614658..3ba64f91883b88f3131d4582c771b511
@Nullable
private Entity entityRepresentation;
@@ -189,7 +189,8 @@ public final class ItemStack implements DataComponentHolder {
@@ -191,7 +191,8 @@ public final class ItemStack implements DataComponentHolder {
} else {
Holder<Item> holder = Item.STREAM_CODEC.decode(buffer);
DataComponentPatch dataComponentPatch = codec.decode(buffer);
@@ -375,7 +375,7 @@ index da16f4831c875e07c25d7ed041bed493db614658..3ba64f91883b88f3131d4582c771b511
}
}
@@ -198,13 +199,15 @@ public final class ItemStack implements DataComponentHolder {
@@ -200,13 +201,15 @@ public final class ItemStack implements DataComponentHolder {
if (value.isEmpty() || value.getItem() == null) { // CraftBukkit - NPE fix itemstack.getItem()
buffer.writeVarInt(0);
} else {
@@ -395,7 +395,7 @@ index da16f4831c875e07c25d7ed041bed493db614658..3ba64f91883b88f3131d4582c771b511
} finally {
net.minecraft.network.chat.ComponentSerialization.DONT_RENDER_TRANSLATABLES.set(prev);
}
@@ -299,7 +302,7 @@ public final class ItemStack implements DataComponentHolder {
@@ -300,7 +303,7 @@ public final class ItemStack implements DataComponentHolder {
for (ItemStack itemStack : itemContainerContents.nonEmptyItems()) {
int count = itemStack.getCount();
@@ -405,7 +405,7 @@ index da16f4831c875e07c25d7ed041bed493db614658..3ba64f91883b88f3131d4582c771b511
return DataResult.error(() -> "Item stack with count of " + count + " was larger than maximum: " + maxStackSize);
}
diff --git a/net/minecraft/world/level/block/CrafterBlock.java b/net/minecraft/world/level/block/CrafterBlock.java
index 38b03c7b02bdfc579e5e126c12de3d878e26d188..caf31218a1aff84367da126ee1dc46b8c8a1e5d1 100644
index 6dd3c0f60b04bc690ebd4a33ec57ef806961ee32..b64f3a574e86f80e1fb45ed674a9c64ff658421b 100644
--- a/net/minecraft/world/level/block/CrafterBlock.java
+++ b/net/minecraft/world/level/block/CrafterBlock.java
@@ -192,7 +192,7 @@ public class CrafterBlock extends BaseEntityBlock {
@@ -431,10 +431,10 @@ index bebe8737b71fc37336342f14b6ea4cfab12d3f34..4fdb3c36b39213f01f86ba281c7b62af
this.cookingTotalTime = getTotalCookTime(serverLevel, this, this.recipeType, this.cookSpeedMultiplier); // Paper - cook speed multiplier API
this.cookingTimer = 0;
diff --git a/net/minecraft/world/level/block/entity/BaseContainerBlockEntity.java b/net/minecraft/world/level/block/entity/BaseContainerBlockEntity.java
index 5a094257a31f0500278a706a418e1697f8810ffb..63d6a43dab067aa4c8fb67095c455130196eef9f 100644
index 1b2f8c4e1e362dc63fde2c7139039f0ce7eb762f..701a12db0c342c9ff2c974e581b112182dec2ea6 100644
--- a/net/minecraft/world/level/block/entity/BaseContainerBlockEntity.java
+++ b/net/minecraft/world/level/block/entity/BaseContainerBlockEntity.java
@@ -145,7 +145,7 @@ public abstract class BaseContainerBlockEntity extends BlockEntity implements Co
@@ -149,7 +149,7 @@ public abstract class BaseContainerBlockEntity extends BlockEntity implements Co
@Override
public void setItem(int slot, ItemStack stack) {
this.getItems().set(slot, stack);
@@ -444,10 +444,10 @@ index 5a094257a31f0500278a706a418e1697f8810ffb..63d6a43dab067aa4c8fb67095c455130
}
diff --git a/net/minecraft/world/level/block/entity/HopperBlockEntity.java b/net/minecraft/world/level/block/entity/HopperBlockEntity.java
index e53b40c70c0a61cbe14a236a99725daa28512b0b..d152ad88e8e873a0164b2394516bd10f23c7b263 100644
index ca5707060e415a32fdb50509c24e79494d3ad28f..a1799e2646569bf9db4fcdd3a9758f486f96f56e 100644
--- a/net/minecraft/world/level/block/entity/HopperBlockEntity.java
+++ b/net/minecraft/world/level/block/entity/HopperBlockEntity.java
@@ -113,7 +113,7 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
@@ -114,7 +114,7 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
public void setItem(int index, ItemStack stack) {
this.unpackLootTable(null);
this.getItems().set(index, stack);
@@ -456,7 +456,7 @@ index e53b40c70c0a61cbe14a236a99725daa28512b0b..d152ad88e8e873a0164b2394516bd10f
}
@Override
@@ -692,9 +692,9 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
@@ -693,9 +693,9 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
if (item.isEmpty()) {
// Spigot start - SPIGOT-6693, SimpleContainer#setItem
ItemStack leftover = ItemStack.EMPTY; // Paper - Make hoppers respect inventory max stack size

View File

@@ -6,10 +6,10 @@ Subject: [PATCH] Return nether portal fix
This patch is powered by NetherPortalFix(https://github.com/TwelveIterationMods/NetherPortalFix)
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
index 51fd9298a931501ee15401b64f3194c72c00b00f..c356a88667c9fe0e8b0aca564f976043dfb83b39 100644
index a01c80065ecdabc89276fc755f0aee29a3fe4542..5402ed9510037b49d26e512be6d35a07ad183420 100644
--- a/net/minecraft/server/level/ServerPlayer.java
+++ b/net/minecraft/server/level/ServerPlayer.java
@@ -1468,6 +1468,21 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
@@ -1579,6 +1579,21 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
org.bukkit.event.player.PlayerChangedWorldEvent changeEvent = new org.bukkit.event.player.PlayerChangedWorldEvent(this.getBukkitEntity(), serverLevel.getWorld());
this.level().getCraftServer().getPluginManager().callEvent(changeEvent);
// CraftBukkit end
@@ -32,10 +32,10 @@ index 51fd9298a931501ee15401b64f3194c72c00b00f..c356a88667c9fe0e8b0aca564f976043
if (this.isBlocking()) {
this.stopUsingItem();
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
index e59a4178100532a2a52b4242409a270ed62498f6..7a0d36b9c6a633919a116fc4d47e500b2c6cbc28 100644
index f951ea1c6c2b63cc6b7f330cd3100adb507f8e54..248c08b4f1dc6cf47ac311d5872ae56485e3b425 100644
--- a/net/minecraft/server/players/PlayerList.java
+++ b/net/minecraft/server/players/PlayerList.java
@@ -820,6 +820,20 @@ public abstract class PlayerList {
@@ -738,6 +738,20 @@ public abstract class PlayerList {
if (fromWorld != level) {
org.bukkit.event.player.PlayerChangedWorldEvent event = new org.bukkit.event.player.PlayerChangedWorldEvent(player.getBukkitEntity(), fromWorld.getWorld());
this.server.server.getPluginManager().callEvent(event);
@@ -57,10 +57,10 @@ index e59a4178100532a2a52b4242409a270ed62498f6..7a0d36b9c6a633919a116fc4d47e500b
// Save player file again if they were disconnected
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
index 942be06bebe8c3fca0b0c33fa387e30deda8dd7c..bc19f0bf079d6a7fa2fc8aaed6477da5e57d32da 100644
index 16154e00d4548dfef44b0a8926bb86397fb8e5f2..4f4331cfb39f3ec30983ef510580ddedcec6795d 100644
--- a/net/minecraft/world/entity/LivingEntity.java
+++ b/net/minecraft/world/entity/LivingEntity.java
@@ -257,7 +257,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
@@ -258,7 +258,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
protected ItemStack useItem = ItemStack.EMPTY;
public int useItemRemaining;
protected int fallFlyTicks;
@@ -70,7 +70,7 @@ index 942be06bebe8c3fca0b0c33fa387e30deda8dd7c..bc19f0bf079d6a7fa2fc8aaed6477da5
@Nullable
private DamageSource lastDamageSource;
diff --git a/net/minecraft/world/level/block/NetherPortalBlock.java b/net/minecraft/world/level/block/NetherPortalBlock.java
index 6c5629a6f5f91496a55eb0bf281ceae1567915b1..3aabae6e27e692aa65cc931e57306426e0f4d645 100644
index c4ca30c8696e63e78d1b798343a429657cfb8d4d..e6bd9a79dfcf9fa835897933d83abda9e4a8b15d 100644
--- a/net/minecraft/world/level/block/NetherPortalBlock.java
+++ b/net/minecraft/world/level/block/NetherPortalBlock.java
@@ -179,7 +179,18 @@ public class NetherPortalBlock extends Block implements Portal {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Leaves Extra Yggdrasil Service
diff --git a/com/mojang/authlib/yggdrasil/YggdrasilMinecraftSessionService.java b/com/mojang/authlib/yggdrasil/YggdrasilMinecraftSessionService.java
index 8c3151c25c172b846f0d028b5100718ada2d09d7..d59d05f8894481fb5ebe1aeb8ee7a162b3dc6f1c 100644
index 9e5757391ea32e37b2aac52cc1bb38259a2cc497..b85593aea7a347a5c2c50464d2146f96f4fa317e 100644
--- a/com/mojang/authlib/yggdrasil/YggdrasilMinecraftSessionService.java
+++ b/com/mojang/authlib/yggdrasil/YggdrasilMinecraftSessionService.java
@@ -46,7 +46,7 @@ import java.util.stream.Collectors;
@@ -48,7 +48,7 @@ import java.util.stream.Collectors;
public class YggdrasilMinecraftSessionService implements MinecraftSessionService {
private static final Logger LOGGER = LoggerFactory.getLogger(YggdrasilMinecraftSessionService.class);
@@ -18,10 +18,10 @@ index 8c3151c25c172b846f0d028b5100718ada2d09d7..d59d05f8894481fb5ebe1aeb8ee7a162
private final String baseUrl;
private final URL joinUrl;
diff --git a/net/minecraft/server/Main.java b/net/minecraft/server/Main.java
index fd3553bdc1c3cdbf6aa3dc00e0a4987f8eaa4fb8..e673df664b06c654a7be0622874b9b27ad7ef20f 100644
index 8d299a75c80fddc61a2aa4dc5b0dc5948aef5a0d..30b681bc234eac8dc44ce3bf6e228171f5a71a7a 100644
--- a/net/minecraft/server/Main.java
+++ b/net/minecraft/server/Main.java
@@ -178,7 +178,7 @@ public class Main {
@@ -176,7 +176,7 @@ public class Main {
file = new File(bukkitConfiguration.getString("settings.world-container", "."));
}
// Paper end - fix SPIGOT-5824
@@ -31,15 +31,15 @@ index fd3553bdc1c3cdbf6aa3dc00e0a4987f8eaa4fb8..e673df664b06c654a7be0622874b9b27
String string = Optional.ofNullable((String) optionSet.valueOf("world")).orElse(dedicatedServerSettings.getProperties().levelName);
LevelStorageSource levelStorageSource = LevelStorageSource.createDefault(file.toPath());
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
index 11728fa48bb144bbe933eb8fa2df22b52ac1b5a5..7e339cb26a132487ac0ab91d3db7e4885bacd545 100644
index acf1eb032bfaad863ef3627f45c8cd2cbb639772..2bcd2e36c2a934a3b09f2407bd91a4b45989ed74 100644
--- a/net/minecraft/server/MinecraftServer.java
+++ b/net/minecraft/server/MinecraftServer.java
@@ -245,7 +245,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -247,7 +247,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
private boolean isDemo;
private volatile boolean isReady;
private long lastOverloadWarningNanos;
- protected final Services services;
+ public final Services services; // Leaves - protected -> public
private final NotificationManager notificationManager;
private long lastServerStatus;
public final Thread serverThread;
private long lastTickNanos = Util.getNanos();

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Configurable vanilla random
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
index d5051d8a2b0af5d8b63a0d10987c0a7ee7114ff0..e6457e07e7e8e7690d160020b92fbc6874c1ec82 100644
index 6b380737fa5faa510b6c816fb0d8cba6563b7457..537223e73dbc6e1f76752b6cd8fc059ffea635d4 100644
--- a/net/minecraft/world/entity/Entity.java
+++ b/net/minecraft/world/entity/Entity.java
@@ -281,7 +281,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -283,7 +283,7 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name
public double yOld;
public double zOld;
public boolean noPhysics;
@@ -18,10 +18,10 @@ index d5051d8a2b0af5d8b63a0d10987c0a7ee7114ff0..e6457e07e7e8e7690d160020b92fbc68
private int remainingFireTicks;
public boolean wasTouchingWater;
diff --git a/net/minecraft/world/entity/animal/Bee.java b/net/minecraft/world/entity/animal/Bee.java
index 13f24836649790a34b988e2d63accb043e6ff080..d991660c990ca280a422154d4b3bde8dc0cdfd49 100644
index d2d0dcc742b6e28c7c3a5771fa94a4e1ce9e634e..723b3a0492de7e5d673f8b97f4e49ceafa5c91a6 100644
--- a/net/minecraft/world/entity/animal/Bee.java
+++ b/net/minecraft/world/entity/animal/Bee.java
@@ -802,7 +802,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
@@ -809,7 +809,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
@VisibleForDebug
public class BeeGoToHiveGoal extends Bee.BaseBeeGoal {
public static final int MAX_TRAVELLING_TICKS = 2400;
@@ -30,7 +30,7 @@ index 13f24836649790a34b988e2d63accb043e6ff080..d991660c990ca280a422154d4b3bde8d
private static final int MAX_BLACKLISTED_TARGETS = 3;
final List<BlockPos> blacklistedTargets = Lists.newArrayList();
@Nullable
@@ -918,7 +918,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
@@ -925,7 +925,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
public class BeeGoToKnownFlowerGoal extends Bee.BaseBeeGoal {
private static final int MAX_TRAVELLING_TICKS = 2400;
@@ -40,7 +40,7 @@ index 13f24836649790a34b988e2d63accb043e6ff080..d991660c990ca280a422154d4b3bde8d
BeeGoToKnownFlowerGoal() {
this.setFlags(EnumSet.of(Goal.Flag.MOVE));
diff --git a/net/minecraft/world/entity/animal/Squid.java b/net/minecraft/world/entity/animal/Squid.java
index 58e1bc90cbc32669fa6c66d214119f0c459ff38c..ea41360af5e5d49c96ca24e9c36bd52cfdd7d40c 100644
index 1ec68ca8c25939cdbc43f9db579cdf0a5e90def8..149cf78ebe2826a0eb1602722fcf272d9f4ace48 100644
--- a/net/minecraft/world/entity/animal/Squid.java
+++ b/net/minecraft/world/entity/animal/Squid.java
@@ -46,7 +46,7 @@ public class Squid extends AgeableWaterCreature {
@@ -53,10 +53,10 @@ index 58e1bc90cbc32669fa6c66d214119f0c459ff38c..ea41360af5e5d49c96ca24e9c36bd52c
}
diff --git a/net/minecraft/world/entity/item/ItemEntity.java b/net/minecraft/world/entity/item/ItemEntity.java
index df24938d5136948b151d3c1c72ccb2ec97640478..af0467f60e5a873eeed7b741717c327272746a9a 100644
index 9c898022b8985a42a653d1c6ddc03f4e9e840b8e..78edda120dd53be66f3e995dcf4e62799a837532 100644
--- a/net/minecraft/world/entity/item/ItemEntity.java
+++ b/net/minecraft/world/entity/item/ItemEntity.java
@@ -67,7 +67,13 @@ public class ItemEntity extends Entity implements TraceableEntity {
@@ -66,7 +66,13 @@ public class ItemEntity extends Entity implements TraceableEntity {
// Paper start - Don't use level random in entity constructors (to make them thread-safe)
this(EntityType.ITEM, level);
this.setPos(posX, posY, posZ);
@@ -72,7 +72,7 @@ index df24938d5136948b151d3c1c72ccb2ec97640478..af0467f60e5a873eeed7b741717c3272
// Paper end - Don't use level random in entity constructors
}
diff --git a/net/minecraft/world/entity/item/PrimedTnt.java b/net/minecraft/world/entity/item/PrimedTnt.java
index 1d7a1739d6a3a55aacb33d57a58712350b150f64..87dff2fb5246d730feca82396a68b41150e2d383 100644
index c373eae8aa8df57d5925021635237a32bada444a..ee305b69b35e02aa4ca3f49ce48de67466f2b06b 100644
--- a/net/minecraft/world/entity/item/PrimedTnt.java
+++ b/net/minecraft/world/entity/item/PrimedTnt.java
@@ -68,7 +68,7 @@ public class PrimedTnt extends Entity implements TraceableEntity {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Catch update suppression crash
diff --git a/net/minecraft/network/protocol/PacketUtils.java b/net/minecraft/network/protocol/PacketUtils.java
index 4535858701b2bb232b9d2feb2af6551526232ddc..03e70445dfe14c119284f7c301127075c009e915 100644
index ea687aab76df31a3e4ef7377c5a401ae76e17893..9b6f065d4ed6433ea1a067d46300f9d2525f5411 100644
--- a/net/minecraft/network/protocol/PacketUtils.java
+++ b/net/minecraft/network/protocol/PacketUtils.java
@@ -27,7 +27,20 @@ public class PacketUtils {
@@ -18,7 +18,7 @@ index 4535858701b2bb232b9d2feb2af6551526232ddc..03e70445dfe14c119284f7c301127075
+ exception.providePlayer(gamePacketListener.player);
+ }
+ exception.consume();
} catch (Exception var4) {
+ } catch (Exception var4) {
+ if (var4.getCause() instanceof org.leavesmc.leaves.util.UpdateSuppressionException exception) {
+ if (processor instanceof net.minecraft.server.network.ServerGamePacketListenerImpl gamePacketListener) {
+ exception.providePlayer(gamePacketListener.player);
@@ -30,10 +30,10 @@ index 4535858701b2bb232b9d2feb2af6551526232ddc..03e70445dfe14c119284f7c301127075
throw makeReportedException(var4, packet, processor);
}
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
index 4cc0bb9c612986934bf44f933aa402b3787394ba..2545c7ebbe4bab45ea22d3843d42c7e55941387e 100644
index 2bcd2e36c2a934a3b09f2407bd91a4b45989ed74..9b7fb261b6170afe3748bf8628dcac1c31b336f2 100644
--- a/net/minecraft/server/MinecraftServer.java
+++ b/net/minecraft/server/MinecraftServer.java
@@ -1726,7 +1726,16 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1663,7 +1663,16 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
try {
serverLevel.tick(hasTimeLeft);
@@ -51,10 +51,10 @@ index 4cc0bb9c612986934bf44f933aa402b3787394ba..2545c7ebbe4bab45ea22d3843d42c7e5
serverLevel.fillReportDetails(crashReport);
throw new ReportedException(crashReport);
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
index ed05aaa76e1e34ca82fcc7cfb73f371a11600eee..400cb6f7fb05d4e69a7c5bfb960480eef13f15c5 100644
index 99153cbb1de2d6de7289955b24d0e5fe633453d6..93e07c2036e32648c7568651e1791ffeb2128ff6 100644
--- a/net/minecraft/server/level/ServerLevel.java
+++ b/net/minecraft/server/level/ServerLevel.java
@@ -814,6 +814,11 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -835,6 +835,11 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
if (org.leavesmc.leaves.LeavesConfig.performance.remove.tickGuardLambda) {
try {
this.tickNonPassenger(entity); // Leaves - changed
@@ -67,10 +67,10 @@ index ed05aaa76e1e34ca82fcc7cfb73f371a11600eee..400cb6f7fb05d4e69a7c5bfb960480ee
if (throwable instanceof ThreadDeath) throw throwable; // Paper
// Paper start - Prevent block entity and entity crashes
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
index 895cee538086e0494eb0f57c6e6b32ccd43e72e7..e355939e153c05f9434482c4713743755b280d69 100644
index 5402ed9510037b49d26e512be6d35a07ad183420..0981f5d07144f75148b035e41f82190d0cd6526a 100644
--- a/net/minecraft/server/level/ServerPlayer.java
+++ b/net/minecraft/server/level/ServerPlayer.java
@@ -905,6 +905,12 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
@@ -901,6 +901,12 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
((org.bukkit.craftbukkit.CraftWorldBorder) this.getBukkitEntity().getWorldBorder()).getHandle().tick();
}
// CraftBukkit end
@@ -84,10 +84,10 @@ index 895cee538086e0494eb0f57c6e6b32ccd43e72e7..e355939e153c05f9434482c471374375
CrashReport crashReport = CrashReport.forThrowable(var4, "Ticking player");
CrashReportCategory crashReportCategory = crashReport.addCategory("Player being ticked");
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
index d06e5719e62b500432bb6fcb60d6049b8379c17d..df01a171a8073b6a7ef16248bd09b4c902227887 100644
index 537223e73dbc6e1f76752b6cd8fc059ffea635d4..b8d93586189567eca93bd3a723a222a430f69f25 100644
--- a/net/minecraft/world/entity/Entity.java
+++ b/net/minecraft/world/entity/Entity.java
@@ -1351,9 +1351,19 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -1361,9 +1361,19 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name
this.walkingStepSound(pos, state);
}
@@ -109,10 +109,11 @@ index d06e5719e62b500432bb6fcb60d6049b8379c17d..df01a171a8073b6a7ef16248bd09b4c9
return true;
} else {
diff --git a/net/minecraft/world/level/block/ShulkerBoxBlock.java b/net/minecraft/world/level/block/ShulkerBoxBlock.java
index 49bac7af90b0a7c490141be6357563447783c6ca..787a4226789b0e6d35ef1a36601655b0a8666b6f 100644
index f3bc957110ef60ad5e4384b934b60dccea76d5a7..be76ec933182852504363048362ae1045a01dcf7 100644
--- a/net/minecraft/world/level/block/ShulkerBoxBlock.java
+++ b/net/minecraft/world/level/block/ShulkerBoxBlock.java
@@ -183,7 +183,17 @@ public class ShulkerBoxBlock extends BaseEntityBlock {
@@ -182,8 +182,23 @@ public class ShulkerBoxBlock extends BaseEntityBlock {
}
@Override
protected int getAnalogOutputSignal(BlockState blockState, Level level, BlockPos pos) {
@@ -132,7 +133,7 @@ index 49bac7af90b0a7c490141be6357563447783c6ca..787a4226789b0e6d35ef1a36601655b0
public static Block getBlockByColor(@Nullable DyeColor color) {
diff --git a/net/minecraft/world/level/block/state/StateHolder.java b/net/minecraft/world/level/block/state/StateHolder.java
index 9b9842462b210b0407279ee8a8e9ccecf3ead005..ba9c8a677c1759e75392344df7877c5fcc9b9910 100644
index 040919c61ed29b3eda73b5d0f8ed905011e969a4..22dae9cf15fafda4b398025d85bad3e2a5965066 100644
--- a/net/minecraft/world/level/block/state/StateHolder.java
+++ b/net/minecraft/world/level/block/state/StateHolder.java
@@ -104,7 +104,16 @@ public abstract class StateHolder<O, S> implements ca.spottedleaf.moonrise.patch
@@ -154,10 +155,10 @@ index 9b9842462b210b0407279ee8a8e9ccecf3ead005..ba9c8a677c1759e75392344df7877c5f
}
diff --git a/net/minecraft/world/level/chunk/LevelChunk.java b/net/minecraft/world/level/chunk/LevelChunk.java
index f24db919989bc2e5768e18b4fda68c38d6cde7e0..0e22116fefcbdbf2049b7ec285b35fd03c723dc5 100644
index 90287336da43a8eefd5f154c00fba6ee90eda211..e96a7693eb0d94888a3b1db680378374e7aebb91 100644
--- a/net/minecraft/world/level/chunk/LevelChunk.java
+++ b/net/minecraft/world/level/chunk/LevelChunk.java
@@ -373,7 +373,7 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p
@@ -380,7 +380,7 @@ public class LevelChunk extends ChunkAccess implements DebugValueSource, ca.spot
if (blockState == state) {
return null;
} else {
@@ -166,7 +167,7 @@ index f24db919989bc2e5768e18b4fda68c38d6cde7e0..0e22116fefcbdbf2049b7ec285b35fd0
this.heightmaps.get(Heightmap.Types.MOTION_BLOCKING).update(i, y, i2, state);
this.heightmaps.get(Heightmap.Types.MOTION_BLOCKING_NO_LEAVES).update(i, y, i2, state);
this.heightmaps.get(Heightmap.Types.OCEAN_FLOOR).update(i, y, i2, state);
@@ -445,6 +445,7 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p
@@ -452,6 +452,7 @@ public class LevelChunk extends ChunkAccess implements DebugValueSource, ca.spot
this.markUnsaved();
return blockState;
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Bedrock break list
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
index 2545c7ebbe4bab45ea22d3843d42c7e55941387e..cbc9f4fbad0a88bc324111a7ce80c2880ed1d3be 100644
index 9b7fb261b6170afe3748bf8628dcac1c31b336f2..e111da378b6b4c67a7baa05a145c53a7130683ac 100644
--- a/net/minecraft/server/MinecraftServer.java
+++ b/net/minecraft/server/MinecraftServer.java
@@ -1758,6 +1758,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1698,6 +1698,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
profilerFiller.popPush("server gui refresh");
org.leavesmc.leaves.protocol.core.LeavesProtocolManager.handleTick(tickCount); // Leaves - protocol
@@ -37,13 +37,13 @@ index fc1c377ad05edcefacd407671801ae605f3fc31a..5c9f2a8476ff260ec7f0843f7c956c71
this.stopTrackingObjective(objective);
}
diff --git a/net/minecraft/world/level/block/piston/PistonBaseBlock.java b/net/minecraft/world/level/block/piston/PistonBaseBlock.java
index 10484ee85482e86be5e0a09d8202df600a32092e..16aa9f5996dc6eda95541fddb01e00e41305357a 100644
index 1ec81224f5e048ffe6342c8d698713f30ebe96b8..26c9ee02de0d5d9f556c947b5461cd10cd03d649 100644
--- a/net/minecraft/world/level/block/piston/PistonBaseBlock.java
+++ b/net/minecraft/world/level/block/piston/PistonBaseBlock.java
@@ -74,6 +74,11 @@ public class PistonBaseBlock extends DirectionalBlock {
@Override
public void setPlacedBy(Level level, BlockPos pos, BlockState state, LivingEntity placer, ItemStack stack) {
if (!level.isClientSide) {
if (!level.isClientSide()) {
+ // Leaves start - break bedrock list
+ if (placer instanceof net.minecraft.world.entity.player.Player player) {
+ org.leavesmc.leaves.util.BreakBedrockList.onPlayerPlacePiston(level, player, pos);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Disable distance check for UseItemOnPacket
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 6622d11f970def6adc2a732187004413a9501c95..e0687743975db1832933661540650df86a911a80 100644
index 0708331ed67723b6d9aef0486b7d89771e07a60a..bec2943bf4535dee57490423c91924e2c2b905d6 100644
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2038,7 +2038,7 @@ public class ServerGamePacketListenerImpl
@@ -2045,7 +2045,7 @@ public class ServerGamePacketListenerImpl
if (this.player.canInteractWithBlock(blockPos, 1.0)) {
Vec3 vec3 = location.subtract(Vec3.atCenterOf(blockPos));
double d = 1.0000001;

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Disable packet limit
diff --git a/net/minecraft/network/Connection.java b/net/minecraft/network/Connection.java
index 3e9b8c5fb2157f767de8bddc3e767512c5f7651f..ce65b531ec2b8a5dd1955ee8d826520f9a9a5f3b 100644
index d36a33a9ea2cc262f746314eda9770e19e328ddd..39a703a95cf3e80f8be24514aa7216d6aab76b81 100644
--- a/net/minecraft/network/Connection.java
+++ b/net/minecraft/network/Connection.java
@@ -245,8 +245,8 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
@@ -20,19 +20,19 @@ index 3e9b8c5fb2157f767de8bddc3e767512c5f7651f..ce65b531ec2b8a5dd1955ee8d826520f
synchronized (PACKET_LIMIT_LOCK) {
if (this.allPacketCounts != null) {
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index e4ea337185ed33b04fff0ea0974619bb27fa83bf..4b91a75e10161e69771a2779d3531e386a3fbde2 100644
index bec2943bf4535dee57490423c91924e2c2b905d6..d2693b19a8bffd598188fa821771350660c6a98e 100644
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -821,7 +821,7 @@ public class ServerGamePacketListenerImpl
@@ -827,7 +827,7 @@ public class ServerGamePacketListenerImpl
public void handleCustomCommandSuggestions(ServerboundCommandSuggestionPacket packet) {
// PacketUtils.ensureRunningOnSameThread(packet, this, this.player.level()); // Paper - AsyncTabCompleteEvent; run this async
// CraftBukkit start
- if (!this.tabSpamThrottler.isIncrementAndUnderThreshold() && !this.server.getPlayerList().isOp(this.player.getGameProfile()) && !this.server.isSingleplayerOwner(this.player.getGameProfile())) { // Paper - configurable tab spam limits
+ if (!org.leavesmc.leaves.LeavesConfig.modify.disablePacketLimit && !this.tabSpamThrottler.isIncrementAndUnderThreshold() && !this.server.getPlayerList().isOp(this.player.getGameProfile()) && !this.server.isSingleplayerOwner(this.player.getGameProfile())) { // Paper - configurable tab spam limits // Leaves - can disable
- if (!this.tabSpamThrottler.isIncrementAndUnderThreshold() && !this.server.getPlayerList().isOp(this.player.nameAndId()) && !this.server.isSingleplayerOwner(this.player.nameAndId())) { // Paper - configurable tab spam limits
+ if (!org.leavesmc.leaves.LeavesConfig.modify.disablePacketLimit && !this.tabSpamThrottler.isIncrementAndUnderThreshold() && !this.server.getPlayerList().isOp(this.player.nameAndId()) && !this.server.isSingleplayerOwner(this.player.nameAndId())) { // Paper - configurable tab spam limits // Leaves - can disable
this.disconnectAsync(Component.translatable("disconnect.spam"), org.bukkit.event.player.PlayerKickEvent.Cause.SPAM); // Paper - Kick event cause // Paper - add proper async disconnect
return;
}
@@ -2002,6 +2002,7 @@ public class ServerGamePacketListenerImpl
@@ -2009,6 +2009,7 @@ public class ServerGamePacketListenerImpl
private static int getSpamThreshold() { return io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.incomingPacketThreshold; } // Paper - Configurable threshold
private boolean checkLimit(long timestamp) {
@@ -40,7 +40,7 @@ index e4ea337185ed33b04fff0ea0974619bb27fa83bf..4b91a75e10161e69771a2779d3531e38
if (this.lastLimitedPacket != -1 && timestamp - this.lastLimitedPacket < getSpamThreshold() && this.limitedPackets++ >= 8) { // Paper - Configurable threshold; raise packet limit to 8
return false;
}
@@ -2536,6 +2537,7 @@ public class ServerGamePacketListenerImpl
@@ -2543,6 +2544,7 @@ public class ServerGamePacketListenerImpl
// Spigot start - spam exclusions
private void detectRateSpam(String message) {
@@ -48,7 +48,7 @@ index e4ea337185ed33b04fff0ea0974619bb27fa83bf..4b91a75e10161e69771a2779d3531e38
// CraftBukkit start - replaced with thread safe throttle
if (org.spigotmc.SpigotConfig.enableSpamExclusions) {
for (String exclude : org.spigotmc.SpigotConfig.spamExclusions) {
@@ -3246,7 +3248,7 @@ public class ServerGamePacketListenerImpl
@@ -3256,7 +3258,7 @@ public class ServerGamePacketListenerImpl
@Override
public void handlePlaceRecipe(ServerboundPlaceRecipePacket packet) {
// Paper start - auto recipe limit

View File

@@ -6,10 +6,10 @@ Subject: [PATCH] Syncmatica Protocol
This patch is Powered by Syncmatica(https://github.com/End-Tech/syncmatica)
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 3c7b691a60f355ebaeb96f7ba07955f5be7fd09b..6e8e4b009a4dd52047bc8d8f8e2e27558e0d8dff 100644
index d2693b19a8bffd598188fa821771350660c6a98e..84242a60d399c77599d24105e123ff664cc05d5d 100644
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -323,9 +323,12 @@ public class ServerGamePacketListenerImpl
@@ -325,9 +325,12 @@ public class ServerGamePacketListenerImpl
this.signedMessageDecoder = SignedMessageChain.Decoder.unsigned(player.getUUID(), server::enforceSecureProfile);
this.chatMessageChain = new FutureChain(server.chatExecutor); // CraftBukkit - async chat
this.tickEndEvent = new io.papermc.paper.event.packet.ClientTickEndEvent(player.getBukkitEntity()); // Paper - add client tick end event

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Despawn enderman with block
diff --git a/net/minecraft/world/entity/monster/EnderMan.java b/net/minecraft/world/entity/monster/EnderMan.java
index 6760bfd91f59139922768db5e5d362c5e7e4e473..33d4025ac997f46b7bf129c4dd3ba457c6fc9da2 100644
index 0732709d0ca78f59ad6b7f8ac5e7bfbe5506f60b..b314fb8819388facf664060fc0d1a091543aac68 100644
--- a/net/minecraft/world/entity/monster/EnderMan.java
+++ b/net/minecraft/world/entity/monster/EnderMan.java
@@ -448,7 +448,7 @@ public class EnderMan extends Monster implements NeutralMob {
@@ -454,7 +454,7 @@ public class EnderMan extends Monster implements NeutralMob {
@Override
public boolean requiresCustomPersistence() {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Creative fly no clip
diff --git a/net/minecraft/world/entity/ExperienceOrb.java b/net/minecraft/world/entity/ExperienceOrb.java
index a62edee768c30c99213baa6bd736d67ae52b558c..cfd9d63f55e73c1777055d13a802b29e151cc0d4 100644
index c452ee3f26bf3f9e055d5055473b1ef76a8a5884..8bd430c5c417c76db02cf1e2c0bc6f229ed150f1 100644
--- a/net/minecraft/world/entity/ExperienceOrb.java
+++ b/net/minecraft/world/entity/ExperienceOrb.java
@@ -202,7 +202,7 @@ public class ExperienceOrb extends Entity {
@@ -18,10 +18,10 @@ index a62edee768c30c99213baa6bd736d67ae52b558c..cfd9d63f55e73c1777055d13a802b29e
} else {
this.followingPlayer = null;
diff --git a/net/minecraft/world/entity/player/Player.java b/net/minecraft/world/entity/player/Player.java
index 8ec6f52f58bcc985fdc758a692798a35d6c86378..61baebc707cb6afcaf8c7f56fd906813d309a2cf 100644
index 468097eafe73b45924697d36acc962b7bf9ca17b..451ff11e0ad37d1766e937133f5879b6568953f8 100644
--- a/net/minecraft/world/entity/player/Player.java
+++ b/net/minecraft/world/entity/player/Player.java
@@ -287,8 +287,8 @@ public abstract class Player extends LivingEntity {
@@ -246,8 +246,8 @@ public abstract class Player extends Avatar implements ContainerUser {
@Override
public void tick() {
@@ -32,7 +32,7 @@ index 8ec6f52f58bcc985fdc758a692798a35d6c86378..61baebc707cb6afcaf8c7f56fd906813
this.setOnGround(false);
}
@@ -481,7 +481,7 @@ public abstract class Player extends LivingEntity {
@@ -374,7 +374,7 @@ public abstract class Player extends Avatar implements ContainerUser {
if (this.canPlayerFitWithinBlocksAndEntitiesWhen(Pose.SWIMMING)) {
Pose desiredPose = this.getDesiredPose();
Pose pose;
@@ -50,7 +50,7 @@ index 8ec6f52f58bcc985fdc758a692798a35d6c86378..61baebc707cb6afcaf8c7f56fd906813
AABB aabb;
if (this.isPassenger() && !this.getVehicle().isRemoved()) {
aabb = this.getBoundingBox().minmax(this.getVehicle().getBoundingBox()).inflate(1.0, 0.0, 1.0);
@@ -1949,9 +1949,29 @@ public abstract class Player extends LivingEntity {
@@ -1732,9 +1744,29 @@ public abstract class Player extends Avatar implements ContainerUser {
return this.gameMode() == GameType.SPECTATOR;
}
@@ -82,10 +82,10 @@ index 8ec6f52f58bcc985fdc758a692798a35d6c86378..61baebc707cb6afcaf8c7f56fd906813
@Override
diff --git a/net/minecraft/world/item/BlockItem.java b/net/minecraft/world/item/BlockItem.java
index a46a50d1385897cc7fcf0d6976f0de7e8078d260..593e65ef3a768d4039047e42e666c8382a5d38eb 100644
index 27f6cb2e8104f1e12bed65d090d857b408297013..cf00493cbf131d0af2137a852c9ffba9dbeaddb3 100644
--- a/net/minecraft/world/item/BlockItem.java
+++ b/net/minecraft/world/item/BlockItem.java
@@ -185,8 +185,9 @@ public class BlockItem extends Item {
@@ -184,8 +184,9 @@ public class BlockItem extends Item {
protected boolean canPlace(BlockPlaceContext context, BlockState state) {
Player player = context.getPlayer();
// CraftBukkit start
@@ -110,10 +110,10 @@ index 1f0e7c391d02b18e2c89700025713ec3d759f2ea..300ee12ca9584e53e9d72e3ebfd039be
org.bukkit.event.block.BlockCanBuildEvent event = new org.bukkit.event.block.BlockCanBuildEvent(org.bukkit.craftbukkit.block.CraftBlock.at(context.getLevel(), clickedPos), player, org.bukkit.craftbukkit.block.data.CraftBlockData.fromData(blockState), defaultReturn, org.bukkit.craftbukkit.CraftEquipmentSlot.getHand(context.getHand())); // Paper - Expose hand in BlockCanBuildEvent
diff --git a/net/minecraft/world/level/block/entity/ShulkerBoxBlockEntity.java b/net/minecraft/world/level/block/entity/ShulkerBoxBlockEntity.java
index a820ab9a2b6dc6b95d4de61aaaad4e79c521efe4..c1d1e28daa3b4d2a0bb359af08670f5d071e51ed 100644
index 10c123b9cffdc79d069a82d09e57b24bc1572771..034f01c0f8987fbfd32120c8186aa8c6f44eb81d 100644
--- a/net/minecraft/world/level/block/entity/ShulkerBoxBlockEntity.java
+++ b/net/minecraft/world/level/block/entity/ShulkerBoxBlockEntity.java
@@ -152,7 +152,7 @@ public class ShulkerBoxBlockEntity extends RandomizableContainerBlockEntity impl
@@ -153,7 +153,7 @@ public class ShulkerBoxBlockEntity extends RandomizableContainerBlockEntity impl
List<Entity> entities = level.getEntities(null, progressDeltaAabb);
if (!entities.isEmpty()) {
for (Entity entity : entities) {
@@ -123,7 +123,7 @@ index a820ab9a2b6dc6b95d4de61aaaad4e79c521efe4..c1d1e28daa3b4d2a0bb359af08670f5d
MoverType.SHULKER_BOX,
new Vec3(
diff --git a/net/minecraft/world/level/block/piston/PistonMovingBlockEntity.java b/net/minecraft/world/level/block/piston/PistonMovingBlockEntity.java
index 0976aef81b950a062152094501372d00c20bb2b7..2841dd4896ee15d8d7ea1105d0f78b7fe41937fb 100644
index e8f556f175bb9192445b9c464c6b587296ce8e1b..7b73bb1c48d7ca6a4bb3a3b71caaf98fdd4b4c6c 100644
--- a/net/minecraft/world/level/block/piston/PistonMovingBlockEntity.java
+++ b/net/minecraft/world/level/block/piston/PistonMovingBlockEntity.java
@@ -151,7 +151,7 @@ public class PistonMovingBlockEntity extends BlockEntity {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Shave snow layers
diff --git a/net/minecraft/world/item/ShovelItem.java b/net/minecraft/world/item/ShovelItem.java
index 887ac9f547ceaf76fd533ae47239a64c29a64b18..29b272ff2e4fe686a0e12b33f6edbe1a412b1590 100644
index 410739a0656836502717969bcedbb20812a2fe54..d7a2fb74a60b37d50ccdd2062385124737f55d48 100644
--- a/net/minecraft/world/item/ShovelItem.java
+++ b/net/minecraft/world/item/ShovelItem.java
@@ -43,6 +43,26 @@ public class ShovelItem extends Item {
@@ -42,6 +42,26 @@ public class ShovelItem extends Item {
return InteractionResult.PASS;
} else {
Player player = context.getPlayer();

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Elytra aeronautics no chunk load
diff --git a/net/minecraft/server/level/ChunkMap.java b/net/minecraft/server/level/ChunkMap.java
index 019886669966c69936ae6591598c97a8afbfd3db..b6fb1f2ba8622d9d319210ea7cf0a984349444e6 100644
index 9f315d6b20562e35b226ea3420b75db5a30b36e4..364249e9078973af5a44c76b8e792897d58cc725 100644
--- a/net/minecraft/server/level/ChunkMap.java
+++ b/net/minecraft/server/level/ChunkMap.java
@@ -854,7 +854,8 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -859,7 +859,8 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
}
private boolean skipPlayer(ServerPlayer player) {
@@ -18,7 +18,7 @@ index 019886669966c69936ae6591598c97a8afbfd3db..b6fb1f2ba8622d9d319210ea7cf0a984
}
void updatePlayerStatus(ServerPlayer player, boolean track) {
@@ -888,6 +889,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -893,6 +894,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
}
public void move(ServerPlayer player) {
@@ -27,24 +27,24 @@ index 019886669966c69936ae6591598c97a8afbfd3db..b6fb1f2ba8622d9d319210ea7cf0a984
SectionPos lastSectionPos = player.getLastSectionPos();
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
index 400cb6f7fb05d4e69a7c5bfb960480eef13f15c5..d64292ebe3ed40655720ea112f7cbc2fb2108d9e 100644
index 93e07c2036e32648c7568651e1791ffeb2128ff6..5deab686b386e3b82205a828ae12a72cb0f2e6fb 100644
--- a/net/minecraft/server/level/ServerLevel.java
+++ b/net/minecraft/server/level/ServerLevel.java
@@ -839,6 +839,9 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
}
@@ -861,6 +861,9 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
}
);
profilerFiller.popPush("blockEntities");
+ if (org.leavesmc.leaves.LeavesConfig.modify.elytraAeronautics.enableNoChunkLoad) {
+ org.leavesmc.leaves.util.ElytraAeronauticsHelper.tick(this);
+ }
profilerFiller.pop();
this.tickBlockEntities();
profilerFiller.pop();
}
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 6d9e8cb2ffe24568854a3681b8fdce76f21612c9..cbd4b3a909eab280aebcb959d86abcc66e12d633 100644
index 84242a60d399c77599d24105e123ff664cc05d5d..b6d337c58625af55ef3906038eb440067af8b0de 100644
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -582,7 +582,7 @@ public class ServerGamePacketListenerImpl
@@ -590,7 +590,7 @@ public class ServerGamePacketListenerImpl
speed *= 2f; // TODO: Get the speed of the vehicle instead of the player
// Paper start - Prevent moving into unloaded chunks
@@ -53,7 +53,7 @@ index 6d9e8cb2ffe24568854a3681b8fdce76f21612c9..cbd4b3a909eab280aebcb959d86abcc6
!serverLevel.areChunksLoadedForMove(this.player.getBoundingBox().expandTowards(new Vec3(toX, toY, toZ).subtract(this.player.position()))) ||
!serverLevel.areChunksLoadedForMove(rootVehicle.getBoundingBox().expandTowards(new Vec3(toX, toY, toZ).subtract(rootVehicle.position())))
)) {
@@ -1597,6 +1597,7 @@ public class ServerGamePacketListenerImpl
@@ -1602,6 +1602,7 @@ public class ServerGamePacketListenerImpl
allowMovement = !this.hasNewCollision(serverLevel, this.player, boundingBox, newBox);
} // else: no collision at all detected, why do we care?
}
@@ -62,10 +62,10 @@ index 6d9e8cb2ffe24568854a3681b8fdce76f21612c9..cbd4b3a909eab280aebcb959d86abcc6
if (!allowMovement) {
io.papermc.paper.event.player.PlayerFailMoveEvent event = fireFailMove(io.papermc.paper.event.player.PlayerFailMoveEvent.FailReason.CLIPPED_INTO_BLOCK,
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
index f8e0275ebac65edfca3e8bb5d53001becd9a963f..81cf649fd4690fe5061c88e99db3d01d7faf67bf 100644
index b8d93586189567eca93bd3a723a222a430f69f25..d323afb09232aa5b472f15ce8b7e16b52b81d55c 100644
--- a/net/minecraft/world/entity/Entity.java
+++ b/net/minecraft/world/entity/Entity.java
@@ -1118,7 +1118,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -1128,7 +1128,13 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name
return;
}
}
@@ -80,7 +80,7 @@ index f8e0275ebac65edfca3e8bb5d53001becd9a963f..81cf649fd4690fe5061c88e99db3d01d
ProfilerFiller profilerFiller = Profiler.get();
profilerFiller.push("move");
if (this.stuckSpeedMultiplier.lengthSqr() > 1.0E-7) {
@@ -2137,6 +2143,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -2189,6 +2195,7 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name
this.yo = y;
this.zo = d1;
this.setPos(d, y, d1);
@@ -89,10 +89,10 @@ index f8e0275ebac65edfca3e8bb5d53001becd9a963f..81cf649fd4690fe5061c88e99db3d01d
}
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
index fbf884201442c6e75b5ab4533517a10e78f02f94..841dc41e455da73ff1bfdb8feaf231ade29d1e41 100644
index 4f4331cfb39f3ec30983ef510580ddedcec6795d..337bda20f5f457707a5179615eee9d8977fa6d86 100644
--- a/net/minecraft/world/entity/LivingEntity.java
+++ b/net/minecraft/world/entity/LivingEntity.java
@@ -3328,6 +3328,11 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
@@ -3360,6 +3360,11 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
this.fallFlyTicks++;
} else {
this.fallFlyTicks = 0;
@@ -105,10 +105,10 @@ index fbf884201442c6e75b5ab4533517a10e78f02f94..841dc41e455da73ff1bfdb8feaf231ad
if (this.isSleeping()) {
diff --git a/net/minecraft/world/entity/player/Player.java b/net/minecraft/world/entity/player/Player.java
index 61baebc707cb6afcaf8c7f56fd906813d309a2cf..eca523fe027d3570eb549756d825678e17e74152 100644
index 451ff11e0ad37d1766e937133f5879b6568953f8..df40c8f807dc03bf70b6c15ff885343a2d195e9c 100644
--- a/net/minecraft/world/entity/player/Player.java
+++ b/net/minecraft/world/entity/player/Player.java
@@ -219,6 +219,7 @@ public abstract class Player extends LivingEntity {
@@ -180,6 +180,7 @@ public abstract class Player extends Avatar implements ContainerUser {
private int currentImpulseContextResetGraceTime = 0;
public boolean affectsSpawning = true; // Paper - Affects Spawning API
public net.kyori.adventure.util.TriState flyingFallDamage = net.kyori.adventure.util.TriState.NOT_SET; // Paper - flying fall damage
@@ -117,7 +117,7 @@ index 61baebc707cb6afcaf8c7f56fd906813d309a2cf..eca523fe027d3570eb549756d825678e
// CraftBukkit start
public boolean fauxSleeping;
diff --git a/net/minecraft/world/entity/projectile/FireworkRocketEntity.java b/net/minecraft/world/entity/projectile/FireworkRocketEntity.java
index d8dc196ef92e97f831cf97cd1536a46f81f9d5d1..92da11f86a95ff635277cbfcea73c48731080953 100644
index be9c8ba1e73d7348227139f7586a80f74c3e473f..1173e0d32f603cc026efc47e5953d5c8d26ca30e 100644
--- a/net/minecraft/world/entity/projectile/FireworkRocketEntity.java
+++ b/net/minecraft/world/entity/projectile/FireworkRocketEntity.java
@@ -324,7 +324,7 @@ public class FireworkRocketEntity extends Projectile implements ItemSupplier {

View File

@@ -5,23 +5,23 @@ Subject: [PATCH] No block update command
diff --git a/net/minecraft/server/level/ServerPlayerGameMode.java b/net/minecraft/server/level/ServerPlayerGameMode.java
index 5d4eb61af0b0f39a5d4c37f4a303fa24b3a2936d..48bb795216ca3fb301813080de403a048bbfa98c 100644
index 3a1108b1e98629a7d2ade8c25a604175cedcd42e..fc205e54941d40a5583129b0c6540950f97a6b49 100644
--- a/net/minecraft/server/level/ServerPlayerGameMode.java
+++ b/net/minecraft/server/level/ServerPlayerGameMode.java
@@ -381,7 +381,7 @@ public class ServerPlayerGameMode {
@@ -401,7 +401,7 @@ public class ServerPlayerGameMode {
org.bukkit.block.BlockState state = bblock.getState();
this.level.captureDrops = new java.util.ArrayList<>();
// CraftBukkit end
- BlockState blockState1 = block.playerWillDestroy(this.level, pos, blockState, this.player);
+ BlockState blockState1 = org.leavesmc.leaves.command.subcommands.BlockUpdateCommand.isNoBlockUpdate() ? blockState : block.playerWillDestroy(this.level, pos, blockState, this.player); // Leaves - no block update
boolean flag = this.level.removeBlock(pos, false);
if (flag) {
block.destroy(this.level, pos, blockState1);
if (SharedConstants.DEBUG_BLOCK_BREAK) {
LOGGER.info("server broke {} {} -> {}", pos, blockState1, this.level.getBlockState(pos));
diff --git a/net/minecraft/world/level/Level.java b/net/minecraft/world/level/Level.java
index ef8a072838558caab19e8a85f4b59cac570c2635..590252ca203124f0b720a73f174c92fbe49bc685 100644
index 2518ddaa6bd35e6df88ce74531b772a7a1017e66..f8e23a0a2a0b0680c277b4c2cb1fd5922bb939da 100644
--- a/net/minecraft/world/level/Level.java
+++ b/net/minecraft/world/level/Level.java
@@ -1089,6 +1089,11 @@ public abstract class Level implements LevelAccessor, UUIDLookup<Entity>, AutoCl
@@ -1042,6 +1042,11 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl
@Override
public boolean setBlock(BlockPos pos, BlockState state, int flags, int recursionLeft) {
@@ -33,7 +33,7 @@ index ef8a072838558caab19e8a85f4b59cac570c2635..590252ca203124f0b720a73f174c92fb
// CraftBukkit start - tree generation
if (this.captureTreeGeneration) {
// Paper start - Protect Bedrock and End Portal/Frames from being destroyed
@@ -1190,6 +1195,11 @@ public abstract class Level implements LevelAccessor, UUIDLookup<Entity>, AutoCl
@@ -1143,6 +1148,11 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl
BlockState state = newState;
BlockState blockState = oldState;
BlockState blockState1 = currentState;
@@ -45,7 +45,7 @@ index ef8a072838558caab19e8a85f4b59cac570c2635..590252ca203124f0b720a73f174c92fb
if (blockState1 == state) {
if (blockState != blockState1) {
this.setBlocksDirty(pos, blockState, blockState1);
@@ -1208,7 +1218,12 @@ public abstract class Level implements LevelAccessor, UUIDLookup<Entity>, AutoCl
@@ -1161,7 +1171,12 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl
if ((flags & 16) == 0 && recursionLeft > 0) {
int i = flags & -34;
@@ -60,7 +60,7 @@ index ef8a072838558caab19e8a85f4b59cac570c2635..590252ca203124f0b720a73f174c92fb
blockState.updateIndirectNeighbourShapes(this, pos, i, recursionLeft - 1); // Don't call an event for the old block to limit event spam
boolean cancelledUpdates = false; // Paper - Fix block place logic
diff --git a/net/minecraft/world/level/block/piston/PistonBaseBlock.java b/net/minecraft/world/level/block/piston/PistonBaseBlock.java
index 16aa9f5996dc6eda95541fddb01e00e41305357a..31ab92e0769aa4ce09da5073ad9b734eeebac9c5 100644
index 26c9ee02de0d5d9f556c947b5461cd10cd03d649..3de51052525e5bc1e35418caa7d904ab441f3769 100644
--- a/net/minecraft/world/level/block/piston/PistonBaseBlock.java
+++ b/net/minecraft/world/level/block/piston/PistonBaseBlock.java
@@ -105,6 +105,7 @@ public class PistonBaseBlock extends DirectionalBlock {
@@ -72,7 +72,7 @@ index 16aa9f5996dc6eda95541fddb01e00e41305357a..31ab92e0769aa4ce09da5073ad9b734e
boolean neighborSignal = this.getNeighborSignal(level, pos, direction);
if (neighborSignal && !state.getValue(EXTENDED)) {
diff --git a/net/minecraft/world/level/redstone/NeighborUpdater.java b/net/minecraft/world/level/redstone/NeighborUpdater.java
index 263bf2b795057c2d5218bf9cfb684e526601aa77..da1e77ccd8805ac0cb0729720b4a1742da67d35c 100644
index 8942aa2ca4796c7c36c0955141627ea905e0ec64..dc0137ed3aecc783654c30889649584d6fb761a6 100644
--- a/net/minecraft/world/level/redstone/NeighborUpdater.java
+++ b/net/minecraft/world/level/redstone/NeighborUpdater.java
@@ -34,6 +34,11 @@ public interface NeighborUpdater {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Container open passthrough
diff --git a/net/minecraft/world/entity/decoration/ItemFrame.java b/net/minecraft/world/entity/decoration/ItemFrame.java
index 90fd3ca5ecd29befa9237222e9f86a8a79a011e4..cc26f2bfd8992207fffd74b89752275abe2be623 100644
index 56582d74b9420f688cc6a1abf31a644cb365b797..e67e662d2e86fd661e9b582215d84231592d4dd4 100644
--- a/net/minecraft/world/entity/decoration/ItemFrame.java
+++ b/net/minecraft/world/entity/decoration/ItemFrame.java
@@ -412,6 +412,20 @@ public class ItemFrame extends HangingEntity {
@@ -414,6 +414,20 @@ public class ItemFrame extends HangingEntity {
return InteractionResult.PASS;
}
} else {

View File

@@ -87,22 +87,11 @@ index 09fd99c9cbd23b5f3c899bfb00c9b89651948ed8..d58539fe376f548930b49141c87ec5eb
+
+ @Override public <T> void compact(net.minecraft.world.level.chunk.Palette<T> srcPalette, net.minecraft.world.level.chunk.Palette<T> dstPalette, short[] out) {} // Leaves - Gale - Lithium - faster chunk serialization
}
diff --git a/net/minecraft/world/level/chunk/PaletteResize.java b/net/minecraft/world/level/chunk/PaletteResize.java
index c723606fa0be811e580ba47de8c9c575583cc930..2483210ca43221feaa5a2f1ced5c59731d5189fc 100644
--- a/net/minecraft/world/level/chunk/PaletteResize.java
+++ b/net/minecraft/world/level/chunk/PaletteResize.java
@@ -1,5 +1,5 @@
package net.minecraft.world.level.chunk;
-interface PaletteResize<T> {
+public interface PaletteResize<T> {
int onResize(int bits, T objectAdded);
}
diff --git a/net/minecraft/world/level/chunk/PalettedContainer.java b/net/minecraft/world/level/chunk/PalettedContainer.java
index a251ba67644cd02a0b00d7c8b0e2c64aa5e26291..a826aff16aee6692ca07d485ab3c79c1c4a38b52 100644
index 1843046fe145bb23f2e9cf3269fb05c0fb617603..57fd2cba6d47af8f3156fe3487f16ddaf0db57b8 100644
--- a/net/minecraft/world/level/chunk/PalettedContainer.java
+++ b/net/minecraft/world/level/chunk/PalettedContainer.java
@@ -24,6 +24,22 @@ import net.minecraft.util.ThreadingDetector;
@@ -23,6 +23,22 @@ import net.minecraft.util.ThreadingDetector;
import net.minecraft.util.ZeroBitStorage;
public class PalettedContainer<T> implements PaletteResize<T>, PalettedContainerRO<T> {
@@ -123,12 +112,12 @@ index a251ba67644cd02a0b00d7c8b0e2c64aa5e26291..a826aff16aee6692ca07d485ab3c79c1
+ // Leaves end - Gale - Lithium - faster chunk serialization
+
private static final int MIN_PALETTE_BITS = 0;
private final PaletteResize<T> dummyPaletteResize = (bits, objectAdded) -> 0;
public final IdMap<T> registry;
@@ -343,6 +359,56 @@ public class PalettedContainer<T> implements PaletteResize<T>, PalettedContainer
public synchronized PalettedContainerRO.PackedData<T> pack(IdMap<T> registry, PalettedContainer.Strategy strategy) { // Paper - synchronize
public volatile PalettedContainer.Data<T> data; // Paper - optimise collisions - public
private final Strategy<T> strategy;
@@ -340,7 +356,61 @@ public class PalettedContainer<T> implements PaletteResize<T>, PalettedContainer
public synchronized PalettedContainerRO.PackedData<T> pack(Strategy<T> strategy) { // Paper - synchronize
this.acquire();
+ // Leaves start - Gale - Lithium - faster chunk serialization
+ if (org.leavesmc.leaves.LeavesConfig.performance.fasterChunkSerialization) {
+ Optional<LongStream> data = Optional.empty();
@@ -181,8 +170,9 @@ index a251ba67644cd02a0b00d7c8b0e2c64aa5e26291..a826aff16aee6692ca07d485ab3c79c1
+ // Leaves end - Gale - Lithium - faster chunk serialization
PalettedContainerRO.PackedData var12;
try {
HashMapPalette<T> hashMapPalette = new HashMapPalette<>(registry, this.data.storage.getBits(), this.dummyPaletteResize);
@@ -404,13 +470,43 @@ public class PalettedContainer<T> implements PaletteResize<T>, PalettedContainer
BitStorage bitStorage = this.data.storage;
Palette<T> palette = this.data.palette;
@@ -412,12 +482,59 @@ public class PalettedContainer<T> implements PaletteResize<T>, PalettedContainer
@Override
public void count(PalettedContainer.CountConsumer<T> countConsumer) {

View File

@@ -6,10 +6,10 @@ Subject: [PATCH] Optimize sun burn tick
This patch is Powered by Gale(https://github.com/GaleMC/Gale)
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
index 81cf649fd4690fe5061c88e99db3d01d7faf67bf..2170020f55abc47d489838f98a7d67bcef2a33a0 100644
index d323afb09232aa5b472f15ce8b7e16b52b81d55c..26c7ca8a17ac4b01fd092a1e4065e724d49c6cd5 100644
--- a/net/minecraft/world/entity/Entity.java
+++ b/net/minecraft/world/entity/Entity.java
@@ -2118,9 +2118,20 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -2170,9 +2170,20 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name
@Deprecated
public float getLightLevelDependentMagicValue() {
@@ -33,7 +33,7 @@ index 81cf649fd4690fe5061c88e99db3d01d7faf67bf..2170020f55abc47d489838f98a7d67bc
}
public void absSnapTo(double x, double y, double z, float yRot, float xRot) {
@@ -2135,6 +2146,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -2187,6 +2198,7 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name
this.xRotO = this.getXRot();
this.setYHeadRot(yRot); // Paper - Update head rotation
}
@@ -42,10 +42,10 @@ index 81cf649fd4690fe5061c88e99db3d01d7faf67bf..2170020f55abc47d489838f98a7d67bc
public void absSnapTo(double x, double y, double z) {
double d = Mth.clamp(x, -3.0E7, 3.0E7);
diff --git a/net/minecraft/world/entity/Mob.java b/net/minecraft/world/entity/Mob.java
index 16cb4b7472b05c8aab195d5b865dd21ccd4adef8..3b73d52ea902bb1c8bd615c77444c57917f8b645 100644
index 37ad911648aa88bdb5132a819806a5a303438dbf..09065cb08b3ee1aed8a20e4293ef7144cb473da9 100644
--- a/net/minecraft/world/entity/Mob.java
+++ b/net/minecraft/world/entity/Mob.java
@@ -1546,17 +1546,39 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
@@ -1565,7 +1565,13 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
protected void playAttackSound() {
}

View File

@@ -6,10 +6,10 @@ Subject: [PATCH] Check frozen ticks before landing block
This patch is Powered by Gale(https://github.com/GaleMC/Gale)
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
index 9c85639394826f7e683d67e53c1be8cdf9369a78..1bf4cda041189aa5ac67be4a1bda312620788388 100644
index 337bda20f5f457707a5179615eee9d8977fa6d86..67c29508c177449ce33fede89c7a9c3d9e8c6a6f 100644
--- a/net/minecraft/world/entity/LivingEntity.java
+++ b/net/minecraft/world/entity/LivingEntity.java
@@ -537,10 +537,10 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
@@ -544,10 +544,10 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
}
protected void tryAddFrost() {

View File

@@ -6,10 +6,10 @@ Subject: [PATCH] Skip entity move if movement is zero
This patch is Powered by Gale(https://github.com/GaleMC/Gale)
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
index 2170020f55abc47d489838f98a7d67bcef2a33a0..6cf6e63d5c298b61d6cbb03c085530ca290ca57e 100644
index 26c7ca8a17ac4b01fd092a1e4065e724d49c6cd5..41428518c947ebf9e7dfb8e885cd052c68543943 100644
--- a/net/minecraft/world/entity/Entity.java
+++ b/net/minecraft/world/entity/Entity.java
@@ -262,6 +262,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -264,6 +264,7 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name
public float yRotO;
public float xRotO;
private AABB bb = INITIAL_AABB;
@@ -17,7 +17,7 @@ index 2170020f55abc47d489838f98a7d67bcef2a33a0..6cf6e63d5c298b61d6cbb03c085530ca
public boolean onGround;
public boolean horizontalCollision;
public boolean verticalCollision;
@@ -1094,6 +1095,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -1100,6 +1101,13 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name
// Paper end - detailed watchdog information
public void move(MoverType type, Vec3 movement) {
@@ -31,7 +31,7 @@ index 2170020f55abc47d489838f98a7d67bcef2a33a0..6cf6e63d5c298b61d6cbb03c085530ca
final Vec3 originalMovement = movement; // Paper - Expose pre-collision velocity
// Paper start - detailed watchdog information
ca.spottedleaf.moonrise.common.util.TickThread.ensureTickThread("Cannot move an entity off-main");
@@ -4421,6 +4429,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -4495,6 +4503,7 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name
}
public final void setBoundingBox(AABB bb) {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Bow infinity fix
diff --git a/net/minecraft/world/entity/player/Player.java b/net/minecraft/world/entity/player/Player.java
index eca523fe027d3570eb549756d825678e17e74152..799e30efa861b6094617dcec0ba23eda49d1519a 100644
index df40c8f807dc03bf70b6c15ff885343a2d195e9c..14cb7265f095f8879a88034b9195640dcf1736aa 100644
--- a/net/minecraft/world/entity/player/Player.java
+++ b/net/minecraft/world/entity/player/Player.java
@@ -2187,8 +2187,10 @@ public abstract class Player extends LivingEntity {
@@ -1979,8 +1979,10 @@ public abstract class Player extends Avatar implements ContainerUser {
}
}

View File

@@ -6,23 +6,23 @@ Subject: [PATCH] Replay Mod API
This patch is Powered by ReplayMod(https://github.com/ReplayMod)
diff --git a/net/minecraft/commands/CommandSourceStack.java b/net/minecraft/commands/CommandSourceStack.java
index 3acfb2a78845dd8081dc3c01d653034232c76e60..efe3f1849e68e5bbe2cdb3793dafc8b58c3d8415 100644
index 6ead209287ab021b8245fa5c3b7f18ca7d9c66b3..c8744cb6ae4f5a2d1527bace129d9b4b8c1a8cd9 100644
--- a/net/minecraft/commands/CommandSourceStack.java
+++ b/net/minecraft/commands/CommandSourceStack.java
@@ -580,7 +580,7 @@ public class CommandSourceStack implements ExecutionCommandSource<CommandSourceS
@Override
public Collection<String> getOnlinePlayerNames() {
- return this.entity instanceof ServerPlayer sourcePlayer && !sourcePlayer.getBukkitEntity().hasPermission("paper.bypass-visibility.tab-completion") ? this.getServer().getPlayerList().getPlayers().stream().filter(serverPlayer -> sourcePlayer.getBukkitEntity().canSee(serverPlayer.getBukkitEntity())).map(serverPlayer -> serverPlayer.getGameProfile().getName()).toList() : Lists.newArrayList(this.server.getPlayerNames()); // Paper - Make CommandSourceStack respect hidden players
- return this.entity instanceof ServerPlayer sourcePlayer && !sourcePlayer.getBukkitEntity().hasPermission("paper.bypass-visibility.tab-completion") ? this.getServer().getPlayerList().getPlayers().stream().filter(serverPlayer -> sourcePlayer.getBukkitEntity().canSee(serverPlayer.getBukkitEntity())).map(serverPlayer -> serverPlayer.getGameProfile().name()).toList() : Lists.newArrayList(this.server.getPlayerNames()); // Paper - Make CommandSourceStack respect hidden players
+ return this.entity instanceof ServerPlayer sourcePlayer && !(sourcePlayer instanceof org.leavesmc.leaves.replay.ServerPhotographer) && !sourcePlayer.getBukkitEntity().hasPermission("paper.bypass-visibility.tab-completion") ? this.getServer().getPlayerList().getPlayers().stream().filter(serverPlayer -> sourcePlayer.getBukkitEntity().canSee(serverPlayer.getBukkitEntity())).map(serverPlayer -> serverPlayer.getGameProfile().getName()).toList() : Lists.newArrayList(this.server.getPlayerNames()); // Paper - Make CommandSourceStack respect hidden players // Leaves - only real player
}
@Override
diff --git a/net/minecraft/commands/arguments/selector/EntitySelector.java b/net/minecraft/commands/arguments/selector/EntitySelector.java
index 514f8fbdeb776087608665c35de95294aadf5cf0..b75772897cabc3e7c59301d451685378fa55b6c3 100644
index d438e31a082b675d7eb0eead7067a0b92363a9f9..c08f34bc17bec9f73c377b45389a77558f53d2a2 100644
--- a/net/minecraft/commands/arguments/selector/EntitySelector.java
+++ b/net/minecraft/commands/arguments/selector/EntitySelector.java
@@ -128,11 +128,12 @@ public class EntitySelector {
@@ -129,11 +129,12 @@ public class EntitySelector {
return this.findPlayers(source);
} else if (this.playerName != null) {
ServerPlayer playerByName = source.getServer().getPlayerList().getPlayerByName(this.playerName);
@@ -36,7 +36,7 @@ index 514f8fbdeb776087608665c35de95294aadf5cf0..b75772897cabc3e7c59301d451685378
if (entity.getType().isEnabled(source.enabledFeatures())) {
return List.of(entity);
}
@@ -146,7 +147,7 @@ public class EntitySelector {
@@ -147,7 +148,7 @@ public class EntitySelector {
AABB absoluteAabb = this.getAbsoluteAabb(vec3);
if (this.currentEntity) {
Predicate<Entity> predicate = this.getPredicate(vec3, absoluteAabb, null);
@@ -45,7 +45,7 @@ index 514f8fbdeb776087608665c35de95294aadf5cf0..b75772897cabc3e7c59301d451685378
} else {
Predicate<Entity> predicate = this.getPredicate(vec3, absoluteAabb, source.enabledFeatures());
List<Entity> list = new ObjectArrayList<>();
@@ -157,6 +158,7 @@ public class EntitySelector {
@@ -158,6 +159,7 @@ public class EntitySelector {
this.addEntities(list, serverLevel1, absoluteAabb, predicate);
}
}
@@ -53,7 +53,7 @@ index 514f8fbdeb776087608665c35de95294aadf5cf0..b75772897cabc3e7c59301d451685378
return this.sortAndLimit(vec3, list);
}
@@ -192,9 +194,11 @@ public class EntitySelector {
@@ -193,9 +195,11 @@ public class EntitySelector {
this.checkPermissions(source);
if (this.playerName != null) {
ServerPlayer playerByName = source.getServer().getPlayerList().getPlayerByName(this.playerName);
@@ -65,7 +65,7 @@ index 514f8fbdeb776087608665c35de95294aadf5cf0..b75772897cabc3e7c59301d451685378
return playerByName == null ? List.of() : List.of(playerByName);
} else {
Vec3 vec3 = this.position.apply(source.getPosition());
@@ -206,11 +210,11 @@ public class EntitySelector {
@@ -207,11 +211,11 @@ public class EntitySelector {
int resultLimit = this.getResultLimit();
List<ServerPlayer> players;
if (this.isWorldLimited()) {
@@ -80,10 +80,10 @@ index 514f8fbdeb776087608665c35de95294aadf5cf0..b75772897cabc3e7c59301d451685378
players.add(serverPlayer1);
if (players.size() >= resultLimit) {
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
index cbc9f4fbad0a88bc324111a7ce80c2880ed1d3be..64b2a52ec6c4df487a9bb8ed540a429adbb6f10f 100644
index e111da378b6b4c67a7baa05a145c53a7130683ac..299777b012bd733f76a6ab404d1c54645f7b4770 100644
--- a/net/minecraft/server/MinecraftServer.java
+++ b/net/minecraft/server/MinecraftServer.java
@@ -1639,7 +1639,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1575,7 +1575,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
private ServerStatus.Players buildPlayerStatus() {
@@ -92,7 +92,7 @@ index cbc9f4fbad0a88bc324111a7ce80c2880ed1d3be..64b2a52ec6c4df487a9bb8ed540a429a
int maxPlayers = this.getMaxPlayers();
if (this.hidesOnlinePlayers()) {
return new ServerStatus.Players(maxPlayers, players.size(), List.of());
@@ -1858,7 +1858,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1807,7 +1807,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@Override
public int getPlayerCount() {
@@ -100,8 +100,8 @@ index cbc9f4fbad0a88bc324111a7ce80c2880ed1d3be..64b2a52ec6c4df487a9bb8ed540a429a
+ return this.playerList.realPlayers.size(); // Leaves - only real player
}
@Override
@@ -2252,7 +2252,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
public String[] getPlayerNames() {
@@ -2197,7 +2197,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
if (Thread.currentThread() != this.serverThread) return; // Paper
// Paper start - we don't need to save everything, just advancements
// this.getPlayerList().saveAll();
@@ -110,8 +110,8 @@ index cbc9f4fbad0a88bc324111a7ce80c2880ed1d3be..64b2a52ec6c4df487a9bb8ed540a429a
player.getAdvancements().save();
}
// Paper end - we don't need to save everything, just advancements
@@ -2391,7 +2391,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
if (!playerList.isUsingWhitelist()) return; // Paper - whitelist not enabled
@@ -2335,8 +2335,13 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
PlayerList playerList = this.getPlayerList();
UserWhiteList whiteList = playerList.getWhiteList();
- for (ServerPlayer serverPlayer : Lists.newArrayList(playerList.getPlayers())) {
@@ -155,7 +155,7 @@ index 5c9f2a8476ff260ec7f0843f7c956c71e9b0d34d..22d67e72e0bf2dbe8c7a936260bb3577
for (Packet<?> packet : stopTrackingPackets) {
serverPlayer.connection.send(packet);
diff --git a/net/minecraft/server/commands/DefaultGameModeCommands.java b/net/minecraft/server/commands/DefaultGameModeCommands.java
index 84baf29ad8af6a8af0cd00ce3921b3c5b8b89451..17f5543b802d88811c3e373e579a6e8b4c9f263a 100644
index 843c8e299da32755f2d7648a7f0758820546f613..4de23b0f585ec7a5cee4efbc8ca0dac1f9fca689 100644
--- a/net/minecraft/server/commands/DefaultGameModeCommands.java
+++ b/net/minecraft/server/commands/DefaultGameModeCommands.java
@@ -27,7 +27,7 @@ public class DefaultGameModeCommands {
@@ -168,7 +168,7 @@ index 84baf29ad8af6a8af0cd00ce3921b3c5b8b89451..17f5543b802d88811c3e373e579a6e8b
org.bukkit.event.player.PlayerGameModeChangeEvent event = serverPlayer.setGameMode(gamemode, org.bukkit.event.player.PlayerGameModeChangeEvent.Cause.DEFAULT_GAMEMODE, net.kyori.adventure.text.Component.empty());
if (event != null && event.isCancelled()) {
diff --git a/net/minecraft/server/commands/ListPlayersCommand.java b/net/minecraft/server/commands/ListPlayersCommand.java
index c6ae34f91b3629990294fc5e69237a1e600ef038..2109b0a2d4099e64c34cd1c45b83f72654d3b615 100644
index e7c778a7f292fd0749cbd5e6586ad1b93ac7f29e..024b56405bb58801b17a6adad7fec7a461d12a5c 100644
--- a/net/minecraft/server/commands/ListPlayersCommand.java
+++ b/net/minecraft/server/commands/ListPlayersCommand.java
@@ -33,7 +33,7 @@ public class ListPlayersCommand {
@@ -181,7 +181,7 @@ index c6ae34f91b3629990294fc5e69237a1e600ef038..2109b0a2d4099e64c34cd1c45b83f726
org.bukkit.entity.Player sender = (org.bukkit.entity.Player) source.getBukkitSender();
playersTemp = playersTemp.stream().filter((ep) -> sender.canSee(ep.getBukkitEntity())).collect(java.util.stream.Collectors.toList());
diff --git a/net/minecraft/server/commands/OpCommand.java b/net/minecraft/server/commands/OpCommand.java
index e6c7bbb023000b9de90c1256274ff5aba4a6478a..98f8804d58616592332e2a968282be6ad8903ea8 100644
index a1f0fb0f5532e39f4b12bfe40786a0eba1ffbaba..e217ea235edf79719b0cd4e78f1ad6af17c3fd7b 100644
--- a/net/minecraft/server/commands/OpCommand.java
+++ b/net/minecraft/server/commands/OpCommand.java
@@ -25,7 +25,7 @@ public class OpCommand {
@@ -191,8 +191,8 @@ index e6c7bbb023000b9de90c1256274ff5aba4a6478a..98f8804d58616592332e2a968282be6a
- playerList.getPlayers()
+ playerList.realPlayers // Leaves - only real player
.stream()
.filter(serverPlayer -> !playerList.isOp(serverPlayer.getGameProfile()))
.map(serverPlayer -> serverPlayer.getGameProfile().getName()),
.filter(serverPlayer -> !playerList.isOp(serverPlayer.nameAndId()))
.map(serverPlayer -> serverPlayer.getGameProfile().name()),
diff --git a/net/minecraft/server/commands/ParticleCommand.java b/net/minecraft/server/commands/ParticleCommand.java
index 33d96239f4b72a5587dc70f9602847a870d6d6a5..a83ce2cd112fca02cf3545f8c38e5cafae2c7c0e 100644
--- a/net/minecraft/server/commands/ParticleCommand.java
@@ -256,23 +256,23 @@ index 134d7b1a9d5a5a47ebf4aabff110dde914cd6fe1..894dd1d048904b8a775416ea6cb31122
.filter(player -> player == entityOrException || player.getTeam() == team)
.toList();
diff --git a/net/minecraft/server/commands/WhitelistCommand.java b/net/minecraft/server/commands/WhitelistCommand.java
index 763a51d9a0859296eb4ea52b6879d6c7703db673..25b4fcf79dbf3e227451b3321d8fd38bab55ffe9 100644
index cfe62a56ce1b4222ed6d73fc6390b7726542a9cd..234478bca5f8b1ea768b487c943b44e022bb378e 100644
--- a/net/minecraft/server/commands/WhitelistCommand.java
+++ b/net/minecraft/server/commands/WhitelistCommand.java
@@ -43,7 +43,7 @@ public class WhitelistCommand {
@@ -44,7 +44,7 @@ public class WhitelistCommand {
(commandContext, suggestionsBuilder) -> {
PlayerList playerList = commandContext.getSource().getServer().getPlayerList();
return SharedSuggestionProvider.suggest(
- playerList.getPlayers()
+ playerList.realPlayers // Leaves - only real player
.stream()
.filter(serverPlayer -> !playerList.getWhiteList().isWhiteListed(serverPlayer.getGameProfile()))
.map(serverPlayer -> serverPlayer.getGameProfile().getName()),
.map(Player::nameAndId)
.filter(nameAndId -> !playerList.getWhiteList().isWhiteListed(nameAndId))
diff --git a/net/minecraft/server/gui/PlayerListComponent.java b/net/minecraft/server/gui/PlayerListComponent.java
index f5ba0c9a4c3f9eaa38eeb689de915c25c7165433..24bbc32bc17802edbd9cc14310fe8141c0ad85b0 100644
index 5a8cd3e6b448a4472092690cf589bca10b142126..5933a2f42d2d3c3ab02003ef80d5e9ce2234bad2 100644
--- a/net/minecraft/server/gui/PlayerListComponent.java
+++ b/net/minecraft/server/gui/PlayerListComponent.java
@@ -17,8 +17,8 @@ public class PlayerListComponent extends JList<String> {
@@ -17,8 +17,13 @@ public class PlayerListComponent extends JList<String> {
if (this.tickCount++ % 20 == 0) {
Vector<String> list = new Vector<>();
@@ -284,10 +284,10 @@ index f5ba0c9a4c3f9eaa38eeb689de915c25c7165433..24bbc32bc17802edbd9cc14310fe8141
this.setListData(list);
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
index d64292ebe3ed40655720ea112f7cbc2fb2108d9e..405ee6161e480ea0dc533527f1fb8381d1e9741f 100644
index 5deab686b386e3b82205a828ae12a72cb0f2e6fb..0db088864eac6c65a78620953821a1280056a688 100644
--- a/net/minecraft/server/level/ServerLevel.java
+++ b/net/minecraft/server/level/ServerLevel.java
@@ -2695,7 +2695,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -2761,7 +2761,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
if (entity instanceof ServerPlayer serverPlayer) {
ServerLevel.this.players.add(serverPlayer);
// Leaves start - skip
@@ -296,7 +296,7 @@ index d64292ebe3ed40655720ea112f7cbc2fb2108d9e..405ee6161e480ea0dc533527f1fb8381
ServerLevel.this.realPlayers.add(serverPlayer);
}
// Leaves end - skip
@@ -2778,7 +2778,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -2844,7 +2844,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
if (entity instanceof ServerPlayer serverPlayer) {
ServerLevel.this.players.remove(serverPlayer);
// Leaves start - skip
@@ -306,12 +306,12 @@ index d64292ebe3ed40655720ea112f7cbc2fb2108d9e..405ee6161e480ea0dc533527f1fb8381
}
// Leaves end - skip
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
index 7a0d36b9c6a633919a116fc4d47e500b2c6cbc28..95cb24f44412e2aad5f15f8256e3506366c1412d 100644
index 248c08b4f1dc6cf47ac311d5872ae56485e3b425..190b5cce7e348c18612ba67eeca3ab19826e59fc 100644
--- a/net/minecraft/server/players/PlayerList.java
+++ b/net/minecraft/server/players/PlayerList.java
@@ -130,6 +130,7 @@ public abstract class PlayerList {
@@ -125,6 +125,7 @@ public abstract class PlayerList {
private int simulationDistance;
private boolean allowCommandsForAllPlayers;
private static final boolean ALLOW_LOGOUTIVATOR = false;
private int sendAllPlayerInfoIn;
+ public final List<ServerPlayer> realPlayers = new java.util.concurrent.CopyOnWriteArrayList(); // Leaves - replay api
@@ -443,7 +443,9 @@ index 7a0d36b9c6a633919a116fc4d47e500b2c6cbc28..95cb24f44412e2aad5f15f8256e35063
public void placeNewPlayer(Connection connection, ServerPlayer player, CommonListenerCookie cookie) {
player.isRealPlayer = true; // Paper
player.loginTime = System.currentTimeMillis(); // Paper - Replace OfflinePlayer#getLastPlayed
@@ -310,6 +430,7 @@ public abstract class PlayerList {
@@ -234,9 +354,109 @@ public abstract class PlayerList {
org.bukkit.event.player.PlayerJoinEvent playerJoinEvent = new org.bukkit.event.player.PlayerJoinEvent(bukkitPlayer, io.papermc.paper.adventure.PaperAdventure.asAdventure(mutableComponent)); // Paper - Adventure
this.cserver.getPluginManager().callEvent(playerJoinEvent);
// player.connection.send(ClientboundPlayerInfoUpdatePacket.createPlayerInitializing(this.players)); // CraftBukkit - replaced with loop below
this.players.add(player);
@@ -459,7 +461,7 @@ index 7a0d36b9c6a633919a116fc4d47e500b2c6cbc28..95cb24f44412e2aad5f15f8256e35063
if (!player.getBukkitEntity().isPersistent()) return; // CraftBukkit
player.lastSave = MinecraftServer.currentTick; // Paper - Incremental chunk and player saving
this.playerIo.save(player);
@@ -517,6 +639,43 @@ public abstract class PlayerList {
@@ -433,6 +654,43 @@ public abstract class PlayerList {
}
}
@@ -503,7 +505,7 @@ index 7a0d36b9c6a633919a116fc4d47e500b2c6cbc28..95cb24f44412e2aad5f15f8256e35063
public @Nullable net.kyori.adventure.text.Component remove(ServerPlayer player) { // CraftBukkit - return string // Paper - return Component
// Paper start - Fix kick event leave message not being sent
return this.remove(player, net.kyori.adventure.text.Component.translatable("multiplayer.player.left", net.kyori.adventure.text.format.NamedTextColor.YELLOW, io.papermc.paper.configuration.GlobalConfiguration.get().messages.useDisplayNameInQuitMessage ? player.getBukkitEntity().displayName() : io.papermc.paper.adventure.PaperAdventure.asAdventure(player.getDisplayName())));
@@ -590,6 +749,7 @@ public abstract class PlayerList {
@@ -506,6 +764,7 @@ public abstract class PlayerList {
player.retireScheduler(); // Paper - Folia schedulers
player.getAdvancements().stopListening();
this.players.remove(player);
@@ -511,7 +513,7 @@ index 7a0d36b9c6a633919a116fc4d47e500b2c6cbc28..95cb24f44412e2aad5f15f8256e35063
this.playersByName.remove(player.getScoreboardName().toLowerCase(java.util.Locale.ROOT)); // Spigot
this.server.getCustomBossEvents().onPlayerDisconnect(player);
UUID uuid = player.getUUID();
@@ -964,14 +1124,14 @@ public abstract class PlayerList {
@@ -881,14 +1140,19 @@ public abstract class PlayerList {
}
public String[] getPlayerNamesArray() {
@@ -531,12 +533,13 @@ index 7a0d36b9c6a633919a116fc4d47e500b2c6cbc28..95cb24f44412e2aad5f15f8256e35063
}
// Leaves end - fakeplayer support
@@ -1030,7 +1190,7 @@ public abstract class PlayerList {
@@ -958,8 +1222,13 @@ public abstract class PlayerList {
}
// Paper start - whitelist verify event / login event
public LoginResult canBypassFullServerLogin(final GameProfile profile, final LoginResult currentResult) {
- final boolean shouldKick = this.players.size() >= this.maxPlayers && !this.canBypassPlayerLimit(profile);
+ final boolean shouldKick = this.realPlayers.size() >= this.maxPlayers && !this.canBypassPlayerLimit(profile); // Leaves - only real player
final io.papermc.paper.event.player.PlayerServerFullCheckEvent fullCheckEvent = new io.papermc.paper.event.player.PlayerServerFullCheckEvent(
com.destroystokyo.paper.profile.CraftPlayerProfile.asBukkitMirror(profile),
new com.destroystokyo.paper.profile.CraftPlayerProfile(nameAndId),
io.papermc.paper.adventure.PaperAdventure.asAdventure(currentResult.message),

View File

@@ -26,10 +26,10 @@ index 7b9e2a1a208b46a69c16e6afd8b502259893574f..8ef3627217a8c495e4e31b70e61ad1b7
loadFromJson(resourceAsStream, output);
} catch (JsonParseException | IOException var7) {
diff --git a/net/minecraft/server/Main.java b/net/minecraft/server/Main.java
index e673df664b06c654a7be0622874b9b27ad7ef20f..898bf4d1e3269135f9514cdfd923040b947eef33 100644
index 30b681bc234eac8dc44ce3bf6e228171f5a71a7a..e7a4a977cd1dcdbdeb163016ff30346bc3289f99 100644
--- a/net/minecraft/server/Main.java
+++ b/net/minecraft/server/Main.java
@@ -154,6 +154,8 @@ public class Main {
@@ -152,6 +152,8 @@ public class Main {
return;
}
@@ -39,10 +39,10 @@ index e673df664b06c654a7be0622874b9b27ad7ef20f..898bf4d1e3269135f9514cdfd923040b
String awtException = io.papermc.paper.util.ServerEnvironment.awtDependencyCheck();
if (awtException != null) {
diff --git a/net/minecraft/server/dedicated/DedicatedServer.java b/net/minecraft/server/dedicated/DedicatedServer.java
index 91babab6152bb12768399ef6f2ea6afcb5e644b7..bb6863ed3fdb7bcf73ddecc1a93f89d5f84b728e 100644
index 97b95b07d378c2159d123f918f80d7f86bcaed7a..132a0d9e6a1e4792f87ba92731d1e53b6b01b548 100644
--- a/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/net/minecraft/server/dedicated/DedicatedServer.java
@@ -187,6 +187,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
@@ -280,6 +280,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
org.leavesmc.leaves.LeavesConfig.init((java.io.File) options.valueOf("leaves-settings")); // Leaves - Server Config
this.getBotList().loadBotInfo(); // Leaves - load resident bot info

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] RNG Fishing
diff --git a/net/minecraft/world/entity/projectile/FishingHook.java b/net/minecraft/world/entity/projectile/FishingHook.java
index 8c139d572bd3c44b8e2b6205e28ab09f82c9abfe..a5df132c2d97c30ad0960197ea7ce8640ee9e863 100644
index 0d761284b7d7bb8f4cb3919e1e8f216fb7c55f96..d91fe96bfcad0a7c0ad571f938b304bf7555f524 100644
--- a/net/minecraft/world/entity/projectile/FishingHook.java
+++ b/net/minecraft/world/entity/projectile/FishingHook.java
@@ -529,7 +529,7 @@ public class FishingHook extends Projectile {
@@ -533,7 +533,7 @@ public class FishingHook extends Projectile {
.withLuck(this.luck + playerOwner.getLuck())
.create(LootContextParamSets.FISHING);
LootTable lootTable = this.level().getServer().reloadableRegistries().getLootTable(BuiltInLootTables.FISHING);

View File

@@ -6,10 +6,10 @@ Subject: [PATCH] Wool Hopper Counter
This patch is Powered by fabric-carpet(https://github.com/gnembon/fabric-carpet)
diff --git a/net/minecraft/world/level/block/entity/HopperBlockEntity.java b/net/minecraft/world/level/block/entity/HopperBlockEntity.java
index 6dfdd4853d084f63285a7de3db49a245004c4fa5..3145b6ee853f720c5c201f5dd464645eb039100c 100644
index a1799e2646569bf9db4fcdd3a9758f486f96f56e..6781a1362f4318e37cb298c232bffde5d0fe7a67 100644
--- a/net/minecraft/world/level/block/entity/HopperBlockEntity.java
+++ b/net/minecraft/world/level/block/entity/HopperBlockEntity.java
@@ -205,8 +205,30 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
@@ -206,8 +206,30 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
flag |= validator.getAsBoolean(); // Paper - note: this is not a validator, it's what adds/sucks in items
}
@@ -40,7 +40,7 @@ index 6dfdd4853d084f63285a7de3db49a245004c4fa5..3145b6ee853f720c5c201f5dd464645e
setChanged(level, pos, state);
// Leaves start - pca
if (org.leavesmc.leaves.LeavesConfig.protocol.pca.enable) {
@@ -432,6 +454,13 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
@@ -433,6 +455,13 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
// Paper end - Perf: Optimize Hoppers
private static boolean ejectItems(Level level, BlockPos pos, HopperBlockEntity blockEntity) {
@@ -54,7 +54,7 @@ index 6dfdd4853d084f63285a7de3db49a245004c4fa5..3145b6ee853f720c5c201f5dd464645e
Container attachedContainer = getAttachedContainer(level, pos, blockEntity);
if (attachedContainer == null) {
return false;
@@ -498,6 +527,26 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
@@ -499,6 +528,26 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
}
}
@@ -81,7 +81,7 @@ index 6dfdd4853d084f63285a7de3db49a245004c4fa5..3145b6ee853f720c5c201f5dd464645e
private static int[] getSlots(Container container, Direction direction) {
if (container instanceof WorldlyContainer worldlyContainer) {
return worldlyContainer.getSlotsForFace(direction);
@@ -632,6 +681,7 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
@@ -633,6 +682,7 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
}
public static boolean addItem(Container container, ItemEntity item) {

View File

@@ -5,14 +5,24 @@ Subject: [PATCH] Spider jockeys drop gapples
diff --git a/net/minecraft/world/entity/monster/Skeleton.java b/net/minecraft/world/entity/monster/Skeleton.java
index 743bc2986b962d4aaef00d2e457117f375ca65c7..7a982b5720278ad6870446bfc1cffb220d08279e 100644
index 4eb35a7a2dfcb4803c00e1e9179fea8186b15d41..b81ca006d33f14faf54ecce3ad4c7d198b9794d0 100644
--- a/net/minecraft/world/entity/monster/Skeleton.java
+++ b/net/minecraft/world/entity/monster/Skeleton.java
@@ -140,4 +140,16 @@ public class Skeleton extends AbstractSkeleton {
this.spawnAtLocation(level, Items.SKELETON_SKULL);
}
@@ -129,4 +129,26 @@ public class Skeleton extends AbstractSkeleton {
SoundEvent getStepSound() {
return SoundEvents.SKELETON_STEP;
}
+
+
+ @Override
+ protected void dropCustomDeathLoot(ServerLevel level, DamageSource damageSource, boolean recentlyHit) {
+ super.dropCustomDeathLoot(level, damageSource, recentlyHit);
+ if (damageSource.getEntity() instanceof Creeper creeper && creeper.canDropMobsSkull()) {
+ creeper.increaseDroppedSkulls();
+ this.spawnAtLocation(level, Items.SKELETON_SKULL);
+ }
+ }
+
+ // Leaves start - spider jockeys drop gapples
+ @Override
+ protected void dropFromLootTable(ServerLevel level, DamageSource damageSource, boolean causedByPlayer) {
@@ -26,7 +36,7 @@ index 743bc2986b962d4aaef00d2e457117f375ca65c7..7a982b5720278ad6870446bfc1cffb22
+ // Leaves end - spider jockeys drop gapples
}
diff --git a/net/minecraft/world/entity/monster/Spider.java b/net/minecraft/world/entity/monster/Spider.java
index 60c4ac37bb491af13f9f9bf730b85bbe544cf81d..aaba82e591ac380314a1b7c59e4e04cca9864d31 100644
index 13f49a2e43adbbbb4ec9cd5b479814fefcca1cce..44a40741128b719626a793ded9e314371c99ad3f 100644
--- a/net/minecraft/world/entity/monster/Spider.java
+++ b/net/minecraft/world/entity/monster/Spider.java
@@ -139,6 +139,18 @@ public class Spider extends Monster {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Force Void Trade
diff --git a/net/minecraft/world/entity/npc/AbstractVillager.java b/net/minecraft/world/entity/npc/AbstractVillager.java
index 38572ecba568072b132b9e7fc12e6c0c38edd2e2..c3bec7a52f167a5169f96da709bcf9269a5bbae1 100644
index 54ba469380b51b38327c107e3a1c5574395f3507..580aad496f8ffb93ce0c0205e09774f2a520e829 100644
--- a/net/minecraft/world/entity/npc/AbstractVillager.java
+++ b/net/minecraft/world/entity/npc/AbstractVillager.java
@@ -43,6 +43,7 @@ public abstract class AbstractVillager extends AgeableMob implements InventoryCa
@@ -49,7 +49,7 @@ index 38572ecba568072b132b9e7fc12e6c0c38edd2e2..c3bec7a52f167a5169f96da709bcf926
this.makeSound(this.getTradeUpdatedSound(!stack.isEmpty()));
}
}
@@ -219,6 +226,12 @@ public abstract class AbstractVillager extends AgeableMob implements InventoryCa
@@ -219,6 +231,12 @@ public abstract class AbstractVillager extends AgeableMob implements InventoryCa
}
protected void stopTrading() {
@@ -62,7 +62,7 @@ index 38572ecba568072b132b9e7fc12e6c0c38edd2e2..c3bec7a52f167a5169f96da709bcf926
this.setTradingPlayer(null);
}
@@ -297,4 +310,10 @@ public abstract class AbstractVillager extends AgeableMob implements InventoryCa
@@ -297,4 +315,10 @@ public abstract class AbstractVillager extends AgeableMob implements InventoryCa
public boolean stillValid(Player player) {
return this.getTradingPlayer() == player && this.isAlive() && player.canInteractWithEntity(this, 4.0);
}
@@ -74,7 +74,7 @@ index 38572ecba568072b132b9e7fc12e6c0c38edd2e2..c3bec7a52f167a5169f96da709bcf926
+ // Leaves end - force void trade
}
diff --git a/net/minecraft/world/entity/npc/Villager.java b/net/minecraft/world/entity/npc/Villager.java
index e1e2bdb35866a8f32a41f6efd24ad77cf916b2e9..27812825f74903715eef560e576136b52b8cf778 100644
index ae2f000083556cdc1cbb637e6210c4c4e22c974f..40ecdb60ad37a00a2e8f95bd2e752187e532a572 100644
--- a/net/minecraft/world/entity/npc/Villager.java
+++ b/net/minecraft/world/entity/npc/Villager.java
@@ -383,6 +383,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -101,7 +101,7 @@ index e1e2bdb35866a8f32a41f6efd24ad77cf916b2e9..27812825f74903715eef560e576136b5
this.updateMerchantTimer = 40;
this.increaseProfessionLevelOnUpdate = true;
diff --git a/net/minecraft/world/entity/npc/WanderingTrader.java b/net/minecraft/world/entity/npc/WanderingTrader.java
index c2573946dd1244eb5d1ef2be7823211064daa80d..567c24f7c87a23a11c54be1dad531f29d2b3a569 100644
index 2cbd671fc5b5d35ed4bba5f33b540a96f446aaf0..e57a4a5b2da555680fdf4b4ada12b883bcf05e55 100644
--- a/net/minecraft/world/entity/npc/WanderingTrader.java
+++ b/net/minecraft/world/entity/npc/WanderingTrader.java
@@ -124,9 +124,10 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
@@ -132,7 +132,7 @@ index 1bf2a015fa35981328c098f2fec363c84b85b2a7..8aa4079e7fb5fb81f33859d106a425d0
private int merchantLevel;
private boolean showProgressBar;
diff --git a/net/minecraft/world/item/trading/MerchantOffer.java b/net/minecraft/world/item/trading/MerchantOffer.java
index 64c99df8ff305fa28c75dc03fc5ef8c61634ad84..a7799f226d7b7d75c5626d6d3d8394f40af930c5 100644
index 6afeb92c2e00ca5b945b7c7de9257bd741d53c3d..f5b82f56a59dd150938e35dde0333e7ea91fd042 100644
--- a/net/minecraft/world/item/trading/MerchantOffer.java
+++ b/net/minecraft/world/item/trading/MerchantOffer.java
@@ -39,6 +39,7 @@ public class MerchantOffer {
@@ -142,7 +142,7 @@ index 64c99df8ff305fa28c75dc03fc5ef8c61634ad84..a7799f226d7b7d75c5626d6d3d8394f4
+ public int voidTradeUses; // Leaves - force void trade
// CraftBukkit start
private org.bukkit.craftbukkit.inventory.@org.jspecify.annotations.Nullable CraftMerchantRecipe bukkitHandle;
private @javax.annotation.Nullable org.bukkit.craftbukkit.inventory.CraftMerchantRecipe bukkitHandle;
@@ -78,6 +79,7 @@ public class MerchantOffer {
this.priceMultiplier = priceMultiplier;
this.xp = xp;
@@ -178,7 +178,7 @@ index 64c99df8ff305fa28c75dc03fc5ef8c61634ad84..a7799f226d7b7d75c5626d6d3d8394f4
public void setToOutOfStock() {
diff --git a/net/minecraft/world/level/block/EndGatewayBlock.java b/net/minecraft/world/level/block/EndGatewayBlock.java
index 68914268ca9350a6c1d794e011e1f9a8aecd609c..f22d502df5f444703a248fff50c864d2924c4549 100644
index c70401544b4764518e62e42e3284ea185e4d997d..b81cdb0ceba03fcc4b34495ca0c26714c90ab2de 100644
--- a/net/minecraft/world/level/block/EndGatewayBlock.java
+++ b/net/minecraft/world/level/block/EndGatewayBlock.java
@@ -109,6 +109,17 @@ public class EndGatewayBlock extends BaseEntityBlock implements Portal {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] CCE update suppression
diff --git a/net/minecraft/world/level/block/ShulkerBoxBlock.java b/net/minecraft/world/level/block/ShulkerBoxBlock.java
index 787a4226789b0e6d35ef1a36601655b0a8666b6f..45e48e6d225a2741cd615345711072610d728474 100644
index be76ec933182852504363048362ae1045a01dcf7..be1da725af23875798862ed6596e9e49fa79fe4a 100644
--- a/net/minecraft/world/level/block/ShulkerBoxBlock.java
+++ b/net/minecraft/world/level/block/ShulkerBoxBlock.java
@@ -185,7 +185,9 @@ public class ShulkerBoxBlock extends BaseEntityBlock {
@@ -189,7 +189,9 @@ public class ShulkerBoxBlock extends BaseEntityBlock {
protected int getAnalogOutputSignal(BlockState blockState, Level level, BlockPos pos) {
// Leaves start - update suppression crash fix
try {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Disable offline warn if use proxy
diff --git a/net/minecraft/server/dedicated/DedicatedServer.java b/net/minecraft/server/dedicated/DedicatedServer.java
index bb6863ed3fdb7bcf73ddecc1a93f89d5f84b728e..6a6209750854f5bad7f069cd6694d339bd9ce834 100644
index 132a0d9e6a1e4792f87ba92731d1e53b6b01b548..637cf6145fba88287eef38ce360a83d5b908e3f7 100644
--- a/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/net/minecraft/server/dedicated/DedicatedServer.java
@@ -247,7 +247,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
@@ -340,7 +340,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
String proxyFlavor = (io.papermc.paper.configuration.GlobalConfiguration.get().proxies.velocity.enabled) ? "Velocity" : "BungeeCord";
String proxyLink = (io.papermc.paper.configuration.GlobalConfiguration.get().proxies.velocity.enabled) ? "https://docs.papermc.io/velocity/security" : "http://www.spigotmc.org/wiki/firewall-guide/";
// Paper end - Add Velocity IP Forwarding Support

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Make Item tick vanilla
diff --git a/net/minecraft/world/entity/item/ItemEntity.java b/net/minecraft/world/entity/item/ItemEntity.java
index af0467f60e5a873eeed7b741717c327272746a9a..fc8d3e56771998a04d5e0b35ad7638a44def8c77 100644
index 78edda120dd53be66f3e995dcf4e62799a837532..4bd9b16ad73114c457eb5987adeb18231ec6eea7 100644
--- a/net/minecraft/world/entity/item/ItemEntity.java
+++ b/net/minecraft/world/entity/item/ItemEntity.java
@@ -138,6 +138,9 @@ public class ItemEntity extends Entity implements TraceableEntity {
@@ -129,6 +129,9 @@ public class ItemEntity extends Entity implements TraceableEntity {
// Paper start - EAR 2
@Override
public void inactiveTick() {
@@ -18,7 +18,7 @@ index af0467f60e5a873eeed7b741717c327272746a9a..fc8d3e56771998a04d5e0b35ad7638a4
super.inactiveTick();
if (this.pickupDelay > 0 && this.pickupDelay != 32767) {
this.pickupDelay--;
@@ -155,6 +158,8 @@ public class ItemEntity extends Entity implements TraceableEntity {
@@ -146,6 +149,8 @@ public class ItemEntity extends Entity implements TraceableEntity {
// CraftBukkit end
this.discard(org.bukkit.event.entity.EntityRemoveEvent.Cause.DESPAWN); // CraftBukkit - add Bukkit remove cause
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Copper Bulb 1 gt delay
diff --git a/net/minecraft/world/level/block/CopperBulbBlock.java b/net/minecraft/world/level/block/CopperBulbBlock.java
index 25caeb117d9a49fa00f46ec895a35dee8242aacd..ce1d34f28f9318b741df074fccddfe91f16b57cf 100644
index 54511c27d8d85f1a9702d899f1f7c7dda201cdfa..1e8e7f7081b7f9d6a9d31e6cfd5900daf0a364db 100644
--- a/net/minecraft/world/level/block/CopperBulbBlock.java
+++ b/net/minecraft/world/level/block/CopperBulbBlock.java
@@ -32,14 +32,26 @@ public class CopperBulbBlock extends Block {
@@ -33,14 +33,26 @@ public class CopperBulbBlock extends Block {
@Override
protected void onPlace(BlockState state, Level level, BlockPos pos, BlockState oldState, boolean movedByPiston) {
if (oldState.getBlock() != state.getBlock() && level instanceof ServerLevel serverLevel) {
@@ -37,7 +37,7 @@ index 25caeb117d9a49fa00f46ec895a35dee8242aacd..ce1d34f28f9318b741df074fccddfe91
}
}
@@ -56,6 +68,15 @@ public class CopperBulbBlock extends Block {
@@ -57,6 +69,15 @@ public class CopperBulbBlock extends Block {
}
}

View File

@@ -21,10 +21,10 @@ index a814512fcfb85312474ae2c2c21443843bf57831..2b0349568f38321c893a8ffa16607350
public MoonriseRegionFileIO.RegionDataController.WriteData moonrise$startWrite(
final int chunkX, final int chunkZ, final CompoundTag compound
diff --git a/ca/spottedleaf/moonrise/patches/chunk_system/io/MoonriseRegionFileIO.java b/ca/spottedleaf/moonrise/patches/chunk_system/io/MoonriseRegionFileIO.java
index f5ed467c0880e4bcdf1b9ae773a5aac21c4381c3..349741f48bf21777b640a4698a0ae8da0b2487c5 100644
index b83ccf7bbd134e97e14bfe8331cc9d2a26b9ec9c..95b9ffd06f2796067aeee02410e1482207084f96 100644
--- a/ca/spottedleaf/moonrise/patches/chunk_system/io/MoonriseRegionFileIO.java
+++ b/ca/spottedleaf/moonrise/patches/chunk_system/io/MoonriseRegionFileIO.java
@@ -1260,7 +1260,7 @@ public final class MoonriseRegionFileIO {
@@ -1261,7 +1261,7 @@ public final class MoonriseRegionFileIO {
this.regionDataController.finishWrite(this.chunkX, this.chunkZ, writeData);
// Paper start - flush regionfiles on save
if (this.world.paperConfig().chunks.flushRegionsOnSave) {
@@ -33,7 +33,7 @@ index f5ed467c0880e4bcdf1b9ae773a5aac21c4381c3..349741f48bf21777b640a4698a0ae8da
if (regionFile != null) {
regionFile.flush();
} // else: evicted from cache, which should have called flush
@@ -1470,7 +1470,7 @@ public final class MoonriseRegionFileIO {
@@ -1477,7 +1477,7 @@ public final class MoonriseRegionFileIO {
public static interface IORunnable {
@@ -54,10 +54,11 @@ index 51c126735ace8fdde89ad97b5cab62f244212db0..a6573e327ace16b7ea320eb1440ffcbc
+ public void moonrise$write(final org.leavesmc.leaves.region.IRegionFile regionFile) throws IOException; // Leaves - more region format
}
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
index 1241b008d66bacd8640302a6dbf52a2e592b29b9..0172b4f0c3d5753a3a3d8ccfe591c09328216e48 100644
index 299777b012bd733f76a6ab404d1c54645f7b4770..c58d93e5a8c348ad67b1d5720d93e6b614650018 100644
--- a/net/minecraft/server/MinecraftServer.java
+++ b/net/minecraft/server/MinecraftServer.java
@@ -944,10 +944,10 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -874,11 +874,16 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
// this.storageSource.saveDataTag(this.registryAccess(), this.worldData, this.getPlayerList().getSingleplayerData());
// CraftBukkit end
if (flush) {
for (ServerLevel serverLevel2 : this.getAllLevels()) {
@@ -71,7 +72,7 @@ index 1241b008d66bacd8640302a6dbf52a2e592b29b9..0172b4f0c3d5753a3a3d8ccfe591c093
return flag;
diff --git a/net/minecraft/util/worldupdate/WorldUpgrader.java b/net/minecraft/util/worldupdate/WorldUpgrader.java
index 79d57ca8a7870a02e95562d89cbd4341d8282660..ddb9296b6caac97079943812bcf1ef58a7c04e76 100644
index a55ae044386baa52f2c4388b4ae2f58a58469099..61d986f8865ff2d169231c6f082ba6dd94a61489 100644
--- a/net/minecraft/util/worldupdate/WorldUpgrader.java
+++ b/net/minecraft/util/worldupdate/WorldUpgrader.java
@@ -75,7 +75,7 @@ public class WorldUpgrader implements AutoCloseable {
@@ -183,10 +184,10 @@ index 22f3aa1674664906e8ec45372d758d79017e3987..1d9b2a315d3c18df3c0dfc0e8daac18c
try (DataInputStream out = new DataInputStream(new java.io.BufferedInputStream(new java.util.zip.InflaterInputStream(Files.newInputStream(file))))) {
return net.minecraft.nbt.NbtIo.read((java.io.DataInput) out);
diff --git a/net/minecraft/world/level/chunk/storage/RegionFileStorage.java b/net/minecraft/world/level/chunk/storage/RegionFileStorage.java
index 384f2cd090d6d23bd1308d6e82c24338f2bf55d1..7b86212082f49bef0c087c8e080874fe1d4f268d 100644
index 8ea830f561f5b7d6ff6ca3c38adc7fe8e54e4cc7..e3e583fd919fa98ba12f1278ea69107c5fefb104 100644
--- a/net/minecraft/world/level/chunk/storage/RegionFileStorage.java
+++ b/net/minecraft/world/level/chunk/storage/RegionFileStorage.java
@@ -18,7 +18,7 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise
@@ -19,7 +19,7 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise
private static final org.slf4j.Logger LOGGER = com.mojang.logging.LogUtils.getLogger(); // Paper
public static final String ANVIL_EXTENSION = ".mca";
private static final int MAX_CACHE_SIZE = 256;
@@ -195,7 +196,7 @@ index 384f2cd090d6d23bd1308d6e82c24338f2bf55d1..7b86212082f49bef0c087c8e080874fe
private final RegionStorageInfo info;
private final Path folder;
private final boolean sync;
@@ -33,7 +33,7 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise
@@ -34,7 +34,7 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise
@Nullable
public static ChunkPos getRegionFileCoordinates(Path file) {
String fileName = file.getFileName().toString();
@@ -204,7 +205,7 @@ index 384f2cd090d6d23bd1308d6e82c24338f2bf55d1..7b86212082f49bef0c087c8e080874fe
return null;
}
@@ -54,7 +54,7 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise
@@ -55,7 +55,7 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise
}
// Paper end
// Paper start - rewrite chunk system
@@ -213,7 +214,7 @@ index 384f2cd090d6d23bd1308d6e82c24338f2bf55d1..7b86212082f49bef0c087c8e080874fe
private static final int MAX_NON_EXISTING_CACHE = 1024 * 4;
private final it.unimi.dsi.fastutil.longs.LongLinkedOpenHashSet nonExistingRegionFiles = new it.unimi.dsi.fastutil.longs.LongLinkedOpenHashSet();
private static String getRegionFileName(final int chunkX, final int chunkZ) {
@@ -93,15 +93,15 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise
@@ -94,15 +94,15 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise
}
@Override
@@ -232,7 +233,7 @@ index 384f2cd090d6d23bd1308d6e82c24338f2bf55d1..7b86212082f49bef0c087c8e080874fe
if (ret != null) {
return ret;
}
@@ -114,18 +114,28 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise
@@ -115,18 +115,28 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise
this.regionCache.removeLast().close();
}
@@ -264,7 +265,7 @@ index 384f2cd090d6d23bd1308d6e82c24338f2bf55d1..7b86212082f49bef0c087c8e080874fe
this.regionCache.putAndMoveToFirst(key, ret);
@@ -144,7 +154,7 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise
@@ -145,7 +155,7 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise
}
final ChunkPos pos = new ChunkPos(chunkX, chunkZ);
@@ -273,7 +274,7 @@ index 384f2cd090d6d23bd1308d6e82c24338f2bf55d1..7b86212082f49bef0c087c8e080874fe
// note: not required to keep regionfile loaded after this call, as the write param takes a regionfile as input
// (and, the regionfile parameter is unused for writing until the write call)
@@ -178,7 +188,7 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise
@@ -179,7 +189,7 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise
) throws IOException {
final ChunkPos pos = new ChunkPos(chunkX, chunkZ);
if (writeData.result() == ca.spottedleaf.moonrise.patches.chunk_system.io.MoonriseRegionFileIO.RegionDataController.WriteData.WriteResult.DELETE) {
@@ -282,7 +283,7 @@ index 384f2cd090d6d23bd1308d6e82c24338f2bf55d1..7b86212082f49bef0c087c8e080874fe
if (regionFile != null) {
regionFile.clear(pos);
} // else: didn't exist
@@ -193,7 +203,7 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise
@@ -194,7 +204,7 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise
public final ca.spottedleaf.moonrise.patches.chunk_system.io.MoonriseRegionFileIO.RegionDataController.ReadData moonrise$readData(
final int chunkX, final int chunkZ
) throws IOException {
@@ -291,7 +292,7 @@ index 384f2cd090d6d23bd1308d6e82c24338f2bf55d1..7b86212082f49bef0c087c8e080874fe
final DataInputStream input = regionFile == null ? null : regionFile.getChunkDataInputStream(new ChunkPos(chunkX, chunkZ));
@@ -238,7 +248,7 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise
@@ -239,7 +249,7 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise
final ChunkPos pos = new ChunkPos(chunkX, chunkZ);
final ChunkPos headerChunkPos = SerializableChunkData.getChunkCoordinate(ret);
@@ -300,7 +301,7 @@ index 384f2cd090d6d23bd1308d6e82c24338f2bf55d1..7b86212082f49bef0c087c8e080874fe
if (regionFile.getRecalculateCount() != readData.recalculateCount()) {
return null;
@@ -262,7 +272,7 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise
@@ -263,7 +273,7 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise
}
// Paper end - rewrite chunk system
// Paper start - rewrite chunk system
@@ -309,7 +310,7 @@ index 384f2cd090d6d23bd1308d6e82c24338f2bf55d1..7b86212082f49bef0c087c8e080874fe
return this.getRegionFile(chunkcoordintpair, false);
}
// Paper end - rewrite chunk system
@@ -274,7 +284,7 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise
@@ -275,7 +285,7 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise
this.isChunkData = isChunkDataFolder(this.folder); // Paper - recalculate region file headers
}
@@ -318,7 +319,7 @@ index 384f2cd090d6d23bd1308d6e82c24338f2bf55d1..7b86212082f49bef0c087c8e080874fe
// Paper start - rewrite chunk system
if (existingOnly) {
return this.moonrise$getRegionFileIfExists(chunkPos.x, chunkPos.z);
@@ -282,7 +292,7 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise
@@ -283,7 +293,7 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise
synchronized (this) {
final long key = ChunkPos.asLong(chunkPos.x >> REGION_SHIFT, chunkPos.z >> REGION_SHIFT);
@@ -327,7 +328,7 @@ index 384f2cd090d6d23bd1308d6e82c24338f2bf55d1..7b86212082f49bef0c087c8e080874fe
if (ret != null) {
return ret;
}
@@ -291,13 +301,22 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise
@@ -292,13 +302,22 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise
this.regionCache.removeLast().close();
}
@@ -352,7 +353,7 @@ index 384f2cd090d6d23bd1308d6e82c24338f2bf55d1..7b86212082f49bef0c087c8e080874fe
this.regionCache.putAndMoveToFirst(key, ret);
@@ -311,7 +330,7 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise
@@ -312,7 +331,7 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise
org.apache.logging.log4j.LogManager.getLogger().fatal(msg + " (" + file.toString().replaceAll(".+[\\\\/]", "") + " - " + x + "," + z + ") Go clean it up to remove this message. /minecraft:tp " + (x<<4)+" 128 "+(z<<4) + " - DO NOT REPORT THIS TO PAPER - You may ask for help on Discord, but do not file an issue. These error messages can not be removed.");
}
@@ -361,7 +362,7 @@ index 384f2cd090d6d23bd1308d6e82c24338f2bf55d1..7b86212082f49bef0c087c8e080874fe
synchronized (regionfile) {
try (DataInputStream datainputstream = regionfile.getChunkDataInputStream(chunkCoordinate)) {
CompoundTag oversizedData = regionfile.getOversizedData(chunkCoordinate.x, chunkCoordinate.z);
@@ -346,7 +365,7 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise
@@ -347,7 +366,7 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise
@Nullable
public CompoundTag read(ChunkPos chunkPos) throws IOException {
// CraftBukkit start - SPIGOT-5680: There's no good reason to preemptively create files on read, save that for writing
@@ -370,7 +371,7 @@ index 384f2cd090d6d23bd1308d6e82c24338f2bf55d1..7b86212082f49bef0c087c8e080874fe
if (regionFile == null) {
return null;
}
@@ -385,7 +404,7 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise
@@ -386,7 +405,7 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise
public void scanChunk(ChunkPos chunkPos, StreamTagVisitor visitor) throws IOException {
// CraftBukkit start - SPIGOT-5680: There's no good reason to preemptively create files on read, save that for writing
@@ -379,7 +380,7 @@ index 384f2cd090d6d23bd1308d6e82c24338f2bf55d1..7b86212082f49bef0c087c8e080874fe
if (regionFile == null) {
return;
}
@@ -399,7 +418,7 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise
@@ -400,6 +419,7 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise
}
public void write(ChunkPos chunkPos, @Nullable CompoundTag chunkData) throws IOException { // Paper - rewrite chunk system - public
@@ -397,7 +398,7 @@ index 384f2cd090d6d23bd1308d6e82c24338f2bf55d1..7b86212082f49bef0c087c8e080874fe
try {
regionFile.close();
} catch (final IOException ex) {
@@ -445,7 +464,7 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise
@@ -448,7 +480,7 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise
// Paper start - rewrite chunk system
synchronized (this) {
final ExceptionCollector<IOException> exceptionCollector = new ExceptionCollector<>();

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Servux Protocol
diff --git a/net/minecraft/server/ServerTickRateManager.java b/net/minecraft/server/ServerTickRateManager.java
index 40338efd1c0e56d869d03f1d0687e7ff0fcbf11a..c0504614b9239a69f2a6a49d964a97647469c1e4 100644
index 4257c47d33e3773fac766817138cc21c55d9ab76..8638f3f7aa853802a60ddeb681d089e0c6143693 100644
--- a/net/minecraft/server/ServerTickRateManager.java
+++ b/net/minecraft/server/ServerTickRateManager.java
@@ -128,4 +128,10 @@ public class ServerTickRateManager extends TickRateManager {
@@ -129,4 +129,10 @@ public class ServerTickRateManager extends TickRateManager {
player.connection.send(ClientboundTickingStatePacket.from(this));
player.connection.send(ClientboundTickingStepPacket.from(this));
}
@@ -20,13 +20,27 @@ index 40338efd1c0e56d869d03f1d0687e7ff0fcbf11a..c0504614b9239a69f2a6a49d964a9764
+ // Leaves end - servux
}
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
index 405ee6161e480ea0dc533527f1fb8381d1e9741f..dcb1f6975b1cb18f38e0cf8a43d551f07836b12f 100644
index 0db088864eac6c65a78620953821a1280056a688..ed939c8110dcccab67ffdf8a4aa1e63751d87953 100644
--- a/net/minecraft/server/level/ServerLevel.java
+++ b/net/minecraft/server/level/ServerLevel.java
@@ -2233,6 +2233,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
}
@@ -2286,9 +2286,21 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
// Paper end
}
this.lastSpawnChunkRadius = i;
+
@Override
public LevelData.RespawnData getRespawnData() {
return this.getServer().getRespawnData();
+ int i = this.getGameRules().getInt(GameRules.RULE_SPAWN_CHUNK_RADIUS) + 1;
+ if (i > 1) {
+ // Paper start - allow disabling gamerule limits
+ for (ChunkPos chunkPos : io.papermc.paper.util.MCUtil.getSpiralOutChunks(pos, i - 2)) {
+ this.getChunkSource().addTicketAtLevel(TicketType.START, chunkPos, ChunkLevel.ENTITY_TICKING_LEVEL);
+ }
+ // Paper end - allow disabling gamerule limits
+ }
+
+ this.lastSpawnChunkRadius = i;
+ org.leavesmc.leaves.protocol.servux.ServuxHudDataProtocol.refreshSpawnMetadata = true; // Leaves - servux
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Placing locked hopper no longer send NC updates
diff --git a/net/minecraft/world/level/Level.java b/net/minecraft/world/level/Level.java
index 1bca7c6ca429ae3d58b802991464f62568a4d430..f31a48530e965f01507c335f50d898ed72767e3c 100644
index f8e23a0a2a0b0680c277b4c2cb1fd5922bb939da..06c90d5aa8e308f8931b5477e03ac94e3cfbe108 100644
--- a/net/minecraft/world/level/Level.java
+++ b/net/minecraft/world/level/Level.java
@@ -1210,7 +1210,11 @@ public abstract class Level implements LevelAccessor, UUIDLookup<Entity>, AutoCl
@@ -1163,7 +1163,11 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl
}
if ((flags & 1) != 0) {
@@ -18,6 +18,6 @@ index 1bca7c6ca429ae3d58b802991464f62568a4d430..f31a48530e965f01507c335f50d898ed
+ this.updateNeighborsAt(pos, blockState.getBlock());
+ }
+ // Leaves end - Placing locked hopper doesn't send NC updates.
if (!this.isClientSide && state.hasAnalogOutputSignal()) {
if (!this.isClientSide() && state.hasAnalogOutputSignal()) {
this.updateNeighbourForOutputSignal(pos, newState.getBlock());
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Renewable deepslate
diff --git a/net/minecraft/world/level/block/LiquidBlock.java b/net/minecraft/world/level/block/LiquidBlock.java
index 7320b416e8d660419018b0699f49ab6f45a3373b..553c6b298ec5929dba6acd859bd38bfbe293838b 100644
index 05a04c03ed529ee4bda6db676cc97781a07e7a6a..b3ff440b4bf28569415ccff10362cc4f5b65b1cd 100644
--- a/net/minecraft/world/level/block/LiquidBlock.java
+++ b/net/minecraft/world/level/block/LiquidBlock.java
@@ -190,7 +190,7 @@ public class LiquidBlock extends Block implements BucketPickup {
@@ -194,7 +194,7 @@ public class LiquidBlock extends Block implements BucketPickup {
for (Direction direction : POSSIBLE_FLOW_DIRECTIONS) {
BlockPos blockPos = pos.relative(direction.getOpposite());
if (level.getFluidState(blockPos).is(FluidTags.WATER)) {
@@ -18,10 +18,10 @@ index 7320b416e8d660419018b0699f49ab6f45a3373b..553c6b298ec5929dba6acd859bd38bfb
if (org.bukkit.craftbukkit.event.CraftEventFactory.handleBlockFormEvent(level, pos, block.defaultBlockState(), 3)) {
this.fizz(level, pos);
diff --git a/net/minecraft/world/level/material/LavaFluid.java b/net/minecraft/world/level/material/LavaFluid.java
index 033f252248b671e35135269dd2df6e7ca4585604..5bea04f4d70566e6791bef49e32c775cc5546d6c 100644
index 22b18c4de4ee8eb94847c2e9df559c579cb26409..36a7500880877604d8adc37c421b401a5e7905e7 100644
--- a/net/minecraft/world/level/material/LavaFluid.java
+++ b/net/minecraft/world/level/material/LavaFluid.java
@@ -223,7 +223,7 @@ public abstract class LavaFluid extends FlowingFluid {
@@ -224,7 +224,7 @@ public abstract class LavaFluid extends FlowingFluid {
if (this.is(FluidTags.LAVA) && fluidState1.is(FluidTags.WATER)) {
if (blockState.getBlock() instanceof LiquidBlock) {
// CraftBukkit start

View File

@@ -6,10 +6,10 @@ Subject: [PATCH] Vanilla hopper
This is a temporary solution designed to attempt to restore the vanilla behavior of the funnel while preserving optimizations as much as possible. It should ultimately be replaced by the optimization solution provided by lithium.
diff --git a/net/minecraft/world/level/block/entity/HopperBlockEntity.java b/net/minecraft/world/level/block/entity/HopperBlockEntity.java
index 84092e0182dc2c20e57b4c14a52c3a9622318fd4..a6776df02ec71470696836cf89b942cc34c782ec 100644
index 6781a1362f4318e37cb298c232bffde5d0fe7a67..6b432c555d380098b07ba53039a9b148b2571de2 100644
--- a/net/minecraft/world/level/block/entity/HopperBlockEntity.java
+++ b/net/minecraft/world/level/block/entity/HopperBlockEntity.java
@@ -307,36 +307,58 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
@@ -308,36 +308,58 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
ItemStack movedItem = origItemStack;
final int originalItemCount = origItemStack.getCount();
final int movedItemCount = Math.min(level.spigotConfig.hopperAmount, originalItemCount);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Old hopper suckin behavior
diff --git a/net/minecraft/world/level/block/entity/HopperBlockEntity.java b/net/minecraft/world/level/block/entity/HopperBlockEntity.java
index deb67f1636d7fcb24946019d36fbdf97c022e764..09083d971ffc6e8af17cac9e71acbead2e666fc4 100644
index 6b432c555d380098b07ba53039a9b148b2571de2..a7ade5f683e43463f9ea42ad6843e9c80f2fa46c 100644
--- a/net/minecraft/world/level/block/entity/HopperBlockEntity.java
+++ b/net/minecraft/world/level/block/entity/HopperBlockEntity.java
@@ -629,7 +629,7 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
@@ -630,7 +630,7 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
return false;
} else {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Fix falling block's block location
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
index 6cf6e63d5c298b61d6cbb03c085530ca290ca57e..4952bfcb1414e9cc71587a40fefc715e87b73ae0 100644
index 41428518c947ebf9e7dfb8e885cd052c68543943..7f76be7d4f658a153d38e6b5aa897f583985ea6b 100644
--- a/net/minecraft/world/entity/Entity.java
+++ b/net/minecraft/world/entity/Entity.java
@@ -5026,6 +5026,15 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -5091,6 +5091,15 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name
int floor = Mth.floor(x);
int floor1 = Mth.floor(y);
int floor2 = Mth.floor(z);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Bytebuf API
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
index 95cb24f44412e2aad5f15f8256e3506366c1412d..d4eb10d3734930a43b8270cdc7eb78bf40907c94 100644
index 190b5cce7e348c18612ba67eeca3ab19826e59fc..8f62978123dc40bbbc2f9e398a063000317dc655 100644
--- a/net/minecraft/server/players/PlayerList.java
+++ b/net/minecraft/server/players/PlayerList.java
@@ -384,6 +384,13 @@ public abstract class PlayerList {
@@ -385,6 +385,13 @@ public abstract class PlayerList {
boolean _boolean = gameRules.getBoolean(GameRules.RULE_DO_IMMEDIATE_RESPAWN);
boolean _boolean1 = gameRules.getBoolean(GameRules.RULE_REDUCEDDEBUGINFO);
boolean _boolean2 = gameRules.getBoolean(GameRules.RULE_LIMITED_CRAFTING);

View File

@@ -130,10 +130,10 @@ index 4fdb3c36b39213f01f86ba281c7b62af99f5dcce..646d4c26870bb03f6d397b5e03ad9792
this.cookingTotalTime = getTotalCookTime(serverLevel, this, this.recipeType, this.cookSpeedMultiplier); // Paper - cook speed multiplier API
this.cookingTimer = 0;
diff --git a/net/minecraft/world/level/block/entity/BaseContainerBlockEntity.java b/net/minecraft/world/level/block/entity/BaseContainerBlockEntity.java
index 63d6a43dab067aa4c8fb67095c455130196eef9f..561acadcf81dc219d88e8ec8bdbd4f5f8fcbadc3 100644
index 701a12db0c342c9ff2c974e581b112182dec2ea6..1e6819928ffab524197003bd9469adb3976dce3a 100644
--- a/net/minecraft/world/level/block/entity/BaseContainerBlockEntity.java
+++ b/net/minecraft/world/level/block/entity/BaseContainerBlockEntity.java
@@ -145,6 +145,12 @@ public abstract class BaseContainerBlockEntity extends BlockEntity implements Co
@@ -149,6 +149,12 @@ public abstract class BaseContainerBlockEntity extends BlockEntity implements Co
@Override
public void setItem(int slot, ItemStack stack) {
this.getItems().set(slot, stack);
@@ -147,10 +147,10 @@ index 63d6a43dab067aa4c8fb67095c455130196eef9f..561acadcf81dc219d88e8ec8bdbd4f5f
this.setChanged();
}
diff --git a/net/minecraft/world/level/block/entity/HopperBlockEntity.java b/net/minecraft/world/level/block/entity/HopperBlockEntity.java
index 4dca615d263f1b0dacf574cfaa00ea23abee2714..d9969741bb8efbf83df51692ebcd12e3d77c10f6 100644
index a7ade5f683e43463f9ea42ad6843e9c80f2fa46c..83a8dc51d0346fb5b28922e7b54d5ee58b315228 100644
--- a/net/minecraft/world/level/block/entity/HopperBlockEntity.java
+++ b/net/minecraft/world/level/block/entity/HopperBlockEntity.java
@@ -113,6 +113,11 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
@@ -114,6 +114,11 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
public void setItem(int index, ItemStack stack) {
this.unpackLootTable(null);
this.getItems().set(index, stack);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Configurable MC-67
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
index 4952bfcb1414e9cc71587a40fefc715e87b73ae0..e09eb2612eb3943c9d108885bf189b04e050f459 100644
index 7f76be7d4f658a153d38e6b5aa897f583985ea6b..1f151de5090f5dbd7567f18be75a244ecb204230 100644
--- a/net/minecraft/world/entity/Entity.java
+++ b/net/minecraft/world/entity/Entity.java
@@ -4200,6 +4200,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -4274,6 +4274,7 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name
}
public boolean canTeleport(Level fromLevel, Level toLevel) {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Can disable LivingEntity aiStep alive check
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
index 1bf4cda041189aa5ac67be4a1bda312620788388..59a352427b8d6445f3da3c6033bae4826277ed60 100644
index 67c29508c177449ce33fede89c7a9c3d9e8c6a6f..10676027d8ba2d55319e66f808f9a7854b122c4e 100644
--- a/net/minecraft/world/entity/LivingEntity.java
+++ b/net/minecraft/world/entity/LivingEntity.java
@@ -3285,7 +3285,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
@@ -3317,7 +3317,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
}
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Fix FallingBlockEntity Duplicate
diff --git a/net/minecraft/world/entity/item/FallingBlockEntity.java b/net/minecraft/world/entity/item/FallingBlockEntity.java
index 595dee03e3a7d98d703e48fb53d82d7f392a2b3d..0fd2c522a5fb038a8c002970af6feebd9dc9c436 100644
index 308af61031070d57556532645f73b41517d696e9..387f7a48499421858ea024bca01e372d3dbcdb57 100644
--- a/net/minecraft/world/entity/item/FallingBlockEntity.java
+++ b/net/minecraft/world/entity/item/FallingBlockEntity.java
@@ -387,7 +387,7 @@ public class FallingBlockEntity extends Entity {
@@ -386,7 +386,7 @@ public class FallingBlockEntity extends Entity {
ResourceKey<Level> resourceKey1 = this.level().dimension();
boolean flag = (resourceKey1 == Level.END || resourceKey == Level.END) && resourceKey1 != resourceKey;
Entity entity = super.teleport(teleportTransition);

View File

@@ -25,7 +25,7 @@ index da10ca5ef12be1a834adda9243c082dadde24ec0..f682930f765d04f0a278b0648c2773ab
+ // Leaves end - behaviour 1.21.1-
}
diff --git a/net/minecraft/world/level/block/AbstractFurnaceBlock.java b/net/minecraft/world/level/block/AbstractFurnaceBlock.java
index d52eeff0d564a24bddb873750c81e3fe999f16f0..aa2597d825f93b0b0623ab7fae29e45de3f3ebcc 100644
index 9cbc52312c065cc1e7a01368f3c3bd6f374f4e16..271a71aab53e206798c5e3a7be385da4e4f01e12 100644
--- a/net/minecraft/world/level/block/AbstractFurnaceBlock.java
+++ b/net/minecraft/world/level/block/AbstractFurnaceBlock.java
@@ -51,6 +51,26 @@ public abstract class AbstractFurnaceBlock extends BaseEntityBlock {
@@ -56,7 +56,7 @@ index d52eeff0d564a24bddb873750c81e3fe999f16f0..aa2597d825f93b0b0623ab7fae29e45d
protected void affectNeighborsAfterRemoval(BlockState state, ServerLevel level, BlockPos pos, boolean movedByPiston) {
Containers.updateNeighboursAfterDestroy(state, level, pos);
diff --git a/net/minecraft/world/level/block/BarrelBlock.java b/net/minecraft/world/level/block/BarrelBlock.java
index f7820265f10b78674acd13e6204b9212fd27b038..700bd0f6a4f4fd6cd85b3e666fff1b3fd0a96b8e 100644
index 95a1e4c332becb284af0e71c55f02e8e6338fdce..0597ec660c85c2ae5c50588016b2c15e951e2d56 100644
--- a/net/minecraft/world/level/block/BarrelBlock.java
+++ b/net/minecraft/world/level/block/BarrelBlock.java
@@ -49,6 +49,14 @@ public class BarrelBlock extends BaseEntityBlock {
@@ -75,7 +75,7 @@ index f7820265f10b78674acd13e6204b9212fd27b038..700bd0f6a4f4fd6cd85b3e666fff1b3f
protected void affectNeighborsAfterRemoval(BlockState state, ServerLevel level, BlockPos pos, boolean movedByPiston) {
Containers.updateNeighboursAfterDestroy(state, level, pos);
diff --git a/net/minecraft/world/level/block/BasePressurePlateBlock.java b/net/minecraft/world/level/block/BasePressurePlateBlock.java
index 42ee3f32fe44c1f0680c994a69201f7bd7792673..19214c236bca4e454e3bbe7dc50e00b66398c119 100644
index fe9b5cf6fb8d8221b98836148e95aa857241181d..91ffe0d91fe4f93ef4ee6545716e3c4d7505f443 100644
--- a/net/minecraft/world/level/block/BasePressurePlateBlock.java
+++ b/net/minecraft/world/level/block/BasePressurePlateBlock.java
@@ -125,6 +125,19 @@ public abstract class BasePressurePlateBlock extends Block {
@@ -99,7 +99,7 @@ index 42ee3f32fe44c1f0680c994a69201f7bd7792673..19214c236bca4e454e3bbe7dc50e00b6
protected void affectNeighborsAfterRemoval(BlockState state, ServerLevel level, BlockPos pos, boolean movedByPiston) {
if (!movedByPiston && this.getSignalForState(state) > 0) {
diff --git a/net/minecraft/world/level/block/BaseRailBlock.java b/net/minecraft/world/level/block/BaseRailBlock.java
index 5f99e18244501ed2d85be77b71f48cc93058cdb7..6bf50d9c3921b15f40b4fba273abeb4c2e0f30b3 100644
index 83ea4d44edfe98d2b2089d4d35caaa170575ab62..1e4df5fb66fd9d601a4ac95af6a3b6d32deef89b 100644
--- a/net/minecraft/world/level/block/BaseRailBlock.java
+++ b/net/minecraft/world/level/block/BaseRailBlock.java
@@ -121,6 +121,23 @@ public abstract class BaseRailBlock extends Block implements SimpleWaterloggedBl
@@ -127,10 +127,10 @@ index 5f99e18244501ed2d85be77b71f48cc93058cdb7..6bf50d9c3921b15f40b4fba273abeb4c
protected void affectNeighborsAfterRemoval(BlockState state, ServerLevel level, BlockPos pos, boolean movedByPiston) {
if (!movedByPiston) {
diff --git a/net/minecraft/world/level/block/BrewingStandBlock.java b/net/minecraft/world/level/block/BrewingStandBlock.java
index f563f8ea63e67f808802baa4c6a700e803c045a0..0cc4479d9d3f6aea280c9f88997d141dc24917a9 100644
index 265736cb7b96dae60e9c6c7911d10f9a430a548c..687ea91d4e18adf97a5277340af976d07bb4d13a 100644
--- a/net/minecraft/world/level/block/BrewingStandBlock.java
+++ b/net/minecraft/world/level/block/BrewingStandBlock.java
@@ -78,6 +78,14 @@ public class BrewingStandBlock extends BaseEntityBlock {
@@ -79,6 +79,14 @@ public class BrewingStandBlock extends BaseEntityBlock {
level.addParticle(ParticleTypes.SMOKE, d, d1, d2, 0.0, 0.0, 0.0);
}
@@ -146,7 +146,7 @@ index f563f8ea63e67f808802baa4c6a700e803c045a0..0cc4479d9d3f6aea280c9f88997d141d
protected void affectNeighborsAfterRemoval(BlockState state, ServerLevel level, BlockPos pos, boolean movedByPiston) {
Containers.updateNeighboursAfterDestroy(state, level, pos);
diff --git a/net/minecraft/world/level/block/ButtonBlock.java b/net/minecraft/world/level/block/ButtonBlock.java
index 66c589bc633d32ebf36b1ab55ba6250ca2ddd6f6..f96d3c7b7ec15973aca3aabe056608fd5efb856b 100644
index b18e8dec532dd6408e8894a7fcf2fae58a1102d1..690fe01f3d83c572a633a4a41bb1030db6c4b2fb 100644
--- a/net/minecraft/world/level/block/ButtonBlock.java
+++ b/net/minecraft/world/level/block/ButtonBlock.java
@@ -132,6 +132,19 @@ public class ButtonBlock extends FaceAttachedHorizontalDirectionalBlock {
@@ -195,11 +195,11 @@ index 028e2ad8bcb23b3f9f80a5ec551204bb2d7db1ae..c9e2becc0644de707e0bd251318813c5
protected void entityInside(BlockState state, Level level, BlockPos pos, Entity entity, InsideBlockEffectApplier effectApplier) {
if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(level, pos)).callEvent()) { return; } // Paper - Add EntityInsideBlockEvent
diff --git a/net/minecraft/world/level/block/ChestBlock.java b/net/minecraft/world/level/block/ChestBlock.java
index c4937d1b482e2ec60961bda62ad6cc155f0ce8f7..818b1a5df0e9a0566210e4b3512ad856515e385f 100644
index b4d190a2f6ff8d21635c20bb8c1940d789e5c254..9365a9adcc9900648a99dc4696f89154ace6dddb 100644
--- a/net/minecraft/world/level/block/ChestBlock.java
+++ b/net/minecraft/world/level/block/ChestBlock.java
@@ -244,6 +244,14 @@ public class ChestBlock extends AbstractChestBlock<ChestBlockEntity> implements
return blockState.is(this) && blockState.getValue(TYPE) == ChestType.SINGLE ? blockState.getValue(FACING) : null;
@@ -276,6 +276,14 @@ public class ChestBlock extends AbstractChestBlock<ChestBlockEntity> implements
return this.chestCanConnectTo(blockState) && blockState.getValue(TYPE) == ChestType.SINGLE ? blockState.getValue(FACING) : null;
}
+ // Leaves start - behaviour 1.21.1-
@@ -214,10 +214,10 @@ index c4937d1b482e2ec60961bda62ad6cc155f0ce8f7..818b1a5df0e9a0566210e4b3512ad856
protected void affectNeighborsAfterRemoval(BlockState state, ServerLevel level, BlockPos pos, boolean movedByPiston) {
Containers.updateNeighboursAfterDestroy(state, level, pos);
diff --git a/net/minecraft/world/level/block/ChiseledBookShelfBlock.java b/net/minecraft/world/level/block/ChiseledBookShelfBlock.java
index eb315a50a83dc7230d7ad66f4daeb0d632679941..7bccf15310f6851875bfd77d4c66f4ce863b65e1 100644
index 77eee6728ecb0d5cb035a6a7969d5b3498a19b62..899508fbf9f59287d6ece9635e9cf071231d87b4 100644
--- a/net/minecraft/world/level/block/ChiseledBookShelfBlock.java
+++ b/net/minecraft/world/level/block/ChiseledBookShelfBlock.java
@@ -180,6 +180,27 @@ public class ChiseledBookShelfBlock extends BaseEntityBlock {
@@ -150,6 +150,27 @@ public class ChiseledBookShelfBlock extends BaseEntityBlock implements Selectabl
SLOT_OCCUPIED_PROPERTIES.forEach(property -> builder.add(property));
}
@@ -246,7 +246,7 @@ index eb315a50a83dc7230d7ad66f4daeb0d632679941..7bccf15310f6851875bfd77d4c66f4ce
protected void affectNeighborsAfterRemoval(BlockState state, ServerLevel level, BlockPos pos, boolean movedByPiston) {
Containers.updateNeighboursAfterDestroy(state, level, pos);
diff --git a/net/minecraft/world/level/block/CrafterBlock.java b/net/minecraft/world/level/block/CrafterBlock.java
index a073188275456ee2eee776b149a14f68e4557f4a..89e69eb87d43d35002a352bdb187f503033f6630 100644
index ad318cb7cd6d536d53ce9f911d5290bd9128b6f5..dbff3f9e20ed1fdadd596ce5ef3be196bdce2144 100644
--- a/net/minecraft/world/level/block/CrafterBlock.java
+++ b/net/minecraft/world/level/block/CrafterBlock.java
@@ -129,6 +129,14 @@ public class CrafterBlock extends BaseEntityBlock {
@@ -265,7 +265,7 @@ index a073188275456ee2eee776b149a14f68e4557f4a..89e69eb87d43d35002a352bdb187f503
protected void affectNeighborsAfterRemoval(BlockState state, ServerLevel level, BlockPos pos, boolean movedByPiston) {
Containers.updateNeighboursAfterDestroy(state, level, pos);
diff --git a/net/minecraft/world/level/block/CreakingHeartBlock.java b/net/minecraft/world/level/block/CreakingHeartBlock.java
index 73885449a3316face50292756de2a3f298d3d111..333e18e4ead0bb6ef9681ce27ec156f79821af7c 100644
index a995afde495fc698e6881f272bf75e90fa4d2664..d2ce1e547ce72b263d1cef32a25848778c238bab 100644
--- a/net/minecraft/world/level/block/CreakingHeartBlock.java
+++ b/net/minecraft/world/level/block/CreakingHeartBlock.java
@@ -152,6 +152,16 @@ public class CreakingHeartBlock extends BaseEntityBlock {
@@ -286,7 +286,7 @@ index 73885449a3316face50292756de2a3f298d3d111..333e18e4ead0bb6ef9681ce27ec156f7
protected void affectNeighborsAfterRemoval(BlockState state, ServerLevel level, BlockPos pos, boolean movedByPiston) {
Containers.updateNeighboursAfterDestroy(state, level, pos);
diff --git a/net/minecraft/world/level/block/DecoratedPotBlock.java b/net/minecraft/world/level/block/DecoratedPotBlock.java
index f1570f1f4f7e43aacbcffef8bcf8ef27d46899da..6afd1c618112234ce4940105582a4399e20ab34c 100644
index beef5ba8bd0b12b0012c7d063515b5dee596bd6b..d0795c4f2f7e7c1428eed088f1e15760a3d2b5f5 100644
--- a/net/minecraft/world/level/block/DecoratedPotBlock.java
+++ b/net/minecraft/world/level/block/DecoratedPotBlock.java
@@ -165,6 +165,14 @@ public class DecoratedPotBlock extends BaseEntityBlock implements SimpleWaterlog
@@ -326,7 +326,7 @@ index 558751ade918a92a1173096ccfeacf238f4260d0..94d35e4812705771756a0ee1a9b0255b
protected void affectNeighborsAfterRemoval(BlockState state, ServerLevel level, BlockPos pos, boolean movedByPiston) {
if (!movedByPiston) {
diff --git a/net/minecraft/world/level/block/DispenserBlock.java b/net/minecraft/world/level/block/DispenserBlock.java
index 7ff6255fcd50344cd6ac7f8a67d61fd59c85e413..7a23d27ce76ae6b90d01c4dc7af416bb6b6516ea 100644
index 3db7260752e5978c6a1c75e15ac78587949dac94..5b6cbc0adbbb32b30ea35c4a76b0fe29ed1cb0e5 100644
--- a/net/minecraft/world/level/block/DispenserBlock.java
+++ b/net/minecraft/world/level/block/DispenserBlock.java
@@ -147,6 +147,14 @@ public class DispenserBlock extends BaseEntityBlock {
@@ -345,7 +345,7 @@ index 7ff6255fcd50344cd6ac7f8a67d61fd59c85e413..7a23d27ce76ae6b90d01c4dc7af416bb
protected void affectNeighborsAfterRemoval(BlockState state, ServerLevel level, BlockPos pos, boolean movedByPiston) {
Containers.updateNeighboursAfterDestroy(state, level, pos);
diff --git a/net/minecraft/world/level/block/HopperBlock.java b/net/minecraft/world/level/block/HopperBlock.java
index 46a27f60ba407dacdac190b5e292ab3f1db5a078..d3535a9dc462d92a306aea981d7799d8d975f59d 100644
index c6bec5967f7792ad3b65c0c69fdafd36194d8823..5c7638fed052d68023646b86d5f4bb5b3510b390 100644
--- a/net/minecraft/world/level/block/HopperBlock.java
+++ b/net/minecraft/world/level/block/HopperBlock.java
@@ -125,6 +125,14 @@ public class HopperBlock extends BaseEntityBlock {
@@ -364,7 +364,7 @@ index 46a27f60ba407dacdac190b5e292ab3f1db5a078..d3535a9dc462d92a306aea981d7799d8
protected void affectNeighborsAfterRemoval(BlockState state, ServerLevel level, BlockPos pos, boolean movedByPiston) {
Containers.updateNeighboursAfterDestroy(state, level, pos);
diff --git a/net/minecraft/world/level/block/JukeboxBlock.java b/net/minecraft/world/level/block/JukeboxBlock.java
index 56cf6528f0cd9b8528490d7cee9a1f0e54108ef9..955854e5b3a18b8f1441145554a97c5454a65d12 100644
index a1acd044d6f1ccd4f79e582d61d4dd8002854af3..5267f5349677cfa6370042e4fa82018ad89fc937 100644
--- a/net/minecraft/world/level/block/JukeboxBlock.java
+++ b/net/minecraft/world/level/block/JukeboxBlock.java
@@ -73,6 +73,19 @@ public class JukeboxBlock extends BaseEntityBlock {
@@ -388,10 +388,10 @@ index 56cf6528f0cd9b8528490d7cee9a1f0e54108ef9..955854e5b3a18b8f1441145554a97c54
protected void affectNeighborsAfterRemoval(BlockState state, ServerLevel level, BlockPos pos, boolean movedByPiston) {
Containers.updateNeighboursAfterDestroy(state, level, pos);
diff --git a/net/minecraft/world/level/block/LecternBlock.java b/net/minecraft/world/level/block/LecternBlock.java
index 5a9b601b7bf7e80b04ebd8f5c8b7d121031132c7..b714d3c7649384a8fdbe0a713e2193e241c80618 100644
index 31e793474a1787be2c737417b849d0e3bc79ed10..b7af47f00042de5c491809255d0d911c65747f25 100644
--- a/net/minecraft/world/level/block/LecternBlock.java
+++ b/net/minecraft/world/level/block/LecternBlock.java
@@ -197,6 +197,36 @@ public class LecternBlock extends BaseEntityBlock {
@@ -198,6 +198,36 @@ public class LecternBlock extends BaseEntityBlock {
changePowered(level, pos, state, false);
}
@@ -429,7 +429,7 @@ index 5a9b601b7bf7e80b04ebd8f5c8b7d121031132c7..b714d3c7649384a8fdbe0a713e2193e2
protected void affectNeighborsAfterRemoval(BlockState state, ServerLevel level, BlockPos pos, boolean movedByPiston) {
if (state.getValue(POWERED)) {
diff --git a/net/minecraft/world/level/block/LeverBlock.java b/net/minecraft/world/level/block/LeverBlock.java
index 76f2a29f37187344324d68941307d58e6343b6ae..3645ca9589aa1a74134180c9918a6f67bc64ce7a 100644
index 7639201a15dfef7ad84a63c2217aeacd626041c2..ad689677be3c6a331684a62b3687ed83718733a2 100644
--- a/net/minecraft/world/level/block/LeverBlock.java
+++ b/net/minecraft/world/level/block/LeverBlock.java
@@ -125,6 +125,19 @@ public class LeverBlock extends FaceAttachedHorizontalDirectionalBlock {
@@ -453,7 +453,7 @@ index 76f2a29f37187344324d68941307d58e6343b6ae..3645ca9589aa1a74134180c9918a6f67
protected void affectNeighborsAfterRemoval(BlockState state, ServerLevel level, BlockPos pos, boolean movedByPiston) {
if (!movedByPiston && state.getValue(POWERED)) {
diff --git a/net/minecraft/world/level/block/LightningRodBlock.java b/net/minecraft/world/level/block/LightningRodBlock.java
index 13b92472d50a41446b86c62ec31919fe0a953374..d567a7c303bf1baa92fc24ff47870d56c70907af 100644
index e33238331d9f7f421c05959fc6653f31b7a00704..62cd2cfc0456f07a9c5cebfe4f9410658bd3c689 100644
--- a/net/minecraft/world/level/block/LightningRodBlock.java
+++ b/net/minecraft/world/level/block/LightningRodBlock.java
@@ -120,6 +120,18 @@ public class LightningRodBlock extends RodBlock implements SimpleWaterloggedBloc
@@ -498,7 +498,7 @@ index bd2aa00ce8b78c16f6107064dd00bfbb072df0df..6db3a21bcc37ae79f82b19ee0a851f53
protected void affectNeighborsAfterRemoval(BlockState state, ServerLevel level, BlockPos pos, boolean movedByPiston) {
if (state.getValue(POWERED) && level.getBlockTicks().hasScheduledTick(pos, this)) {
diff --git a/net/minecraft/world/level/block/RedStoneWireBlock.java b/net/minecraft/world/level/block/RedStoneWireBlock.java
index 35dc47d5ba1a2659304ccc08010611438ccf04d8..04cc3c5a6ae0bea5f3a47ff7f9a7fe1f486294eb 100644
index 813dbd68dc7b939444050399f881a938df116a56..0fee20208ca95ae4fcf3aeb73c11eee7860bab5e 100644
--- a/net/minecraft/world/level/block/RedStoneWireBlock.java
+++ b/net/minecraft/world/level/block/RedStoneWireBlock.java
@@ -363,6 +363,27 @@ public class RedStoneWireBlock extends Block {
@@ -550,7 +550,7 @@ index 33e2f2de19208b7af6551132887e310744b4b702..d36c3bdb59bf9b9467d1a9807ab789b4
protected void affectNeighborsAfterRemoval(BlockState state, ServerLevel level, BlockPos pos, boolean movedByPiston) {
if (!movedByPiston) {
diff --git a/net/minecraft/world/level/block/SculkSensorBlock.java b/net/minecraft/world/level/block/SculkSensorBlock.java
index f0101e88140f480c1a94f899744991f78c9e3756..fa9cb4c40a41eea7fd63a4513d0b0f39067de9ba 100644
index 8a6c7e3b7e0aa7f13373d5d860bdc2a06d4084e0..b4c5e16d23238ac89e739269e04e16be54394e66 100644
--- a/net/minecraft/world/level/block/SculkSensorBlock.java
+++ b/net/minecraft/world/level/block/SculkSensorBlock.java
@@ -129,6 +129,18 @@ public class SculkSensorBlock extends BaseEntityBlock implements SimpleWaterlogg
@@ -573,7 +573,7 @@ index f0101e88140f480c1a94f899744991f78c9e3756..fa9cb4c40a41eea7fd63a4513d0b0f39
protected void affectNeighborsAfterRemoval(BlockState state, ServerLevel level, BlockPos pos, boolean movedByPiston) {
if (getPhase(state) == SculkSensorPhase.ACTIVE) {
diff --git a/net/minecraft/world/level/block/SculkShriekerBlock.java b/net/minecraft/world/level/block/SculkShriekerBlock.java
index 757f8453e147875ab9f14d9726bb734ef27447c9..d0558d0e33f3d6e25af2dd71650d723e8997dae6 100644
index ef9f879e7819fcb977dadcfbb4b95b4f7b2f4266..15ca094bb0378fd4eaebf1b2f7626de53cf2e5ce 100644
--- a/net/minecraft/world/level/block/SculkShriekerBlock.java
+++ b/net/minecraft/world/level/block/SculkShriekerBlock.java
@@ -68,6 +68,16 @@ public class SculkShriekerBlock extends BaseEntityBlock implements SimpleWaterlo
@@ -594,7 +594,7 @@ index 757f8453e147875ab9f14d9726bb734ef27447c9..d0558d0e33f3d6e25af2dd71650d723e
protected void tick(BlockState state, ServerLevel level, BlockPos pos, RandomSource random) {
if (state.getValue(SHRIEKING)) {
diff --git a/net/minecraft/world/level/block/ShulkerBoxBlock.java b/net/minecraft/world/level/block/ShulkerBoxBlock.java
index 45e48e6d225a2741cd615345711072610d728474..80520260ccb52935f3c1564c2f161bb148ba7baa 100644
index be1da725af23875798862ed6596e9e49fa79fe4a..a9cd5de931a2e5010bd6dad0010b1d049ce2f383 100644
--- a/net/minecraft/world/level/block/ShulkerBoxBlock.java
+++ b/net/minecraft/world/level/block/ShulkerBoxBlock.java
@@ -152,6 +152,19 @@ public class ShulkerBoxBlock extends BaseEntityBlock {
@@ -618,7 +618,7 @@ index 45e48e6d225a2741cd615345711072610d728474..80520260ccb52935f3c1564c2f161bb1
protected void affectNeighborsAfterRemoval(BlockState state, ServerLevel level, BlockPos pos, boolean movedByPiston) {
Containers.updateNeighboursAfterDestroy(state, level, pos);
diff --git a/net/minecraft/world/level/block/TripWireBlock.java b/net/minecraft/world/level/block/TripWireBlock.java
index c8f793d1cdeef7e3e0d5fceb45a4507d542e4b33..27f382f6c663b2954a6fb966ece05ba021fcd6b1 100644
index 8e9480b8ae3f6692c5058a3360be7a22038ef8ac..95a204b0fa198b446db91e547bc433b7c3f89a9e 100644
--- a/net/minecraft/world/level/block/TripWireBlock.java
+++ b/net/minecraft/world/level/block/TripWireBlock.java
@@ -108,6 +108,16 @@ public class TripWireBlock extends Block {
@@ -669,10 +669,10 @@ index a92462c76a648e6c175b8c2ef3e925aba81ba774..b32760f1096581059418f479b060019f
protected void affectNeighborsAfterRemoval(BlockState state, ServerLevel level, BlockPos pos, boolean movedByPiston) {
if (!movedByPiston) {
diff --git a/net/minecraft/world/level/block/entity/BlockEntityType.java b/net/minecraft/world/level/block/entity/BlockEntityType.java
index 386e6a48701b4c9256e33174123381a93d61e292..abade114c5b5051ce96b6489f08feb7e1cc774ee 100644
index 42865515fd8c6a321cc68f3c507738b86dc55d35..5577661dc430c11a692aec576c56c17cb8bef84c 100644
--- a/net/minecraft/world/level/block/entity/BlockEntityType.java
+++ b/net/minecraft/world/level/block/entity/BlockEntityType.java
@@ -263,7 +263,7 @@ public class BlockEntityType<T extends BlockEntity> {
@@ -303,7 +303,7 @@ public class BlockEntityType<T extends BlockEntity> {
}
public boolean isValid(BlockState state) {
@@ -682,7 +682,7 @@ index 386e6a48701b4c9256e33174123381a93d61e292..abade114c5b5051ce96b6489f08feb7e
@Deprecated
diff --git a/net/minecraft/world/level/block/piston/MovingPistonBlock.java b/net/minecraft/world/level/block/piston/MovingPistonBlock.java
index 05bbc2e59384702439548a988e128a85f1adbe82..af516d5b6bd31de2c6a388ec8001126e2a351cf3 100644
index 16f14dffcbca21e0c6d369d557ab6c036523b8bd..85ea573faf87f6c58ccbec69b77dbc981768c52e 100644
--- a/net/minecraft/world/level/block/piston/MovingPistonBlock.java
+++ b/net/minecraft/world/level/block/piston/MovingPistonBlock.java
@@ -67,6 +67,18 @@ public class MovingPistonBlock extends BaseEntityBlock {
@@ -705,7 +705,7 @@ index 05bbc2e59384702439548a988e128a85f1adbe82..af516d5b6bd31de2c6a388ec8001126e
public void destroy(LevelAccessor level, BlockPos pos, BlockState state) {
BlockPos blockPos = pos.relative(state.getValue(FACING).getOpposite());
diff --git a/net/minecraft/world/level/block/piston/PistonHeadBlock.java b/net/minecraft/world/level/block/piston/PistonHeadBlock.java
index 6c789e56f21f01252c21786cfeb48d88485b5636..e24a61a4e2dac0159d52f07c93ddf860f4bfb8f7 100644
index 72e39ceeca8d684569c4250263b41034362f8abd..29cf6e44e328ffc3c311149f383c4bd390c515c4 100644
--- a/net/minecraft/world/level/block/piston/PistonHeadBlock.java
+++ b/net/minecraft/world/level/block/piston/PistonHeadBlock.java
@@ -78,6 +78,19 @@ public class PistonHeadBlock extends DirectionalBlock {
@@ -729,10 +729,10 @@ index 6c789e56f21f01252c21786cfeb48d88485b5636..e24a61a4e2dac0159d52f07c93ddf860
protected void affectNeighborsAfterRemoval(BlockState state, ServerLevel level, BlockPos pos, boolean movedByPiston) {
BlockPos blockPos = pos.relative(state.getValue(FACING).getOpposite());
diff --git a/net/minecraft/world/level/block/state/BlockBehaviour.java b/net/minecraft/world/level/block/state/BlockBehaviour.java
index be66f0f1cb1b0bcec8f9489a1fdd8777df1adb6b..67719dce9017a4c86a70b62fb660bddc636d5582 100644
index ad0a833bd86cc46c700032ae66b97c11b7b707ba..9542e5c9418d74f131f794687b6c8276159d8c3f 100644
--- a/net/minecraft/world/level/block/state/BlockBehaviour.java
+++ b/net/minecraft/world/level/block/state/BlockBehaviour.java
@@ -171,6 +171,15 @@ public abstract class BlockBehaviour implements FeatureElement {
@@ -170,6 +170,15 @@ public abstract class BlockBehaviour implements FeatureElement {
org.spigotmc.AsyncCatcher.catchOp("block onPlace"); // Spigot
}
@@ -748,7 +748,7 @@ index be66f0f1cb1b0bcec8f9489a1fdd8777df1adb6b..67719dce9017a4c86a70b62fb660bddc
protected void affectNeighborsAfterRemoval(BlockState state, ServerLevel level, BlockPos pos, boolean movedByPiston) {
}
@@ -867,6 +876,12 @@ public abstract class BlockBehaviour implements FeatureElement {
@@ -869,6 +878,12 @@ public abstract class BlockBehaviour implements FeatureElement {
// CraftBukkit end
}
@@ -762,22 +762,22 @@ index be66f0f1cb1b0bcec8f9489a1fdd8777df1adb6b..67719dce9017a4c86a70b62fb660bddc
this.getBlock().affectNeighborsAfterRemoval(this.asState(), level, pos, movedByPiston);
}
diff --git a/net/minecraft/world/level/chunk/LevelChunk.java b/net/minecraft/world/level/chunk/LevelChunk.java
index 0e22116fefcbdbf2049b7ec285b35fd03c723dc5..45386818312fbd99bbcb72d14ad9e54cd864a2a8 100644
index e96a7693eb0d94888a3b1db680378374e7aebb91..3915d0fbb26b9f3042ba3e3d22d61b251117c774 100644
--- a/net/minecraft/world/level/chunk/LevelChunk.java
+++ b/net/minecraft/world/level/chunk/LevelChunk.java
@@ -396,20 +396,26 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p
@@ -403,20 +403,26 @@ public class LevelChunk extends ChunkAccess implements DebugValueSource, ca.spot
boolean flag = !blockState.is(block);
boolean flag1 = (flags & 64) != 0;
boolean flag2 = (flags & 256) == 0;
- if (flag && blockState.hasBlockEntity()) {
- if (!this.level.isClientSide && flag2) {
- if (flag && blockState.hasBlockEntity() && !state.shouldChangedStateKeepBlockEntity(blockState)) {
- if (!this.level.isClientSide() && flag2) {
- BlockEntity blockEntity = this.level.getBlockEntity(pos);
- if (blockEntity != null) {
- blockEntity.preRemoveSideEffects(pos, blockState);
+ // Leaves start - behaviour 1.21.1-
+ if (!org.leavesmc.leaves.LeavesConfig.modify.oldMC.updater.oldBlockRemoveBehaviour) {
+ if (flag && blockState.hasBlockEntity()) {
+ if (!this.level.isClientSide && flag2) {
+ if (!this.level.isClientSide() && flag2) {
+ BlockEntity blockEntity = this.level.getBlockEntity(pos);
+ if (blockEntity != null) {
+ blockEntity.preRemoveSideEffects(pos, blockState);

View File

@@ -21,10 +21,10 @@ index 80f17f33f670018240c854df589cf90cdeab6e70..d7f443bcf91ac7817fe79881122960f4
if (raidAt == null || raidAt.getRaidOmenLevel() < raidAt.getMaxRaidOmenLevel()) {
serverPlayer.addEffect(new MobEffectInstance(MobEffects.RAID_OMEN, 600, amplifier));
diff --git a/net/minecraft/world/entity/raid/Raid.java b/net/minecraft/world/entity/raid/Raid.java
index b3a29ce523fb5de71589c7c17598bba17622f988..8f90f3234c9b80b7a194d5dbffd8ea93835dfc06 100644
index 5181a9334066a15e0d502d3522c23337e5eef2b5..36b4aeeb63319d28d637541c3b97a481a8673fd7 100644
--- a/net/minecraft/world/entity/raid/Raid.java
+++ b/net/minecraft/world/entity/raid/Raid.java
@@ -256,7 +256,7 @@ public class Raid {
@@ -258,7 +258,7 @@ public class Raid {
}
public boolean absorbRaidOmen(ServerPlayer player) {
@@ -33,7 +33,7 @@ index b3a29ce523fb5de71589c7c17598bba17622f988..8f90f3234c9b80b7a194d5dbffd8ea93
if (effect == null) {
return false;
} else {
@@ -333,7 +333,13 @@ public class Raid {
@@ -335,7 +335,13 @@ public class Raid {
}
if (flag1) {
@@ -48,7 +48,7 @@ index b3a29ce523fb5de71589c7c17598bba17622f988..8f90f3234c9b80b7a194d5dbffd8ea93
}
if (this.raidCooldownTicks == 300 || this.raidCooldownTicks % 20 == 0) {
@@ -368,7 +374,14 @@ public class Raid {
@@ -390,7 +396,14 @@ public class Raid {
int i = 0;
while (this.shouldSpawnGroup()) {
@@ -64,7 +64,7 @@ index b3a29ce523fb5de71589c7c17598bba17622f988..8f90f3234c9b80b7a194d5dbffd8ea93
if (blockPos != null) {
this.started = true;
this.spawnGroup(level, blockPos);
@@ -380,7 +393,7 @@ public class Raid {
@@ -402,7 +415,7 @@ public class Raid {
i++;
}
@@ -73,7 +73,7 @@ index b3a29ce523fb5de71589c7c17598bba17622f988..8f90f3234c9b80b7a194d5dbffd8ea93
org.bukkit.craftbukkit.event.CraftEventFactory.callRaidStopEvent(level, this, org.bukkit.event.raid.RaidStopEvent.Reason.UNSPAWNABLE); // CraftBukkit
this.stop();
break;
@@ -667,7 +680,7 @@ public class Raid {
@@ -689,7 +702,7 @@ public class Raid {
int i2 = this.center.getX() + Mth.floor(Mth.cos(f2) * 32.0F * f) + level.random.nextInt(3) * Mth.floor(f);
int i3 = this.center.getZ() + Mth.floor(Mth.sin(f2) * 32.0F * f) + level.random.nextInt(3) * Mth.floor(f);
int height = level.getHeight(Heightmap.Types.WORLD_SURFACE, i2, i3);
@@ -82,7 +82,7 @@ index b3a29ce523fb5de71589c7c17598bba17622f988..8f90f3234c9b80b7a194d5dbffd8ea93
mutableBlockPos.set(i2, height, i3);
if (!level.isVillage(mutableBlockPos) || i <= 7) {
int i4 = 10;
@@ -686,6 +699,36 @@ public class Raid {
@@ -708,6 +721,36 @@ public class Raid {
return null;
}
@@ -119,7 +119,7 @@ index b3a29ce523fb5de71589c7c17598bba17622f988..8f90f3234c9b80b7a194d5dbffd8ea93
private boolean addWaveMob(ServerLevel level, int wave, Raider raider) {
return this.addWaveMob(level, wave, raider, true);
}
@@ -843,4 +886,43 @@ public class Raid {
@@ -865,4 +908,43 @@ public class Raid {
this.spawnsPerWaveBeforeBonus = spawnsPerWaveBeforeBonus;
}
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Allow anvil destroy item entities
diff --git a/net/minecraft/world/entity/item/FallingBlockEntity.java b/net/minecraft/world/entity/item/FallingBlockEntity.java
index 0fd2c522a5fb038a8c002970af6feebd9dc9c436..2d0d6ad8c37c3187fbf35e5c7ff9a509da59c648 100644
index 387f7a48499421858ea024bca01e372d3dbcdb57..9395301f25d2b525d1412b7b79b82fa06c2bebbb 100644
--- a/net/minecraft/world/entity/item/FallingBlockEntity.java
+++ b/net/minecraft/world/entity/item/FallingBlockEntity.java
@@ -282,7 +282,7 @@ public class FallingBlockEntity extends Entity {
@@ -281,7 +281,7 @@ public class FallingBlockEntity extends Entity {
if (ceil < 0) {
return false;
} else {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Fix EntityPortalExitEvent logic
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
index e09eb2612eb3943c9d108885bf189b04e050f459..9309ef573407cbdf6bb1859021939798bbcf4669 100644
index 1f151de5090f5dbd7567f18be75a244ecb204230..2a725b438dc2a05c04cef8475aaa41b93d9283fb 100644
--- a/net/minecraft/world/entity/Entity.java
+++ b/net/minecraft/world/entity/Entity.java
@@ -3990,19 +3990,21 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -4056,19 +4056,21 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name
);
event.callEvent();

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Fix CraftPortalEvent logic
diff --git a/net/minecraft/world/level/block/EndPortalBlock.java b/net/minecraft/world/level/block/EndPortalBlock.java
index f6c64277c3d6e16250e2bf963b6427404e27aa9b..2d908255439ea548aa7679219b5092334243a641 100644
index cbd8c06f5bf4319dd2470c289442237c465cff57..dd0762c653f0ac1672f16265ba6689b88877ad4c 100644
--- a/net/minecraft/world/level/block/EndPortalBlock.java
+++ b/net/minecraft/world/level/block/EndPortalBlock.java
@@ -105,9 +105,9 @@ public class EndPortalBlock extends BaseEntityBlock implements Portal {
@@ -111,7 +111,7 @@ public class EndPortalBlock extends BaseEntityBlock implements Portal {
}
// CraftBukkit start

View File

@@ -5,13 +5,13 @@ Subject: [PATCH] Xaero Map Protocol
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
index d4eb10d3734930a43b8270cdc7eb78bf40907c94..81a6b4d9c35056b3eda889800f61964ab522a8b9 100644
index 8f62978123dc40bbbc2f9e398a063000317dc655..9fe5f2a30234473682c47e4876833eb3841321f2 100644
--- a/net/minecraft/server/players/PlayerList.java
+++ b/net/minecraft/server/players/PlayerList.java
@@ -1318,6 +1318,7 @@ public abstract class PlayerList {
@@ -1356,6 +1356,7 @@ public abstract class PlayerList {
player.connection.send(new ClientboundInitializeBorderPacket(worldBorder));
player.connection.send(new ClientboundSetTimePacket(level.getGameTime(), level.getDayTime(), level.getGameRules().getBoolean(GameRules.RULE_DAYLIGHT)));
player.connection.send(new ClientboundSetDefaultSpawnPositionPacket(level.getSharedSpawnPos(), level.getSharedSpawnAngle()));
player.connection.send(new ClientboundSetDefaultSpawnPositionPacket(level.getRespawnData()));
+ org.leavesmc.leaves.protocol.XaeroMapProtocol.onSendWorldInfo(player); // Leaves - xaero map protocol
if (level.isRaining()) {
// CraftBukkit start - handle player weather

View File

@@ -6,10 +6,10 @@ Subject: [PATCH] Skip negligible planar movement multiplication
This patch is Powered by Gale(https://github.com/Dreeam-qwq/Gale)
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
index 9309ef573407cbdf6bb1859021939798bbcf4669..d7eea7b8b5836b4aba510cfbbdb3788cf21c2abc 100644
index 2a725b438dc2a05c04cef8475aaa41b93d9283fb..e31d0ee67f418d1b0bf2734c24a75c4dc2c1feca 100644
--- a/net/minecraft/world/entity/Entity.java
+++ b/net/minecraft/world/entity/Entity.java
@@ -1234,8 +1234,17 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -1244,8 +1244,17 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name
}
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Vanilla player display name
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
index e355939e153c05f9434482c4713743755b280d69..76af3083d6f4c308802be7b8625d905105c3355c 100644
index 0981f5d07144f75148b035e41f82190d0cd6526a..38326b17208612caadf0f94881631f89d774b2b4 100644
--- a/net/minecraft/server/level/ServerPlayer.java
+++ b/net/minecraft/server/level/ServerPlayer.java
@@ -476,7 +476,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
@@ -490,7 +490,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
this.object = null;
// CraftBukkit start
this.displayName = this.getScoreboardName();

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Fix SculkCatalyst exp skip
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
index 76af3083d6f4c308802be7b8625d905105c3355c..531b38be36cb2990cf5fbefbd58f917a0d84f0d3 100644
index 38326b17208612caadf0f94881631f89d774b2b4..16ff518eb1583e4640ad52ccf73f1a667822b693 100644
--- a/net/minecraft/server/level/ServerPlayer.java
+++ b/net/minecraft/server/level/ServerPlayer.java
@@ -1107,7 +1107,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
@@ -1213,7 +1213,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
}
// SPIGOT-5478 must be called manually now
@@ -17,7 +17,7 @@ index 76af3083d6f4c308802be7b8625d905105c3355c..531b38be36cb2990cf5fbefbd58f917a
// we clean the player's inventory after the EntityDeathEvent is called so plugins can get the exact state of the inventory.
if (!event.getKeepInventory()) {
// Paper start - PlayerDeathEvent#getItemsToKeep
@@ -1154,6 +1154,15 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
@@ -1260,6 +1260,15 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
this.setClientLoaded(false);
}
@@ -34,10 +34,10 @@ index 76af3083d6f4c308802be7b8625d905105c3355c..531b38be36cb2990cf5fbefbd58f917a
AABB aabb = new AABB(this.blockPosition()).inflate(32.0, 10.0, 32.0);
this.level()
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
index 59a352427b8d6445f3da3c6033bae4826277ed60..6b776ff621275e842c113000bd69528c96a598c3 100644
index 10676027d8ba2d55319e66f808f9a7854b122c4e..1c6f6046f1761fa4b551a73e742f66924553d79b 100644
--- a/net/minecraft/world/entity/LivingEntity.java
+++ b/net/minecraft/world/entity/LivingEntity.java
@@ -277,6 +277,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
@@ -278,6 +278,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
private Waypoint.Icon locatorBarIcon = new Waypoint.Icon();
// CraftBukkit start
public int expToDrop;
@@ -45,15 +45,15 @@ index 59a352427b8d6445f3da3c6033bae4826277ed60..6b776ff621275e842c113000bd69528c
public List<DefaultDrop> drops = new java.util.ArrayList<>(); // Paper - Restore vanilla drops behavior
public final org.bukkit.craftbukkit.attribute.CraftAttributeMap craftAttributes;
public boolean collides = true;
@@ -1861,6 +1862,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
entity.killedEntity((ServerLevel) this.level(), this);
@@ -1869,6 +1870,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
entity.killedEntity((ServerLevel) this.level(), this, damageSource);
}
this.gameEvent(GameEvent.ENTITY_DIE);
+ if (!this.wasExperienceConsumed()) this.dropExperience((ServerLevel) this.level(), damageSource.getEntity()); // Leaves - exp fix
} else {
this.dead = false;
this.setHealth((float) deathEvent.getReviveHealth());
@@ -1934,7 +1936,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
@@ -1942,7 +1944,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
this.drops = new java.util.ArrayList<>();
// this.dropEquipment(level); // CraftBukkit - moved up
// CraftBukkit end

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Vanilla creative pickup behavior
diff --git a/net/minecraft/world/entity/player/Inventory.java b/net/minecraft/world/entity/player/Inventory.java
index 71df58ae26325a2d28b6679733c474c0c59f7654..c73a1289a122dd0525e93fafb522d774566dceac 100644
index b849b04f227b43d036f4f6b3ae7accfafc389d9f..c001055c89cfd3705ce0fcbafd7461cf401f35b5 100644
--- a/net/minecraft/world/entity/player/Inventory.java
+++ b/net/minecraft/world/entity/player/Inventory.java
@@ -176,6 +176,13 @@ public class Inventory implements Container, Nameable {
@@ -177,6 +177,13 @@ public class Inventory implements Container, Nameable {
// CraftBukkit start - Watch method above! :D
public int canHold(ItemStack itemStack) {
int remains = itemStack.getCount();

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Vanilla portal handle
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
index d7eea7b8b5836b4aba510cfbbdb3788cf21c2abc..c011fd65f5814c88cb3f6a4f62283efb9b6188ec 100644
index e31d0ee67f418d1b0bf2734c24a75c4dc2c1feca..ab558281d064cd3a776f7d7c1a021b0d727b22e1 100644
--- a/net/minecraft/world/entity/Entity.java
+++ b/net/minecraft/world/entity/Entity.java
@@ -836,6 +836,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -842,6 +842,7 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name
// CraftBukkit start
public void postTick() {
@@ -16,7 +16,7 @@ index d7eea7b8b5836b4aba510cfbbdb3788cf21c2abc..c011fd65f5814c88cb3f6a4f62283efb
// No clean way to break out of ticking once the entity has been copied to a new world, so instead we move the portalling later in the tick cycle
if (!(this instanceof ServerPlayer) && this.isAlive()) { // Paper - don't attempt to teleport dead entities
this.handlePortal();
@@ -856,7 +857,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -862,7 +863,7 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name
this.boardingCooldown--;
}
@@ -26,7 +26,7 @@ index d7eea7b8b5836b4aba510cfbbdb3788cf21c2abc..c011fd65f5814c88cb3f6a4f62283efb
this.spawnSprintParticle();
}
diff --git a/net/minecraft/world/entity/vehicle/AbstractMinecart.java b/net/minecraft/world/entity/vehicle/AbstractMinecart.java
index 7e61d68b36ca2768f70dc1fc130a8d7b95347b6b..8e73204f6e7d159d66c3d90c7e2845bfde867e7a 100644
index 2ae92078d69e5ab3cc27085a9c5e5ccf9f2c175d..7ef959c5d192c78002fb37f624162abe250a1854 100644
--- a/net/minecraft/world/entity/vehicle/AbstractMinecart.java
+++ b/net/minecraft/world/entity/vehicle/AbstractMinecart.java
@@ -293,7 +293,7 @@ public abstract class AbstractMinecart extends VehicleEntity {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Fix chunk reload detector
diff --git a/net/minecraft/server/level/ServerEntity.java b/net/minecraft/server/level/ServerEntity.java
index f6b2d541fdfd11c6ff6033fbf4cd5153796634e3..5e06cc272b9617d780c507b5b819b380e7462eaf 100644
index 1099280bd8e28c167702b74041928f260695ba7c..42c5e027ab04d03e761d956343bb41c3496da1ff 100644
--- a/net/minecraft/server/level/ServerEntity.java
+++ b/net/minecraft/server/level/ServerEntity.java
@@ -390,7 +390,7 @@ public class ServerEntity {
@@ -371,7 +371,7 @@ public class ServerEntity {
if (!list.isEmpty()) {
consumer.accept(new ClientboundSetEquipmentPacket(this.entity.getId(), list, true)); // Paper - data sanitization
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Do not reset placed block on exception
diff --git a/net/minecraft/world/item/BlockItem.java b/net/minecraft/world/item/BlockItem.java
index 593e65ef3a768d4039047e42e666c8382a5d38eb..cf143589407dc2146c9ce18f509077017fba0b48 100644
index cf00493cbf131d0af2137a852c9ffba9dbeaddb3..13c357688f381e36ff4179a65a0654c73e1219b1 100644
--- a/net/minecraft/world/item/BlockItem.java
+++ b/net/minecraft/world/item/BlockItem.java
@@ -92,20 +92,22 @@ public class BlockItem extends Item {
@@ -91,20 +91,22 @@ public class BlockItem extends Item {
BlockState blockState = level.getBlockState(clickedPos);
if (blockState.is(placementState.getBlock())) {
blockState = this.updateBlockStateFromTag(clickedPos, level, itemInHand, blockState);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Do not prevent block entity and entity crash at LevelChunk
diff --git a/net/minecraft/world/level/chunk/LevelChunk.java b/net/minecraft/world/level/chunk/LevelChunk.java
index 45386818312fbd99bbcb72d14ad9e54cd864a2a8..b27cbb55fcb980679819a605112533f366abc97e 100644
index 3915d0fbb26b9f3042ba3e3d22d61b251117c774..ff76f9ddc97c326bbe56a7ec138b11bf8e2d108d 100644
--- a/net/minecraft/world/level/chunk/LevelChunk.java
+++ b/net/minecraft/world/level/chunk/LevelChunk.java
@@ -952,12 +952,14 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p
@@ -986,12 +986,14 @@ public class LevelChunk extends ChunkAccess implements DebugValueSource, ca.spot
profilerFiller.pop();
} catch (Throwable var5) {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Spawn invulnerable time
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
index 531b38be36cb2990cf5fbefbd58f917a0d84f0d3..3fc5a892555a737243fe887b5d5d6a54187d8218 100644
index 16ff518eb1583e4640ad52ccf73f1a667822b693..885681d6f6257d734ba03f375a9054a8c6b4222a 100644
--- a/net/minecraft/server/level/ServerPlayer.java
+++ b/net/minecraft/server/level/ServerPlayer.java
@@ -232,6 +232,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
@@ -240,6 +240,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
private int lastSentFood = -99999999;
private boolean lastFoodSaturationZero = true;
public int lastSentExp = -99999999;
@@ -16,7 +16,7 @@ index 531b38be36cb2990cf5fbefbd58f917a0d84f0d3..3fc5a892555a737243fe887b5d5d6a54
private ChatVisiblity chatVisibility = ChatVisiblity.FULL;
public ParticleStatus particleStatus = ParticleStatus.ALL;
private boolean canChatColor = true;
@@ -752,6 +753,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
@@ -729,6 +730,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
this.resetOperationCountPerTick(); // Leaves - player operation limiter
this.gameMode.tick();
this.wardenSpawnTracker.tick();
@@ -24,7 +24,7 @@ index 531b38be36cb2990cf5fbefbd58f917a0d84f0d3..3fc5a892555a737243fe887b5d5d6a54
if (this.invulnerableTime > 0) {
this.invulnerableTime--;
}
@@ -1205,6 +1207,13 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
@@ -1312,6 +1314,13 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
if (this.isInvulnerableTo(level, damageSource)) {
return false;
} else {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Fast exp orb absorb
diff --git a/net/minecraft/world/entity/ExperienceOrb.java b/net/minecraft/world/entity/ExperienceOrb.java
index cfd9d63f55e73c1777055d13a802b29e151cc0d4..36e691f511c37b8af3f7fc58d9986fefdc3e1e5a 100644
index 8bd430c5c417c76db02cf1e2c0bc6f229ed150f1..a251d6f91af7f9427ae6e88c1f2d341c5157b88e 100644
--- a/net/minecraft/world/entity/ExperienceOrb.java
+++ b/net/minecraft/world/entity/ExperienceOrb.java
@@ -358,6 +358,20 @@ public class ExperienceOrb extends Entity {
@@ -13,7 +13,7 @@ index cfd9d63f55e73c1777055d13a802b29e151cc0d4..36e691f511c37b8af3f7fc58d9986fef
if (entity instanceof ServerPlayer serverPlayer) {
if (entity.takeXpDelay == 0 && new com.destroystokyo.paper.event.player.PlayerPickupExperienceEvent(serverPlayer.getBukkitEntity(), (org.bukkit.entity.ExperienceOrb) this.getBukkitEntity()).callEvent()) { // Paper - PlayerPickupExperienceEvent
+ if (org.leavesmc.leaves.LeavesConfig.modify.fastAbsorbPredicate.test(serverPlayer)) {
+ entity.takeXpDelay = org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerXpCooldownEvent(entity, 0, org.bukkit.event.player.PlayerExpCooldownChangeEvent.ChangeReason.PICKUP_ORB).getNewCooldown(); // CraftBukkit - entityhuman.takeXpDelay = 2;
+ entity.takeXpDelay = org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerXpCooldownEvent(entity, 0, org.bukkit.event.player.PlayerExpCooldownChangeEvent.ChangeReason.PICKUP_ORB).getNewCooldown(); // CraftBukkit - entity.takeXpDelay = 2;
+ while (this.count > 0) {
+ entity.take(this, 1);
+ int i = this.repairPlayerItems(serverPlayer, this.getValue());
@@ -26,6 +26,6 @@ index cfd9d63f55e73c1777055d13a802b29e151cc0d4..36e691f511c37b8af3f7fc58d9986fef
+ return;
+ }
+
entity.takeXpDelay = org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerXpCooldownEvent(entity, 2, org.bukkit.event.player.PlayerExpCooldownChangeEvent.ChangeReason.PICKUP_ORB).getNewCooldown(); // CraftBukkit - entityhuman.takeXpDelay = 2;
entity.takeXpDelay = org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerXpCooldownEvent(entity, 2, org.bukkit.event.player.PlayerExpCooldownChangeEvent.ChangeReason.PICKUP_ORB).getNewCooldown(); // CraftBukkit - entity.takeXpDelay = 2;
entity.take(this, 1);
int i = this.repairPlayerItems(serverPlayer, this.getValue());

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Vanilla Fluid Pushing
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
index c011fd65f5814c88cb3f6a4f62283efb9b6188ec..bea4089920191b5e3231e9792a078747923d0c14 100644
index ab558281d064cd3a776f7d7c1a021b0d727b22e1..2e44d125403cedf3b89b586ce20732f489dfe37d 100644
--- a/net/minecraft/world/entity/Entity.java
+++ b/net/minecraft/world/entity/Entity.java
@@ -4735,8 +4735,82 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -4799,8 +4799,82 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name
return Mth.lerp(partialTick, this.yRotO, this.yRot);
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Configurable item damage check
diff --git a/net/minecraft/world/item/ItemStack.java b/net/minecraft/world/item/ItemStack.java
index 31b5dd406de54636fd0b86e031ce247abbcde063..e59b8d42d602bbdae1071f2a5be1180420c4efb7 100644
index 13d5cb566f31ce0657b93c24c8e20a5ce3559fa4..fba077a5b6b9256dd117ae72c6aa0c63452a3eaa 100644
--- a/net/minecraft/world/item/ItemStack.java
+++ b/net/minecraft/world/item/ItemStack.java
@@ -597,11 +597,11 @@ public final class ItemStack implements DataComponentHolder {
@@ -598,11 +598,11 @@ public final class ItemStack implements DataComponentHolder {
}
public int getDamageValue() {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Old wet tnt explode behavior
diff --git a/net/minecraft/world/level/ServerExplosion.java b/net/minecraft/world/level/ServerExplosion.java
index 07e4025ca6c9c31905db2e6921138a0ded479dde..87635f6db2f1e77edc7ba6a26e9818d070a9faf7 100644
index 1c521f9f32340cf75310686c90777e521ac3ae5c..8b0341c060d9f61698f32dd05c360c303a443c9b 100644
--- a/net/minecraft/world/level/ServerExplosion.java
+++ b/net/minecraft/world/level/ServerExplosion.java
@@ -729,6 +729,7 @@ public class ServerExplosion implements Explosion {
@@ -719,6 +719,7 @@ public class ServerExplosion implements Explosion {
public boolean shouldAffectBlocklikeEntities() {
boolean _boolean = this.level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING);
boolean flag = this.source == null || this.source.getType() != EntityType.BREEZE_WIND_CHARGE && this.source.getType() != EntityType.WIND_CHARGE;

View File

@@ -5,15 +5,14 @@ Subject: [PATCH] Old projectile explosion behavior
diff --git a/net/minecraft/world/level/ServerExplosion.java b/net/minecraft/world/level/ServerExplosion.java
index 87635f6db2f1e77edc7ba6a26e9818d070a9faf7..b4a63faf11d4bf153d079aba5cfea7ed022891f7 100644
index 8b0341c060d9f61698f32dd05c360c303a443c9b..8447b824ad5b68c5af5507c3594cd74ffdc40e73 100644
--- a/net/minecraft/world/level/ServerExplosion.java
+++ b/net/minecraft/world/level/ServerExplosion.java
@@ -551,7 +551,7 @@ public class ServerExplosion implements Explosion {
// Paper end - knockback events
}
// CraftBukkit end
- entity.push(vec3);
+ if (org.leavesmc.leaves.LeavesConfig.modify.oldMC.oldProjectileExplosionBehavior) entity.setDeltaMovement(entity.getDeltaMovement().add(vec3)); else entity.push(vec3); // Leaves - old projectile explosion behavior
if (entity instanceof Player player && !player.isSpectator() && (!player.isCreative() || !player.getAbilities().flying) && !level.paperConfig().environment.disableExplosionKnockback) { // Paper - Option to disable explosion knockback
this.hitPlayers.put(player, vec3);
}
@@ -539,7 +539,7 @@ public class ServerExplosion implements Explosion {
}
// CraftBukkit end
- entity.push(vec32);
+ if (org.leavesmc.leaves.LeavesConfig.modify.oldMC.oldProjectileExplosionBehavior) entity.setDeltaMovement(entity.getDeltaMovement().add(vec32)); else entity.push(vec32); // Leaves - old projectile explosion behavior
if (entity.getType().is(EntityTypeTags.REDIRECTABLE_PROJECTILE) && entity instanceof Projectile projectile) {
projectile.setOwner(this.damageSource.getEntity());
} else if (entity instanceof Player player && !player.isSpectator() && (!player.isCreative() || !player.getAbilities().flying) && !level.paperConfig().environment.disableExplosionKnockback) { // Paper - Option to disable explosion knockback

View File

@@ -6,16 +6,20 @@ Subject: [PATCH] Prevent loss of item drops due to update suppression when
diff --git a/net/minecraft/server/level/ServerPlayerGameMode.java b/net/minecraft/server/level/ServerPlayerGameMode.java
index f258bc30014f94243ad832b33dcb6c9acd1f2f08..9a4eb1f8e01517707befa30b3ccacc7c84c0abe9 100644
index fc205e54941d40a5583129b0c6540950f97a6b49..78211633d733ce30fa69ec47cd884c1d6680df82 100644
--- a/net/minecraft/server/level/ServerPlayerGameMode.java
+++ b/net/minecraft/server/level/ServerPlayerGameMode.java
@@ -382,7 +382,18 @@ public class ServerPlayerGameMode {
@@ -402,11 +402,20 @@ public class ServerPlayerGameMode {
this.level.captureDrops = new java.util.ArrayList<>();
// CraftBukkit end
BlockState blockState1 = org.leavesmc.leaves.command.subcommands.BlockUpdateCommand.isNoBlockUpdate() ? blockState : block.playerWillDestroy(this.level, pos, blockState, this.player); // Leaves - no block update
- boolean flag = this.level.removeBlock(pos, false);
+ // Leaves start - Prevent loss of item drops due to update suppression when breaking blocks
+ boolean flag;
if (SharedConstants.DEBUG_BLOCK_BREAK) {
LOGGER.info("server broke {} {} -> {}", pos, blockState1, this.level.getBlockState(pos));
}
-
+ org.leavesmc.leaves.util.UpdateSuppressionException ex = null;
+ try {
+ flag = this.level.removeBlock(pos, false);
@@ -29,7 +33,7 @@ index f258bc30014f94243ad832b33dcb6c9acd1f2f08..9a4eb1f8e01517707befa30b3ccacc7c
if (flag) {
block.destroy(this.level, pos, blockState1);
}
@@ -410,6 +421,7 @@ public class ServerPlayerGameMode {
@@ -434,6 +443,7 @@ public class ServerPlayerGameMode {
if (event.isDropItems()) {
org.bukkit.craftbukkit.event.CraftEventFactory.handleBlockDropItemEvent(bblock, state, this.player, itemsToDrop); // Paper - capture all item additions to the world
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Fix block place desync due to update suppression
diff --git a/net/minecraft/world/item/ItemStack.java b/net/minecraft/world/item/ItemStack.java
index e59b8d42d602bbdae1071f2a5be1180420c4efb7..a63330b232dc41f0a5bb36bb94dfb84f01504699 100644
index fba077a5b6b9256dd117ae72c6aa0c63452a3eaa..33df00727e42ee0728dfb6a8c0816395fab5d4a9 100644
--- a/net/minecraft/world/item/ItemStack.java
+++ b/net/minecraft/world/item/ItemStack.java
@@ -389,8 +389,18 @@ public final class ItemStack implements DataComponentHolder {
@@ -390,8 +390,18 @@ public final class ItemStack implements DataComponentHolder {
}
}
InteractionResult interactionResult;
@@ -27,7 +27,7 @@ index e59b8d42d602bbdae1071f2a5be1180420c4efb7..a63330b232dc41f0a5bb36bb94dfb84f
} finally {
serverLevel.captureBlockStates = false;
}
@@ -537,6 +547,7 @@ public final class ItemStack implements DataComponentHolder {
@@ -538,6 +548,7 @@ public final class ItemStack implements DataComponentHolder {
serverLevel.capturedBlockStates.clear();
// CraftBukkit end

View File

@@ -32,10 +32,10 @@ index f6e18d62db18616a422ae74d6f329d1b3a96300b..eb34f3f9821f50f0a31fb22d9314c26b
return targets.size();
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
index bea4089920191b5e3231e9792a078747923d0c14..3b9bd49fa39e3b44a7cbf51072e7cf09b186f254 100644
index 2e44d125403cedf3b89b586ce20732f489dfe37d..7fff233c3aea5d5cf1084517f0040111d60fd054 100644
--- a/net/minecraft/world/entity/Entity.java
+++ b/net/minecraft/world/entity/Entity.java
@@ -2844,10 +2844,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -2891,10 +2891,7 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name
return null;
}
// CraftBukkit end
@@ -48,10 +48,10 @@ index bea4089920191b5e3231e9792a078747923d0c14..3b9bd49fa39e3b44a7cbf51072e7cf09
// Paper start - Call EntityDropItemEvent
return this.spawnAtLocation(level, itemEntity);
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
index 6b776ff621275e842c113000bd69528c96a598c3..0d493c8343057898166f94a4006a374a214ae7b2 100644
index 1c6f6046f1761fa4b551a73e742f66924553d79b..ea63284b60d05811d7666c12cce9a8996b78b354 100644
--- a/net/minecraft/world/entity/LivingEntity.java
+++ b/net/minecraft/world/entity/LivingEntity.java
@@ -3961,11 +3961,6 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
@@ -3988,11 +3988,6 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
return null;
} else {
double d = this.getEyeY() - 0.3F;

View File

@@ -26,19 +26,19 @@ This patch is Powered by CrystalCarpetAddition(https://github.com/Crystal0404/Cr
*/
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
index 3b9bd49fa39e3b44a7cbf51072e7cf09b186f254..6b56178967872923be58983ce8b14102ec0c3e14 100644
index 7fff233c3aea5d5cf1084517f0040111d60fd054..dc76b783d112cf1b835852f616c8de767cf02140 100644
--- a/net/minecraft/world/entity/Entity.java
+++ b/net/minecraft/world/entity/Entity.java
@@ -185,7 +185,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -187,7 +187,7 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name
// Paper end - Share random for entities to make them more random
public @Nullable org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason spawnReason; // Paper - Entity#getEntitySpawnReason
- private volatile @Nullable org.bukkit.craftbukkit.entity.CraftEntity bukkitEntity; // Paper - Folia schedulers - volatile
+ public volatile @Nullable org.bukkit.craftbukkit.entity.CraftEntity bukkitEntity; // Paper - Folia schedulers - volatile // Leaves - private -> public
public boolean collisionLoadChunks = false; // Paper
public org.bukkit.craftbukkit.entity.CraftEntity getBukkitEntity() {
@@ -3958,7 +3958,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
if (this.bukkitEntity == null) {
@@ -4024,7 +4024,7 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name
@Nullable
public Entity teleport(TeleportTransition teleportTransition) {
// Paper start - Fix item duplication and teleport issues
@@ -47,16 +47,16 @@ index 3b9bd49fa39e3b44a7cbf51072e7cf09b186f254..6b56178967872923be58983ce8b14102
LOGGER.warn("Illegal Entity Teleport {} to {}:{}", this, teleportTransition.newLevel(), teleportTransition.position(), new Throwable());
return null;
}
@@ -4074,7 +4074,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -4140,7 +4140,7 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name
// Paper end - Fix item duplication and teleport issues
entityx.restoreFrom(this);
this.removeAfterChangingDimensions();
entityx.teleportSetPosition(PositionMoveRotation.of(teleportTransition), teleportTransition.relatives());
- if (this.inWorld) newLevel.addDuringTeleport(entityx); // CraftBukkit - Don't spawn the new entity if the current entity isn't spawned
+ if (this.inWorld || (org.leavesmc.leaves.LeavesConfig.modify.oldMC.enderDragonPartCanUseEndPortal && this instanceof net.minecraft.world.entity.boss.EnderDragonPart)) newLevel.addDuringTeleport(entityx); // CraftBukkit - Don't spawn the new entity if the current entity isn't spawned // Leaves - endDragonPartCanUseEndPortal
- entityx.teleportSetPosition(PositionMoveRotation.of(this), PositionMoveRotation.of(teleportTransition), teleportTransition.relatives());
+ entityx.teleportSetPosition(PositionMoveRotation.of(teleportTransition), teleportTransition.relatives());
if (this.inWorld || (org.leavesmc.leaves.LeavesConfig.modify.oldMC.enderDragonPartCanUseEndPortal && this instanceof net.minecraft.world.entity.boss.EnderDragonPart)) newLevel.addDuringTeleport(entityx); // CraftBukkit - Don't spawn the new entity if the current entity isn't spawned // Leaves - endDragonPartCanUseEndPortal
for (Entity entity2 : list) {
entity2.startRiding(entityx, true);
@@ -4209,6 +4209,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -4283,6 +4283,7 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name
}
public boolean canTeleport(Level fromLevel, Level toLevel) {
@@ -65,11 +65,11 @@ index 3b9bd49fa39e3b44a7cbf51072e7cf09b186f254..6b56178967872923be58983ce8b14102
if (!this.isAlive() || !this.valid) return false; // Paper - Fix item duplication and teleport issues
if (fromLevel.dimension() == Level.END && toLevel.dimension() == Level.OVERWORLD) {
diff --git a/net/minecraft/world/entity/Mob.java b/net/minecraft/world/entity/Mob.java
index 3b73d52ea902bb1c8bd615c77444c57917f8b645..5cab5889446d7d48259300cec96da4a4811967e5 100644
index 09065cb08b3ee1aed8a20e4293ef7144cb473da9..7fbd90c335bd85edff8db2954f1aeb59dd2042d6 100644
--- a/net/minecraft/world/entity/Mob.java
+++ b/net/minecraft/world/entity/Mob.java
@@ -385,6 +385,16 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
if (!this.level().isClientSide && this.tickCount % 5 == 0) {
@@ -395,6 +395,16 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
if (!this.level().isClientSide() && this.tickCount % 5 == 0) {
this.updateControlFlags();
}
+ // Leaves start - ender dragon part can use end portal

View File

@@ -17,11 +17,11 @@ As part of: Lithium (https://github.com/CaffeineMC/lithium)
Licensed under: LGPL-3.0 (https://www.gnu.org/licenses/lgpl-3.0.html)
diff --git a/net/minecraft/core/NonNullList.java b/net/minecraft/core/NonNullList.java
index 7e31c5c8659d24948fd45a2d6ee7bdeca6027d27..387325b971b7cec6aeb677bf6c49b8bf21b3a344 100644
index 40b4222ecc5a87e374e561513eb25cd1aa39e33d..e8b9542294f9b227c8817bddbb28a4d08d19e48c 100644
--- a/net/minecraft/core/NonNullList.java
+++ b/net/minecraft/core/NonNullList.java
@@ -9,7 +9,7 @@ import javax.annotation.Nullable;
import org.apache.commons.lang3.Validate;
@@ -9,7 +9,7 @@ import javax.annotation.Nonnull;
import javax.annotation.Nullable;
public class NonNullList<E> extends AbstractList<E> {
- private final List<E> list;
@@ -30,7 +30,7 @@ index 7e31c5c8659d24948fd45a2d6ee7bdeca6027d27..387325b971b7cec6aeb677bf6c49b8bf
private final E defaultValue;
diff --git a/net/minecraft/core/component/PatchedDataComponentMap.java b/net/minecraft/core/component/PatchedDataComponentMap.java
index 3af6c1e2549ba3aeb60aa9d498a976be3680c0ee..1e7c7e242b5be6fdf52124864e1e284fd9542771 100644
index 766b6080160d87742ef4d8caa73b3b8fa52d5589..10c811e960fe8e68908a7216c78ddd196a2c60e2 100644
--- a/net/minecraft/core/component/PatchedDataComponentMap.java
+++ b/net/minecraft/core/component/PatchedDataComponentMap.java
@@ -14,7 +14,7 @@ import java.util.Map.Entry;
@@ -42,7 +42,7 @@ index 3af6c1e2549ba3aeb60aa9d498a976be3680c0ee..1e7c7e242b5be6fdf52124864e1e284f
private final DataComponentMap prototype;
private Reference2ObjectMap<DataComponentType<?>, Optional<?>> patch;
private boolean copyOnWrite;
@@ -135,6 +135,7 @@ public final class PatchedDataComponentMap implements DataComponentMap {
@@ -140,6 +140,7 @@ public final class PatchedDataComponentMap implements DataComponentMap {
}
private void ensureMapOwnership() {
@@ -50,7 +50,7 @@ index 3af6c1e2549ba3aeb60aa9d498a976be3680c0ee..1e7c7e242b5be6fdf52124864e1e284f
if (this.copyOnWrite) {
this.patch = new Reference2ObjectArrayMap<>(this.patch);
this.copyOnWrite = false;
@@ -238,4 +239,22 @@ public final class PatchedDataComponentMap implements DataComponentMap {
@@ -243,4 +244,22 @@ public final class PatchedDataComponentMap implements DataComponentMap {
public String toString() {
return "{" + this.stream().map(TypedDataComponent::toString).collect(Collectors.joining(", ")) + "}";
}
@@ -86,10 +86,10 @@ index 3092454bf7071deca75fecfc203072593fe5c7e7..c20e12726a020429f36b9fbe0d6da2af
}
}
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
index dcb1f6975b1cb18f38e0cf8a43d551f07836b12f..69dffeecbf0faa789bde3a93a44ff5e75db6f6b2 100644
index ed939c8110dcccab67ffdf8a4aa1e63751d87953..08515181573515577d4c5ce54624a747523358e3 100644
--- a/net/minecraft/server/level/ServerLevel.java
+++ b/net/minecraft/server/level/ServerLevel.java
@@ -2404,6 +2404,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -2473,6 +2473,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
for (TickingBlockEntity tickingBlockEntity : this.blockEntityTickers) {
BlockPos pos = tickingBlockEntity.getPos();
@@ -98,10 +98,10 @@ index dcb1f6975b1cb18f38e0cf8a43d551f07836b12f..69dffeecbf0faa789bde3a93a44ff5e7
}
}
diff --git a/net/minecraft/world/Container.java b/net/minecraft/world/Container.java
index 86cac164a2bf0e76528396e6aabbfd64cfc29559..da99b4bc7fe8460945070915073be141f9bd6778 100644
index 5493576c54e87823f68bbf8a18441b373aae0461..10d786ef9f29f1af1cb5088f5e054f19b97cdc13 100644
--- a/net/minecraft/world/Container.java
+++ b/net/minecraft/world/Container.java
@@ -11,7 +11,7 @@ import net.minecraft.world.item.ItemStack;
@@ -13,7 +13,7 @@ import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.entity.BlockEntity;
@@ -111,10 +111,10 @@ index 86cac164a2bf0e76528396e6aabbfd64cfc29559..da99b4bc7fe8460945070915073be141
int getContainerSize();
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
index b1b0e2b4deb5830660961cfff4669c4fd7037663..4748bd188f8860ed2a8b2e6123e020c1da17af5f 100644
index dc76b783d112cf1b835852f616c8de767cf02140..c26c7a74bf7903266c7341b5c303c5516afb35e9 100644
--- a/net/minecraft/world/entity/Entity.java
+++ b/net/minecraft/world/entity/Entity.java
@@ -309,7 +309,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -311,7 +311,7 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name
private static final EntityDataAccessor<Boolean> DATA_NO_GRAVITY = SynchedEntityData.defineId(Entity.class, EntityDataSerializers.BOOLEAN);
protected static final EntityDataAccessor<Pose> DATA_POSE = SynchedEntityData.defineId(Entity.class, EntityDataSerializers.POSE);
public static final EntityDataAccessor<Integer> DATA_TICKS_FROZEN = SynchedEntityData.defineId(Entity.class, EntityDataSerializers.INT);
@@ -123,7 +123,7 @@ index b1b0e2b4deb5830660961cfff4669c4fd7037663..4748bd188f8860ed2a8b2e6123e020c1
private final VecDeltaCodec packetPositionCodec = new VecDeltaCodec();
public boolean hasImpulse;
@Nullable
@@ -5150,6 +5150,19 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -5215,6 +5215,19 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name
this.setBoundingBox(this.makeBoundingBox());
}
// Paper end - Block invalid positions and bounding box
@@ -144,7 +144,7 @@ index b1b0e2b4deb5830660961cfff4669c4fd7037663..4748bd188f8860ed2a8b2e6123e020c1
public void checkDespawn() {
diff --git a/net/minecraft/world/entity/item/ItemEntity.java b/net/minecraft/world/entity/item/ItemEntity.java
index fc8d3e56771998a04d5e0b35ad7638a44def8c77..9b0625e2ee59659a68749bce5ac44bba8c038b0b 100644
index 4bd9b16ad73114c457eb5987adeb18231ec6eea7..f9a1ccee0c1e608fd5f48de466046fc4e6a7dfc7 100644
--- a/net/minecraft/world/entity/item/ItemEntity.java
+++ b/net/minecraft/world/entity/item/ItemEntity.java
@@ -34,8 +34,12 @@ import net.minecraft.world.level.portal.TeleportTransition;
@@ -161,7 +161,7 @@ index fc8d3e56771998a04d5e0b35ad7638a44def8c77..9b0625e2ee59659a68749bce5ac44bba
private static final EntityDataAccessor<ItemStack> DATA_ITEM = SynchedEntityData.defineId(ItemEntity.class, EntityDataSerializers.ITEM_STACK);
private static final float FLOAT_HEIGHT = 0.1F;
public static final float EYE_HEIGHT = 0.2125F;
@@ -535,6 +539,25 @@ public class ItemEntity extends Entity implements TraceableEntity {
@@ -526,6 +530,25 @@ public class ItemEntity extends Entity implements TraceableEntity {
}
public void setItem(ItemStack stack) {
@@ -187,7 +187,7 @@ index fc8d3e56771998a04d5e0b35ad7638a44def8c77..9b0625e2ee59659a68749bce5ac44bba
this.getEntityData().set(DATA_ITEM, stack);
this.despawnRate = this.level().paperConfig().entities.spawning.altItemDespawnRate.enabled ? this.level().paperConfig().entities.spawning.altItemDespawnRate.items.getOrDefault(stack.getItem(), this.level().spigotConfig.itemDespawnRate) : this.level().spigotConfig.itemDespawnRate; // Paper - Alternative item-despawn-rate
}
@@ -614,4 +637,76 @@ public class ItemEntity extends Entity implements TraceableEntity {
@@ -601,4 +624,76 @@ public class ItemEntity extends Entity implements TraceableEntity {
public SlotAccess getSlot(int slot) {
return slot == 0 ? SlotAccess.of(this::getItem, this::setItem) : super.getSlot(slot);
}
@@ -265,7 +265,7 @@ index fc8d3e56771998a04d5e0b35ad7638a44def8c77..9b0625e2ee59659a68749bce5ac44bba
+ // Leaves end - Lithium Sleeping Block Entity
}
diff --git a/net/minecraft/world/entity/vehicle/AbstractMinecartContainer.java b/net/minecraft/world/entity/vehicle/AbstractMinecartContainer.java
index 7781ca07a0c8fe1140f341b695e66de95802ee2e..f190e8f244d011bdb7f04ccf0f0a35cb9d2c684a 100644
index 991ae9f719e63cb77e692213d4a80f0486b86528..2754c4d13aaa62c6d6bdcc265898d0019c6e1026 100644
--- a/net/minecraft/world/entity/vehicle/AbstractMinecartContainer.java
+++ b/net/minecraft/world/entity/vehicle/AbstractMinecartContainer.java
@@ -21,7 +21,7 @@ import net.minecraft.world.level.storage.ValueOutput;
@@ -306,10 +306,10 @@ index 403afadbd2280325f1289e302a1ff409f8f0941c..029b8fcc951875c7bc845c507e4f7a91
ItemStack item = container.getItem(i);
if (!item.isEmpty()) {
diff --git a/net/minecraft/world/item/ItemStack.java b/net/minecraft/world/item/ItemStack.java
index a63330b232dc41f0a5bb36bb94dfb84f01504699..7fbce8302739ab016f1b64f8227c6d7286b85850 100644
index 33df00727e42ee0728dfb6a8c0816395fab5d4a9..2dea299ef9e78f9be6137506f163cc38fa70f748 100644
--- a/net/minecraft/world/item/ItemStack.java
+++ b/net/minecraft/world/item/ItemStack.java
@@ -93,8 +93,12 @@ import net.minecraft.world.level.block.state.pattern.BlockInWorld;
@@ -95,8 +95,12 @@ import net.minecraft.world.level.block.state.pattern.BlockInWorld;
import org.apache.commons.lang3.function.TriConsumer;
import org.apache.commons.lang3.mutable.MutableBoolean;
import org.slf4j.Logger;
@@ -323,7 +323,7 @@ index a63330b232dc41f0a5bb36bb94dfb84f01504699..7fbce8302739ab016f1b64f8227c6d72
private static final List<Component> OP_NBT_WARNING = List.of(
Component.translatable("item.op_warning.line1").withStyle(ChatFormatting.RED, ChatFormatting.BOLD),
Component.translatable("item.op_warning.line2").withStyle(ChatFormatting.RED),
@@ -978,6 +982,7 @@ public final class ItemStack implements DataComponentHolder {
@@ -979,6 +983,7 @@ public final class ItemStack implements DataComponentHolder {
@Nullable
public <T> T set(DataComponentType<T> component, @Nullable T value) {
@@ -331,7 +331,7 @@ index a63330b232dc41f0a5bb36bb94dfb84f01504699..7fbce8302739ab016f1b64f8227c6d72
return this.components.set(component, value);
}
@@ -1322,6 +1327,23 @@ public final class ItemStack implements DataComponentHolder {
@@ -1326,6 +1331,23 @@ public final class ItemStack implements DataComponentHolder {
}
public void setCount(int count) {
@@ -355,7 +355,7 @@ index a63330b232dc41f0a5bb36bb94dfb84f01504699..7fbce8302739ab016f1b64f8227c6d72
this.count = count;
}
@@ -1377,4 +1399,90 @@ public final class ItemStack implements DataComponentHolder {
@@ -1381,4 +1403,90 @@ public final class ItemStack implements DataComponentHolder {
public boolean canDestroyBlock(BlockState state, Level level, BlockPos pos, Player player) {
return this.getItem().canDestroyBlock(this, state, level, pos, player);
}
@@ -447,10 +447,10 @@ index a63330b232dc41f0a5bb36bb94dfb84f01504699..7fbce8302739ab016f1b64f8227c6d72
+ // Leaves end - Lithium Sleeping Block Entity
}
diff --git a/net/minecraft/world/level/Level.java b/net/minecraft/world/level/Level.java
index f31a48530e965f01507c335f50d898ed72767e3c..e5b12f0be3c21b14b1fd8a33b20a9292e3b7b8df 100644
index 06c90d5aa8e308f8931b5477e03ac94e3cfbe108..8133694148449924ab7c9d595a2e1f7213b0b000 100644
--- a/net/minecraft/world/level/Level.java
+++ b/net/minecraft/world/level/Level.java
@@ -1224,6 +1224,7 @@ public abstract class Level implements LevelAccessor, UUIDLookup<Entity>, AutoCl
@@ -1177,6 +1177,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl
int i = flags & -34;
// Leaves start - no block update
if (org.leavesmc.leaves.command.subcommands.BlockUpdateCommand.isNoBlockUpdate()) {
@@ -458,7 +458,7 @@ index f31a48530e965f01507c335f50d898ed72767e3c..e5b12f0be3c21b14b1fd8a33b20a9292
this.updatePOIOnBlockStateChange(pos, blockState, blockState1);
return;
}
@@ -1487,7 +1488,7 @@ public abstract class Level implements LevelAccessor, UUIDLookup<Entity>, AutoCl
@@ -1438,7 +1439,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl
// Spigot end
if (tickingBlockEntity.isRemoved()) {
toRemove.add(tickingBlockEntity); // Paper - Fix MC-117075; use removeAll
@@ -467,7 +467,7 @@ index f31a48530e965f01507c335f50d898ed72767e3c..e5b12f0be3c21b14b1fd8a33b20a9292
tickingBlockEntity.tick();
// Paper start - rewrite chunk system
if ((++tickedEntities & 7) == 0) {
@@ -2149,4 +2150,25 @@ public abstract class Level implements LevelAccessor, UUIDLookup<Entity>, AutoCl
@@ -2137,4 +2138,25 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl
return this.id;
}
}
@@ -494,7 +494,7 @@ index f31a48530e965f01507c335f50d898ed72767e3c..e5b12f0be3c21b14b1fd8a33b20a9292
+ // Leaves end - Lithium Sleeping Block Entity
}
diff --git a/net/minecraft/world/level/block/ComposterBlock.java b/net/minecraft/world/level/block/ComposterBlock.java
index a647d76d365a60b95a3eb7927ac426bf70d417f3..c84c8e7080cd71d19fab3dbc34ae3e83cd1fc132 100644
index 5d434ebe7bb7cfea02d1a7dc05825ff59eac23d1..8a098c1c308a5988257415f2f8dc6fe9da55d043 100644
--- a/net/minecraft/world/level/block/ComposterBlock.java
+++ b/net/minecraft/world/level/block/ComposterBlock.java
@@ -411,7 +411,7 @@ public class ComposterBlock extends Block implements WorldlyContainerHolder {
@@ -543,7 +543,7 @@ index 94d35e4812705771756a0ee1a9b0255be75e3770..f2e19b6e89195fa99a2eca7f1c647e94
// Leaves start - behaviour 1.21.1-
diff --git a/net/minecraft/world/level/block/HopperBlock.java b/net/minecraft/world/level/block/HopperBlock.java
index d3535a9dc462d92a306aea981d7799d8d975f59d..47377bc98eb183c2761c710575a7d811261f02e0 100644
index 5c7638fed052d68023646b86d5f4bb5b3510b390..a646628fb486056ea631f22f54c0325935741466 100644
--- a/net/minecraft/world/level/block/HopperBlock.java
+++ b/net/minecraft/world/level/block/HopperBlock.java
@@ -38,7 +38,7 @@ import net.minecraft.world.phys.shapes.CollisionContext;
@@ -691,10 +691,10 @@ index 646d4c26870bb03f6d397b5e03ad97923d0928b2..77cfc97b3c8926b8126076f41c801c41
+ // Leaves end - Lithium Sleeping Block Entity
}
diff --git a/net/minecraft/world/level/block/entity/BarrelBlockEntity.java b/net/minecraft/world/level/block/entity/BarrelBlockEntity.java
index f0ba09c0edc598dfc4e501ba69016e8a2f8d3a7c..2bb30d6c5ca56b47d685e1e095dbeb046720cd04 100644
index e265dbe8f84f80314f3e19c3724fff24929e3a13..50df79fff61ea34c6da11467db62572c6c1f8e8f 100644
--- a/net/minecraft/world/level/block/entity/BarrelBlockEntity.java
+++ b/net/minecraft/world/level/block/entity/BarrelBlockEntity.java
@@ -20,7 +20,7 @@ import net.minecraft.world.level.block.state.BlockState;
@@ -22,7 +22,7 @@ import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.storage.ValueInput;
import net.minecraft.world.level.storage.ValueOutput;
@@ -703,7 +703,7 @@ index f0ba09c0edc598dfc4e501ba69016e8a2f8d3a7c..2bb30d6c5ca56b47d685e1e095dbeb04
// CraftBukkit start - add fields and methods
public java.util.List<org.bukkit.entity.HumanEntity> transaction = new java.util.ArrayList<>();
private int maxStack = MAX_STACK;
@@ -119,6 +119,7 @@ public class BarrelBlockEntity extends RandomizableContainerBlockEntity {
@@ -121,6 +121,7 @@ public class BarrelBlockEntity extends RandomizableContainerBlockEntity {
@Override
protected void setItems(NonNullList<ItemStack> items) {
this.items = items;
@@ -711,7 +711,7 @@ index f0ba09c0edc598dfc4e501ba69016e8a2f8d3a7c..2bb30d6c5ca56b47d685e1e095dbeb04
}
// Leaves start - pca
@@ -172,4 +173,18 @@ public class BarrelBlockEntity extends RandomizableContainerBlockEntity {
@@ -180,4 +181,18 @@ public class BarrelBlockEntity extends RandomizableContainerBlockEntity {
double d2 = this.worldPosition.getZ() + 0.5 + unitVec3i.getZ() / 2.0;
this.level.playSound(null, d, d1, d2, sound, SoundSource.BLOCKS, 0.5F, this.level.random.nextFloat() * 0.1F + 0.9F);
}
@@ -731,7 +731,7 @@ index f0ba09c0edc598dfc4e501ba69016e8a2f8d3a7c..2bb30d6c5ca56b47d685e1e095dbeb04
+ // Leaves end - Lithium Sleeping Block Entity
}
diff --git a/net/minecraft/world/level/block/entity/BaseContainerBlockEntity.java b/net/minecraft/world/level/block/entity/BaseContainerBlockEntity.java
index 561acadcf81dc219d88e8ec8bdbd4f5f8fcbadc3..bfa6b473d44a5494fcbcc03a690db6292ee67320 100644
index 1e6819928ffab524197003bd9469adb3976dce3a..cb9b653af455847312e4298b1acd2c7952f9c407 100644
--- a/net/minecraft/world/level/block/entity/BaseContainerBlockEntity.java
+++ b/net/minecraft/world/level/block/entity/BaseContainerBlockEntity.java
@@ -23,8 +23,17 @@ import net.minecraft.world.item.component.ItemContainerContents;
@@ -761,7 +761,7 @@ index 561acadcf81dc219d88e8ec8bdbd4f5f8fcbadc3..bfa6b473d44a5494fcbcc03a690db629
}
@Override
@@ -206,4 +216,97 @@ public abstract class BaseContainerBlockEntity extends BlockEntity implements Co
@@ -210,4 +220,97 @@ public abstract class BaseContainerBlockEntity extends BlockEntity implements Co
return org.bukkit.craftbukkit.util.CraftLocation.toBukkit(this.worldPosition, this.level);
}
// CraftBukkit end
@@ -860,15 +860,15 @@ index 561acadcf81dc219d88e8ec8bdbd4f5f8fcbadc3..bfa6b473d44a5494fcbcc03a690db629
+ }
}
diff --git a/net/minecraft/world/level/block/entity/BlockEntity.java b/net/minecraft/world/level/block/entity/BlockEntity.java
index 5986825d6a381eeb445dd424dd127864aa703163..99c394aa6c7dce90d4fb4687772b1117e8e4d7a6 100644
index 39691f6ff8dc08c7d4ebff0612cb9777d809c6ed..ae23afeb3e4059db8ad829e9d276ef8942ef8a59 100644
--- a/net/minecraft/world/level/block/entity/BlockEntity.java
+++ b/net/minecraft/world/level/block/entity/BlockEntity.java
@@ -33,8 +33,16 @@ import net.minecraft.world.level.storage.TagValueOutput;
@@ -35,8 +35,16 @@ import net.minecraft.world.level.storage.TagValueOutput;
import net.minecraft.world.level.storage.ValueInput;
import net.minecraft.world.level.storage.ValueOutput;
import org.slf4j.Logger;
-
-public abstract class BlockEntity {
-public abstract class BlockEntity implements DebugValueSource {
+// Leaves start - Lithium Sleeping Block Entity
+import net.minecraft.core.Direction;
+import org.leavesmc.leaves.lithium.common.block.entity.inventory_comparator_tracking.ComparatorTracker;
@@ -878,11 +878,11 @@ index 5986825d6a381eeb445dd424dd127864aa703163..99c394aa6c7dce90d4fb4687772b1117
+import org.leavesmc.leaves.lithium.common.block.entity.SetChangedHandlingBlockEntity;
+// Leaves end - Lithium Sleeping Block Entity
+
+public abstract class BlockEntity implements ComparatorTracker, SetBlockStateHandlingBlockEntity, SetChangedHandlingBlockEntity { // Leaves - Lithium Sleeping Block Entity
+public abstract class BlockEntity implements DebugValueSource, ComparatorTracker, SetBlockStateHandlingBlockEntity, SetChangedHandlingBlockEntity { // Leaves - Lithium Sleeping Block Entity
static boolean ignoreBlockEntityUpdates; // Paper - Perf: Optimize Hoppers
// CraftBukkit start - data containers
private static final org.bukkit.craftbukkit.persistence.CraftPersistentDataTypeRegistry DATA_TYPE_REGISTRY = new org.bukkit.craftbukkit.persistence.CraftPersistentDataTypeRegistry();
@@ -56,6 +64,7 @@ public abstract class BlockEntity {
@@ -58,6 +66,7 @@ public abstract class BlockEntity implements DebugValueSource {
this.validateBlockState(blockState);
this.blockState = blockState;
this.persistentDataContainer = new org.bukkit.craftbukkit.persistence.CraftPersistentDataContainer(DATA_TYPE_REGISTRY); // Paper - always init
@@ -890,7 +890,7 @@ index 5986825d6a381eeb445dd424dd127864aa703163..99c394aa6c7dce90d4fb4687772b1117
}
private void validateBlockState(BlockState state) {
@@ -230,6 +239,7 @@ public abstract class BlockEntity {
@@ -232,6 +241,7 @@ public abstract class BlockEntity implements DebugValueSource {
if (this.level != null) {
if (ignoreBlockEntityUpdates) return; // Paper - Perf: Optimize Hoppers
setChanged(this.level, this.worldPosition, this.blockState);
@@ -898,7 +898,7 @@ index 5986825d6a381eeb445dd424dd127864aa703163..99c394aa6c7dce90d4fb4687772b1117
}
}
@@ -262,7 +272,9 @@ public abstract class BlockEntity {
@@ -264,7 +274,9 @@ public abstract class BlockEntity implements DebugValueSource {
}
public void setRemoved() {
@@ -908,7 +908,7 @@ index 5986825d6a381eeb445dd424dd127864aa703163..99c394aa6c7dce90d4fb4687772b1117
}
public void clearRemoved() {
@@ -302,6 +314,7 @@ public abstract class BlockEntity {
@@ -304,6 +316,7 @@ public abstract class BlockEntity implements DebugValueSource {
public void setBlockState(BlockState blockState) {
this.validateBlockState(blockState);
this.blockState = blockState;
@@ -916,7 +916,7 @@ index 5986825d6a381eeb445dd424dd127864aa703163..99c394aa6c7dce90d4fb4687772b1117
}
protected void applyImplicitComponents(DataComponentGetter componentGetter) {
@@ -402,4 +415,32 @@ public abstract class BlockEntity {
@@ -408,4 +421,32 @@ public abstract class BlockEntity implements DebugValueSource {
return this.blockEntity.getNameForReporting() + "@" + this.blockEntity.getBlockPos();
}
}
@@ -950,7 +950,7 @@ index 5986825d6a381eeb445dd424dd127864aa703163..99c394aa6c7dce90d4fb4687772b1117
+ // Leaves end - Lithium Sleeping Block Entity
}
diff --git a/net/minecraft/world/level/block/entity/BrewingStandBlockEntity.java b/net/minecraft/world/level/block/entity/BrewingStandBlockEntity.java
index 7eac2188a38fff2ecfa4082b5d023b111cf7d8f6..0a6d8b7cec4916496f76f0ef101263d9e693b1c5 100644
index 6124a10814c1122ea1685646541395b452e9d4b3..dee84b63df0a077dd90c8c432b1d311489185b1e 100644
--- a/net/minecraft/world/level/block/entity/BrewingStandBlockEntity.java
+++ b/net/minecraft/world/level/block/entity/BrewingStandBlockEntity.java
@@ -24,7 +24,7 @@ import net.minecraft.world.level.block.state.BlockState;
@@ -962,7 +962,7 @@ index 7eac2188a38fff2ecfa4082b5d023b111cf7d8f6..0a6d8b7cec4916496f76f0ef101263d9
private static final int INGREDIENT_SLOT = 3;
private static final int FUEL_SLOT = 4;
private static final int[] SLOTS_FOR_UP = new int[]{3};
@@ -135,6 +135,7 @@ public class BrewingStandBlockEntity extends BaseContainerBlockEntity implements
@@ -136,6 +136,7 @@ public class BrewingStandBlockEntity extends BaseContainerBlockEntity implements
}
public static void serverTick(Level level, BlockPos pos, BlockState state, BrewingStandBlockEntity blockEntity) {
@@ -970,7 +970,7 @@ index 7eac2188a38fff2ecfa4082b5d023b111cf7d8f6..0a6d8b7cec4916496f76f0ef101263d9
ItemStack itemStack = blockEntity.items.get(4);
if (blockEntity.fuel <= 0 && itemStack.is(ItemTags.BREWING_FUEL)) {
// CraftBukkit start
@@ -152,6 +153,7 @@ public class BrewingStandBlockEntity extends BaseContainerBlockEntity implements
@@ -153,6 +154,7 @@ public class BrewingStandBlockEntity extends BaseContainerBlockEntity implements
itemStack.shrink(1);
}
// CraftBukkit end
@@ -978,7 +978,7 @@ index 7eac2188a38fff2ecfa4082b5d023b111cf7d8f6..0a6d8b7cec4916496f76f0ef101263d9
setChanged(level, pos, state);
}
@@ -166,7 +168,7 @@ public class BrewingStandBlockEntity extends BaseContainerBlockEntity implements
@@ -167,7 +169,7 @@ public class BrewingStandBlockEntity extends BaseContainerBlockEntity implements
} else if (!isBrewable || !itemStack1.is(blockEntity.ingredient)) {
blockEntity.brewTime = 0;
}
@@ -987,7 +987,7 @@ index 7eac2188a38fff2ecfa4082b5d023b111cf7d8f6..0a6d8b7cec4916496f76f0ef101263d9
setChanged(level, pos, state);
} else if (isBrewable && blockEntity.fuel > 0) {
blockEntity.fuel--;
@@ -179,6 +181,7 @@ public class BrewingStandBlockEntity extends BaseContainerBlockEntity implements
@@ -180,6 +182,7 @@ public class BrewingStandBlockEntity extends BaseContainerBlockEntity implements
blockEntity.brewTime = event.getBrewingTime(); // 400 -> event.getTotalBrewTime() // Paper - use brewing time from event
// CraftBukkit end
blockEntity.ingredient = itemStack1.getItem();
@@ -995,7 +995,7 @@ index 7eac2188a38fff2ecfa4082b5d023b111cf7d8f6..0a6d8b7cec4916496f76f0ef101263d9
setChanged(level, pos, state);
}
@@ -285,6 +288,7 @@ public class BrewingStandBlockEntity extends BaseContainerBlockEntity implements
@@ -286,6 +289,7 @@ public class BrewingStandBlockEntity extends BaseContainerBlockEntity implements
}
this.fuel = input.getByteOr("Fuel", (byte)0);
@@ -1003,7 +1003,7 @@ index 7eac2188a38fff2ecfa4082b5d023b111cf7d8f6..0a6d8b7cec4916496f76f0ef101263d9
}
@Override
@@ -341,4 +345,52 @@ public class BrewingStandBlockEntity extends BaseContainerBlockEntity implements
@@ -342,4 +346,52 @@ public class BrewingStandBlockEntity extends BaseContainerBlockEntity implements
}
}
// Leaves end - pca
@@ -1135,19 +1135,19 @@ index fb7932e17d7d00ee3050e71c88510fa23befb1bb..6e3cfa4bb776299be4faf48fe165f512
+ // Leaves end - Lithium Sleeping Block Entity
}
diff --git a/net/minecraft/world/level/block/entity/ChestBlockEntity.java b/net/minecraft/world/level/block/entity/ChestBlockEntity.java
index 784e146b28370dc2dac094d5f2ac654a5bc47e01..b1c851771e03a70d9c6a87173e81d6dd2e43f057 100644
index 8a6593f99525bc3375d8c4a263f2fd12635ca7c5..da8fc115f9285f69aa01ea3ae479de52c2645116 100644
--- a/net/minecraft/world/level/block/entity/ChestBlockEntity.java
+++ b/net/minecraft/world/level/block/entity/ChestBlockEntity.java
@@ -24,7 +24,7 @@ import net.minecraft.world.level.block.state.properties.ChestType;
@@ -25,7 +25,7 @@ import net.minecraft.world.level.block.state.properties.ChestType;
import net.minecraft.world.level.storage.ValueInput;
import net.minecraft.world.level.storage.ValueOutput;
-public class ChestBlockEntity extends RandomizableContainerBlockEntity implements LidBlockEntity {
+public class ChestBlockEntity extends RandomizableContainerBlockEntity implements LidBlockEntity, org.leavesmc.leaves.lithium.common.block.entity.inventory_change_tracking.InventoryChangeTracker, org.leavesmc.leaves.lithium.common.block.entity.inventory_change_tracking.InventoryChangeEmitter, org.leavesmc.leaves.lithium.common.block.entity.SetBlockStateHandlingBlockEntity, org.leavesmc.leaves.lithium.common.block.entity.SleepingBlockEntity, org.leavesmc.leaves.lithium.api.inventory.LithiumInventory { // Leaves - Lithium Sleeping Block Entity
private static final int EVENT_SET_OPEN_COUNT = 1;
public static final Component DEFAULT_NAME = Component.translatable("container.chest");
private NonNullList<ItemStack> items = NonNullList.withSize(27, ItemStack.EMPTY);
public final ContainerOpenersCounter openersCounter = new ContainerOpenersCounter() {
@@ -127,6 +127,7 @@ public class ChestBlockEntity extends RandomizableContainerBlockEntity implement
@@ -133,6 +133,7 @@ public class ChestBlockEntity extends RandomizableContainerBlockEntity implement
public static void lidAnimateTick(Level level, BlockPos pos, BlockState state, ChestBlockEntity blockEntity) {
blockEntity.chestLidController.tickLid();
@@ -1155,7 +1155,7 @@ index 784e146b28370dc2dac094d5f2ac654a5bc47e01..b1c851771e03a70d9c6a87173e81d6dd
}
public static void playSound(Level level, BlockPos pos, BlockState state, SoundEvent sound) {
@@ -148,6 +149,7 @@ public class ChestBlockEntity extends RandomizableContainerBlockEntity implement
@@ -154,6 +155,7 @@ public class ChestBlockEntity extends RandomizableContainerBlockEntity implement
@Override
public boolean triggerEvent(int id, int type) {
if (id == 1) {
@@ -1163,7 +1163,7 @@ index 784e146b28370dc2dac094d5f2ac654a5bc47e01..b1c851771e03a70d9c6a87173e81d6dd
this.chestLidController.shouldBeOpen(type > 0);
return true;
} else {
@@ -177,6 +179,7 @@ public class ChestBlockEntity extends RandomizableContainerBlockEntity implement
@@ -189,6 +191,7 @@ public class ChestBlockEntity extends RandomizableContainerBlockEntity implement
@Override
protected void setItems(NonNullList<ItemStack> items) {
this.items = items;
@@ -1171,7 +1171,7 @@ index 784e146b28370dc2dac094d5f2ac654a5bc47e01..b1c851771e03a70d9c6a87173e81d6dd
}
@Override
@@ -227,4 +230,52 @@ public class ChestBlockEntity extends RandomizableContainerBlockEntity implement
@@ -239,4 +242,52 @@ public class ChestBlockEntity extends RandomizableContainerBlockEntity implement
Block block = state.getBlock();
level.blockEvent(pos, block, 1, eventParam);
}
@@ -1225,19 +1225,19 @@ index 784e146b28370dc2dac094d5f2ac654a5bc47e01..b1c851771e03a70d9c6a87173e81d6dd
+ // Leaves end - Lithium Sleeping Block Entity
}
diff --git a/net/minecraft/world/level/block/entity/ChiseledBookShelfBlockEntity.java b/net/minecraft/world/level/block/entity/ChiseledBookShelfBlockEntity.java
index 969ac280ae563e3412dba406ba68ceaa8a75d519..b7e804676c39a26174758c9491f2ef4209b51f2e 100644
index 6b05556a84ae6a8f08025439db29db207325bb7a..f02904e9be89dd4e6ee416d0d383b71822bfccfd 100644
--- a/net/minecraft/world/level/block/entity/ChiseledBookShelfBlockEntity.java
+++ b/net/minecraft/world/level/block/entity/ChiseledBookShelfBlockEntity.java
@@ -22,7 +22,7 @@ import net.minecraft.world.level.storage.ValueInput;
@@ -21,7 +21,7 @@ import net.minecraft.world.level.storage.ValueInput;
import net.minecraft.world.level.storage.ValueOutput;
import org.slf4j.Logger;
-public class ChiseledBookShelfBlockEntity extends BlockEntity implements Container {
+public class ChiseledBookShelfBlockEntity extends BlockEntity implements Container, org.leavesmc.leaves.lithium.api.inventory.LithiumTransferConditionInventory { // Leaves - Lithium Sleeping Block Entity
-public class ChiseledBookShelfBlockEntity extends BlockEntity implements ListBackedContainer {
+public class ChiseledBookShelfBlockEntity extends BlockEntity implements ListBackedContainer, org.leavesmc.leaves.lithium.api.inventory.LithiumTransferConditionInventory { // Leaves - Lithium Sleeping Block Entity
public static final int MAX_BOOKS_IN_STORAGE = 6;
private static final Logger LOGGER = LogUtils.getLogger();
private static final int DEFAULT_LAST_INTERACTED_SLOT = -1;
@@ -195,4 +195,6 @@ public class ChiseledBookShelfBlockEntity extends BlockEntity implements Contain
@@ -170,4 +170,6 @@ public class ChiseledBookShelfBlockEntity extends BlockEntity implements ListBac
public void removeComponentsFromTag(ValueOutput output) {
output.discard("Items");
}
@@ -1245,7 +1245,7 @@ index 969ac280ae563e3412dba406ba68ceaa8a75d519..b7e804676c39a26174758c9491f2ef42
+ @Override public boolean lithium$itemInsertionTestRequiresStackSize1() {return true;} // Leaves - Lithium Sleeping Block Entity
}
diff --git a/net/minecraft/world/level/block/entity/CrafterBlockEntity.java b/net/minecraft/world/level/block/entity/CrafterBlockEntity.java
index 9ce4b5a3954eda08ef587cf95dec8ed119b7a598..46939269cfb7491fdf0be7ac74a78df5476637e8 100644
index a631ad830d4820fbf983ef321b40f3192db4527f..6ecb54cbd7d57a9198e8b1273ee0cebb373a005d 100644
--- a/net/minecraft/world/level/block/entity/CrafterBlockEntity.java
+++ b/net/minecraft/world/level/block/entity/CrafterBlockEntity.java
@@ -22,7 +22,7 @@ import net.minecraft.world.level.block.state.BlockState;
@@ -1257,7 +1257,7 @@ index 9ce4b5a3954eda08ef587cf95dec8ed119b7a598..46939269cfb7491fdf0be7ac74a78df5
public static final int CONTAINER_WIDTH = 3;
public static final int CONTAINER_HEIGHT = 3;
public static final int CONTAINER_SIZE = 9;
@@ -169,6 +169,7 @@ public class CrafterBlockEntity extends RandomizableContainerBlockEntity impleme
@@ -170,6 +170,7 @@ public class CrafterBlockEntity extends RandomizableContainerBlockEntity impleme
}
});
this.containerData.set(9, input.getIntOr("triggered", 0));
@@ -1265,7 +1265,7 @@ index 9ce4b5a3954eda08ef587cf95dec8ed119b7a598..46939269cfb7491fdf0be7ac74a78df5
}
@Override
@@ -278,10 +279,12 @@ public class CrafterBlockEntity extends RandomizableContainerBlockEntity impleme
@@ -279,10 +280,12 @@ public class CrafterBlockEntity extends RandomizableContainerBlockEntity impleme
level.setBlock(pos, state.setValue(CrafterBlock.CRAFTING, false), 3);
}
}
@@ -1278,7 +1278,7 @@ index 9ce4b5a3954eda08ef587cf95dec8ed119b7a598..46939269cfb7491fdf0be7ac74a78df5
}
public int getRedstoneSignal() {
@@ -300,4 +303,43 @@ public class CrafterBlockEntity extends RandomizableContainerBlockEntity impleme
@@ -301,4 +304,43 @@ public class CrafterBlockEntity extends RandomizableContainerBlockEntity impleme
private boolean slotCanBeDisabled(int slot) {
return slot > -1 && slot < 9 && this.items.get(slot).isEmpty();
}
@@ -1323,7 +1323,7 @@ index 9ce4b5a3954eda08ef587cf95dec8ed119b7a598..46939269cfb7491fdf0be7ac74a78df5
+ // Leaves end - Lithium Sleeping Block Entity
}
diff --git a/net/minecraft/world/level/block/entity/DispenserBlockEntity.java b/net/minecraft/world/level/block/entity/DispenserBlockEntity.java
index 36b9362e1ce31b63c100ec65921e095fb7871e82..fb5a7af71fee8d680eb739f45e58ec53cfc2839f 100644
index 2fbfe925c81126cb99a4330a232d7d1b1f035973..36445dbf5e4691ce32ef996d32fbb228226a1f87 100644
--- a/net/minecraft/world/level/block/entity/DispenserBlockEntity.java
+++ b/net/minecraft/world/level/block/entity/DispenserBlockEntity.java
@@ -13,7 +13,7 @@ import net.minecraft.world.level.block.state.BlockState;
@@ -1333,9 +1333,9 @@ index 36b9362e1ce31b63c100ec65921e095fb7871e82..fb5a7af71fee8d680eb739f45e58ec53
-public class DispenserBlockEntity extends RandomizableContainerBlockEntity {
+public class DispenserBlockEntity extends RandomizableContainerBlockEntity implements org.leavesmc.leaves.lithium.common.block.entity.inventory_change_tracking.InventoryChangeTracker, org.leavesmc.leaves.lithium.api.inventory.LithiumInventory { // Leaves - Lithium Sleeping Block Entity
public static final int CONTAINER_SIZE = 9;
private static final Component DEFAULT_NAME = Component.translatable("container.dispenser");
private NonNullList<ItemStack> items = NonNullList.withSize(9, ItemStack.EMPTY);
@@ -144,10 +144,23 @@ public class DispenserBlockEntity extends RandomizableContainerBlockEntity {
@@ -145,10 +145,23 @@ public class DispenserBlockEntity extends RandomizableContainerBlockEntity {
@Override
protected void setItems(NonNullList<ItemStack> items) {
this.items = items;
@@ -1360,10 +1360,10 @@ index 36b9362e1ce31b63c100ec65921e095fb7871e82..fb5a7af71fee8d680eb739f45e58ec53
+ // Leaves end - Lithium Sleeping Block Entity
}
diff --git a/net/minecraft/world/level/block/entity/EnderChestBlockEntity.java b/net/minecraft/world/level/block/entity/EnderChestBlockEntity.java
index 363d85c96bd3fb1a1945595df36e30bd6dd2fa4e..542910b3d5faa85f2b14022932c058bcd1d8d904 100644
index e5cbc9f6d7989e993da566f5f9c239a3fe8c7e8b..8fa445445790543fe6eef16ac6195c29909b98be 100644
--- a/net/minecraft/world/level/block/entity/EnderChestBlockEntity.java
+++ b/net/minecraft/world/level/block/entity/EnderChestBlockEntity.java
@@ -9,7 +9,7 @@ import net.minecraft.world.level.Level;
@@ -10,7 +10,7 @@ import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.block.state.BlockState;
@@ -1372,7 +1372,7 @@ index 363d85c96bd3fb1a1945595df36e30bd6dd2fa4e..542910b3d5faa85f2b14022932c058bc
private final ChestLidController chestLidController = new ChestLidController();
public final ContainerOpenersCounter openersCounter = new ContainerOpenersCounter() {
@Override
@@ -57,11 +57,13 @@ public class EnderChestBlockEntity extends BlockEntity implements LidBlockEntity
@@ -58,11 +58,13 @@ public class EnderChestBlockEntity extends BlockEntity implements LidBlockEntity
public static void lidAnimateTick(Level level, BlockPos pos, BlockState state, EnderChestBlockEntity blockEntity) {
blockEntity.chestLidController.tickLid();
@@ -1386,7 +1386,7 @@ index 363d85c96bd3fb1a1945595df36e30bd6dd2fa4e..542910b3d5faa85f2b14022932c058bc
this.chestLidController.shouldBeOpen(type > 0);
return true;
} else {
@@ -95,4 +97,36 @@ public class EnderChestBlockEntity extends BlockEntity implements LidBlockEntity
@@ -97,4 +99,36 @@ public class EnderChestBlockEntity extends BlockEntity implements LidBlockEntity
public float getOpenNess(float partialTicks) {
return this.chestLidController.getOpenness(partialTicks);
}
@@ -1424,7 +1424,7 @@ index 363d85c96bd3fb1a1945595df36e30bd6dd2fa4e..542910b3d5faa85f2b14022932c058bc
+ // Leaves end - Lithium Sleeping Block Entity
}
diff --git a/net/minecraft/world/level/block/entity/HopperBlockEntity.java b/net/minecraft/world/level/block/entity/HopperBlockEntity.java
index d3e1a968fdbba65a388a67d0d578876188f5dc12..d9d3fe8fcf2949a4e82d88ff3936afee184a7948 100644
index 83a8dc51d0346fb5b28922e7b54d5ee58b315228..b67a1cacad31a93276988560ef03879a43c15aff 100644
--- a/net/minecraft/world/level/block/entity/HopperBlockEntity.java
+++ b/net/minecraft/world/level/block/entity/HopperBlockEntity.java
@@ -27,8 +27,29 @@ import net.minecraft.world.level.block.state.BlockState;
@@ -1459,7 +1459,7 @@ index d3e1a968fdbba65a388a67d0d578876188f5dc12..d9d3fe8fcf2949a4e82d88ff3936afee
public static final int MOVE_ITEM_SPEED = 8;
public static final int HOPPER_CONTAINER_SIZE = 5;
private static final int[][] CACHED_SLOTS = new int[54][];
@@ -123,6 +144,7 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
@@ -124,6 +145,7 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
@Override
public void setBlockState(BlockState blockState) {
@@ -1467,7 +1467,7 @@ index d3e1a968fdbba65a388a67d0d578876188f5dc12..d9d3fe8fcf2949a4e82d88ff3936afee
super.setBlockState(blockState);
this.facing = blockState.getValue(HopperBlock.FACING);
}
@@ -151,6 +173,7 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
@@ -152,6 +174,7 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
boolean result = tryMoveItems(level, pos, state, blockEntity, () -> {
return suckInItems(level, blockEntity);
});
@@ -1475,7 +1475,7 @@ index d3e1a968fdbba65a388a67d0d578876188f5dc12..d9d3fe8fcf2949a4e82d88ff3936afee
if (!result && blockEntity.level.spigotConfig.hopperCheck > 1) {
blockEntity.setCooldown(blockEntity.level.spigotConfig.hopperCheck);
}
@@ -240,6 +263,14 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
@@ -241,6 +264,14 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
org.leavesmc.leaves.protocol.PcaSyncProtocol.syncBlockEntityToClient(blockEntity);
}
// Leaves end - pca
@@ -1490,7 +1490,7 @@ index d3e1a968fdbba65a388a67d0d578876188f5dc12..d9d3fe8fcf2949a4e82d88ff3936afee
return true;
}
}
@@ -438,6 +469,7 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
@@ -439,6 +470,7 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
private static void applyCooldown(final Hopper hopper) {
if (hopper instanceof HopperBlockEntity blockEntity && blockEntity.getLevel() != null) {
blockEntity.setCooldown(blockEntity.getLevel().spigotConfig.hopperTransfer);
@@ -1498,7 +1498,7 @@ index d3e1a968fdbba65a388a67d0d578876188f5dc12..d9d3fe8fcf2949a4e82d88ff3936afee
}
}
@@ -488,11 +520,19 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
@@ -489,11 +521,19 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
}
}
// Leaves end - hopper counter
@@ -1519,7 +1519,7 @@ index d3e1a968fdbba65a388a67d0d578876188f5dc12..d9d3fe8fcf2949a4e82d88ff3936afee
if (isFullContainer(attachedContainer, opposite)) {
return false;
} else {
@@ -621,10 +661,18 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
@@ -622,10 +662,18 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
public static boolean suckInItems(Level level, Hopper hopper) {
BlockPos blockPos = BlockPos.containing(hopper.getLevelX(), hopper.getLevelY() + 1.0, hopper.getLevelZ());
BlockState blockState = level.getBlockState(blockPos);
@@ -1539,7 +1539,7 @@ index d3e1a968fdbba65a388a67d0d578876188f5dc12..d9d3fe8fcf2949a4e82d88ff3936afee
for (int i : getSlots(sourceContainer, direction)) {
if (tryTakeInItemFromSlot(hopper, sourceContainer, i, direction, level)) { // Spigot
@@ -636,7 +684,7 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
@@ -637,7 +685,7 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
} else {
boolean flag = hopper.isGridAligned() && (!org.leavesmc.leaves.LeavesConfig.modify.oldMC.oldHopperSuckInBehavior && blockState.isCollisionShapeFullBlock(level, blockPos)) && !blockState.is(BlockTags.DOES_NOT_BLOCK_HOPPERS); // Leaves - oldHopperSuckInBehavior
if (!flag) {
@@ -1548,7 +1548,7 @@ index d3e1a968fdbba65a388a67d0d578876188f5dc12..d9d3fe8fcf2949a4e82d88ff3936afee
if (addItem(hopper, itemEntity)) {
return true;
}
@@ -807,7 +855,7 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
@@ -808,7 +856,7 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
// CraftBukkit start
@Nullable
private static Container runHopperInventorySearchEvent(
@@ -1557,7 +1557,7 @@ index d3e1a968fdbba65a388a67d0d578876188f5dc12..d9d3fe8fcf2949a4e82d88ff3936afee
org.bukkit.craftbukkit.block.CraftBlock hopper,
org.bukkit.craftbukkit.block.CraftBlock searchLocation,
org.bukkit.event.inventory.HopperInventorySearchEvent.ContainerType containerType
@@ -935,6 +983,19 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
@@ -936,6 +984,19 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
}
public void setCooldown(int cooldownTime) {
@@ -1577,7 +1577,7 @@ index d3e1a968fdbba65a388a67d0d578876188f5dc12..d9d3fe8fcf2949a4e82d88ff3936afee
this.cooldownTime = cooldownTime;
}
@@ -954,6 +1015,7 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
@@ -955,6 +1016,7 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
@Override
protected void setItems(NonNullList<ItemStack> items) {
this.items = items;
@@ -1585,7 +1585,7 @@ index d3e1a968fdbba65a388a67d0d578876188f5dc12..d9d3fe8fcf2949a4e82d88ff3936afee
}
public static void entityInside(Level level, BlockPos pos, BlockState state, Entity entity, HopperBlockEntity blockEntity) {
@@ -968,4 +1030,757 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
@@ -969,4 +1031,757 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
protected AbstractContainerMenu createMenu(int id, Inventory player) {
return new HopperMenu(id, player, this);
}
@@ -2344,7 +2344,7 @@ index d3e1a968fdbba65a388a67d0d578876188f5dc12..d9d3fe8fcf2949a4e82d88ff3936afee
+ // Leaves end - Lithium Sleeping Block Entity
}
diff --git a/net/minecraft/world/level/block/entity/ShulkerBoxBlockEntity.java b/net/minecraft/world/level/block/entity/ShulkerBoxBlockEntity.java
index c1d1e28daa3b4d2a0bb359af08670f5d071e51ed..97a18901f320286f8eac2bfa698b353f94a621b3 100644
index 034f01c0f8987fbfd32120c8186aa8c6f44eb81d..7b5518340aede4fe626c9aae0c5a301ab6522972 100644
--- a/net/minecraft/world/level/block/entity/ShulkerBoxBlockEntity.java
+++ b/net/minecraft/world/level/block/entity/ShulkerBoxBlockEntity.java
@@ -32,7 +32,7 @@ import net.minecraft.world.level.storage.ValueOutput;
@@ -2356,7 +2356,7 @@ index c1d1e28daa3b4d2a0bb359af08670f5d071e51ed..97a18901f320286f8eac2bfa698b353f
public static final int COLUMNS = 9;
public static final int ROWS = 3;
public static final int CONTAINER_SIZE = 27;
@@ -134,6 +134,7 @@ public class ShulkerBoxBlockEntity extends RandomizableContainerBlockEntity impl
@@ -135,6 +135,7 @@ public class ShulkerBoxBlockEntity extends RandomizableContainerBlockEntity impl
doNeighborUpdates(level, pos, state);
}
}
@@ -2364,7 +2364,7 @@ index c1d1e28daa3b4d2a0bb359af08670f5d071e51ed..97a18901f320286f8eac2bfa698b353f
}
public ShulkerBoxBlockEntity.AnimationStatus getAnimationStatus() {
@@ -174,6 +175,7 @@ public class ShulkerBoxBlockEntity extends RandomizableContainerBlockEntity impl
@@ -175,6 +176,7 @@ public class ShulkerBoxBlockEntity extends RandomizableContainerBlockEntity impl
@Override
public boolean triggerEvent(int id, int type) {
@@ -2372,7 +2372,7 @@ index c1d1e28daa3b4d2a0bb359af08670f5d071e51ed..97a18901f320286f8eac2bfa698b353f
if (id == 1) {
this.openCount = type;
if (type == 0) {
@@ -265,6 +267,7 @@ public class ShulkerBoxBlockEntity extends RandomizableContainerBlockEntity impl
@@ -266,6 +268,7 @@ public class ShulkerBoxBlockEntity extends RandomizableContainerBlockEntity impl
@Override
protected void setItems(NonNullList<ItemStack> items) {
this.itemStacks = items;
@@ -2380,7 +2380,7 @@ index c1d1e28daa3b4d2a0bb359af08670f5d071e51ed..97a18901f320286f8eac2bfa698b353f
}
// Leaves start - pca
@@ -316,4 +319,39 @@ public class ShulkerBoxBlockEntity extends RandomizableContainerBlockEntity impl
@@ -317,4 +320,39 @@ public class ShulkerBoxBlockEntity extends RandomizableContainerBlockEntity impl
OPENED,
CLOSING;
}
@@ -2421,10 +2421,10 @@ index c1d1e28daa3b4d2a0bb359af08670f5d071e51ed..97a18901f320286f8eac2bfa698b353f
+ // Leaves end - Lithium Sleeping Block Entity
}
diff --git a/net/minecraft/world/level/block/state/BlockBehaviour.java b/net/minecraft/world/level/block/state/BlockBehaviour.java
index 67719dce9017a4c86a70b62fb660bddc636d5582..c1cbb635b6c22b04ca33c68a4c9777f067b30b4b 100644
index 9542e5c9418d74f131f794687b6c8276159d8c3f..906d7f9fb9135205ae7099cb12a50300063744db 100644
--- a/net/minecraft/world/level/block/state/BlockBehaviour.java
+++ b/net/minecraft/world/level/block/state/BlockBehaviour.java
@@ -85,7 +85,7 @@ import net.minecraft.world.phys.shapes.CollisionContext;
@@ -84,7 +84,7 @@ import net.minecraft.world.phys.shapes.CollisionContext;
import net.minecraft.world.phys.shapes.Shapes;
import net.minecraft.world.phys.shapes.VoxelShape;
@@ -2433,7 +2433,7 @@ index 67719dce9017a4c86a70b62fb660bddc636d5582..c1cbb635b6c22b04ca33c68a4c9777f0
protected static final Direction[] UPDATE_SHAPE_ORDER = new Direction[]{
Direction.WEST, Direction.EAST, Direction.NORTH, Direction.SOUTH, Direction.DOWN, Direction.UP
};
@@ -157,6 +157,7 @@ public abstract class BlockBehaviour implements FeatureElement {
@@ -156,6 +156,7 @@ public abstract class BlockBehaviour implements FeatureElement {
BlockState neighborState,
RandomSource random
) {
@@ -2442,25 +2442,25 @@ index 67719dce9017a4c86a70b62fb660bddc636d5582..c1cbb635b6c22b04ca33c68a4c9777f0
}
diff --git a/net/minecraft/world/level/chunk/LevelChunk.java b/net/minecraft/world/level/chunk/LevelChunk.java
index b27cbb55fcb980679819a605112533f366abc97e..b9931ba80f79db6d4c80fb707c788e449c71f52e 100644
index ff76f9ddc97c326bbe56a7ec138b11bf8e2d108d..7eb9d3e60869dbc8eafa6272c7e7bdcc2943b3ae 100644
--- a/net/minecraft/world/level/chunk/LevelChunk.java
+++ b/net/minecraft/world/level/chunk/LevelChunk.java
@@ -898,12 +898,14 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p
(pos, ticker1) -> {
@@ -932,12 +932,14 @@ public class LevelChunk extends ChunkAccess implements DebugValueSource, ca.spot
(blockPos, rebindableTickingBlockEntityWrapper) -> {
TickingBlockEntity tickingBlockEntity = this.createTicker(blockEntity, ticker);
if (ticker1 != null) {
+ if (org.leavesmc.leaves.LeavesConfig.performance.sleepingBlockEntity && blockEntity instanceof org.leavesmc.leaves.lithium.common.block.entity.SleepingBlockEntity sleepingBlockEntity) sleepingBlockEntity.lithium$setTickWrapper(ticker1); // Leaves - Lithium Sleeping Block Entity
ticker1.rebind(tickingBlockEntity);
return (LevelChunk.RebindableTickingBlockEntityWrapper)ticker1;
if (rebindableTickingBlockEntityWrapper != null) {
+ if (org.leavesmc.leaves.LeavesConfig.performance.sleepingBlockEntity && blockEntity instanceof org.leavesmc.leaves.lithium.common.block.entity.SleepingBlockEntity sleepingBlockEntity) sleepingBlockEntity.lithium$setTickWrapper(rebindableTickingBlockEntityWrapper); // Leaves - Lithium Sleeping Block Entity
rebindableTickingBlockEntityWrapper.rebind(tickingBlockEntity);
return (LevelChunk.RebindableTickingBlockEntityWrapper)rebindableTickingBlockEntityWrapper;
} else if (this.isInLevel()) {
LevelChunk.RebindableTickingBlockEntityWrapper rebindableTickingBlockEntityWrapper = new LevelChunk.RebindableTickingBlockEntityWrapper(
LevelChunk.RebindableTickingBlockEntityWrapper rebindableTickingBlockEntityWrapper1 = new LevelChunk.RebindableTickingBlockEntityWrapper(
tickingBlockEntity
);
+ if (org.leavesmc.leaves.LeavesConfig.performance.sleepingBlockEntity && blockEntity instanceof org.leavesmc.leaves.lithium.common.block.entity.SleepingBlockEntity sleepingBlockEntity) sleepingBlockEntity.lithium$setTickWrapper(rebindableTickingBlockEntityWrapper); // Leaves - Lithium Sleeping Block Entity
this.level.addBlockEntityTicker(rebindableTickingBlockEntityWrapper);
return rebindableTickingBlockEntityWrapper;
+ if (org.leavesmc.leaves.LeavesConfig.performance.sleepingBlockEntity && blockEntity instanceof org.leavesmc.leaves.lithium.common.block.entity.SleepingBlockEntity sleepingBlockEntity) sleepingBlockEntity.lithium$setTickWrapper(rebindableTickingBlockEntityWrapper1); // Leaves - Lithium Sleeping Block Entity
this.level.addBlockEntityTicker(rebindableTickingBlockEntityWrapper1);
return rebindableTickingBlockEntityWrapper1;
} else {
@@ -997,14 +999,14 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p
@@ -1031,14 +1033,14 @@ public class LevelChunk extends ChunkAccess implements DebugValueSource, ca.spot
void run(LevelChunk chunk);
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Bring back LivingEntity effect CME
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
index 0d493c8343057898166f94a4006a374a214ae7b2..951300caeca0421cabda44496ed2f09fc2258dd0 100644
index ea63284b60d05811d7666c12cce9a8996b78b354..d97689bc111610b8b7d463c5625fc1e9b2a2132b 100644
--- a/net/minecraft/world/entity/LivingEntity.java
+++ b/net/minecraft/world/entity/LivingEntity.java
@@ -1151,7 +1151,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
@@ -1158,7 +1158,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
public boolean addEffect(MobEffectInstance effectInstance, @Nullable Entity entity, EntityPotionEffectEvent.Cause cause, boolean fireEvent) {
// Paper end - Don't fire sync event during generation
// org.spigotmc.AsyncCatcher.catchOp("effect add"); // Spigot // Paper - move to API

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Modify end void rings generation
diff --git a/net/minecraft/world/level/levelgen/DensityFunctions.java b/net/minecraft/world/level/levelgen/DensityFunctions.java
index 04527a5c65ad630f794fed9071d485aedd02257a..0298ba0c68447c5d0d555431b3118552b3d90a34 100644
index 2dede0dc630097c878f4afc10b10a304eb458a99..b16cb2063e7aa42d0b85b518eba590c0cf3c5b8e 100644
--- a/net/minecraft/world/level/levelgen/DensityFunctions.java
+++ b/net/minecraft/world/level/levelgen/DensityFunctions.java
@@ -528,7 +528,7 @@ public final class DensityFunctions {
@@ -534,7 +534,7 @@ public final class DensityFunctions {
int i1 = z / 2;
int i2 = x % 2;
int i3 = z % 2;

View File

@@ -24,7 +24,7 @@ As part of: Lithium (https://github.com/CaffeineMC/lithium)
Licensed under: LGPL-3.0 (https://www.gnu.org/licenses/lgpl-3.0.html)
diff --git a/net/minecraft/world/entity/EntityEquipment.java b/net/minecraft/world/entity/EntityEquipment.java
index 90814ad07a2686c5a274860395f5aca29cc3bf13..758a8bd797f06cd6998f71b095c475e09906e343 100644
index 1e00a7bd89d885cabb4b9ca3c86fbd8cd93cebf5..08e3d257ffdc5dfa996b1e16e477b4e0f8660c54 100644
--- a/net/minecraft/world/entity/EntityEquipment.java
+++ b/net/minecraft/world/entity/EntityEquipment.java
@@ -7,7 +7,7 @@ import java.util.Objects;
@@ -48,10 +48,10 @@ index 90814ad07a2686c5a274860395f5aca29cc3bf13..758a8bd797f06cd6998f71b095c475e0
private EntityEquipment(EnumMap<EquipmentSlot, ItemStack> items) {
this.items = items;
@@ -29,7 +34,13 @@ public class EntityEquipment {
@@ -28,7 +33,13 @@ public class EntityEquipment {
}
public ItemStack set(EquipmentSlot slot, ItemStack stack) {
stack.getItem().verifyComponentsAfterLoad(stack);
- return Objects.requireNonNullElse(this.items.put(slot, stack), ItemStack.EMPTY);
+ // Leaves start - Lithium - equipment tracking
+ ItemStack oldStack = Objects.requireNonNullElse(this.items.put(slot, stack), ItemStack.EMPTY);
@@ -63,7 +63,7 @@ index 90814ad07a2686c5a274860395f5aca29cc3bf13..758a8bd797f06cd6998f71b095c475e0
}
public ItemStack get(EquipmentSlot slot) {
@@ -56,8 +67,23 @@ public class EntityEquipment {
@@ -55,8 +66,23 @@ public class EntityEquipment {
}
public void setAll(EntityEquipment equipment) {
@@ -87,7 +87,7 @@ index 90814ad07a2686c5a274860395f5aca29cc3bf13..758a8bd797f06cd6998f71b095c475e0
}
public void dropAll(LivingEntity entity) {
@@ -70,6 +96,7 @@ public class EntityEquipment {
@@ -69,6 +95,7 @@ public class EntityEquipment {
public void clear() {
this.items.replaceAll((equipmentSlot, itemStack) -> ItemStack.EMPTY);
@@ -95,7 +95,7 @@ index 90814ad07a2686c5a274860395f5aca29cc3bf13..758a8bd797f06cd6998f71b095c475e0
}
// Paper start - EntityDeathEvent
@@ -78,4 +105,98 @@ public class EntityEquipment {
@@ -77,4 +104,98 @@ public class EntityEquipment {
return this.items.containsKey(slot);
}
// Paper end - EntityDeathEvent
@@ -195,10 +195,10 @@ index 90814ad07a2686c5a274860395f5aca29cc3bf13..758a8bd797f06cd6998f71b095c475e0
+ // Leaves end - Lithium - equipment tracking
}
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
index 951300caeca0421cabda44496ed2f09fc2258dd0..eb1a6644670c126c03ef871c8ac4bc2d0e389872 100644
index d97689bc111610b8b7d463c5625fc1e9b2a2132b..aa8468824033cd8d587b0923a79fab9e5d67b660 100644
--- a/net/minecraft/world/entity/LivingEntity.java
+++ b/net/minecraft/world/entity/LivingEntity.java
@@ -425,9 +425,17 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
@@ -432,9 +432,17 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
this.getSleepingPos().ifPresent(this::setPosToBed);
}
@@ -218,7 +218,7 @@ index 951300caeca0421cabda44496ed2f09fc2258dd0..eb1a6644670c126c03ef871c8ac4bc2d
super.baseTick();
ProfilerFiller profilerFiller = Profiler.get();
@@ -3348,6 +3356,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
@@ -3380,6 +3388,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
public void detectEquipmentUpdates() {
Map<EquipmentSlot, ItemStack> map = this.collectEquipmentChanges();
if (map != null) {
@@ -226,7 +226,7 @@ index 951300caeca0421cabda44496ed2f09fc2258dd0..eb1a6644670c126c03ef871c8ac4bc2d
this.handleHandSwap(map);
if (!map.isEmpty()) {
this.handleEquipmentChanges(map);
@@ -3357,6 +3366,14 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
@@ -3389,6 +3398,14 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
@Nullable
private Map<EquipmentSlot, ItemStack> collectEquipmentChanges() {
@@ -242,7 +242,7 @@ index 951300caeca0421cabda44496ed2f09fc2258dd0..eb1a6644670c126c03ef871c8ac4bc2d
// Paper start - EntityEquipmentChangedEvent
record EquipmentChangeImpl(org.bukkit.inventory.ItemStack oldItem, org.bukkit.inventory.ItemStack newItem) implements io.papermc.paper.event.entity.EntityEquipmentChangedEvent.EquipmentChange {
diff --git a/net/minecraft/world/entity/decoration/ArmorStand.java b/net/minecraft/world/entity/decoration/ArmorStand.java
index d7725b5ca689e3d5b512baab04e113be77c0b2ee..abe5d681f81f60facc019660a6eae833e5742cef 100644
index ea409f905088550b28d7c17437cb0c1aec1d2309..c3516e1e6a561a48b5c49be137819069858c15b6 100644
--- a/net/minecraft/world/entity/decoration/ArmorStand.java
+++ b/net/minecraft/world/entity/decoration/ArmorStand.java
@@ -89,7 +89,7 @@ public class ArmorStand extends LivingEntity {