diff --git a/gradle.properties b/gradle.properties index 272aaa0..4045dc8 100644 --- a/gradle.properties +++ b/gradle.properties @@ -7,7 +7,7 @@ apiVersion=1.21.11 release=2 # 0 for skip release, 1 for pre-release, 2 for release -luminolRef=78a3b89f5850f71ddb5b1d1adeccda47f5762a1b +luminolRef=fcc6f5ea42eba95041b00c87bfcce427a7660a6d org.gradle.configuration-cache=true org.gradle.caching=true diff --git a/lophine-server/build.gradle.kts.patch b/lophine-server/build.gradle.kts.patch index 0bc624f..a3ef667 100644 --- a/lophine-server/build.gradle.kts.patch +++ b/lophine-server/build.gradle.kts.patch @@ -49,9 +49,9 @@ - implementation(project(":luminol-api")) // Luminol + implementation(project(":lophine-api")) // Lophine // Luminol start - Dependenices insert + implementation("net.objecthunter:exp4j:0.4.8") implementation("io.netty:netty-all:4.2.9.Final") // used for io_uring - implementation("com.electronwill.night-config:toml:3.8.3") // Night config -@@ -273,14 +_,14 @@ +@@ -274,14 +_,14 @@ val gitBranch = git.exec(providers, "rev-parse", "--abbrev-ref", "HEAD").get().trim() attributes( "Main-Class" to "org.bukkit.craftbukkit.Main", @@ -70,7 +70,7 @@ "Build-Number" to (build ?: ""), "Build-Time" to buildTime.toString(), "Git-Branch" to gitBranch, -@@ -432,7 +_,7 @@ +@@ -433,7 +_,7 @@ } fill { diff --git a/lophine-server/luminol-patches/features/0002-Transformed-Configs.patch b/lophine-server/luminol-patches/features/0002-Transformed-Configs.patch index 3cca050..a5681b5 100644 --- a/lophine-server/luminol-patches/features/0002-Transformed-Configs.patch +++ b/lophine-server/luminol-patches/features/0002-Transformed-Configs.patch @@ -27,11 +27,11 @@ index ad2ba680bedb2336de24146676e70a1f64fd9c5a..f81581782bf684bbcf4719e9b268efa3 Enable waypoint and waypoint command. WARN: Still under testing diff --git a/src/main/java/me/earthme/luminol/config/modules/misc/PaperPacketLimiterConfig.java b/src/main/java/me/earthme/luminol/config/modules/misc/PaperPacketLimiterConfig.java -index ce190737de22438d5de86b0ee0e8158954fdca18..0a175e87f3cb5b23480abefd70ee2e84e876b0d4 100644 +index aece37eb6406f8ada56428e68cf198c43f8ae309..d5f99fd672e33c16fc3c3e2031ce2e5a5001ab55 100644 --- a/src/main/java/me/earthme/luminol/config/modules/misc/PaperPacketLimiterConfig.java +++ b/src/main/java/me/earthme/luminol/config/modules/misc/PaperPacketLimiterConfig.java @@ -11,6 +11,7 @@ import me.earthme.luminol.enums.EnumConfigCategory; - "has negative impacts on security" + "has negative impacts on security" ) public class PaperPacketLimiterConfig implements IConfigModule { + @TransformedConfig(name = "unlimit-packet", directory = {"misc", "network"}, originInstance = "lophine") diff --git a/lophine-server/luminol-patches/features/0004-Leaves-Fakeplayer.patch b/lophine-server/luminol-patches/features/0004-Leaves-Fakeplayer.patch index 45a2788..f0603a8 100644 --- a/lophine-server/luminol-patches/features/0004-Leaves-Fakeplayer.patch +++ b/lophine-server/luminol-patches/features/0004-Leaves-Fakeplayer.patch @@ -8,10 +8,10 @@ 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/src/main/java/me/earthme/luminol/utils/FoliaServerWaypointManager.java b/src/main/java/me/earthme/luminol/utils/FoliaServerWaypointManager.java -index 14cf379decfd46c4719bc192a1467bbbd6835417..20970844de2e64ca213384e53003e80020165770 100644 +index 948730740e151352b4a12a90862f1e16925e52b0..0e6c9edbceef525bf102ad8f1fc0cb08e789d0e6 100644 --- a/src/main/java/me/earthme/luminol/utils/FoliaServerWaypointManager.java +++ b/src/main/java/me/earthme/luminol/utils/FoliaServerWaypointManager.java -@@ -38,6 +38,12 @@ public class FoliaServerWaypointManager implements WaypointManager<@NotNull Wayp +@@ -39,6 +39,12 @@ public class FoliaServerWaypointManager implements WaypointManager<@NotNull Wayp return; } @@ -24,7 +24,7 @@ index 14cf379decfd46c4719bc192a1467bbbd6835417..20970844de2e64ca213384e53003e800 this.waypoints.add(waypoint); for (ServerPlayer toCreateFor : this.trackingPlayers) { -@@ -91,6 +97,12 @@ public class FoliaServerWaypointManager implements WaypointManager<@NotNull Wayp +@@ -92,6 +98,12 @@ public class FoliaServerWaypointManager implements WaypointManager<@NotNull Wayp public void addPlayer(ServerPlayer player) { this.trackingPlayers.add(player); diff --git a/lophine-server/minecraft-patches/features/0008-Fix-datapack-command-save-function.patch b/lophine-server/minecraft-patches/features/0008-Fix-datapack-command-save-function.patch index 2b3edf8..685af71 100644 --- a/lophine-server/minecraft-patches/features/0008-Fix-datapack-command-save-function.patch +++ b/lophine-server/minecraft-patches/features/0008-Fix-datapack-command-save-function.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix datapack command save function diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java -index d7d22806c010636d8c1471f0fd1d64ef54e92c97..8d96d2130cf3383427047fee97fa49155164e337 100644 +index 504f21c5f1e3101e7164b97059aecce630d18cee..d5b680fc6e13ec26d0db2448009e4cbe59933e22 100644 --- a/net/minecraft/server/MinecraftServer.java +++ b/net/minecraft/server/MinecraftServer.java -@@ -2431,6 +2431,16 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0) { -@@ -2021,6 +2029,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop> optional = PoiTypes.forState(oldState); -@@ -2963,6 +2971,11 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe +@@ -2991,6 +2999,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); @@ -299,7 +299,7 @@ index f5bf8ed6e741823078ab93eac47636fcebcdfe2d..14516c3ebd092e6f230804145a60dc85 if (serverPlayer.isReceivingWaypoints()) { ServerLevel.this.getWaypointManager().addPlayer(serverPlayer); } -@@ -3044,6 +3057,11 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe +@@ -3072,6 +3085,11 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe ServerLevel.this.getChunkSource().removeEntity(entity); if (entity instanceof ServerPlayer serverPlayer) { ServerLevel.this.players.remove(serverPlayer); @@ -312,7 +312,7 @@ index f5bf8ed6e741823078ab93eac47636fcebcdfe2d..14516c3ebd092e6f230804145a60dc85 ServerLevel.this.updateSleepingPlayerList(); } diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java -index f0d45cb70af62b747c9235941f3fc45221b3b8e6..132645758827ee4d332909e701dde24e69699beb 100644 +index 6df8f98afa7810815b8d7c86b3dac57cd5915682..7c2d53ca863c2e50c6871938efc426ddefff9b5c 100644 --- a/net/minecraft/server/level/ServerPlayer.java +++ b/net/minecraft/server/level/ServerPlayer.java @@ -227,7 +227,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc @@ -506,7 +506,7 @@ index 0d322ef4aa3e70c9edbb9fa8ba368bef916eb93d..3a5319739f0687fc6f09b2ac8ee31716 public @Nullable ServerPlayer getPlayer(String name) { diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java -index 32299faedd89a848ca00288672ce85cad707dca0..3e44a61bd982dc822437f647a02a95affd988cdb 100644 +index 22e68cabb4554c3e21e6f4ef316186f60ec77511..5ac53fcdca5fa6aae0452840e78d67653ceececb 100644 --- a/net/minecraft/world/entity/Entity.java +++ b/net/minecraft/world/entity/Entity.java @@ -1235,7 +1235,7 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name diff --git a/lophine-server/minecraft-patches/features/0031-Leaves-Replay-Mod-API.patch b/lophine-server/minecraft-patches/features/0031-Leaves-Replay-Mod-API.patch index 24dacee..a142aff 100644 --- a/lophine-server/minecraft-patches/features/0031-Leaves-Replay-Mod-API.patch +++ b/lophine-server/minecraft-patches/features/0031-Leaves-Replay-Mod-API.patch @@ -84,7 +84,7 @@ index af71e0e1eb1c93745f3e4954ecc8fbd2ad4808a3..f3829564681faff3ae8971ed90b947b4 players.add(serverPlayer1); if (players.size() >= resultLimit) { diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java -index dfcf8eb7dc422a55d94d6eb9eb1451c7c14a1d56..9130f1fbf15500f2149418b73ae2a374bba22eee 100644 +index 385c71d70ed9e5a3ae25fbecaefd6773c467d31d..24f83a6875219aaf4b29e2461afcd0478a391014 100644 --- a/net/minecraft/server/MinecraftServer.java +++ b/net/minecraft/server/MinecraftServer.java @@ -1896,7 +1896,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { // Folia - region threading // Paper start - Expand PlayerGameModeChangeEvent org.bukkit.event.player.PlayerGameModeChangeEvent event = player.setGameMode(gameMode, org.bukkit.event.player.PlayerGameModeChangeEvent.Cause.DEFAULT_GAMEMODE, null); // Folia - region threading -@@ -2494,7 +2494,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop capturedBlockStates = new java.util.LinkedHashMap<>(); // Paper -@@ -531,7 +531,7 @@ public final class RegionizedWorldData { +@@ -570,7 +570,7 @@ public final class RegionizedWorldData { this.world = world; this.blockLevelTicks = new LevelTicks<>(world::isPositionTickingWithEntitiesLoaded, world, true); this.fluidLevelTicks = new LevelTicks<>(world::isPositionTickingWithEntitiesLoaded, world, false); @@ -27,7 +27,7 @@ index c7f578c117baccb10c0c15b05a6c04e073f15da8..aee3f98173de1b2c5a5278919a5d21b4 this.wireHandler = new alternate.current.wire.WireHandler(world); this.turbo = new io.papermc.paper.redstone.RedstoneWireTurbo((RedStoneWireBlock)Blocks.REDSTONE_WIRE); diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java -index 284bd9703b11804f51273ecfaa5cd44925726f5f..9756caff0b7403c212987e58c08a2da09bdeb962 100644 +index 447b3e6149716a3ca4b9721746ea471c94c56e67..d8a2f8a1fbf0189e86ccbce70a84641a143cdb91 100644 --- a/net/minecraft/server/level/ServerLevel.java +++ b/net/minecraft/server/level/ServerLevel.java @@ -927,12 +927,16 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe diff --git a/lophine-server/minecraft-patches/features/0040-Global-Entities-Counter.patch b/lophine-server/minecraft-patches/features/0040-Global-Entities-Counter.patch index 5369934..c3e761a 100644 --- a/lophine-server/minecraft-patches/features/0040-Global-Entities-Counter.patch +++ b/lophine-server/minecraft-patches/features/0040-Global-Entities-Counter.patch @@ -5,11 +5,11 @@ Subject: [PATCH] Global Entities Counter diff --git a/io/papermc/paper/threadedregions/RegionizedWorldData.java b/io/papermc/paper/threadedregions/RegionizedWorldData.java -index aee3f98173de1b2c5a5278919a5d21b4bca03b7b..24a8ea9a709ed9637a8e3814c6f8fe9f9f9dedff 100644 +index 782f6810d4ed99052169c7099318dc8a2f8937b0..e166c430938eb22bb90d651298562d704fa8f1d9 100644 --- a/io/papermc/paper/threadedregions/RegionizedWorldData.java +++ b/io/papermc/paper/threadedregions/RegionizedWorldData.java -@@ -525,6 +525,9 @@ public final class RegionizedWorldData { - public final Map itemEntityMovementTrackerMap = new it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenHashMap<>(); +@@ -564,6 +564,9 @@ public final class RegionizedWorldData { + } // Luminol end + public int uniqueId = -1; // Lophine - Global Entities Counter @@ -18,7 +18,7 @@ index aee3f98173de1b2c5a5278919a5d21b4bca03b7b..24a8ea9a709ed9637a8e3814c6f8fe9f public final TickRegions.TickRegionData regionData; public RegionizedWorldData(final ServerLevel world, final TickRegions.TickRegionData regionData) { -@@ -537,6 +540,15 @@ public final class RegionizedWorldData { +@@ -576,6 +579,15 @@ public final class RegionizedWorldData { this.turbo = new io.papermc.paper.redstone.RedstoneWireTurbo((RedStoneWireBlock)Blocks.REDSTONE_WIRE); this.regionData = regionData; @@ -97,7 +97,7 @@ index f4c9c551fc39bae38e283ccbbc3cd116f0536a64..db13211b24208d8addd3c210155bc244 NaturalSpawner.spawnForChunk(this.level, chunk, spawnState, spawnCategories); } diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java -index 9756caff0b7403c212987e58c08a2da09bdeb962..4acd4718628b160c482b04da6ba905687b61bbad 100644 +index d8a2f8a1fbf0189e86ccbce70a84641a143cdb91..76930a603a5bf07e62e8ef3a41bbb5213dcc8aea 100644 --- a/net/minecraft/server/level/ServerLevel.java +++ b/net/minecraft/server/level/ServerLevel.java @@ -765,6 +765,11 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe diff --git a/lophine-server/minecraft-patches/features/0041-Add-null-check-in-RegionizedWorldData-conections.patch b/lophine-server/minecraft-patches/features/0041-Add-null-check-in-RegionizedWorldData-conections.patch index cfe161c..ccf4be2 100644 --- a/lophine-server/minecraft-patches/features/0041-Add-null-check-in-RegionizedWorldData-conections.patch +++ b/lophine-server/minecraft-patches/features/0041-Add-null-check-in-RegionizedWorldData-conections.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Add null check in RegionizedWorldData >> conections some of our function patches will crash because of get null in conn.getPlayer(), then when we process player.chunkPosition() will get NPE, so we need to fix it. diff --git a/io/papermc/paper/threadedregions/RegionizedWorldData.java b/io/papermc/paper/threadedregions/RegionizedWorldData.java -index 24a8ea9a709ed9637a8e3814c6f8fe9f9f9dedff..35f8bcb5569987e4096ea06bab4e6693dfb97695 100644 +index e166c430938eb22bb90d651298562d704fa8f1d9..bb6e46644f23fcf3d785f20003f01ea22ee75430 100644 --- a/io/papermc/paper/threadedregions/RegionizedWorldData.java +++ b/io/papermc/paper/threadedregions/RegionizedWorldData.java -@@ -229,14 +229,17 @@ public final class RegionizedWorldData { +@@ -239,14 +239,17 @@ public final class RegionizedWorldData { regionToData.get(CoordinateUtils.getChunkKey(pos.x >> chunkToRegionShift, pos.z >> chunkToRegionShift)).itemEntityMovementTrackerMap.put(key, tracker); } // Luminol end @@ -27,7 +27,7 @@ index 24a8ea9a709ed9637a8e3814c6f8fe9f9f9dedff..35f8bcb5569987e4096ea06bab4e6693 } // entities for (final ServerPlayer player : from.localPlayers) { -@@ -247,6 +250,13 @@ public final class RegionizedWorldData { +@@ -257,6 +260,13 @@ public final class RegionizedWorldData { into.localPlayers.add(player); player.getBukkitEntity().updateRegion(into); into.nearbyPlayers.addPlayer(player); @@ -41,7 +41,7 @@ index 24a8ea9a709ed9637a8e3814c6f8fe9f9f9dedff..35f8bcb5569987e4096ea06bab4e6693 } for (final Entity entity : from.allEntities) { final ChunkPos pos = entity.chunkPosition(); -@@ -585,6 +595,7 @@ public final class RegionizedWorldData { +@@ -624,6 +634,7 @@ public final class RegionizedWorldData { private static void cleanUpConnection(final Connection conn) { // note: ALL connections HERE have a player final ServerPlayer player = conn.getPlayer();