9
0
mirror of https://github.com/Winds-Studio/Leaf.git synced 2025-12-27 19:09:22 +00:00
This commit is contained in:
Dreeam
2024-06-21 20:50:43 +08:00
parent 11cbe4af4c
commit 8826f78ace
4 changed files with 87 additions and 135 deletions

View File

@@ -30,6 +30,32 @@ Remove-Timings.patch
Remove-Mojang-Profiler.patch
MC-121706-Fix-mobs-not-looking-up-and-down-when-stra.patch
diff --git a/build.gradle.kts b/build.gradle.kts
index 397d93b63e412abb96cc8366c51c3927d760afb8..8c4d68b7293aba6622689b81c8b7cab08b4b92dc 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -57,6 +57,12 @@ dependencies {
runtimeOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.18")
runtimeOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.9.18")
+ // Purpur start
+ implementation("org.mozilla:rhino-runtime:1.7.15")
+ implementation("org.mozilla:rhino-engine:1.7.15")
+ implementation("dev.omega24:upnp4j:1.0")
+ // Purpur end
+
testImplementation("io.github.classgraph:classgraph:4.8.47") // Paper - mob goal test
testImplementation("org.junit.jupiter:junit-jupiter:5.10.2")
testImplementation("org.hamcrest:hamcrest:2.2")
@@ -164,7 +170,7 @@ fun TaskContainer.registerRunTask(
name: String,
block: JavaExec.() -> Unit
): TaskProvider<JavaExec> = register<JavaExec>(name) {
- group = "paper"
+ group = "paperweight" // Purpur
mainClass.set("org.bukkit.craftbukkit.Main")
standardInput = System.`in`
workingDir = rootProject.layout.projectDirectory
diff --git a/src/log4jPlugins/java/org/purpurmc/purpur/gui/HighlightErrorConverter.java b/src/log4jPlugins/java/org/purpurmc/purpur/gui/HighlightErrorConverter.java
new file mode 100644
index 0000000000000000000000000000000000000000..15a226e3854d731f7724025ea3459c8ace07630c
@@ -136,6 +162,18 @@ index 06455d65c4605ce092bf5300d432087f24186741..750fd2809f6d5d5896904cad0f65029b
ignored.add("goal_selector_1");
ignored.add("goal_selector_2");
diff --git a/src/main/java/io/papermc/paper/ServerBuildInfoImpl.java b/src/main/java/io/papermc/paper/ServerBuildInfoImpl.java
index 023016de1732f0b299428ec0544128cc17407333..9d003c2ae45a057c0274a34fe5012cf17d1a2681 100644
--- a/src/main/java/io/papermc/paper/ServerBuildInfoImpl.java
+++ b/src/main/java/io/papermc/paper/ServerBuildInfoImpl.java
@@ -32,6 +32,7 @@ public record ServerBuildInfoImpl(
private static final String BRAND_PAPER_NAME = "Paper";
private static final String BRAND_GALE_NAME = "Gale"; // Gale - branding changes
+ private static final String BRAND_PURPUR_NAME = "Purpur"; // Purpur
private static final String BRAND_LEAF_NAME = "Leaf"; // Leaf
private static final String BUILD_DEV = "DEV";
diff --git a/src/main/java/io/papermc/paper/command/PaperPluginsCommand.java b/src/main/java/io/papermc/paper/command/PaperPluginsCommand.java
index f0fce4113fb07c64adbec029d177c236cbdcbae8..e94224ed280247ee69dfdff8dc960f2b8729be33 100644
--- a/src/main/java/io/papermc/paper/command/PaperPluginsCommand.java
@@ -1587,25 +1625,25 @@ index a720a05c47b2137a07515461960603cc5c939d16..b66fdb789fcb460d63fd81540112d655
try {
String channels = payload.toString(com.google.common.base.Charsets.UTF_8);
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index deb4282880aa5f28100a202c73514c892f487be0..dc4a4d7de838d8756b0f5cbbc149b1d5cd2b4dd6 100644
index deb4282880aa5f28100a202c73514c892f487be0..554bff40f0dab4f49ed201cc6d6508ec0ec70f0a 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -337,6 +337,20 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
private boolean justTeleported = false;
// CraftBukkit end
+ // Purpur start
+ // Purpur start
+ private final com.google.common.cache.LoadingCache<CraftPlayer, Boolean> kickPermissionCache = com.google.common.cache.CacheBuilder.newBuilder()
+ .maximumSize(1000)
+ .expireAfterWrite(1, java.util.concurrent.TimeUnit.MINUTES)
+ .build(
+ new com.google.common.cache.CacheLoader<>() {
+ @Override
+ public Boolean load(CraftPlayer player) {
+ return player.hasPermission("purpur.bypassIdleKick");
+ }
+ }
+ );
+ .maximumSize(1000)
+ .expireAfterWrite(1, java.util.concurrent.TimeUnit.MINUTES)
+ .build(
+ new com.google.common.cache.CacheLoader<>() {
+ @Override
+ public Boolean load(CraftPlayer player) {
+ return player.hasPermission("purpur.bypassIdleKick");
+ }
+ }
+ );
+ // Purpur end
+
@Override
@@ -2574,10 +2612,10 @@ index 15844971ce2cca8c679ad3aaa2dfe160e6d0b564..3003f2ab38008b761bee49823b49edae
if (optional.isPresent()) {
ItemStack itemstack = ((EnchantedItemInUse) optional.get()).itemStack();
diff --git a/src/main/java/net/minecraft/world/entity/GlowSquid.java b/src/main/java/net/minecraft/world/entity/GlowSquid.java
index 09fdea983772612ef3fff6b2da3cf469a34e4ec0..3e2ea26c23e88c395856b65001f2895db6a52bd4 100644
index 09fdea983772612ef3fff6b2da3cf469a34e4ec0..b69d924fa8034eabbf4aab8d3434f4f4e2529373 100644
--- a/src/main/java/net/minecraft/world/entity/GlowSquid.java
+++ b/src/main/java/net/minecraft/world/entity/GlowSquid.java
@@ -23,6 +23,39 @@ public class GlowSquid extends Squid {
@@ -23,6 +23,38 @@ public class GlowSquid extends Squid {
super(type, world);
}
@@ -2587,7 +2625,6 @@ index 09fdea983772612ef3fff6b2da3cf469a34e4ec0..3e2ea26c23e88c395856b65001f2895d
+ return level().purpurConfig.glowSquidRidable;
+ }
+
+
+ @Override
+ public boolean isControllable() {
+ return level().purpurConfig.glowSquidControllable;

View File

@@ -86,15 +86,16 @@ index 096c89bd01cec2abd151bf6fffc4847d1bcd548f..cd0a8a6a1be75cab8bbb8ee3ac17bb73
this.values[this.vp++ & 0xFF] = (int)(l * 100L / Runtime.getRuntime().maxMemory());
this.repaint();
diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
index 8367edebdfa2f022bcda1ec2b0e7881285d8bb9c..e1d2c90295580e130c7f317fa1164c395caea85f 100644
index 8367edebdfa2f022bcda1ec2b0e7881285d8bb9c..023533e9ea342c8ff0d993544c45416af88bf5ab 100644
--- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java
+++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
@@ -458,7 +458,7 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
@@ -458,7 +458,8 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
this.lastSpawnState = spawnercreature_d;
// Gale start - MultiPaper - skip unnecessary mob spawning computations
} else {
- spawnercreature_d = null;
+ lastSpawnState = null; // Leaf - Pufferfish - Optimize mob spawning
+ spawnercreature_d = null; // Dreeam TODO
+ //lastSpawnState = null; // Leaf - Pufferfish - Optimize mob spawning // Dreeam TODO
}
// Gale end - MultiPaper - skip unnecessary mob spawning computations
@@ -293,15 +294,16 @@ index 1e1824eb80696452951cdbbdacad952ae0a7482b..b38110d4f01cae6746ccd38b5ae047cf
@Override
protected void registerGoals() {
diff --git a/src/main/java/net/minecraft/world/entity/npc/VillagerProfession.java b/src/main/java/net/minecraft/world/entity/npc/VillagerProfession.java
index 3ca83269311cbc18c9ef3ce62cff6a2d4dc0a683..a636ab87d21c67b152b40b77e62fa8043ca4211e 100644
index 3ca83269311cbc18c9ef3ce62cff6a2d4dc0a683..28f6b54e16fa49388690679fb7a25941d0868add 100644
--- a/src/main/java/net/minecraft/world/entity/npc/VillagerProfession.java
+++ b/src/main/java/net/minecraft/world/entity/npc/VillagerProfession.java
@@ -31,7 +31,7 @@ public record VillagerProfession(
@@ -31,7 +31,8 @@ public record VillagerProfession(
public static final VillagerProfession ARMORER = register("armorer", PoiTypes.ARMORER, SoundEvents.VILLAGER_WORK_ARMORER);
public static final VillagerProfession BUTCHER = register("butcher", PoiTypes.BUTCHER, SoundEvents.VILLAGER_WORK_BUTCHER);
public static final VillagerProfession CARTOGRAPHER = register("cartographer", PoiTypes.CARTOGRAPHER, SoundEvents.VILLAGER_WORK_CARTOGRAPHER);
- public static final VillagerProfession CLERIC = register("cleric", PoiTypes.CLERIC, ImmutableSet.of(Items.NETHER_WART), ImmutableSet.of(Blocks.SOUL_SAND), SoundEvents.VILLAGER_WORK_CLERIC); // Purpur
+ public static final VillagerProfession CLERIC = register("cleric", PoiTypes.CLERIC, new Item[] {Items.NETHER_WART}, Blocks.SOUL_SAND, SoundEvents.VILLAGER_WORK_CLERIC); // Purpur // Leaf - sync with Gale's Optimize-villager-data-storage.patch
+ public static final VillagerProfession CLERIC = register("cleric", PoiTypes.CLERIC, ImmutableSet.of(Items.NETHER_WART), ImmutableSet.of(Blocks.SOUL_SAND), SoundEvents.VILLAGER_WORK_CLERIC); // Purpur // Dreeam TODO
+ //public static final VillagerProfession CLERIC = register("cleric", PoiTypes.CLERIC, new Item[] {Items.NETHER_WART}, Blocks.SOUL_SAND, SoundEvents.VILLAGER_WORK_CLERIC); // Purpur // Leaf - sync with Gale's Optimize-villager-data-storage.patch // Dreeam TODO
public static final VillagerProfession FARMER = register(
"farmer",
PoiTypes.FARMER,

View File

@@ -1136,37 +1136,20 @@ index 79057c2db0e6163f2d5466f50716a4ce230bfdf2..55ae1991316e5e67159c5babbc501190
}
diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
index e1d2c90295580e130c7f317fa1164c395caea85f..121db0c3b0416e43a7cac8e33d498bbe6765602f 100644
index 023533e9ea342c8ff0d993544c45416af88bf5ab..c60c9c6eaecadcf6c8ababd803aeeaf49befb6c7 100644
--- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java
+++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
@@ -355,12 +355,25 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
}
@@ -356,9 +356,7 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
public void save(boolean flush) {
+<<<<<<< HEAD
// Paper - rewrite chunk system
try (co.aikar.timings.Timing timed = level.timings.chunkSaveData.startTiming()) { // Paper - Timings
+=======
+ this.runDistanceManagerUpdates();
+>>>>>>> Remove Timings
- try (co.aikar.timings.Timing timed = level.timings.chunkSaveData.startTiming()) { // Paper - Timings
this.chunkMap.saveAllChunks(flush);
- } // Paper - Timings
}
+<<<<<<< HEAD
+=======
+ // Paper start - Incremental chunk and player saving; duplicate save, but call incremental
+ public void saveIncrementally() {
+ this.runDistanceManagerUpdates();
+ this.chunkMap.saveIncrementally();
+ }
+ // Paper end - Incremental chunk and player saving
+
+>>>>>>> Remove Timings
@Override
public void close() throws IOException {
// CraftBukkit start
@@ -382,24 +395,23 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
@@ -382,24 +380,18 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
@Override
public void tick(BooleanSupplier shouldKeepTicking, boolean tickChunks) {
@@ -1178,12 +1161,8 @@ index e1d2c90295580e130c7f317fa1164c395caea85f..121db0c3b0416e43a7cac8e33d498bbe
this.runDistanceManagerUpdates();
- this.level.timings.doChunkMap.stopTiming(); // Spigot
if (tickChunks) {
+<<<<<<< HEAD
this.level.timings.chunks.startTiming(); // Paper - timings
- this.level.timings.chunks.startTiming(); // Paper - timings
((ca.spottedleaf.moonrise.patches.chunk_system.level.ChunkSystemServerLevel)this.level).moonrise$getPlayerChunkLoader().tick(); // Paper - rewrite chunk system
+=======
+ this.chunkMap.level.playerChunkLoader.tick(); // Paper - replace player chunk loader - this is mostly required to account for view distance changes
+>>>>>>> Remove Timings
this.tickChunks();
- this.level.timings.chunks.stopTiming(); // Paper - timings
this.chunkMap.tick();
@@ -1195,20 +1174,15 @@ index e1d2c90295580e130c7f317fa1164c395caea85f..121db0c3b0416e43a7cac8e33d498bbe
this.clearCache();
}
@@ -409,9 +421,12 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
this.lastInhabitedUpdate = i;
@@ -411,7 +403,6 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
if (!this.level.isDebug()) {
+<<<<<<< HEAD
List<ServerChunkCache.ChunkAndHolder> list = Lists.newArrayListWithCapacity(this.chunkMap.size());
Iterator iterator = this.chunkMap.getChunks().iterator();
if (this.level.getServer().tickRateManager().runsNormally()) this.level.timings.chunkTicks.startTiming(); // Paper
+=======
+>>>>>>> Remove Timings
- if (this.level.getServer().tickRateManager().runsNormally()) this.level.timings.chunkTicks.startTiming(); // Paper
while (iterator.hasNext()) {
ChunkHolder playerchunk = (ChunkHolder) iterator.next();
@@ -429,7 +444,6 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
@@ -429,7 +420,6 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
boolean flagAndHasNaturalSpawn = flag && this.anySpawnCategoryIsSpawnedThisTick();
if (flagAndHasNaturalSpawn) {
// Gale end - MultiPaper - skip unnecessary mob spawning computations
@@ -1216,7 +1190,7 @@ index e1d2c90295580e130c7f317fa1164c395caea85f..121db0c3b0416e43a7cac8e33d498bbe
int k = this.distanceManager.getNaturalSpawnChunkCount();
// Paper start - Optional per player mob spawns
int naturalSpawnChunkCount = k;
@@ -453,7 +467,6 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
@@ -453,7 +443,6 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
spawnercreature_d = NaturalSpawner.createState(naturalSpawnChunkCount, this.level.getAllEntities(), this::getFullChunk, !this.level.paperConfig().entities.spawning.perPlayerMobSpawns ? new LocalMobCapCalculator(this.chunkMap) : null, false);
}
// Paper end - Optional per player mob spawns
@@ -1224,21 +1198,11 @@ index e1d2c90295580e130c7f317fa1164c395caea85f..121db0c3b0416e43a7cac8e33d498bbe
this.lastSpawnState = spawnercreature_d;
// Gale start - MultiPaper - skip unnecessary mob spawning computations
@@ -492,20 +505,79 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
@@ -493,19 +482,14 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
}
}
}
+<<<<<<< HEAD
this.level.timings.chunkTicks.stopTiming(); // Paper
+=======
+ // Paper start - optimise chunk tick iteration
+ } finally {
+ if (chunkIterator instanceof io.papermc.paper.util.maplist.IteratorSafeOrderedReferenceSet.Iterator safeIterator) {
+ safeIterator.finishedIterating();
+ }
+ }
+ // Paper end - optimise chunk tick iteration
+>>>>>>> Remove Timings
- this.level.timings.chunkTicks.stopTiming(); // Paper
if (flag) {
- try (co.aikar.timings.Timing ignored = this.level.timings.miscMobSpawning.startTiming()) { // Paper - timings
@@ -1247,67 +1211,15 @@ index e1d2c90295580e130c7f317fa1164c395caea85f..121db0c3b0416e43a7cac8e33d498bbe
}
}
+<<<<<<< HEAD
list.forEach((chunkproviderserver_a1) -> {
this.level.timings.broadcastChunkUpdates.startTiming(); // Paper - timing
- this.level.timings.broadcastChunkUpdates.startTiming(); // Paper - timing
chunkproviderserver_a1.holder.broadcastChanges(chunkproviderserver_a1.chunk);
this.level.timings.broadcastChunkUpdates.stopTiming(); // Paper - timing
- this.level.timings.broadcastChunkUpdates.stopTiming(); // Paper - timing
});
+=======
+ // Paper - optimise chunk tick iteration
+ // Paper start - optimise chunk tick iteration
+ if (!this.chunkMap.needsChangeBroadcasting.isEmpty()) {
+ it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet<ChunkHolder> copy = this.chunkMap.needsChangeBroadcasting.clone();
+ this.chunkMap.needsChangeBroadcasting.clear();
+ for (ChunkHolder holder : copy) {
+ holder.broadcastChanges(holder.getFullChunkNowUnchecked()); // LevelChunks are NEVER unloaded
+ if (holder.needsBroadcastChanges()) {
+ // I DON'T want to KNOW what DUMB plugins might be doing.
+ this.chunkMap.needsChangeBroadcasting.add(holder);
+ }
+ }
+ }
+ // Paper end - optimise chunk tick iteration
+ // Paper - optimise chunk tick iteration
+ }
+
+ // Pufferfish start - optimize mob spawning
+ if (org.dreeam.leaf.config.modules.async.AsyncMobSpawning.enabled) {
+ for (ServerPlayer player : this.level.players) {
+ // Paper start - per player mob spawning backoff
+ for (int ii = 0; ii < ServerPlayer.MOBCATEGORY_TOTAL_ENUMS; ii++) {
+ player.mobCounts[ii] = 0;
+
+ int newBackoff = player.mobBackoffCounts[ii] - 1; // TODO make configurable bleed // TODO use nonlinear algorithm?
+ if (newBackoff < 0) {
+ newBackoff = 0;
+ }
+ player.mobBackoffCounts[ii] = newBackoff;
+ }
+ // Paper end - per player mob spawning backoff
+ }
+ if (firstRunSpawnCounts) {
+ firstRunSpawnCounts = false;
+ _pufferfish_spawnCountsReady.set(true);
+ }
+ if (_pufferfish_spawnCountsReady.getAndSet(false)) {
+ net.minecraft.server.MinecraftServer.getServer().mobSpawnExecutor.submit(() -> {
+ int mapped = distanceManager.getNaturalSpawnChunkCount();
+ io.papermc.paper.util.maplist.IteratorSafeOrderedReferenceSet.Iterator<Entity> objectiterator =
+ level.entityTickList.entities.iterator(io.papermc.paper.util.maplist.IteratorSafeOrderedReferenceSet.ITERATOR_FLAG_SEE_ADDITIONS);
+ gg.pufferfish.pufferfish.util.IterableWrapper<Entity> wrappedIterator =
+ new gg.pufferfish.pufferfish.util.IterableWrapper<>(objectiterator);
+ lastSpawnState = NaturalSpawner.createState(mapped, wrappedIterator, this::getFullChunk, null, true);
+ objectiterator.finishedIterating();
+ _pufferfish_spawnCountsReady.set(true);
+ });
+ }
+>>>>>>> Remove Timings
}
}
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 528e6e37b5552fe8179b472ec5fbbb90fa1b7b5b..4fea04aaf08c8a8e7bbb2add980f28fca08dd97f 100644
index 528e6e37b5552fe8179b472ec5fbbb90fa1b7b5b..b5acade29b8fce1bc9c960f0395cf1fabd4d49ac 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -1,7 +1,6 @@
@@ -1454,16 +1366,17 @@ index 528e6e37b5552fe8179b472ec5fbbb90fa1b7b5b..4fea04aaf08c8a8e7bbb2add980f28fc
if (progressListener != null) {
progressListener.progressStartNoAbort(Component.translatable("menu.savingLevel"));
}
@@ -1298,9 +1264,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf.
@@ -1298,10 +1264,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf.
progressListener.progressStage(Component.translatable("menu.savingChunks"));
}
- timings.worldSaveChunks.startTiming(); // Paper
if (!close) { chunkproviderserver.save(flush); } // Paper - add close param
- timings.worldSaveChunks.stopTiming(); // Paper
}// Paper
- }// Paper
// Paper - rewrite chunk system
}
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index d2153c3e909e7e75529ce6e41d649bf54b48752b..33fd3c88f84a5d6f7f7c0212f364a83870c88fc7 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Bump Dependencies
diff --git a/build.gradle.kts b/build.gradle.kts
index 397d93b63e412abb96cc8366c51c3927d760afb8..d6a307d6f949348559d3dc3e9bc6a8f98c8ac4f4 100644
index 8c4d68b7293aba6622689b81c8b7cab08b4b92dc..989cf44a97e046ff5204184a5ae42504814aebd8 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -25,7 +25,7 @@ dependencies {
@@ -17,7 +17,7 @@ index 397d93b63e412abb96cc8366c51c3927d760afb8..d6a307d6f949348559d3dc3e9bc6a8f9
implementation("net.minecrell:terminalconsoleappender:1.3.0")
implementation("net.kyori:adventure-text-serializer-ansi:4.17.0") // Keep in sync with adventureVersion from Paper-API build file
/*
@@ -34,33 +34,43 @@ dependencies {
@@ -34,28 +34,32 @@ dependencies {
all its classes to check if they are plugins.
Scanning takes about 1-2 seconds so adding this speeds up the server start.
*/
@@ -57,14 +57,14 @@ index 397d93b63e412abb96cc8366c51c3927d760afb8..d6a307d6f949348559d3dc3e9bc6a8f9
+ runtimeOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.9.20")
+ // Leaf end
// Purpur start
implementation("org.mozilla:rhino-runtime:1.7.15")
@@ -63,10 +67,10 @@ dependencies {
implementation("dev.omega24:upnp4j:1.0")
// Purpur end
- testImplementation("io.github.classgraph:classgraph:4.8.47") // Paper - mob goal test
- testImplementation("org.junit.jupiter:junit-jupiter:5.10.2")
+ // Purpur start
+ implementation("org.mozilla:rhino-runtime:1.7.15")
+ implementation("org.mozilla:rhino-engine:1.7.15")
+ implementation("dev.omega24:upnp4j:1.0")
+ // Purpur end
+
+ testImplementation("io.github.classgraph:classgraph:4.8.173") // Paper - mob goal test // Leaf - Bump Dependencies
+ testImplementation("org.junit.jupiter:junit-jupiter:5.11.0-M2") // Leaf - Bump Dependencies
testImplementation("org.hamcrest:hamcrest:2.2")
@@ -73,7 +73,7 @@ index 397d93b63e412abb96cc8366c51c3927d760afb8..d6a307d6f949348559d3dc3e9bc6a8f9
testImplementation("org.ow2.asm:asm-tree:9.7")
testImplementation("org.junit-pioneer:junit-pioneer:2.2.0") // Paper - CartesianTest
implementation("net.neoforged:srgutils:1.0.9") // Paper - mappings handling
@@ -71,6 +81,8 @@ dependencies {
@@ -77,6 +81,8 @@ dependencies {
implementation("io.papermc:reflection-rewriter-runtime:$reflectionRewriterVersion")
implementation("io.papermc:reflection-rewriter-proxy-generator:$reflectionRewriterVersion")
// Paper end - Remap reflection
@@ -82,7 +82,7 @@ index 397d93b63e412abb96cc8366c51c3927d760afb8..d6a307d6f949348559d3dc3e9bc6a8f9
}
paperweight {
@@ -264,3 +276,8 @@ sourceSets {
@@ -270,3 +276,8 @@ sourceSets {
}
}
// Gale end - package license into jar