diff --git a/gradle.properties b/gradle.properties index 34ebadc..f40e7f6 100644 --- a/gradle.properties +++ b/gradle.properties @@ -7,7 +7,7 @@ apiVersion=1.21.11 release=1 # 0 for skip release, 1 for pre-release, 2 for release -luminolRef=c8efe54488c1db31f192e9f32dccf34af28ad3dc +luminolRef=73cdbe87f21a19a1bb5b8207be6c426739fc4045 org.gradle.configuration-cache=true org.gradle.caching=true diff --git a/lophine-server/minecraft-patches/features/0001-Add-configs-to-disable-some-check-for-operators.patch b/lophine-server/minecraft-patches/features/0001-Add-configs-to-disable-some-check-for-operators.patch index 1f1bfc9..ceb4e29 100644 --- a/lophine-server/minecraft-patches/features/0001-Add-configs-to-disable-some-check-for-operators.patch +++ b/lophine-server/minecraft-patches/features/0001-Add-configs-to-disable-some-check-for-operators.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add configs to disable some check for operators diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 6318824fb3efde4043d3db2a0ac681c38621c5fe..1b24f0f6e26dedbf726c620908acaed49054a5f5 100644 +index bd344bbebc867f89061694edc0feeab9d679c90c..6d0bb9868e2c2ef516de7630442808c04ba47b39 100644 --- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -391,7 +391,7 @@ public class ServerGamePacketListenerImpl +@@ -392,7 +392,7 @@ public class ServerGamePacketListenerImpl this.tickCount++; this.knownMovePacketCount = this.receivedMovePacketCount; if (this.clientIsFloating && !this.player.isSleeping() && !this.player.isPassenger() && !this.player.isDeadOrDying()) { @@ -17,7 +17,7 @@ index 6318824fb3efde4043d3db2a0ac681c38621c5fe..1b24f0f6e26dedbf726c620908acaed4 // LOGGER.warn("{} was kicked for floating too long!", this.player.getPlainTextName()); // Paper - Logging moved to net.minecraft.server.network.ServerCommonPacketListenerImpl.disconnect() this.disconnect(io.papermc.paper.configuration.GlobalConfiguration.get().messages.kick.flyingPlayer, org.bukkit.event.player.PlayerKickEvent.Cause.FLYING_PLAYER); // Paper - use configurable kick message & kick event cause return true; -@@ -410,7 +410,7 @@ public class ServerGamePacketListenerImpl +@@ -411,7 +411,7 @@ public class ServerGamePacketListenerImpl this.vehicleLastGoodY = this.lastVehicle.getY(); this.vehicleLastGoodZ = this.lastVehicle.getZ(); if (this.clientVehicleIsFloating && this.lastVehicle.getControllingPassenger() == this.player) { @@ -26,7 +26,7 @@ index 6318824fb3efde4043d3db2a0ac681c38621c5fe..1b24f0f6e26dedbf726c620908acaed4 // LOGGER.warn("{} was kicked for floating a vehicle too long!", this.player.getPlainTextName()); // Paper - Logging moved to net.minecraft.server.network.ServerCommonPacketListenerImpl.disconnect() this.disconnect(io.papermc.paper.configuration.GlobalConfiguration.get().messages.kick.flyingVehicle, org.bukkit.event.player.PlayerKickEvent.Cause.FLYING_VEHICLE); // Paper - use configurable kick message & kick event cause return true; -@@ -661,7 +661,7 @@ public class ServerGamePacketListenerImpl +@@ -662,7 +662,7 @@ public class ServerGamePacketListenerImpl d5 = d2 - rootVehicle.getZ(); d7 = d3 * d3 + d4 * d4 + d5 * d5; boolean flag1 = false; @@ -35,7 +35,7 @@ index 6318824fb3efde4043d3db2a0ac681c38621c5fe..1b24f0f6e26dedbf726c620908acaed4 flag1 = true; // Paper - diff on change, this should be moved wrongly LOGGER.warn("{} (vehicle of {}) moved wrongly! {}", rootVehicle.getPlainTextName(), this.player.getPlainTextName(), Math.sqrt(d7)); } -@@ -1563,7 +1563,7 @@ public class ServerGamePacketListenerImpl +@@ -1564,7 +1564,7 @@ public class ServerGamePacketListenerImpl // Paper start - Add fail move event io.papermc.paper.event.player.PlayerFailMoveEvent event = fireFailMove(io.papermc.paper.event.player.PlayerFailMoveEvent.FailReason.MOVED_TOO_QUICKLY, toX, toY, toZ, toYaw, toPitch, true); @@ -44,7 +44,7 @@ index 6318824fb3efde4043d3db2a0ac681c38621c5fe..1b24f0f6e26dedbf726c620908acaed4 if (event.getLogWarning()) { LOGGER.warn("{} moved too quickly! {},{},{}", this.player.getPlainTextName(), d3, d4, d5); } -@@ -1642,7 +1642,7 @@ public class ServerGamePacketListenerImpl +@@ -1643,7 +1643,7 @@ public class ServerGamePacketListenerImpl // Paper start - Add fail move event io.papermc.paper.event.player.PlayerFailMoveEvent event = fireFailMove(io.papermc.paper.event.player.PlayerFailMoveEvent.FailReason.MOVED_WRONGLY, toX, toY, toZ, toYaw, toPitch, true); diff --git a/lophine-server/minecraft-patches/features/0003-Add-config-to-enable-raytracing-tracker.patch b/lophine-server/minecraft-patches/features/0003-Add-config-to-enable-raytracing-tracker.patch index 5f83944..816a47e 100644 --- a/lophine-server/minecraft-patches/features/0003-Add-config-to-enable-raytracing-tracker.patch +++ b/lophine-server/minecraft-patches/features/0003-Add-config-to-enable-raytracing-tracker.patch @@ -92,7 +92,7 @@ index 0590d5723854a03a59fe9471710802f4e64e50b8..4f8ff2c024d6f2e67c5fa38fe2e660ba public EntityType( EntityType.EntityFactory factory, diff --git a/net/minecraft/world/entity/player/Player.java b/net/minecraft/world/entity/player/Player.java -index d45fcebbc28084a076f3ba8cbe25d50934735fa0..212536b5a7b2b0196ef05dbb383bd5ac52b6978e 100644 +index 67c0f4027a1e8b364694b5ed8b71965f2fe9b359..0f6e1428cc71c370af45db3e2a4f47c66e5d8628 100644 --- a/net/minecraft/world/entity/player/Player.java +++ b/net/minecraft/world/entity/player/Player.java @@ -189,6 +189,25 @@ public abstract class Player extends Avatar implements ContainerUser { diff --git a/lophine-server/minecraft-patches/features/0012-Leaves-Item-overstack-util.patch b/lophine-server/minecraft-patches/features/0012-Leaves-Item-overstack-util.patch index dde4c98..299cffa 100644 --- a/lophine-server/minecraft-patches/features/0012-Leaves-Item-overstack-util.patch +++ b/lophine-server/minecraft-patches/features/0012-Leaves-Item-overstack-util.patch @@ -41,10 +41,10 @@ index 1281eadb2d0c5b4ce5e3afd51d8205f9a4ef011c..b1446dfb4689174ee9f55cec6080622e 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 1b24f0f6e26dedbf726c620908acaed49054a5f5..9a28127f0cbaf586aef416d0d15a791b309ad3af 100644 +index 6d0bb9868e2c2ef516de7630442808c04ba47b39..1a749d9bee139975fa249839df93c3a1e48bf102 100644 --- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -3161,7 +3161,7 @@ public class ServerGamePacketListenerImpl +@@ -3162,7 +3162,7 @@ public class ServerGamePacketListenerImpl } else if (slot.mayPlace(cursor)) { if (ItemStack.isSameItemSameComponents(clickedItem, cursor)) { int toPlace = packet.buttonNum() == 0 ? cursor.getCount() : 1; @@ -53,7 +53,7 @@ index 1b24f0f6e26dedbf726c620908acaed49054a5f5..9a28127f0cbaf586aef416d0d15a791b toPlace = Math.min(toPlace, slot.container.getMaxStackSize() - clickedItem.getCount()); if (toPlace == 1) { action = InventoryAction.PLACE_ONE; -@@ -3197,7 +3197,7 @@ public class ServerGamePacketListenerImpl +@@ -3198,7 +3198,7 @@ public class ServerGamePacketListenerImpl } } else if (ItemStack.isSameItemSameComponents(cursor, clickedItem)) { if (clickedItem.getCount() >= 0) { @@ -62,7 +62,7 @@ index 1b24f0f6e26dedbf726c620908acaed49054a5f5..9a28127f0cbaf586aef416d0d15a791b // As of 1.5, this is result slots only action = InventoryAction.PICKUP_ALL; } -@@ -3414,6 +3414,7 @@ public class ServerGamePacketListenerImpl +@@ -3415,6 +3415,7 @@ public class ServerGamePacketListenerImpl this.player.containerMenu.broadcastFullState(); } else { this.player.containerMenu.broadcastChanges(); @@ -70,7 +70,7 @@ index 1b24f0f6e26dedbf726c620908acaed49054a5f5..9a28127f0cbaf586aef416d0d15a791b } 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. -@@ -3525,7 +3526,7 @@ public class ServerGamePacketListenerImpl +@@ -3526,7 +3527,7 @@ public class ServerGamePacketListenerImpl } boolean flag1 = packet.slotNum() >= 1 && packet.slotNum() <= 45; @@ -79,7 +79,7 @@ index 1b24f0f6e26dedbf726c620908acaed49054a5f5..9a28127f0cbaf586aef416d0d15a791b 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(); -@@ -3567,6 +3568,7 @@ public class ServerGamePacketListenerImpl +@@ -3568,6 +3569,7 @@ public class ServerGamePacketListenerImpl this.player.inventoryMenu.getSlot(packet.slotNum()).setByPlayer(itemStack); this.player.inventoryMenu.setRemoteSlot(packet.slotNum(), itemStack); this.player.inventoryMenu.broadcastChanges(); diff --git a/lophine-server/minecraft-patches/features/0019-Purpur-Barrels-and-enderchests-6-rows.patch b/lophine-server/minecraft-patches/features/0019-Purpur-Barrels-and-enderchests-6-rows.patch index e48cc48..7324fbe 100644 --- a/lophine-server/minecraft-patches/features/0019-Purpur-Barrels-and-enderchests-6-rows.patch +++ b/lophine-server/minecraft-patches/features/0019-Purpur-Barrels-and-enderchests-6-rows.patch @@ -23,7 +23,7 @@ index 2eb551390aa66d89988df9ca23cf0dd7ccfd6577..0d322ef4aa3e70c9edbb9fa8ba368bef // Paper start - whitelist verify event / login event diff --git a/net/minecraft/world/entity/player/Player.java b/net/minecraft/world/entity/player/Player.java -index 212536b5a7b2b0196ef05dbb383bd5ac52b6978e..6bbec212142ed1ddb312c403c6c7fc258310b192 100644 +index 0f6e1428cc71c370af45db3e2a4f47c66e5d8628..83612969b6058f444fc17e360cdcc4a8846f79aa 100644 --- a/net/minecraft/world/entity/player/Player.java +++ b/net/minecraft/world/entity/player/Player.java @@ -179,6 +179,7 @@ public abstract class Player extends Avatar implements ContainerUser { diff --git a/lophine-server/minecraft-patches/features/0023-Leaves-Fakeplayer.patch b/lophine-server/minecraft-patches/features/0023-Leaves-Fakeplayer.patch index ec98472..da29090 100644 --- a/lophine-server/minecraft-patches/features/0023-Leaves-Fakeplayer.patch +++ b/lophine-server/minecraft-patches/features/0023-Leaves-Fakeplayer.patch @@ -602,7 +602,7 @@ index fa6ed83a69aafee57195f1b512481c401ade7b09..97b0f407306e978a506225684ac0a5ae 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 6bbec212142ed1ddb312c403c6c7fc258310b192..2f56cefeeea574f19bc5deaca749d67b0f2a3548 100644 +index 83612969b6058f444fc17e360cdcc4a8846f79aa..29ca31b05ec5636243b13fee8b3399d5e21808b4 100644 --- a/net/minecraft/world/entity/player/Player.java +++ b/net/minecraft/world/entity/player/Player.java @@ -168,7 +168,7 @@ public abstract class Player extends Avatar implements ContainerUser { diff --git a/lophine-server/minecraft-patches/features/0025-Leaves-Syncmatica-Protocol.patch b/lophine-server/minecraft-patches/features/0025-Leaves-Syncmatica-Protocol.patch index 3192d4f..f30bc60 100644 --- a/lophine-server/minecraft-patches/features/0025-Leaves-Syncmatica-Protocol.patch +++ b/lophine-server/minecraft-patches/features/0025-Leaves-Syncmatica-Protocol.patch @@ -9,7 +9,7 @@ As a part of : Leaves (https://github.com/LeavesMC/Leaves) Licensed under: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html) diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 9a28127f0cbaf586aef416d0d15a791b309ad3af..81ab622f74f9c66f335b868ff55917f8ad5755c0 100644 +index 1a749d9bee139975fa249839df93c3a1e48bf102..d81e22fe65cded98c201a7bbae8a51b22c6a20b4 100644 --- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -338,9 +338,12 @@ public class ServerGamePacketListenerImpl diff --git a/lophine-server/minecraft-patches/features/0027-Leaves-Jade-Protocol.patch b/lophine-server/minecraft-patches/features/0027-Leaves-Jade-Protocol.patch index b159ee5..315f443 100644 --- a/lophine-server/minecraft-patches/features/0027-Leaves-Jade-Protocol.patch +++ b/lophine-server/minecraft-patches/features/0027-Leaves-Jade-Protocol.patch @@ -1,6 +1,6 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: violetc <58360096+s-yh-china@users.noreply.github.com> -Date: Mon, 3 Feb 2025 13:33:19 +0800 +From: Bacteriawa +Date: Fri, 13 Feb 2026 16:17:36 +0800 Subject: [PATCH] Leaves: Jade Protocol This patch is Powered by Jade(https://github.com/Snownee/Jade) @@ -22,18 +22,18 @@ index c5d13b60029f27162df445b31b9db94e225ce894..cdf0543014a92de7d5181bcc81f828e8 // Luminol End - Cross Region Damage trace } diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 81ab622f74f9c66f335b868ff55917f8ad5755c0..4ce93776c34ae9714831212ff46dac541094d48f 100644 +index d81e22fe65cded98c201a7bbae8a51b22c6a20b4..43e9fd5684d15f8643524132e60266071c6dc454 100644 --- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -3833,7 +3833,7 @@ public class ServerGamePacketListenerImpl - } else if (this.clientLoadedTimeoutTimer == 1) markClientLoaded(); // Paper - Add PlayerLoadedWorldEvent - decrement by calling #markClientLoaded which will set the value to 0 *and* call the event. +@@ -3835,7 +3835,7 @@ public class ServerGamePacketListenerImpl } + @Deprecated @io.papermc.paper.annotation.DoNotUse // Paper - Add PlayerLoadedWorldEvent - private void markClientLoaded() { + public void markClientLoaded() { // Lophine - private -> public // Paper start - Add PlayerLoadedWorldEvent - if (!hasClientLoaded()) { - final io.papermc.paper.event.player.PlayerClientLoadedWorldEvent event = new io.papermc.paper.event.player.PlayerClientLoadedWorldEvent(this.player.getBukkitEntity(), true); + this.markClientLoaded(false); + } diff --git a/net/minecraft/world/entity/animal/armadillo/Armadillo.java b/net/minecraft/world/entity/animal/armadillo/Armadillo.java index 901e4e9897e76cd4158d7f8bb8ec829df8ff8196..59b9373c7a14e42d9e5f691354a7616d16856215 100644 --- a/net/minecraft/world/entity/animal/armadillo/Armadillo.java diff --git a/lophine-server/minecraft-patches/features/0031-Leaves-Alternative-block-placement-Protocol.patch b/lophine-server/minecraft-patches/features/0031-Leaves-Alternative-block-placement-Protocol.patch index af79cea..a071580 100644 --- a/lophine-server/minecraft-patches/features/0031-Leaves-Alternative-block-placement-Protocol.patch +++ b/lophine-server/minecraft-patches/features/0031-Leaves-Alternative-block-placement-Protocol.patch @@ -13,10 +13,10 @@ MasaGadget(https://github.com/plusls/MasaGadget) litematica(https://github.com/maruohon/litematica) diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 4ce93776c34ae9714831212ff46dac541094d48f..7e5b906fcb1b2462409c83984b5197c4407ea333 100644 +index 43e9fd5684d15f8643524132e60266071c6dc454..62db0ba9c824959f953d452ab7aafcde01b10bcd 100644 --- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2133,7 +2133,7 @@ public class ServerGamePacketListenerImpl +@@ -2134,7 +2134,7 @@ public class ServerGamePacketListenerImpl if (ca.spottedleaf.moonrise.common.util.TickThread.isTickThreadFor(this.player.level(), blockPos.getX() >> 4, blockPos.getZ() >> 4, 8) && this.player.isWithinBlockInteractionRange(blockPos, 1.0)) { // Folia - do not allow players to interact with blocks outside the current region Vec3 vec3 = location.subtract(Vec3.atCenterOf(blockPos)); double d = 1.0000001;