From bd066ea8e1c21811459b8fe51bd76972464d5027 Mon Sep 17 00:00:00 2001 From: bonan Date: Thu, 12 Jun 2025 19:50:27 +0200 Subject: [PATCH] Update upstream (1.21.6) --- .github/workflows/build.yml | 4 +- build.gradle.kts | 5 +- gradle.properties | 6 +- gradle/wrapper/gradle-wrapper.properties | 2 +- nabulus-api/build.gradle.kts.patch | 17 +- nabulus-server/build.gradle.kts.patch | 36 +++-- .../0001-Separate-creative-levels.patch | 146 +++++++++++------- ...ers-in-playerlist-and-tab-suggestion.patch | 34 ++-- ...004-Add-silent-chest-flag-to-players.patch | 16 +- ...n-attempts-after-consistent-failures.patch | 12 +- ...k-rate-options-for-OneShot-behaviors.patch | 2 +- ...on-t-show-smoke-for-silent-fireworks.patch | 4 +- ...llow-players-to-hide-wither-boss-bar.patch | 8 +- ...ers-in-playerlist-and-tab-suggestion.patch | 14 +- ...Fix-pardoning-uncached-game-profiles.patch | 4 +- 15 files changed, 172 insertions(+), 138 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 65a785a..a6213b8 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -9,9 +9,9 @@ jobs: - name: Checkout Git Repository uses: actions/checkout@v2 - name: Validate Gradle wrapper - uses: gradle/wrapper-validation-action@v1 + uses: gradle/actions/wrapper-validation@v4 - name: Cache Gradle - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: | ~/.gradle/caches diff --git a/build.gradle.kts b/build.gradle.kts index 5899222..3045ec6 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -2,7 +2,7 @@ import org.gradle.api.tasks.testing.logging.TestExceptionFormat import org.gradle.api.tasks.testing.logging.TestLogEvent plugins { - id("io.papermc.paperweight.patcher") version "2.0.0-beta.14" + id("io.papermc.paperweight.patcher") version "2.0.0-beta.17" } paperweight { @@ -53,6 +53,7 @@ subprojects { options.encoding = Charsets.UTF_8.name() options.release = 21 options.isFork = true + options.compilerArgs.addAll(listOf("-Xlint:-deprecation", "-Xlint:-removal")) } tasks.withType { options.encoding = Charsets.UTF_8.name() @@ -78,4 +79,4 @@ subprojects { */ } } -} \ No newline at end of file +} diff --git a/gradle.properties b/gradle.properties index 8d4a996..eefbf78 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,8 +1,8 @@ group=com.froobworld.nabulus -version=1.21.4-R0.1-SNAPSHOT +version=1.21.6-R0.1-SNAPSHOT -mcVersion=1.21.4 -paperRef=76753219c42b58611b5855c14a50661bcfc47026 +mcVersion=1.21.6 +paperRef=4e1a2555be7ff1e6960714ee7fbabc13fa25d4c2 org.gradle.configuration-cache=true org.gradle.caching=true diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index cea7a79..ca025c8 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/nabulus-api/build.gradle.kts.patch b/nabulus-api/build.gradle.kts.patch index cdd6e2a..a1c3bfd 100644 --- a/nabulus-api/build.gradle.kts.patch +++ b/nabulus-api/build.gradle.kts.patch @@ -1,24 +1,23 @@ --- a/paper-api/build.gradle.kts +++ b/paper-api/build.gradle.kts -@@ -93,7 +_,7 @@ +@@ -90,7 +_,7 @@ testRuntimeOnly("org.junit.platform:junit-platform-launcher") } --val generatedApiPath: java.nio.file.Path = layout.projectDirectory.dir("src/generated/java").asFile.toPath() -+val generatedApiPath: java.nio.file.Path = rootProject.layout.projectDirectory.dir("paper-api/src/generated/java").asFile.toPath() +-val generatedDir: java.nio.file.Path = layout.projectDirectory.dir("src/generated/java").asFile.toPath() ++val generatedDir: java.nio.file.Path = rootProject.layout.projectDirectory.dir("paper-api/src/generated/java").asFile.toPath() idea { module { - generatedSourceDirs.add(generatedApiPath.toFile()) -@@ -103,6 +_,19 @@ + generatedSourceDirs.add(generatedDir.toFile()) +@@ -100,6 +_,18 @@ main { java { - srcDir(generatedApiPath) + srcDir(generatedDir) + srcDir(file("../paper-api/src/main/java")) + } + resources { + srcDir(file("../paper-api/src/main/resources")) + } -+ + } + test { + java { @@ -29,7 +28,7 @@ } } } -@@ -169,7 +_,7 @@ +@@ -166,7 +_,7 @@ tasks.withType { val options = options as StandardJavadocDocletOptions @@ -38,7 +37,7 @@ options.use() options.isDocFilesSubDirs = true options.links( -@@ -202,11 +_,11 @@ +@@ -199,11 +_,11 @@ } // workaround for https://github.com/gradle/gradle/issues/4046 diff --git a/nabulus-server/build.gradle.kts.patch b/nabulus-server/build.gradle.kts.patch index 15850ca..cb8cbe5 100644 --- a/nabulus-server/build.gradle.kts.patch +++ b/nabulus-server/build.gradle.kts.patch @@ -1,9 +1,10 @@ --- a/paper-server/build.gradle.kts +++ b/paper-server/build.gradle.kts -@@ -21,6 +_,17 @@ - // macheOldPath = file("F:\\Projects\\PaperTooling\\mache\\versions\\1.21.4\\src\\main\\java") - // gitFilePatches = true - +@@ -43,6 +_,16 @@ + "org.bukkit.craftbukkit", + "org.spigotmc", + ) ++ + val fork = forks.register("nabulus") { + upstream.patchDir("paperServer") { + upstreamPath = "paper-server" @@ -11,14 +12,12 @@ + patchesDir = rootDirectory.dir("nabulus-server/paper-patches") + outputDir = rootDirectory.dir("paper-server") + } -+ } -+ -+ activeFork = fork -+ - spigot { - buildDataRef = "3edaf46ec1eed4115ce1b18d2846cded42577e42" - packageVersion = "v1_21_R3" // also needs to be updated in MappingEnvironment -@@ -101,7 +_,20 @@ ++ } ++ activeFork = fork + } + + tasks.generateDevelopmentBundle { +@@ -107,7 +_,20 @@ } } @@ -40,7 +39,7 @@ configurations.named(log4jPlugins.compileClasspathConfigurationName) { extendsFrom(configurations.compileClasspath.get()) } -@@ -119,7 +_,7 @@ +@@ -129,7 +_,7 @@ } dependencies { @@ -49,7 +48,7 @@ implementation("ca.spottedleaf:concurrentutil:0.0.3") implementation("org.jline:jline-terminal-ffm:3.27.1") // use ffm on java 22+ implementation("org.jline:jline-terminal-jni:3.27.1") // fall back to jni on java 21 -@@ -189,14 +_,14 @@ +@@ -205,14 +_,14 @@ val gitBranch = git.exec(providers, "rev-parse", "--abbrev-ref", "HEAD").get().trim() attributes( "Main-Class" to "org.bukkit.craftbukkit.Main", @@ -66,3 +65,12 @@ "Build-Number" to (build ?: ""), "Build-Time" to buildTime.toString(), "Git-Branch" to gitBranch, +@@ -271,7 +_,7 @@ + jvmArgumentProviders.add(provider) + } + +-val generatedDir: java.nio.file.Path = layout.projectDirectory.dir("src/generated/java").asFile.toPath() ++val generatedDir: java.nio.file.Path = layout.projectDirectory.dir("../paper-server/src/generated/java").asFile.toPath() + idea { + module { + generatedSourceDirs.add(generatedDir.toFile()) diff --git a/nabulus-server/minecraft-patches/features/0001-Separate-creative-levels.patch b/nabulus-server/minecraft-patches/features/0001-Separate-creative-levels.patch index bfdada3..e924abb 100644 --- a/nabulus-server/minecraft-patches/features/0001-Separate-creative-levels.patch +++ b/nabulus-server/minecraft-patches/features/0001-Separate-creative-levels.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Separate creative levels diff --git a/ca/spottedleaf/dataconverter/minecraft/versions/V1022.java b/ca/spottedleaf/dataconverter/minecraft/versions/V1022.java -index 4f35484ed524dbf09cf9e8b1bb999fc98ec0bb0f..0ca38444ac9e9282d1bb4500eb0740d0c954e0ce 100644 +index dab97581780d0d3156335fe0fbb84ea0823c5585..4917c74145220fda494bcc17382ba2a9436507d1 100644 --- a/ca/spottedleaf/dataconverter/minecraft/versions/V1022.java +++ b/ca/spottedleaf/dataconverter/minecraft/versions/V1022.java @@ -17,6 +17,7 @@ public final class V1022 { @@ -16,11 +16,40 @@ index 4f35484ed524dbf09cf9e8b1bb999fc98ec0bb0f..0ca38444ac9e9282d1bb4500eb0740d0 WalkerUtils.convert(MCTypeRegistry.ENTITY, data, "ShoulderEntityLeft", fromVersion, toVersion); WalkerUtils.convert(MCTypeRegistry.ENTITY, data, "ShoulderEntityRight", fromVersion, toVersion); +diff --git a/ca/spottedleaf/dataconverter/minecraft/versions/V4312.java b/ca/spottedleaf/dataconverter/minecraft/versions/V4312.java +index 7015d97cb5b97d59ca41f63ba23da1edfb6bae0a..98999e673ba29329948cbba8838fc1f6ed419175 100644 +--- a/ca/spottedleaf/dataconverter/minecraft/versions/V4312.java ++++ b/ca/spottedleaf/dataconverter/minecraft/versions/V4312.java +@@ -27,7 +27,14 @@ public final class V4312 { + + @Override + public MapType convert(final MapType data, final long sourceVersion, final long toVersion) { +- final ListType inventory = data.getListUnchecked("Inventory"); ++ // Nabulus start ++ convertInventory(data, "Inventory", "equipment"); ++ convertInventory(data, "Nabulus.CreativeLevelInventory", "Nabulus.CreativeLevelEquipment"); ++ return null; ++ } ++ private Void convertInventory(final MapType data, String inventoryDataKey, String equipmentDataKey) { ++ final ListType inventory = data.getListUnchecked(inventoryDataKey); ++ // Nabulus end + if (inventory == null) { + return null; + } +@@ -53,7 +60,7 @@ public final class V4312 { + equipment.setMap(equipmentKey, item); + } + +- data.setMap("equipment", equipment); ++ data.setMap(equipmentDataKey, equipment); // Nabulus + + return null; + } diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java -index dece7eb69603ffc8e50e8096cb07c02a897bf49e..530e778d27e8a869ff8f9b46104cdb2970b7b699 100644 +index f3eca351021c37b64315872d075bd0a84aeee267..717149111280ac10f009d565dff8e26e0cb722b0 100644 --- a/net/minecraft/server/level/ServerPlayer.java +++ b/net/minecraft/server/level/ServerPlayer.java -@@ -739,6 +739,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc +@@ -745,6 +745,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc } this.setLevel(level); this.gameMode.setLevel(level); @@ -28,7 +57,7 @@ index dece7eb69603ffc8e50e8096cb07c02a897bf49e..530e778d27e8a869ff8f9b46104cdb29 } // CraftBukkit end -@@ -1455,6 +1456,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc +@@ -1492,6 +1493,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc this.unsetRemoved(); // CraftBukkit end this.setServerLevel(level); @@ -36,7 +65,7 @@ index dece7eb69603ffc8e50e8096cb07c02a897bf49e..530e778d27e8a869ff8f9b46104cdb29 this.connection.internalTeleport(PositionMoveRotation.of(teleportTransition), teleportTransition.relatives()); // CraftBukkit - use internal teleport without event this.connection.resetPosition(); level.addDuringTeleport(this); -@@ -2048,10 +2050,20 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc +@@ -2071,10 +2073,20 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc } public void restoreFrom(ServerPlayer that, boolean keepEverything) { @@ -57,7 +86,7 @@ index dece7eb69603ffc8e50e8096cb07c02a897bf49e..530e778d27e8a869ff8f9b46104cdb29 if (keepEverything) { this.getAttributes().assignBaseValues(that.getAttributes()); // this.getAttributes().assignPermanentModifiers(that.getAttributes()); // CraftBukkit -@@ -2090,6 +2102,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc +@@ -2113,6 +2125,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc this.seenCredits = that.seenCredits; this.enteredNetherPosition = that.enteredNetherPosition; this.chunkTrackingView = that.chunkTrackingView; @@ -66,10 +95,10 @@ index dece7eb69603ffc8e50e8096cb07c02a897bf49e..530e778d27e8a869ff8f9b46104cdb29 this.setShoulderEntityRight(that.getShoulderEntityRight()); this.setLastDeathLocation(that.getLastDeathLocation()); diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java -index c9dbe659374e3ce140316116e05110567e44b810..a0c446f505339f9c620a3c461f9d58d27d54df99 100644 +index b1524279c02cd3be82338a6bd0320cb125a134d5..cc127ad70c6b84fd68879f9c226d09c42e45b532 100644 --- a/net/minecraft/server/players/PlayerList.java +++ b/net/minecraft/server/players/PlayerList.java -@@ -725,8 +725,27 @@ public abstract class PlayerList { +@@ -720,8 +720,27 @@ public abstract class PlayerList { Level fromWorld = player.level(); player.wonGame = false; // CraftBukkit end @@ -82,7 +111,7 @@ index c9dbe659374e3ce140316116e05110567e44b810..a0c446f505339f9c620a3c461f9d58d2 + if (!keepInventory) player.reset(); // SPIGOT-4785 + isRespawn = true; + } else { -+ teleportTransition = new TeleportTransition(((org.bukkit.craftbukkit.CraftWorld) location.getWorld()).getHandle(), org.bukkit.craftbukkit.util.CraftLocation.toVec3D(location), Vec3.ZERO, location.getYaw(), location.getPitch(), TeleportTransition.DO_NOTHING); ++ teleportTransition = new TeleportTransition(((org.bukkit.craftbukkit.CraftWorld) location.getWorld()).getHandle(), org.bukkit.craftbukkit.util.CraftLocation.toVec3(location), Vec3.ZERO, location.getYaw(), location.getPitch(), TeleportTransition.DO_NOTHING); + } + // Nabulus end + // Nabulus start @@ -98,12 +127,13 @@ index c9dbe659374e3ce140316116e05110567e44b810..a0c446f505339f9c620a3c461f9d58d2 serverPlayer.setId(player.getId()); serverPlayer.setMainArm(player.getMainArm()); // CraftBukkit - not required, just copies old location into reused entity -@@ -739,10 +758,12 @@ public abstract class PlayerList { +@@ -734,11 +753,13 @@ public abstract class PlayerList { } // Paper start - Add PlayerPostRespawnEvent boolean isBedSpawn = false; - boolean isRespawn = false; + //boolean isRespawn = false; // Nabulus - moved up + boolean isAnchorSpawn = false; // Paper end - Add PlayerPostRespawnEvent // CraftBukkit start - fire PlayerRespawnEvent @@ -112,9 +142,9 @@ index c9dbe659374e3ce140316116e05110567e44b810..a0c446f505339f9c620a3c461f9d58d2 TeleportTransition teleportTransition; if (location == null) { teleportTransition = player.findRespawnPositionAndUseSpawnBlock(!keepInventory, TeleportTransition.DO_NOTHING, eventReason); -@@ -756,6 +777,8 @@ public abstract class PlayerList { +@@ -752,6 +773,8 @@ public abstract class PlayerList { } else { - teleportTransition = new TeleportTransition(((org.bukkit.craftbukkit.CraftWorld) location.getWorld()).getHandle(), org.bukkit.craftbukkit.util.CraftLocation.toVec3D(location), Vec3.ZERO, location.getYaw(), location.getPitch(), TeleportTransition.DO_NOTHING); + teleportTransition = new TeleportTransition(((org.bukkit.craftbukkit.CraftWorld) location.getWorld()).getHandle(), org.bukkit.craftbukkit.util.CraftLocation.toVec3(location), Vec3.ZERO, location.getYaw(), location.getPitch(), TeleportTransition.DO_NOTHING); } + */ + // Nabulus end @@ -122,10 +152,10 @@ index c9dbe659374e3ce140316116e05110567e44b810..a0c446f505339f9c620a3c461f9d58d2 if (teleportTransition == null) { // Paper - Add PlayerPostRespawnEvent - diff on change - spigot early returns if respawn pos is null, that is how they handle disconnected player in respawn event return player; diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java -index b2b61203438bb1fad1ee807729781718d2467155..53f7edf18bd80ab9dde38de948430d70a15b92b1 100644 +index 81413ac0de7b3c7a72bc606fe5ae6fb4ae7055e3..4cde2786b4fda49b09e49259d110f7a1d594bf66 100644 --- a/net/minecraft/world/entity/Entity.java +++ b/net/minecraft/world/entity/Entity.java -@@ -3732,6 +3732,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -3917,6 +3917,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess } // Paper end - Fix item duplication and teleport issues if (this.level() instanceof ServerLevel serverLevel && !this.isRemoved()) { @@ -154,23 +184,19 @@ index 88b07fbb96b20124777889830afa480673629d43..15135544bd6916bc61d7e17ecee23690 } diff --git a/net/minecraft/world/entity/player/Player.java b/net/minecraft/world/entity/player/Player.java -index a0813aa9ebf5b32375b1bc9f294d8fc34cc867fe..141478c5bf94827eaf89688cb47346fde0394d03 100644 +index 20687b632f2cc3f25c8f04e34cc1f6f1d0abf741..6750bbe424a66aab56749bb1f588202da7a77204 100644 --- a/net/minecraft/world/entity/player/Player.java +++ b/net/minecraft/world/entity/player/Player.java -@@ -205,6 +205,40 @@ public abstract class Player extends LivingEntity { +@@ -224,6 +224,36 @@ public abstract class Player extends LivingEntity { public boolean fauxSleeping; public int oldLevel = -1; + // Nabulus start -+ protected final Inventory normalInventory = new Inventory(this); -+ protected final Inventory creativeLevelInventory = new Inventory(this); -+ private boolean inventoriesLoaded = false; ++ protected final Inventory normalInventory = new Inventory(this, this.createEquipment()); ++ protected final Inventory creativeLevelInventory = new Inventory(this, this.createEquipment()); + public boolean usingNormalInventory = true; + + public void chooseInventory() { -+ if (!inventoriesLoaded) { -+ return; -+ } + if (((net.minecraft.world.level.storage.PrimaryLevelData)this.level().levelData).creativeLevel) { + if (usingNormalInventory) { + this.normalInventory.replaceWith(this.inventory); @@ -198,47 +224,47 @@ index a0813aa9ebf5b32375b1bc9f294d8fc34cc867fe..141478c5bf94827eaf89688cb47346fd @Override public org.bukkit.craftbukkit.entity.CraftHumanEntity getBukkitEntity() { return (org.bukkit.craftbukkit.entity.CraftHumanEntity) super.getBukkitEntity(); -@@ -215,6 +249,7 @@ public abstract class Player extends LivingEntity { - super(EntityType.PLAYER, level); - this.setUUID(gameProfile.getId()); - this.gameProfile = gameProfile; -+ this.chooseInventory(); - this.inventoryMenu = new InventoryMenu(this.inventory, !level.isClientSide, this); - this.containerMenu = this.inventoryMenu; - this.moveTo(pos.getX() + 0.5, pos.getY() + 1, pos.getZ() + 0.5, yRot, 0.0F); -@@ -817,6 +852,15 @@ public abstract class Player extends LivingEntity { - ListTag list = compound.getList("Inventory", 10); - this.inventory.load(list); - this.inventory.selected = compound.getInt("SelectedItemSlot"); +@@ -811,6 +841,13 @@ public abstract class Player extends LivingEntity { + this.setUUID(this.gameProfile.getId()); + this.inventory.load(input.listOrEmpty("Inventory", ItemStackWithSlot.CODEC)); + this.inventory.setSelectedSlot(input.getIntOr("SelectedItemSlot", 0)); + // Nabulus start -+ this.normalInventory.load(list); -+ this.normalInventory.selected = compound.getInt("SelectedItemSlot"); -+ ListTag creativeLevelInventoryTagList = compound.getList("Nabulus.CreativeLevelInventory", 10); -+ this.creativeLevelInventory.load(creativeLevelInventoryTagList); -+ this.creativeLevelInventory.selected = compound.getInt("Nabulus.CreativeLevelSelectedItemSlot"); -+ this.inventoriesLoaded = true; ++ this.normalInventory.replaceWith(this.inventory); ++ this.creativeLevelInventory.load(input.listOrEmpty("Nabulus.CreativeLevelInventory", ItemStackWithSlot.CODEC)); ++ this.creativeLevelInventory.setSelectedSlot(input.getIntOr("Nabulus.CreativeLevelSelectedItemSlot", 0)); ++ this.creativeLevelInventory.equipment.setAll(input.read("Nabulus.CreativeLevelEquipment", EntityEquipment.CODEC).orElseGet(EntityEquipment::new)); + this.usingNormalInventory = true; + // Nabulus end - this.sleepCounter = compound.getShort("SleepTimer"); - this.experienceProgress = compound.getFloat("XpP"); - this.experienceLevel = compound.getInt("XpLevel"); -@@ -861,8 +905,12 @@ public abstract class Player extends LivingEntity { - public void addAdditionalSaveData(CompoundTag compound) { - super.addAdditionalSaveData(compound); - NbtUtils.addCurrentDataVersion(compound); -- compound.put("Inventory", this.inventory.save(new ListTag())); -- compound.putInt("SelectedItemSlot", this.inventory.selected); -+ compound.put("Inventory", this.getNormalInventory().save(new ListTag())); // Nabulus -+ compound.putInt("SelectedItemSlot", this.getNormalInventory().selected); // Nabulus + this.sleepCounter = input.getShortOr("SleepTimer", (short)0); + this.experienceProgress = input.getFloatOr("XpP", 0.0F); + this.experienceLevel = input.getIntOr("XpLevel", 0); +@@ -835,10 +872,24 @@ public abstract class Player extends LivingEntity { + + @Override + protected void addAdditionalSaveData(ValueOutput output) { ++ // Nabulus start ++ if (!usingNormalInventory) { ++ this.creativeLevelInventory.replaceWith(this.inventory); ++ this.inventory.replaceWith(this.normalInventory); ++ } ++ // Nabulus end + super.addAdditionalSaveData(output); + NbtUtils.addCurrentDataVersion(output); + this.inventory.save(output.list("Inventory", ItemStackWithSlot.CODEC)); + output.putInt("SelectedItemSlot", this.inventory.getSelectedSlot()); + // Nabulus start -+ compound.put("Nabulus.CreativeLevelInventory", this.getCreativeLevelInventory().save(new ListTag())); -+ compound.putInt("Nabulus.CreativeLevelSelectedItemSlot", this.getCreativeLevelInventory().selected); ++ this.creativeLevelInventory.save(output.list("Nabulus.CreativeLevelInventory", ItemStackWithSlot.CODEC)); ++ output.putInt("Nabulus.CreativeLevelSelectedItemSlot", this.creativeLevelInventory.getSelectedSlot()); ++ output.store("Nabulus.CreativeLevelEquipment", EntityEquipment.CODEC, this.creativeLevelInventory.equipment); ++ if (!usingNormalInventory) { ++ this.inventory.replaceWith(this.creativeLevelInventory); ++ } + // Nabulus end - compound.putShort("SleepTimer", (short)this.sleepCounter); - compound.putFloat("XpP", this.experienceProgress); - compound.putInt("XpLevel", this.experienceLevel); + output.putShort("SleepTimer", (short)this.sleepCounter); + output.putFloat("XpP", this.experienceProgress); + output.putInt("XpLevel", this.experienceLevel); diff --git a/net/minecraft/world/level/storage/LevelStorageSource.java b/net/minecraft/world/level/storage/LevelStorageSource.java -index de43e54698125ce9f319d4889dd49f7029fe95e0..976d512de5c1d8cfb41b3a1dc1c4401386dc2f36 100644 +index 3b40822ea6ec9783fe3cb8eaba069a8d626d8382..55f9a938a3f840485d8326d274cac7ae74cfd608 100644 --- a/net/minecraft/world/level/storage/LevelStorageSource.java +++ b/net/minecraft/world/level/storage/LevelStorageSource.java @@ -146,6 +146,7 @@ public class LevelStorageSource { @@ -250,7 +276,7 @@ index de43e54698125ce9f319d4889dd49f7029fe95e0..976d512de5c1d8cfb41b3a1dc1c44013 } diff --git a/net/minecraft/world/level/storage/PrimaryLevelData.java b/net/minecraft/world/level/storage/PrimaryLevelData.java -index 2f4922a2035cc7d628dd2c979137163feb90e19f..2ada2da9288edbe2c2ff797e4cd36c8e1b2c790d 100644 +index d83ef97f6dc71e85c853699e65ad2e76c9c69661..49c90f71cb41a7b2834a681f61d0de49aba31de8 100644 --- a/net/minecraft/world/level/storage/PrimaryLevelData.java +++ b/net/minecraft/world/level/storage/PrimaryLevelData.java @@ -78,6 +78,7 @@ public class PrimaryLevelData implements ServerLevelData, WorldData { @@ -261,8 +287,8 @@ index 2f4922a2035cc7d628dd2c979137163feb90e19f..2ada2da9288edbe2c2ff797e4cd36c8e public void setWorld(net.minecraft.server.level.ServerLevel world) { if (this.world != null) { -@@ -298,6 +299,7 @@ public class PrimaryLevelData implements ServerLevelData, WorldData { - } +@@ -293,6 +294,7 @@ public class PrimaryLevelData implements ServerLevelData, WorldData { + nbt.storeNullable("WanderingTraderId", UUIDUtil.CODEC, this.wanderingTraderId); nbt.putString("Bukkit.Version", org.bukkit.Bukkit.getName() + "/" + org.bukkit.Bukkit.getVersion() + "/" + org.bukkit.Bukkit.getBukkitVersion()); // CraftBukkit this.world.getWorld().storeBukkitValues(nbt); // CraftBukkit - add pdc + nbt.putBoolean("Nabulus.CreativeLevel", this.creativeLevel); // Nabulus diff --git a/nabulus-server/minecraft-patches/features/0002-Show-hidden-players-in-playerlist-and-tab-suggestion.patch b/nabulus-server/minecraft-patches/features/0002-Show-hidden-players-in-playerlist-and-tab-suggestion.patch index 786dee4..f30556a 100644 --- a/nabulus-server/minecraft-patches/features/0002-Show-hidden-players-in-playerlist-and-tab-suggestion.patch +++ b/nabulus-server/minecraft-patches/features/0002-Show-hidden-players-in-playerlist-and-tab-suggestion.patch @@ -18,28 +18,28 @@ index c6ae34f91b3629990294fc5e69237a1e600ef038..eef9e2be7be153a3537df3602c53df35 final List players = playersTemp; // CraftBukkit end diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java -index 9279e4bb6cd1b108ebffd8fe9887f4d231413376..deaf5bc060e3eda99ff3fc50b41938ca1afc9613 100644 +index cc127ad70c6b84fd68879f9c226d09c42e45b532..00d9aed8eb50ec1b4b91312a0bec0bbc8135364e 100644 --- a/net/minecraft/server/players/PlayerList.java +++ b/net/minecraft/server/players/PlayerList.java -@@ -345,7 +345,7 @@ public abstract class PlayerList { - for (int i = 0; i < this.players.size(); ++i) { - ServerPlayer entityplayer1 = (ServerPlayer) this.players.get(i); +@@ -350,7 +350,7 @@ public abstract class PlayerList { + for (int i = 0; i < this.players.size(); ++i) { + ServerPlayer entityplayer1 = (ServerPlayer) this.players.get(i); -- if (entityplayer1.getBukkitEntity().canSee(bukkitPlayer)) { -+ if (entityplayer1.getBukkitEntity().canSee(bukkitPlayer) || true) { // Nabulus - // Paper start - Add Listing API for Player - if (entityplayer1.getBukkitEntity().isListed(bukkitPlayer)) { - // Paper end - Add Listing API for Player -@@ -358,7 +358,7 @@ public abstract class PlayerList { - } +- if (entityplayer1.getBukkitEntity().canSee(bukkitPlayer)) { ++ if (entityplayer1.getBukkitEntity().canSee(bukkitPlayer) || true) { // Nabulus + // Paper start - Add Listing API for Player + if (entityplayer1.getBukkitEntity().isListed(bukkitPlayer)) { + // Paper end - Add Listing API for Player +@@ -363,7 +363,7 @@ public abstract class PlayerList { + } - if (entityplayer1 == player || !bukkitPlayer.canSee(entityplayer1.getBukkitEntity())) { // Paper - Use single player info update packet on join; Don't include joining player -- continue; -+ //continue; // Nabulus - } + if (entityplayer1 == player || !bukkitPlayer.canSee(entityplayer1.getBukkitEntity())) { // Paper - Use single player info update packet on join; Don't include joining player +- continue; ++ //continue; // Nabulus + } - onlinePlayers.add(entityplayer1); // Paper - Use single player info update packet on join -@@ -590,6 +590,7 @@ public abstract class PlayerList { + onlinePlayers.add(entityplayer1); // Paper - Use single player info update packet on join +@@ -597,6 +597,7 @@ public abstract class PlayerList { if (otherPlayer.getBukkitEntity().canSee(player.getBukkitEntity())) { otherPlayer.connection.send(packet); } else { diff --git a/nabulus-server/minecraft-patches/features/0004-Add-silent-chest-flag-to-players.patch b/nabulus-server/minecraft-patches/features/0004-Add-silent-chest-flag-to-players.patch index 8a4e334..cc79011 100644 --- a/nabulus-server/minecraft-patches/features/0004-Add-silent-chest-flag-to-players.patch +++ b/nabulus-server/minecraft-patches/features/0004-Add-silent-chest-flag-to-players.patch @@ -5,17 +5,17 @@ Subject: [PATCH] Add silent chest flag to players diff --git a/net/minecraft/world/entity/player/Player.java b/net/minecraft/world/entity/player/Player.java -index 141478c5bf94827eaf89688cb47346fde0394d03..ca792b5da7391b1cc406dc013ca8319f432af830 100644 +index 352c090b174bea5a661bc63df71b8b2dce4696e3..95854156a406b05cb35ca2911688aaaa02f81a27 100644 --- a/net/minecraft/world/entity/player/Player.java +++ b/net/minecraft/world/entity/player/Player.java -@@ -206,6 +206,7 @@ public abstract class Player extends LivingEntity { +@@ -225,6 +225,7 @@ public abstract class Player extends LivingEntity { public int oldLevel = -1; // Nabulus start + public boolean silentChests = false; - protected final Inventory normalInventory = new Inventory(this); - protected final Inventory creativeLevelInventory = new Inventory(this); - private boolean inventoriesLoaded = false; + protected final Inventory normalInventory = new Inventory(this, this.createEquipment()); + protected final Inventory creativeLevelInventory = new Inventory(this, this.createEquipment()); + public boolean usingNormalInventory = true; diff --git a/net/minecraft/world/level/block/entity/ContainerOpenersCounter.java b/net/minecraft/world/level/block/entity/ContainerOpenersCounter.java index de3fc7062377d7579c74b8adcfc54c87bca23fe5..11be1505d28109876850ad7fab803d2ebf572e69 100644 --- a/net/minecraft/world/level/block/entity/ContainerOpenersCounter.java @@ -46,10 +46,10 @@ index de3fc7062377d7579c74b8adcfc54c87bca23fe5..11be1505d28109876850ad7fab803d2e public void recheckOpeners(Level level, BlockPos pos, BlockState state) { diff --git a/net/minecraft/world/level/block/entity/ShulkerBoxBlockEntity.java b/net/minecraft/world/level/block/entity/ShulkerBoxBlockEntity.java -index a2ae4b47d742e7fb9809cfc4575517c06400ec61..854f3475236b41bed38e2d14d181926ba3b3afe6 100644 +index ebea67223ce1d350087c73dff0cc3fe6d7b47ca0..fdcd62f2c4e4a66607f08b3094191506b2dee86d 100644 --- a/net/minecraft/world/level/block/entity/ShulkerBoxBlockEntity.java +++ b/net/minecraft/world/level/block/entity/ShulkerBoxBlockEntity.java -@@ -192,7 +192,7 @@ public class ShulkerBoxBlockEntity extends RandomizableContainerBlockEntity impl +@@ -201,7 +201,7 @@ public class ShulkerBoxBlockEntity extends RandomizableContainerBlockEntity impl @Override public void startOpen(Player player) { @@ -58,7 +58,7 @@ index a2ae4b47d742e7fb9809cfc4575517c06400ec61..854f3475236b41bed38e2d14d181926b if (this.openCount < 0) { this.openCount = 0; } -@@ -210,7 +210,7 @@ public class ShulkerBoxBlockEntity extends RandomizableContainerBlockEntity impl +@@ -219,7 +219,7 @@ public class ShulkerBoxBlockEntity extends RandomizableContainerBlockEntity impl @Override public void stopOpen(Player player) { diff --git a/nabulus-server/minecraft-patches/features/0005-Throttle-spawn-attempts-after-consistent-failures.patch b/nabulus-server/minecraft-patches/features/0005-Throttle-spawn-attempts-after-consistent-failures.patch index 7ecc203..318e446 100644 --- a/nabulus-server/minecraft-patches/features/0005-Throttle-spawn-attempts-after-consistent-failures.patch +++ b/nabulus-server/minecraft-patches/features/0005-Throttle-spawn-attempts-after-consistent-failures.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Throttle spawn attempts after consistent failures diff --git a/net/minecraft/world/level/NaturalSpawner.java b/net/minecraft/world/level/NaturalSpawner.java -index 17ce115e887cbbb06ad02ab7ddb488e27342c0e4..29022c6be20764cfbe0b04ec44a98b93aa4e369a 100644 +index 14a2514a408a66a83f7b5fb43b4c4dc8f23fd5f4..cacd4fc5d67b5c231160c88fade5965fe92754ac 100644 --- a/net/minecraft/world/level/NaturalSpawner.java +++ b/net/minecraft/world/level/NaturalSpawner.java -@@ -162,6 +162,11 @@ public final class NaturalSpawner { +@@ -156,6 +156,11 @@ public final class NaturalSpawner { profilerFiller.push("spawner"); for (MobCategory mobCategory : categories) { @@ -20,7 +20,7 @@ index 17ce115e887cbbb06ad02ab7ddb488e27342c0e4..29022c6be20764cfbe0b04ec44a98b93 // Paper start - Optional per player mob spawns final boolean canSpawn; int maxSpawns = Integer.MAX_VALUE; -@@ -190,8 +195,17 @@ public final class NaturalSpawner { +@@ -184,8 +189,17 @@ public final class NaturalSpawner { canSpawn = spawnState.canSpawnForCategoryLocal(mobCategory, chunk.getPos()); } if (canSpawn) { @@ -39,7 +39,7 @@ index 17ce115e887cbbb06ad02ab7ddb488e27342c0e4..29022c6be20764cfbe0b04ec44a98b93 // Paper end - Optional per player mob spawns } } -@@ -583,6 +597,7 @@ public final class NaturalSpawner { +@@ -581,6 +595,7 @@ public final class NaturalSpawner { @Nullable private EntityType lastCheckedType; private double lastCharge; @@ -48,10 +48,10 @@ index 17ce115e887cbbb06ad02ab7ddb488e27342c0e4..29022c6be20764cfbe0b04ec44a98b93 SpawnState( int spawnableChunkCount, diff --git a/net/minecraft/world/level/chunk/LevelChunk.java b/net/minecraft/world/level/chunk/LevelChunk.java -index 761fdcd4a4e18f45547afd8edff44f61c6eeacb4..278c1fe2410965e63848ea3cf77b5058e231a2b5 100644 +index 75578e6ed7233a03d9b6cd3c6d3997f1c6148392..24602770533aafa93fe0a1172ee20db2ee426793 100644 --- a/net/minecraft/world/level/chunk/LevelChunk.java +++ b/net/minecraft/world/level/chunk/LevelChunk.java -@@ -84,6 +84,7 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p +@@ -87,6 +87,7 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p private final Int2ObjectMap gameEventListenerRegistrySections; private final LevelChunkTicks blockTicks; private final LevelChunkTicks fluidTicks; diff --git a/nabulus-server/minecraft-patches/features/0006-Implement-tick-rate-options-for-OneShot-behaviors.patch b/nabulus-server/minecraft-patches/features/0006-Implement-tick-rate-options-for-OneShot-behaviors.patch index 3360151..ff7a4f6 100644 --- a/nabulus-server/minecraft-patches/features/0006-Implement-tick-rate-options-for-OneShot-behaviors.patch +++ b/nabulus-server/minecraft-patches/features/0006-Implement-tick-rate-options-for-OneShot-behaviors.patch @@ -14,7 +14,7 @@ index 5b0cadd2544fb2a627822e645ff32fec2e9cfda9..9a56c3a9dc97c5880bd6ac6f703d640f private final String configKey; // Paper - configurable behavior tick rate and timings + // Nabulus start + public static String getConfigKey(String behaviorClass) { -+ String key = io.papermc.paper.util.MappingEnvironment.reobf() ? io.papermc.paper.util.ObfHelper.INSTANCE.deobfClassName(behaviorClass.getClass().getName()) : behaviorClass.getClass().getName(); ++ String key = io.papermc.paper.util.MappingEnvironment.reobf() ? io.papermc.paper.util.ObfHelper.INSTANCE.deobfClassName(behaviorClass) : behaviorClass; + int lastSeparator = key.lastIndexOf('.'); + if (lastSeparator != -1) { + key = key.substring(lastSeparator + 1); diff --git a/nabulus-server/minecraft-patches/features/0007-Don-t-show-smoke-for-silent-fireworks.patch b/nabulus-server/minecraft-patches/features/0007-Don-t-show-smoke-for-silent-fireworks.patch index 52a6d31..08121b1 100644 --- a/nabulus-server/minecraft-patches/features/0007-Don-t-show-smoke-for-silent-fireworks.patch +++ b/nabulus-server/minecraft-patches/features/0007-Don-t-show-smoke-for-silent-fireworks.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Don't show smoke for silent fireworks diff --git a/net/minecraft/world/entity/projectile/FireworkRocketEntity.java b/net/minecraft/world/entity/projectile/FireworkRocketEntity.java -index 774ca9e0b56fd175ae246051de762d0c4256ca58..1d340b1176a201e6bfacc70c453fbbc33dfd1d48 100644 +index d8dc196ef92e97f831cf97cd1536a46f81f9d5d1..a604b918da79555efa899f03e5af52f70c3c72f3 100644 --- a/net/minecraft/world/entity/projectile/FireworkRocketEntity.java +++ b/net/minecraft/world/entity/projectile/FireworkRocketEntity.java -@@ -184,7 +184,7 @@ public class FireworkRocketEntity extends Projectile implements ItemSupplier { +@@ -189,7 +189,7 @@ public class FireworkRocketEntity extends Projectile implements ItemSupplier { } this.life++; diff --git a/nabulus-server/minecraft-patches/features/0008-Allow-players-to-hide-wither-boss-bar.patch b/nabulus-server/minecraft-patches/features/0008-Allow-players-to-hide-wither-boss-bar.patch index 4d20666..87b367f 100644 --- a/nabulus-server/minecraft-patches/features/0008-Allow-players-to-hide-wither-boss-bar.patch +++ b/nabulus-server/minecraft-patches/features/0008-Allow-players-to-hide-wither-boss-bar.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Allow players to hide wither boss bar diff --git a/net/minecraft/world/entity/boss/wither/WitherBoss.java b/net/minecraft/world/entity/boss/wither/WitherBoss.java -index afe43600c4976e01e61d716034a2823d50fb55cb..2553126e05d08eca41ee145e7a08f7e5456af7fb 100644 +index 787b74c5aa02afc4ba95fa1cdaf6cc21b6554b56..953fb6f1851815d0d7397d5d3a1cb6e09bdf20de 100644 --- a/net/minecraft/world/entity/boss/wither/WitherBoss.java +++ b/net/minecraft/world/entity/boss/wither/WitherBoss.java -@@ -77,6 +77,21 @@ public class WitherBoss extends Monster implements RangedAttackMob { +@@ -79,6 +79,21 @@ public class WitherBoss extends Monster implements RangedAttackMob { private static final TargetingConditions.Selector LIVING_ENTITY_SELECTOR = (entity, level) -> !entity.getType().is(EntityTypeTags.WITHER_FRIENDS) && entity.attackable(); private static final TargetingConditions TARGETING_CONDITIONS = TargetingConditions.forCombat().range(20.0).selector(LIVING_ENTITY_SELECTOR); @@ -30,7 +30,7 @@ index afe43600c4976e01e61d716034a2823d50fb55cb..2553126e05d08eca41ee145e7a08f7e5 public WitherBoss(EntityType entityType, Level level) { super(entityType, level); -@@ -131,6 +146,7 @@ public class WitherBoss extends Monster implements RangedAttackMob { +@@ -133,6 +148,7 @@ public class WitherBoss extends Monster implements RangedAttackMob { @Override public void setCustomName(@Nullable Component name) { super.setCustomName(name); @@ -38,7 +38,7 @@ index afe43600c4976e01e61d716034a2823d50fb55cb..2553126e05d08eca41ee145e7a08f7e5 this.bossEvent.setName(this.getDisplayName()); } -@@ -401,7 +417,7 @@ public class WitherBoss extends Monster implements RangedAttackMob { +@@ -403,7 +419,7 @@ public class WitherBoss extends Monster implements RangedAttackMob { @Override public void startSeenByPlayer(ServerPlayer player) { super.startSeenByPlayer(player); diff --git a/nabulus-server/paper-patches/features/0002-Show-hidden-players-in-playerlist-and-tab-suggestion.patch b/nabulus-server/paper-patches/features/0002-Show-hidden-players-in-playerlist-and-tab-suggestion.patch index 270b061..085f964 100644 --- a/nabulus-server/paper-patches/features/0002-Show-hidden-players-in-playerlist-and-tab-suggestion.patch +++ b/nabulus-server/paper-patches/features/0002-Show-hidden-players-in-playerlist-and-tab-suggestion.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Show hidden players in playerlist and tab suggestions diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 1fb98caf0101fcbf3f045c0725c89fcbff4e7a7e..ba38e1cd92b7e08bda1e22ea8e583ee3206e2c0c 100644 +index 03dfcb4665d0279c825a74f3f999c92fe2bd22cb..bfdf63b42ccfb6728fb99fa7ba45ee413b86d77a 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2632,7 +2632,7 @@ public final class CraftServer implements Server { +@@ -2542,7 +2542,7 @@ public final class CraftServer implements Server { PlayerChatTabCompleteEvent event = new PlayerChatTabCompleteEvent(player, message, completions); String token = event.getLastToken(); for (Player p : this.getOnlinePlayers()) { @@ -18,10 +18,10 @@ index 1fb98caf0101fcbf3f045c0725c89fcbff4e7a7e..ba38e1cd92b7e08bda1e22ea8e583ee3 } } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index cc4b2061ae9cbd5a30b297be477cde703203b3f5..19fa850cc4608efa2cbb2351ae4c16483143e690 100644 +index 3e18819ae23ab5ecd866d61cd0fd62ce1324109e..23784eefc723aaedf655f9b9d186af495771c19b 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -564,7 +564,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -600,7 +600,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { getHandle().listName = name == null ? null : io.papermc.paper.adventure.PaperAdventure.asVanilla(name); if (getHandle().connection == null) return; // Updates are possible before the player has fully joined for (ServerPlayer player : server.getHandle().players) { @@ -30,7 +30,7 @@ index cc4b2061ae9cbd5a30b297be477cde703203b3f5..19fa850cc4608efa2cbb2351ae4c1648 player.connection.send(new ClientboundPlayerInfoUpdatePacket(ClientboundPlayerInfoUpdatePacket.Action.UPDATE_DISPLAY_NAME, getHandle())); } } -@@ -595,7 +595,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -631,7 +631,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { this.getHandle().listName = name.equals(this.getName()) ? null : CraftChatMessage.fromStringOrNull(name); if (this.getHandle().connection == null) return; // Paper - Updates are possible before the player has fully joined for (ServerPlayer player : (List) this.server.getHandle().players) { @@ -39,7 +39,7 @@ index cc4b2061ae9cbd5a30b297be477cde703203b3f5..19fa850cc4608efa2cbb2351ae4c1648 player.connection.send(new ClientboundPlayerInfoUpdatePacket(ClientboundPlayerInfoUpdatePacket.Action.UPDATE_DISPLAY_NAME, this.getHandle())); } } -@@ -2065,11 +2065,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2079,11 +2079,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player { // Remove this entity from the hidden player's EntityTrackerEntry // Paper start Entity other = ((CraftEntity) entity).getHandle(); @@ -57,7 +57,7 @@ index cc4b2061ae9cbd5a30b297be477cde703203b3f5..19fa850cc4608efa2cbb2351ae4c1648 // Paper end ChunkMap tracker = ((ServerLevel) this.getHandle().level()).getChunkSource().chunkMap; ChunkMap.TrackedEntity entry = tracker.entityMap.get(other.getId()); -@@ -2078,7 +2083,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2092,7 +2097,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } // Remove the hidden entity from this player user list, if they're on it diff --git a/nabulus-server/paper-patches/features/0003-Fix-pardoning-uncached-game-profiles.patch b/nabulus-server/paper-patches/features/0003-Fix-pardoning-uncached-game-profiles.patch index 55ebe3b..5f03ec0 100644 --- a/nabulus-server/paper-patches/features/0003-Fix-pardoning-uncached-game-profiles.patch +++ b/nabulus-server/paper-patches/features/0003-Fix-pardoning-uncached-game-profiles.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix pardoning uncached game profiles diff --git a/src/main/java/org/bukkit/craftbukkit/ban/CraftProfileBanList.java b/src/main/java/org/bukkit/craftbukkit/ban/CraftProfileBanList.java -index 50ee7656580d386db473c054f5c5ec57bb2b1424..dcbc391538fcbbb735cd0b082d550f25f82e3573 100644 +index 80c879a379ad122102608b503a3da49c129267cf..4d79bf3c2ba9d49ec1988bea9299901c658de702 100644 --- a/src/main/java/org/bukkit/craftbukkit/ban/CraftProfileBanList.java +++ b/src/main/java/org/bukkit/craftbukkit/ban/CraftProfileBanList.java -@@ -159,6 +159,19 @@ public class CraftProfileBanList implements ProfileBanList { +@@ -155,6 +155,19 @@ public class CraftProfileBanList implements ProfileBanList { public void pardon(String target) { Preconditions.checkArgument(target != null, "Target cannot be null");