From ed2ea4538e11b2ae70374fc99fb43bc6c2fd6082 Mon Sep 17 00:00:00 2001 From: Bjarne Koll Date: Fri, 14 Jun 2024 00:44:26 +0200 Subject: [PATCH] 538 --- ...-Add-methods-to-get-translation-keys.patch | 19 +++- patches/api/0278-More-Enchantment-API.patch | 35 ++++-- ...acon-activation-deactivation-events.patch} | 2 +- ...dd-Channel-initialization-listeners.patch} | 6 +- ...mands-if-tab-completion-is-disabled.patch} | 4 +- .../0529-Add-more-WanderingTrader-API.patch} | 2 +- ...dd-EntityBlockStorage-clearEntities.patch} | 0 ...ssage-to-PlayerAdvancementDoneEvent.patch} | 2 +- .../0532-Add-HiddenPotionEffect-API.patch} | 0 .../0533-Inventory-close.patch} | 0 ...-in-sunlight-API-for-Phantoms-and-S.patch} | 10 +- .../0535-Add-basic-Datapack-API.patch} | 8 +- ...ment-variable-to-disable-server-gui.patch} | 0 ...37-Expand-PlayerGameModeChangeEvent.patch} | 30 +++--- .../0538-ItemStack-repair-check-API.patch} | 2 +- .../server/0539-More-Enchantment-API.patch | 101 ++++++++++++++++++ .../server/0544-More-Enchantment-API.patch | 101 ------------------ 17 files changed, 180 insertions(+), 142 deletions(-) rename patches/{unapplied/server/0531-Introduce-beacon-activation-deactivation-events.patch => server/0526-Introduce-beacon-activation-deactivation-events.patch} (95%) rename patches/{unapplied/server/0532-Add-Channel-initialization-listeners.patch => server/0527-Add-Channel-initialization-listeners.patch} (96%) rename patches/{unapplied/server/0533-Send-empty-commands-if-tab-completion-is-disabled.patch => server/0528-Send-empty-commands-if-tab-completion-is-disabled.patch} (88%) rename patches/{unapplied/server/0534-Add-more-WanderingTrader-API.patch => server/0529-Add-more-WanderingTrader-API.patch} (97%) rename patches/{unapplied/server/0535-Add-EntityBlockStorage-clearEntities.patch => server/0530-Add-EntityBlockStorage-clearEntities.patch} (100%) rename patches/{unapplied/server/0536-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch => server/0531-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch} (96%) rename patches/{unapplied/server/0537-Add-HiddenPotionEffect-API.patch => server/0532-Add-HiddenPotionEffect-API.patch} (100%) rename patches/{unapplied/server/0538-Inventory-close.patch => server/0533-Inventory-close.patch} (100%) rename patches/{unapplied/server/0539-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch => server/0534-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch} (93%) rename patches/{unapplied/server/0540-Add-basic-Datapack-API.patch => server/0535-Add-basic-Datapack-API.patch} (94%) rename patches/{unapplied/server/0541-Add-environment-variable-to-disable-server-gui.patch => server/0536-Add-environment-variable-to-disable-server-gui.patch} (100%) rename patches/{unapplied/server/0542-Expand-PlayerGameModeChangeEvent.patch => server/0537-Expand-PlayerGameModeChangeEvent.patch} (89%) rename patches/{unapplied/server/0543-ItemStack-repair-check-API.patch => server/0538-ItemStack-repair-check-API.patch} (97%) create mode 100644 patches/server/0539-More-Enchantment-API.patch delete mode 100644 patches/unapplied/server/0544-More-Enchantment-API.patch diff --git a/patches/api/0207-Add-methods-to-get-translation-keys.patch b/patches/api/0207-Add-methods-to-get-translation-keys.patch index 519e8eb82f..1ddbcd7537 100644 --- a/patches/api/0207-Add-methods-to-get-translation-keys.patch +++ b/patches/api/0207-Add-methods-to-get-translation-keys.patch @@ -339,7 +339,7 @@ index 4288bebf690a9cee6ff9a712352d1dcbb035eb77..a08c52949af1d2416ecb089fc559db2e + // Paper end - add Translatable } diff --git a/src/main/java/org/bukkit/enchantments/Enchantment.java b/src/main/java/org/bukkit/enchantments/Enchantment.java -index 64675a3641acb50676ca0122f8473ce94de8fba7..c481b8ffb694519010f2bc3bc6447376ed802467 100644 +index 64675a3641acb50676ca0122f8473ce94de8fba7..daae9bb234d2e10530b2bed35fada98652514e0e 100644 --- a/src/main/java/org/bukkit/enchantments/Enchantment.java +++ b/src/main/java/org/bukkit/enchantments/Enchantment.java @@ -15,7 +15,7 @@ import org.jetbrains.annotations.Nullable; @@ -351,6 +351,23 @@ index 64675a3641acb50676ca0122f8473ce94de8fba7..c481b8ffb694519010f2bc3bc6447376 /** * Provides protection against environmental damage */ +@@ -330,6 +330,16 @@ public abstract class Enchantment implements Keyed, Translatable { + public abstract net.kyori.adventure.text.@NotNull Component displayName(int level); + // Paper end + ++ // Paper start - mark translation key as deprecated ++ /** ++ * @deprecated this method assumes that the enchantments description ++ * always be a translatable component which is not guaranteed. ++ */ ++ @Override ++ @Deprecated(forRemoval = true) ++ public abstract @NotNull String translationKey(); ++ // Paper end - mark translation key as deprecated ++ + /** + * Gets the Enchantment at the specified key + * diff --git a/src/main/java/org/bukkit/enchantments/EnchantmentWrapper.java b/src/main/java/org/bukkit/enchantments/EnchantmentWrapper.java index c4f86ba1037f3f0e5d697a0962d71d6f8c7c1fbe..ac0371285370594d4de1554871b19bbcd2311730 100644 --- a/src/main/java/org/bukkit/enchantments/EnchantmentWrapper.java diff --git a/patches/api/0278-More-Enchantment-API.patch b/patches/api/0278-More-Enchantment-API.patch index e9f6b0ead4..14f5473ccb 100644 --- a/patches/api/0278-More-Enchantment-API.patch +++ b/patches/api/0278-More-Enchantment-API.patch @@ -41,7 +41,7 @@ index 0000000000000000000000000000000000000000..aec3b41d7c3388e26fa203e3c062f1e6 + } +} diff --git a/src/main/java/org/bukkit/enchantments/Enchantment.java b/src/main/java/org/bukkit/enchantments/Enchantment.java -index c481b8ffb694519010f2bc3bc6447376ed802467..b35f0702c0b5a63515f5d0188c7ef61550f8410e 100644 +index daae9bb234d2e10530b2bed35fada98652514e0e..fc30fbffd83285d4ec102a18454ed95289329667 100644 --- a/src/main/java/org/bukkit/enchantments/Enchantment.java +++ b/src/main/java/org/bukkit/enchantments/Enchantment.java @@ -290,11 +290,7 @@ public abstract class Enchantment implements Keyed, Translatable, net.kyori.adve @@ -56,7 +56,7 @@ index c481b8ffb694519010f2bc3bc6447376ed802467..b35f0702c0b5a63515f5d0188c7ef615 public abstract boolean isCursed(); /** -@@ -328,6 +324,97 @@ public abstract class Enchantment implements Keyed, Translatable, net.kyori.adve +@@ -328,6 +324,116 @@ public abstract class Enchantment implements Keyed, Translatable, net.kyori.adve * @return the name of the enchantment with {@code level} applied */ public abstract net.kyori.adventure.text.@NotNull Component displayName(int level); @@ -127,11 +127,9 @@ index c481b8ffb694519010f2bc3bc6447376ed802467..b35f0702c0b5a63515f5d0188c7ef615 + * @param level the level of enchantment + * @param entityCategory the category of entity + * @return the damage increase -+ * @deprecated Use {@link #getDamageIncrease(int, org.bukkit.entity.EntityType)} instead. -+ * Enchantment damage increase is no longer handled via {@link org.bukkit.entity.EntityCategory}s, but -+ * is instead controlled by tags, e.g. {@link org.bukkit.Tag#ENTITY_TYPES_SENSITIVE_TO_BANE_OF_ARTHROPODS}. -+ * As such, a category cannot properly represent all entities defined by the tags. ++ * @deprecated Enchantments now have a complex effect systems that cannot be reduced to a simple damage increase. + */ ++ @Contract("-> fail") + @Deprecated(forRemoval = true, since = "1.20.5") + public abstract float getDamageIncrease(int level, @NotNull org.bukkit.entity.EntityCategory entityCategory); + @@ -141,19 +139,40 @@ index c481b8ffb694519010f2bc3bc6447376ed802467..b35f0702c0b5a63515f5d0188c7ef615 + * @param level the level of enchantment + * @param entityType the type of entity. + * @return the damage increase ++ * @deprecated Enchantments now have a complex effect systems that cannot be reduced to a simple damage increase. + */ ++ @Contract("-> fail") ++ @Deprecated(forRemoval = true, since = "1.21") + public abstract float getDamageIncrease(int level, @NotNull org.bukkit.entity.EntityType entityType); + + /** + * Gets the equipment slots where this enchantment is considered "active". + * + * @return the equipment slots ++ * @deprecated Use {@link #getActiveSlotGroups()} instead as enchantments are now applicable to a group of equipment slots. ++ */ ++ @NotNull ++ @Deprecated(forRemoval = true, since = "1.21") ++ public java.util.Set getActiveSlots() { ++ final java.util.Set slots = this.getActiveSlotGroups(); ++ return java.util.Arrays.stream(org.bukkit.inventory.EquipmentSlot.values()).filter(e -> { ++ for (final org.bukkit.inventory.EquipmentSlotGroup group : slots) { ++ if (group.test(e)) return true; ++ } ++ return false; ++ }).collect(java.util.stream.Collectors.toSet()); ++ } ++ ++ /** ++ * Gets the equipment slots where this enchantment is considered "active". ++ * ++ * @return the equipment slots + */ + @NotNull -+ public abstract java.util.Set getActiveSlots(); ++ public abstract java.util.Set getActiveSlotGroups(); // Paper end - /** + // Paper start - mark translation key as deprecated diff --git a/src/main/java/org/bukkit/enchantments/EnchantmentWrapper.java b/src/main/java/org/bukkit/enchantments/EnchantmentWrapper.java index ac0371285370594d4de1554871b19bbcd2311730..da5d153a3e55a38b767359564001ad8663f9730b 100644 --- a/src/main/java/org/bukkit/enchantments/EnchantmentWrapper.java diff --git a/patches/unapplied/server/0531-Introduce-beacon-activation-deactivation-events.patch b/patches/server/0526-Introduce-beacon-activation-deactivation-events.patch similarity index 95% rename from patches/unapplied/server/0531-Introduce-beacon-activation-deactivation-events.patch rename to patches/server/0526-Introduce-beacon-activation-deactivation-events.patch index ba8abff209..6d74a805c1 100644 --- a/patches/unapplied/server/0531-Introduce-beacon-activation-deactivation-events.patch +++ b/patches/server/0526-Introduce-beacon-activation-deactivation-events.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Introduce beacon activation/deactivation events diff --git a/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java -index dc39e7e3d166b0f7fb09e04b222b8db00d42b11b..a11f487197274da7cf3217f24e1cae2a343a7331 100644 +index 52776ce9b7b4edd1eb474f14705d7fd83f5a66ca..e124f040386e130aebd7135434c4f06d130d28f6 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java @@ -225,6 +225,15 @@ public class BeaconBlockEntity extends BlockEntity implements MenuProvider, Name diff --git a/patches/unapplied/server/0532-Add-Channel-initialization-listeners.patch b/patches/server/0527-Add-Channel-initialization-listeners.patch similarity index 96% rename from patches/unapplied/server/0532-Add-Channel-initialization-listeners.patch rename to patches/server/0527-Add-Channel-initialization-listeners.patch index 8b6d7c3c06..334eb230f0 100644 --- a/patches/unapplied/server/0532-Add-Channel-initialization-listeners.patch +++ b/patches/server/0527-Add-Channel-initialization-listeners.patch @@ -122,10 +122,10 @@ index 0000000000000000000000000000000000000000..0d7e7db9e37ef0183c32b217bd944fb4 + COMPRESSION_DISABLED +} diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java -index fe89e8f509f3972ceb71c9aa6277524baa39985b..6c30eb3750f434341ecec0bf8e9054bb331f9757 100644 +index ba41646a5edb57c4d9766df08bbc57016e2de189..2b86415e4ea197c5c44c23072c9a1cda595544a8 100644 --- a/src/main/java/net/minecraft/network/Connection.java +++ b/src/main/java/net/minecraft/network/Connection.java -@@ -668,6 +668,7 @@ public class Connection extends SimpleChannelInboundHandler> { +@@ -680,6 +680,7 @@ public class Connection extends SimpleChannelInboundHandler> { } else { this.channel.pipeline().addAfter("prepender", "compress", new CompressionEncoder(compressionThreshold)); } @@ -133,7 +133,7 @@ index fe89e8f509f3972ceb71c9aa6277524baa39985b..6c30eb3750f434341ecec0bf8e9054bb } else { if (this.channel.pipeline().get("decompress") instanceof CompressionDecoder) { this.channel.pipeline().remove("decompress"); -@@ -676,6 +677,7 @@ public class Connection extends SimpleChannelInboundHandler> { +@@ -688,6 +689,7 @@ public class Connection extends SimpleChannelInboundHandler> { if (this.channel.pipeline().get("compress") instanceof CompressionEncoder) { this.channel.pipeline().remove("compress"); } diff --git a/patches/unapplied/server/0533-Send-empty-commands-if-tab-completion-is-disabled.patch b/patches/server/0528-Send-empty-commands-if-tab-completion-is-disabled.patch similarity index 88% rename from patches/unapplied/server/0533-Send-empty-commands-if-tab-completion-is-disabled.patch rename to patches/server/0528-Send-empty-commands-if-tab-completion-is-disabled.patch index 3c45c05c10..cd5ed84e1e 100644 --- a/patches/unapplied/server/0533-Send-empty-commands-if-tab-completion-is-disabled.patch +++ b/patches/server/0528-Send-empty-commands-if-tab-completion-is-disabled.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Send empty commands if tab completion is disabled diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java -index 43695b31cf23555d3d8a28b031ae6245f96ad1f7..3728b051b9eb9e9e06bc765a9a2fae7f45daf6ff 100644 +index 937b5fe4be3573bc47754d627b60a112122a8d83..a19d132f6a71356f91b19197f02ccf312bb4b7c3 100644 --- a/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java -@@ -450,7 +450,12 @@ public class Commands { +@@ -448,7 +448,12 @@ public class Commands { } public void sendCommands(ServerPlayer player) { diff --git a/patches/unapplied/server/0534-Add-more-WanderingTrader-API.patch b/patches/server/0529-Add-more-WanderingTrader-API.patch similarity index 97% rename from patches/unapplied/server/0534-Add-more-WanderingTrader-API.patch rename to patches/server/0529-Add-more-WanderingTrader-API.patch index 07cdb98c54..0ce65786dc 100644 --- a/patches/unapplied/server/0534-Add-more-WanderingTrader-API.patch +++ b/patches/server/0529-Add-more-WanderingTrader-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add more WanderingTrader API diff --git a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java -index 057eca881d279c610e933ebff5fb654625b036be..63189d6325173a42b619907b44a426848fbc6988 100644 +index e51cb9c96e1bd13c00bf938436f4fc26d80055a1..856a93324f5ac411713851ccfb38dba52fb0af5e 100644 --- a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java +++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java @@ -61,6 +61,10 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill diff --git a/patches/unapplied/server/0535-Add-EntityBlockStorage-clearEntities.patch b/patches/server/0530-Add-EntityBlockStorage-clearEntities.patch similarity index 100% rename from patches/unapplied/server/0535-Add-EntityBlockStorage-clearEntities.patch rename to patches/server/0530-Add-EntityBlockStorage-clearEntities.patch diff --git a/patches/unapplied/server/0536-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch b/patches/server/0531-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch similarity index 96% rename from patches/unapplied/server/0536-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch rename to patches/server/0531-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch index 839c465c9c..c0fd5f11db 100644 --- a/patches/unapplied/server/0536-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch +++ b/patches/server/0531-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add Adventure message to PlayerAdvancementDoneEvent diff --git a/src/main/java/net/minecraft/server/PlayerAdvancements.java b/src/main/java/net/minecraft/server/PlayerAdvancements.java -index f46fa0fbfec19904d21729847788c6c624a3e97f..c7e1f2bac3eca9bb72bf1f8c26cccb2905e1ddfc 100644 +index d85fb1e2ea0eaef81e9039b47d18f83507e05a59..9fabf9322acd663c4452b562494e74aa42eb19da 100644 --- a/src/main/java/net/minecraft/server/PlayerAdvancements.java +++ b/src/main/java/net/minecraft/server/PlayerAdvancements.java @@ -236,11 +236,21 @@ public class PlayerAdvancements { diff --git a/patches/unapplied/server/0537-Add-HiddenPotionEffect-API.patch b/patches/server/0532-Add-HiddenPotionEffect-API.patch similarity index 100% rename from patches/unapplied/server/0537-Add-HiddenPotionEffect-API.patch rename to patches/server/0532-Add-HiddenPotionEffect-API.patch diff --git a/patches/unapplied/server/0538-Inventory-close.patch b/patches/server/0533-Inventory-close.patch similarity index 100% rename from patches/unapplied/server/0538-Inventory-close.patch rename to patches/server/0533-Inventory-close.patch diff --git a/patches/unapplied/server/0539-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch b/patches/server/0534-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch similarity index 93% rename from patches/unapplied/server/0539-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch rename to patches/server/0534-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch index 950600a9e0..d5f2f9db1f 100644 --- a/patches/unapplied/server/0539-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch +++ b/patches/server/0534-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Add a "should burn in sunlight" API for Phantoms and diff --git a/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java b/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java -index 7013f1b76311a11fb7e2543ab1e792479ecad610..87ada535362303097862e811d3d573997983064f 100644 +index a5593ac33878efc970c1bdd6f636438d160e9d50..6627126ab02dbd5e9d1de6b186d75d850ef11280 100644 --- a/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java +++ b/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java -@@ -92,9 +92,15 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo +@@ -93,9 +93,15 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo abstract SoundEvent getStepSound(); @@ -26,7 +26,7 @@ index 7013f1b76311a11fb7e2543ab1e792479ecad610..87ada535362303097862e811d3d57399 if (flag) { ItemStack itemstack = this.getItemBySlot(EquipmentSlot.HEAD); -@@ -228,7 +234,20 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo +@@ -232,7 +238,20 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo public void readAdditionalSaveData(CompoundTag nbt) { super.readAdditionalSaveData(nbt); this.reassessWeaponGoal(); @@ -48,7 +48,7 @@ index 7013f1b76311a11fb7e2543ab1e792479ecad610..87ada535362303097862e811d3d57399 @Override public void setItemSlot(EquipmentSlot slot, ItemStack stack) { diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java -index ac119e2efff7ba3c32425783ffcf4b3c44156f27..68f8945292753535a3b73acb9f48c1594f0789a4 100644 +index 4b3bec32921feb1dcf71abf5e8d34fcbbc59baf5..c277dac448a64809e93dd7a447ee3dc2a86c860e 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java +++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java @@ -138,7 +138,7 @@ public class Phantom extends FlyingMob implements Enemy { @@ -57,7 +57,7 @@ index ac119e2efff7ba3c32425783ffcf4b3c44156f27..68f8945292753535a3b73acb9f48c159 public void aiStep() { - if (this.isAlive() && this.isSunBurnTick()) { + if (this.isAlive() && this.shouldBurnInDay && this.isSunBurnTick()) { // Paper - shouldBurnInDay API - this.igniteForSeconds(8); + this.igniteForSeconds(8.0F); } @@ -169,6 +169,9 @@ public class Phantom extends FlyingMob implements Enemy { diff --git a/patches/unapplied/server/0540-Add-basic-Datapack-API.patch b/patches/server/0535-Add-basic-Datapack-API.patch similarity index 94% rename from patches/unapplied/server/0540-Add-basic-Datapack-API.patch rename to patches/server/0535-Add-basic-Datapack-API.patch index 62bdbc9ad0..e6fb0b935a 100644 --- a/patches/unapplied/server/0540-Add-basic-Datapack-API.patch +++ b/patches/server/0535-Add-basic-Datapack-API.patch @@ -92,10 +92,10 @@ index 0000000000000000000000000000000000000000..cf4374493c11057451a62a655514415c + } +} diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 144d09f65aca6456b060c5874b61f55a1cd5ae59..14616e4be1cfd4961fdb0d990310bf625cc821a9 100644 +index ec92033fef581e42fb3f36acaba626894b369f56..d0eefb53fb88c56d72dea68269bd2b0ce6fd1c1b 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -303,6 +303,7 @@ public final class CraftServer implements Server { +@@ -305,6 +305,7 @@ public final class CraftServer implements Server { private final List playerView; public int reloadCount; public Set activeCompatibilities = Collections.emptySet(); @@ -103,7 +103,7 @@ index 144d09f65aca6456b060c5874b61f55a1cd5ae59..14616e4be1cfd4961fdb0d990310bf62 public static Exception excessiveVelEx; // Paper - Velocity warnings static { -@@ -386,6 +387,7 @@ public final class CraftServer implements Server { +@@ -389,6 +390,7 @@ public final class CraftServer implements Server { if (this.configuration.getBoolean("settings.use-map-color-cache")) { MapPalette.setMapColorCache(new CraftMapColorCache(this.logger)); } @@ -111,7 +111,7 @@ index 144d09f65aca6456b060c5874b61f55a1cd5ae59..14616e4be1cfd4961fdb0d990310bf62 } public boolean getCommandBlockOverride(String command) { -@@ -2992,5 +2994,11 @@ public final class CraftServer implements Server { +@@ -3000,5 +3002,11 @@ public final class CraftServer implements Server { public com.destroystokyo.paper.entity.ai.MobGoals getMobGoals() { return mobGoals; } diff --git a/patches/unapplied/server/0541-Add-environment-variable-to-disable-server-gui.patch b/patches/server/0536-Add-environment-variable-to-disable-server-gui.patch similarity index 100% rename from patches/unapplied/server/0541-Add-environment-variable-to-disable-server-gui.patch rename to patches/server/0536-Add-environment-variable-to-disable-server-gui.patch diff --git a/patches/unapplied/server/0542-Expand-PlayerGameModeChangeEvent.patch b/patches/server/0537-Expand-PlayerGameModeChangeEvent.patch similarity index 89% rename from patches/unapplied/server/0542-Expand-PlayerGameModeChangeEvent.patch rename to patches/server/0537-Expand-PlayerGameModeChangeEvent.patch index 1269de97bf..42408d687f 100644 --- a/patches/unapplied/server/0542-Expand-PlayerGameModeChangeEvent.patch +++ b/patches/server/0537-Expand-PlayerGameModeChangeEvent.patch @@ -45,21 +45,23 @@ index 7f09119bc7d661e08a960dd2bd46006efe752d3e..d1da3600dc07107309b20ebe6e7c0c4d } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index d7a8664e9ccccdb4b4618399c72fa38c24354e46..2ff11c9aff04f404d45e0b267285e2b4a2a23b6f 100644 +index 1cc771bfecc8d86d103879fbef28dbf993a7903e..ff6a8a3977ec489a372c72323e6285c16f00bd7f 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -2034,8 +2034,16 @@ public class ServerPlayer extends Player { +@@ -2087,10 +2087,18 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { } public boolean setGameMode(GameType gameMode) { -- if (!this.gameMode.changeGameModeForPlayer(gameMode)) { -- return false; + // Paper start - Expand PlayerGameModeChangeEvent + org.bukkit.event.player.PlayerGameModeChangeEvent event = this.setGameMode(gameMode, org.bukkit.event.player.PlayerGameModeChangeEvent.Cause.UNKNOWN, null); + return event == null ? false : event.isCancelled(); + } + @Nullable + public org.bukkit.event.player.PlayerGameModeChangeEvent setGameMode(GameType gameMode, org.bukkit.event.player.PlayerGameModeChangeEvent.Cause cause, @Nullable net.kyori.adventure.text.Component message) { + boolean flag = this.isSpectator(); + +- if (!this.gameMode.changeGameModeForPlayer(gameMode)) { +- return false; + org.bukkit.event.player.PlayerGameModeChangeEvent event = this.gameMode.changeGameModeForPlayer(gameMode, cause, message); + if (event == null || event.isCancelled()) { + return null; @@ -67,7 +69,7 @@ index d7a8664e9ccccdb4b4618399c72fa38c24354e46..2ff11c9aff04f404d45e0b267285e2b4 } else { this.connection.send(new ClientboundGameEventPacket(ClientboundGameEventPacket.CHANGE_GAME_MODE, (float) gameMode.getId())); if (gameMode == GameType.SPECTATOR) { -@@ -2047,7 +2055,7 @@ public class ServerPlayer extends Player { +@@ -2106,7 +2114,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { this.onUpdateAbilities(); this.updateEffectVisibility(); @@ -76,7 +78,7 @@ index d7a8664e9ccccdb4b4618399c72fa38c24354e46..2ff11c9aff04f404d45e0b267285e2b4 } } -@@ -2457,6 +2465,16 @@ public class ServerPlayer extends Player { +@@ -2506,6 +2514,16 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { } public void loadGameTypes(@Nullable CompoundTag nbt) { @@ -94,10 +96,10 @@ index d7a8664e9ccccdb4b4618399c72fa38c24354e46..2ff11c9aff04f404d45e0b267285e2b4 } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index de3ec353ea32d5d71e2f1b4b369b79b85d7ce5e8..c55d944a70300bf77dbde918c91815cabe68496d 100644 +index 5de472df78940d1b8320f73d18b2edf3a796227e..073cf184a0e7af41048ae67a9b17b4cdfcc43c35 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -@@ -72,14 +72,21 @@ public class ServerPlayerGameMode { +@@ -74,14 +74,21 @@ public class ServerPlayerGameMode { } public boolean changeGameModeForPlayer(GameType gameMode) { @@ -122,7 +124,7 @@ index de3ec353ea32d5d71e2f1b4b369b79b85d7ce5e8..c55d944a70300bf77dbde918c91815ca } // CraftBukkit end this.setGameModeForPlayer(gameMode, this.previousGameModeForPlayer); -@@ -90,7 +97,7 @@ public class ServerPlayerGameMode { +@@ -92,7 +99,7 @@ public class ServerPlayerGameMode { this.player.resetCurrentImpulseContext(); } @@ -132,12 +134,12 @@ index de3ec353ea32d5d71e2f1b4b369b79b85d7ce5e8..c55d944a70300bf77dbde918c91815ca } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index c8124bf451f5d03374f32a04b9b28fc9d97897ae..4a5553335cd6bbad8d3a05694710d95c96f62b9d 100644 +index b1b833383c5196c2aee07fb7118cfef069abc3cd..498104eb1509e0f8389c07d1573a6b496b0bcd41 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2715,7 +2715,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2732,7 +2732,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl - this.player = this.server.getPlayerList().respawn(this.player, false, RespawnReason.DEATH); + this.player = this.server.getPlayerList().respawn(this.player, false, Entity.RemovalReason.KILLED, RespawnReason.DEATH); // CraftBukkit if (this.server.isHardcore()) { - this.player.setGameMode(GameType.SPECTATOR); + this.player.setGameMode(GameType.SPECTATOR, org.bukkit.event.player.PlayerGameModeChangeEvent.Cause.HARDCORE_DEATH, null); // Paper - Expand PlayerGameModeChangeEvent @@ -145,10 +147,10 @@ index c8124bf451f5d03374f32a04b9b28fc9d97897ae..4a5553335cd6bbad8d3a05694710d95c } } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 2d6de1734cb715554ca732d850b8df9591a3efb7..9a3ba0011f306a3cd1e3c60fcc329ab93011ebd8 100644 +index 0c224de84b797856814f5378c87e6d048205e8d9..ed08f30d7163d01b5c280d20ea721da8d7f4b41e 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -1640,7 +1640,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1653,7 +1653,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { Preconditions.checkArgument(mode != null, "GameMode cannot be null"); if (this.getHandle().connection == null) return; diff --git a/patches/unapplied/server/0543-ItemStack-repair-check-API.patch b/patches/server/0538-ItemStack-repair-check-API.patch similarity index 97% rename from patches/unapplied/server/0543-ItemStack-repair-check-API.patch rename to patches/server/0538-ItemStack-repair-check-API.patch index e5b282cc1e..1a746225f9 100644 --- a/patches/unapplied/server/0543-ItemStack-repair-check-API.patch +++ b/patches/server/0538-ItemStack-repair-check-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] ItemStack repair check API diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -index b89dcdf4b303042024dec1bf07f92fb08327f061..206f7fff1be676bebef086a0c1b5350cfd175e33 100644 +index a71717fe99e78c480747cc61ab30b53b6667fde7..080ab25d3585552c1abd62a9992d48bf094fc065 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java @@ -551,6 +551,14 @@ public final class CraftMagicNumbers implements UnsafeValues { diff --git a/patches/server/0539-More-Enchantment-API.patch b/patches/server/0539-More-Enchantment-API.patch new file mode 100644 index 0000000000..70558c14b9 --- /dev/null +++ b/patches/server/0539-More-Enchantment-API.patch @@ -0,0 +1,101 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jake Potrebic +Date: Thu, 6 May 2021 19:57:58 -0700 +Subject: [PATCH] More Enchantment API + +== AT == +public net.minecraft.world.item.enchantment.Enchantment definition + +Co-authored-by: Luis +Co-authored-by: Janet Blackquill + +diff --git a/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java b/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java +index 3ea6e6678432957c5caaff15ba20f8a8ddb393c9..10a74428ca8f8a869ba0d14f2a9b2126033df684 100644 +--- a/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java ++++ b/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java +@@ -5,6 +5,7 @@ import java.util.Locale; + import net.minecraft.Util; + import net.minecraft.core.Holder; + import net.minecraft.core.registries.Registries; ++import net.minecraft.network.chat.contents.TranslatableContents; + import net.minecraft.tags.EnchantmentTags; + import org.bukkit.NamespacedKey; + import org.bukkit.Registry; +@@ -92,7 +93,7 @@ public class CraftEnchantment extends Enchantment implements Handleable getActiveSlotGroups() { ++ return this.getHandle().definition().slots().stream() ++ .map(org.bukkit.craftbukkit.CraftEquipmentSlot::getSlot) ++ .collect(java.util.stream.Collectors.toSet()); + } + // Paper end + diff --git a/patches/unapplied/server/0544-More-Enchantment-API.patch b/patches/unapplied/server/0544-More-Enchantment-API.patch deleted file mode 100644 index 1b98deff58..0000000000 --- a/patches/unapplied/server/0544-More-Enchantment-API.patch +++ /dev/null @@ -1,101 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Jake Potrebic -Date: Thu, 6 May 2021 19:57:58 -0700 -Subject: [PATCH] More Enchantment API - -== AT == -public net.minecraft.world.item.enchantment.Enchantment definition - -Co-authored-by: Luis -Co-authored-by: Janet Blackquill - -diff --git a/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java b/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java -index faf0f726453aa957d17b75dfd8de5b40d984e69c..067aa761abd023991c884278a5cf0a63684026aa 100644 ---- a/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java -+++ b/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java -@@ -94,7 +94,7 @@ public class CraftEnchantment extends Enchantment implements Handleable guessEntityTypeFromEnchantmentCategory( -+ final org.bukkit.entity.EntityCategory entityCategory -+ ) { -+ final net.minecraft.tags.TagKey> tag = switch (entityCategory) { -+ case ARTHROPOD -> net.minecraft.tags.EntityTypeTags.SENSITIVE_TO_BANE_OF_ARTHROPODS; -+ case UNDEAD -> net.minecraft.tags.EntityTypeTags.SENSITIVE_TO_SMITE; -+ case WATER -> net.minecraft.tags.EntityTypeTags.SENSITIVE_TO_IMPALING; -+ default -> null; -+ }; -+ if (tag == null) return null; -+ -+ return net.minecraft.core.registries.BuiltInRegistries.ENTITY_TYPE.getTag(tag) -+ .map(e -> e.size() > 0 ? e.get(0).value() : null) -+ .orElse(null); -+ } -+ -+ @Override -+ public java.util.Set getActiveSlots() { -+ return java.util.stream.Stream.of(this.handle.definition.slots()).map(org.bukkit.craftbukkit.CraftEquipmentSlot::getSlot).collect(java.util.stream.Collectors.toSet()); -+ } - // Paper end - - @Override