Updated Upstream (Paper)

Upstream has released updates that appear to apply and compile correctly

Paper Changes:
PaperMC/Paper@e2c7e5cf Limit projectiles size
PaperMC/Paper@ca5e948a Fix override of new item for Firework entity (#13891)
PaperMC/Paper@20938c72 Set Obsolete the use of PotionMeta in Potion entities (#13892)
PaperMC/Paper@76d2ac75 [ci/skip] Fix AreaEffectCloud doc comments (#13926)
PaperMC/Paper@f414ba89 run generator
PaperMC/Paper@9194ea20 fix duplicate goal name for cube mobs
PaperMC/Paper@b0c2992a Fix "-1 releases behind" being logged for early snapshots
PaperMC/Paper@46a24d6a Merge remote-tracking branch 'origin/main' into dev/26.2
PaperMC/Paper@2c0dfb53 Fix emptying sulfur cube bucket doesn't work
PaperMC/Paper@b1b09191 update todo
PaperMC/Paper@f23495f0 Commodore rewriting for breaking slime API change
PaperMC/Paper@9a1623b3 fix tests
PaperMC/Paper@611a0ab5 Update to 26.2-pre-4
PaperMC/Paper@87cc35db delegate more stuff to CraftItemStack
PaperMC/Paper@8ea9659a bump built-in pack and regenerate tags
PaperMC/Paper@46cc8588 fix dispense events a bit
PaperMC/Paper@5c5ff5c8 remove redundant bed updates
PaperMC/Paper@1b087229 Unapply hopper patch
PaperMC/Paper@c600b162 skip POI cleanup when place event is cancelled for now
This commit is contained in:
granny
2026-06-04 18:51:54 -07:00
parent b5808d9dfe
commit a857d511b9
19 changed files with 40 additions and 40 deletions

View File

@@ -1,9 +1,9 @@
group = org.purpurmc.purpur group = org.purpurmc.purpur
mcVersion = 26.2-pre-3 mcVersion = 26.2-pre-4
apiVersion = 26.2 apiVersion = 26.2
channel=EXPERIMENTAL channel=EXPERIMENTAL
paperCommit = 1bea43f2481fd75fc4474d5cbc8cf8633ac72ca5 paperCommit = c600b162314435ca84f99477384aeb7ec3bfc2e8
org.gradle.configuration-cache = true org.gradle.configuration-cache = true
org.gradle.caching = true org.gradle.caching = true

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Purpur config files
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
index f9fd6bb7e60d31eeb52e0025b9ff4ceb34e789f1..5a3d675862a4a9d6efd86052d13081d6e142f7c4 100644 index b7f4c4efad7335d1c02d1315c64ba9953f3f05c9..81484f52feea2ccf8b9e7c791b976561a1a3e5f6 100644
--- a/src/main/java/org/bukkit/Server.java --- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java
@@ -2444,6 +2444,18 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi @@ -2443,6 +2443,18 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
} }
// Paper end // Paper end

View File

@@ -1,6 +1,6 @@
--- a/src/generated/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java --- a/src/generated/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java
+++ b/src/generated/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java +++ b/src/generated/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java
@@ -450,6 +_,26 @@ @@ -455,6 +_,26 @@
GoalKey<Zombie> ZOMBIE_ATTACK_TURTLE_EGG = create("zombie_attack_turtle_egg", Zombie.class); GoalKey<Zombie> ZOMBIE_ATTACK_TURTLE_EGG = create("zombie_attack_turtle_egg", Zombie.class);

View File

@@ -1,6 +1,6 @@
--- a/src/main/java/org/bukkit/Material.java --- a/src/main/java/org/bukkit/Material.java
+++ b/src/main/java/org/bukkit/Material.java +++ b/src/main/java/org/bukkit/Material.java
@@ -3707,4 +_,40 @@ @@ -3738,4 +_,40 @@
return this.asItemType().getDefaultDataTypes(); return this.asItemType().getDefaultDataTypes();
} }
// Paper end - data component API // Paper end - data component API

View File

@@ -1,6 +1,6 @@
--- a/src/main/java/org/bukkit/Server.java --- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java
@@ -2780,4 +_,125 @@ @@ -2779,4 +_,125 @@
*/ */
void allowPausing(@NotNull org.bukkit.plugin.Plugin plugin, boolean value); void allowPausing(@NotNull org.bukkit.plugin.Plugin plugin, boolean value);
// Paper end - API to check if the server is sleeping // Paper end - API to check if the server is sleeping

View File

@@ -14,7 +14,7 @@
/** /**
* Represents a stack of items. * Represents a stack of items.
@@ -1373,4 +_,482 @@ @@ -1372,4 +_,482 @@
return this.craftDelegate.matchesWithoutData(item, excludeTypes, ignoreCount); return this.craftDelegate.matchesWithoutData(item, excludeTypes, ignoreCount);
} }
// Paper end - data component API // Paper end - data component API

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/core/dispenser/DispenseItemBehavior.java --- a/net/minecraft/core/dispenser/DispenseItemBehavior.java
+++ b/net/minecraft/core/dispenser/DispenseItemBehavior.java +++ b/net/minecraft/core/dispenser/DispenseItemBehavior.java
@@ -625,5 +_,22 @@ @@ -626,5 +_,22 @@
DispenserBlock.registerBehavior(Items.TNT_MINECART, new MinecartDispenseItemBehavior(EntityTypes.TNT_MINECART)); DispenserBlock.registerBehavior(Items.TNT_MINECART, new MinecartDispenseItemBehavior(EntityTypes.TNT_MINECART));
DispenserBlock.registerBehavior(Items.HOPPER_MINECART, new MinecartDispenseItemBehavior(EntityTypes.HOPPER_MINECART)); DispenserBlock.registerBehavior(Items.HOPPER_MINECART, new MinecartDispenseItemBehavior(EntityTypes.HOPPER_MINECART));
DispenserBlock.registerBehavior(Items.COMMAND_BLOCK_MINECART, new MinecartDispenseItemBehavior(EntityTypes.COMMAND_BLOCK_MINECART)); DispenserBlock.registerBehavior(Items.COMMAND_BLOCK_MINECART, new MinecartDispenseItemBehavior(EntityTypes.COMMAND_BLOCK_MINECART));

View File

@@ -86,7 +86,7 @@
// adjust ticksBehind so that it is not greater-than catchup // adjust ticksBehind so that it is not greater-than catchup
if (ticksBehind - catchup > 0L) { if (ticksBehind - catchup > 0L) {
final long difference = ticksBehind - catchup; final long difference = ticksBehind - catchup;
@@ -1853,7 +_,7 @@ @@ -1852,7 +_,7 @@
} }
public String getServerModName() { public String getServerModName() {

View File

@@ -152,7 +152,7 @@
} }
// CraftBukkit start - Call death event // Paper start - call advancement triggers with correct entity equipment // CraftBukkit start - Call death event // Paper start - call advancement triggers with correct entity equipment
@@ -3313,6 +_,7 @@ @@ -3323,6 +_,7 @@
float dmg = (float)(diff * 10.0 - 3.0); float dmg = (float)(diff * 10.0 - 3.0);
if (dmg > 0.0F) { if (dmg > 0.0F) {
this.playSound(this.getFallDamageSound((int)dmg), 1.0F, 1.0F); this.playSound(this.getFallDamageSound((int)dmg), 1.0F, 1.0F);
@@ -160,7 +160,7 @@
this.hurt(this.damageSources().flyIntoWall(), dmg); this.hurt(this.damageSources().flyIntoWall(), dmg);
} }
} }
@@ -4801,6 +_,12 @@ @@ -4816,6 +_,12 @@
? slot == EquipmentSlot.MAINHAND && this.canUseSlot(EquipmentSlot.MAINHAND) ? slot == EquipmentSlot.MAINHAND && this.canUseSlot(EquipmentSlot.MAINHAND)
: slot == equippable.slot() && this.canUseSlot(equippable.slot()) && equippable.canBeEquippedBy(this.typeHolder()); : slot == equippable.slot() && this.canUseSlot(equippable.slot()) && equippable.canBeEquippedBy(this.typeHolder());
} }

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/entity/animal/cow/MushroomCow.java --- a/net/minecraft/world/entity/animal/cow/MushroomCow.java
+++ b/net/minecraft/world/entity/animal/cow/MushroomCow.java +++ b/net/minecraft/world/entity/animal/cow/MushroomCow.java
@@ -207,6 +_,13 @@ @@ -203,6 +_,13 @@
level.playSound(null, this, SoundEvents.MOOSHROOM_SHEAR, soundSource, 1.0F, 1.0F); level.playSound(null, this, SoundEvents.MOOSHROOM_SHEAR, soundSource, 1.0F, 1.0F);
this.convertTo(EntityTypes.COW, ConversionParams.single(this, false, false), cow -> { this.convertTo(EntityTypes.COW, ConversionParams.single(this, false, false), cow -> {
level.sendParticles(ParticleTypes.EXPLOSION, this.getX(), this.getY(0.5), this.getZ(), 1, 0.0, 0.0, 0.0, 0.0); level.sendParticles(ParticleTypes.EXPLOSION, this.getX(), this.getY(0.5), this.getZ(), 1, 0.0, 0.0, 0.0, 0.0);

View File

@@ -44,7 +44,7 @@
} }
@Override @Override
@@ -156,6 +_,14 @@ @@ -152,6 +_,14 @@
} }
return InteractionResult.SUCCESS; return InteractionResult.SUCCESS;

View File

@@ -70,7 +70,7 @@
} }
float totalDamage = baseDamage + magicBoost; float totalDamage = baseDamage + magicBoost;
@@ -1757,7 +_,23 @@ @@ -1763,7 +_,23 @@
@Override @Override
protected int getBaseExperienceReward(final ServerLevel level) { protected int getBaseExperienceReward(final ServerLevel level) {
@@ -95,7 +95,7 @@
} }
@Override @Override
@@ -1800,6 +_,13 @@ @@ -1806,6 +_,13 @@
public boolean addItem(final ItemStack itemStack) { public boolean addItem(final ItemStack itemStack) {
return this.inventory.add(itemStack); return this.inventory.add(itemStack);
} }

View File

@@ -3,7 +3,7 @@
@@ -452,6 +_,7 @@ @@ -452,6 +_,7 @@
// revert back all captured blocks // revert back all captured blocks
for (org.bukkit.block.BlockState blockstate : blocks) { for (org.bukkit.block.BlockState blockstate : blocks) {
((org.bukkit.craftbukkit.block.CraftBlockState) blockstate).revertPlace(); ((org.bukkit.craftbukkit.block.CraftBlockState) blockstate).revertPlace(true); // poi updates needs to be skipped since the poi were never registered as part of the capture
+ ((org.bukkit.craftbukkit.block.CraftBlock) blockstate.getBlock()).getBlockState().getBlock().forgetPlacer(); // Purpur - Store placer on Block when placed + ((org.bukkit.craftbukkit.block.CraftBlock) blockstate.getBlock()).getBlockState().getBlock().forgetPlacer(); // Purpur - Store placer on Block when placed
} }
@@ -16,7 +16,7 @@
level.notifyAndUpdatePhysics(newPos, null, oldBlock, block, level.getBlockState(newPos), updateFlags, net.minecraft.world.level.block.Block.UPDATE_LIMIT); // send null chunk as chunk.k() returns false by this point level.notifyAndUpdatePhysics(newPos, null, oldBlock, block, level.getBlockState(newPos), updateFlags, net.minecraft.world.level.block.Block.UPDATE_LIMIT); // send null chunk as chunk.k() returns false by this point
} }
@@ -590,6 +_,26 @@ @@ -579,6 +_,26 @@
return this.isDamageableItem() && this.getDamageValue() > 0; return this.isDamageableItem() && this.getDamageValue() > 0;
} }
@@ -43,7 +43,7 @@
public int getDamageValue() { public int getDamageValue() {
return Mth.clamp(this.getOrDefault(DataComponents.DAMAGE, 0), 0, this.getMaxDamage()); return Mth.clamp(this.getOrDefault(DataComponents.DAMAGE, 0), 0, this.getMaxDamage());
} }
@@ -1254,6 +_,12 @@ @@ -1237,6 +_,12 @@
public boolean isEnchanted() { public boolean isEnchanted() {
return !this.getOrDefault(DataComponents.ENCHANTMENTS, ItemEnchantments.EMPTY).isEmpty(); return !this.getOrDefault(DataComponents.ENCHANTMENTS, ItemEnchantments.EMPTY).isEmpty();
} }

View File

@@ -64,7 +64,7 @@
this.generator = generator; this.generator = generator;
this.world = new CraftWorld((ServerLevel) this, worldKey, biomeProvider, environment); this.world = new CraftWorld((ServerLevel) this, worldKey, biomeProvider, environment);
@@ -1504,4 +_,14 @@ @@ -1505,4 +_,14 @@
return ret; return ret;
} }
// Paper end - allow patching this logic // Paper end - allow patching this logic

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/level/block/Block.java --- a/net/minecraft/world/level/block/Block.java
+++ b/net/minecraft/world/level/block/Block.java +++ b/net/minecraft/world/level/block/Block.java
@@ -111,6 +_,10 @@ @@ -112,6 +_,10 @@
public static final int UPDATE_LIMIT = 512; public static final int UPDATE_LIMIT = 512;
protected final StateDefinition<Block, BlockState> stateDefinition; protected final StateDefinition<Block, BlockState> stateDefinition;
private BlockState defaultBlockState; private BlockState defaultBlockState;
@@ -11,7 +11,7 @@
// Paper start - Protect Bedrock and End Portal/Frames from being destroyed // Paper start - Protect Bedrock and End Portal/Frames from being destroyed
public final boolean isDestroyable() { public final boolean isDestroyable() {
return io.papermc.paper.configuration.GlobalConfiguration.get().unsupportedSettings.allowPermanentBlockBreakExploits || return io.papermc.paper.configuration.GlobalConfiguration.get().unsupportedSettings.allowPermanentBlockBreakExploits ||
@@ -412,7 +_,7 @@ @@ -413,7 +_,7 @@
event.setExpToDrop(block.getExpDrop(state, serverLevel, pos, net.minecraft.world.item.ItemStack.EMPTY, true)); // Paper - Properly handle xp dropping event.setExpToDrop(block.getExpDrop(state, serverLevel, pos, net.minecraft.world.item.ItemStack.EMPTY, true)); // Paper - Properly handle xp dropping
event.callEvent(); event.callEvent();
for (org.bukkit.inventory.ItemStack drop : event.getDrops()) { for (org.bukkit.inventory.ItemStack drop : event.getDrops()) {
@@ -20,7 +20,7 @@
} }
state.spawnAfterBreak(serverLevel, pos, ItemStack.EMPTY, false); // Paper - Properly handle xp dropping state.spawnAfterBreak(serverLevel, pos, ItemStack.EMPTY, false); // Paper - Properly handle xp dropping
block.popExperience(serverLevel, pos, event.getExpToDrop()); // Paper - Properly handle xp dropping block.popExperience(serverLevel, pos, event.getExpToDrop()); // Paper - Properly handle xp dropping
@@ -430,7 +_,7 @@ @@ -431,7 +_,7 @@
public static void dropResources(final BlockState state, final LevelAccessor level, final BlockPos pos, final @Nullable BlockEntity blockEntity) { public static void dropResources(final BlockState state, final LevelAccessor level, final BlockPos pos, final @Nullable BlockEntity blockEntity) {
if (level instanceof ServerLevel serverLevel) { if (level instanceof ServerLevel serverLevel) {
@@ -29,7 +29,7 @@
state.spawnAfterBreak(serverLevel, pos, ItemStack.EMPTY, true); state.spawnAfterBreak(serverLevel, pos, ItemStack.EMPTY, true);
} }
} }
@@ -451,11 +_,30 @@ @@ -452,11 +_,30 @@
, final boolean dropExperience // Paper - Properly handle xp dropping , final boolean dropExperience // Paper - Properly handle xp dropping
) { ) {
if (level instanceof ServerLevel serverLevel) { if (level instanceof ServerLevel serverLevel) {
@@ -61,7 +61,7 @@
public static void popResource(final Level level, final BlockPos pos, final ItemStack itemStack) { public static void popResource(final Level level, final BlockPos pos, final ItemStack itemStack) {
double halfHeight = EntityTypes.ITEM.getHeight() / 2.0; double halfHeight = EntityTypes.ITEM.getHeight() / 2.0;
RandomSource random = level.getRandom(); RandomSource random = level.getRandom();
@@ -545,7 +_,15 @@ @@ -546,7 +_,15 @@
} }
public void setPlacedBy(final Level level, final BlockPos pos, final BlockState state, final @Nullable LivingEntity by, final ItemStack itemStack) { public void setPlacedBy(final Level level, final BlockPos pos, final BlockState state, final @Nullable LivingEntity by, final ItemStack itemStack) {
@@ -78,7 +78,7 @@
public boolean isPossibleToRespawnInThis(final BlockState state) { public boolean isPossibleToRespawnInThis(final BlockState state) {
return !state.isSolid() && !state.liquid(); return !state.isSolid() && !state.liquid();
@@ -556,7 +_,7 @@ @@ -557,7 +_,7 @@
} }
public void fallOn(final Level level, final BlockState state, final BlockPos pos, final Entity entity, final double fallDistance) { public void fallOn(final Level level, final BlockState state, final BlockPos pos, final Entity entity, final double fallDistance) {

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/level/block/entity/BlockEntity.java --- a/net/minecraft/world/level/block/entity/BlockEntity.java
+++ b/net/minecraft/world/level/block/entity/BlockEntity.java +++ b/net/minecraft/world/level/block/entity/BlockEntity.java
@@ -107,6 +_,10 @@ @@ -106,6 +_,10 @@
input.read("PublicBukkitValues", CompoundTag.CODEC) input.read("PublicBukkitValues", CompoundTag.CODEC)
.ifPresent(this.persistentDataContainer::putAll); .ifPresent(this.persistentDataContainer::putAll);
// Paper end - read persistent data container // Paper end - read persistent data container
@@ -11,10 +11,10 @@
} }
public final void loadWithComponents(final ValueInput input) { public final void loadWithComponents(final ValueInput input) {
@@ -119,6 +_,11 @@ @@ -123,6 +_,11 @@
} output.store("PublicBukkitValues", CompoundTag.CODEC, this.persistentDataContainer.toTagCompound());
}
protected void saveAdditional(final ValueOutput output) { // CraftBukkit end
+ // Purpur start - Persistent BlockEntity Lore and DisplayName + // Purpur start - Persistent BlockEntity Lore and DisplayName
+ if (this.persistentLore != null) { + if (this.persistentLore != null) {
+ output.store("Purpur.persistentLore", net.minecraft.world.item.component.ItemLore.CODEC, this.persistentLore); + output.store("Purpur.persistentLore", net.minecraft.world.item.component.ItemLore.CODEC, this.persistentLore);
@@ -23,7 +23,7 @@
} }
public final CompoundTag saveWithFullMetadata(final HolderLookup.Provider registries) { public final CompoundTag saveWithFullMetadata(final HolderLookup.Provider registries) {
@@ -395,4 +_,16 @@ @@ -388,4 +_,16 @@
return this.blockEntity.getNameForReporting() + "@" + this.blockEntity.getBlockPos(); return this.blockEntity.getNameForReporting() + "@" + this.blockEntity.getBlockPos();
} }
} }

View File

@@ -21,7 +21,7 @@
CraftRegistry.setMinecraftRegistry(console.registryAccess()); CraftRegistry.setMinecraftRegistry(console.registryAccess());
@@ -990,6 +_,7 @@ @@ -989,6 +_,7 @@
org.spigotmc.SpigotConfig.init((File) this.console.options.valueOf("spigot-settings")); // Spigot org.spigotmc.SpigotConfig.init((File) this.console.options.valueOf("spigot-settings")); // Spigot
this.console.paperConfigurations.reloadConfigs(this.console); this.console.paperConfigurations.reloadConfigs(this.console);
@@ -29,7 +29,7 @@
for (ServerLevel world : this.console.getAllLevels()) { for (ServerLevel world : this.console.getAllLevels()) {
// world.serverLevelData.setDifficulty(config.difficulty); // Paper - per level difficulty // world.serverLevelData.setDifficulty(config.difficulty); // Paper - per level difficulty
world.setSpawnSettings(world.isSpawningMonsters()); // Paper - per level difficulty (from MinecraftServer#setDifficulty(ServerLevel, Difficulty, boolean)) world.setSpawnSettings(world.isSpawningMonsters()); // Paper - per level difficulty (from MinecraftServer#setDifficulty(ServerLevel, Difficulty, boolean))
@@ -1005,6 +_,7 @@ @@ -1004,6 +_,7 @@
} }
} }
world.spigotConfig.init(); // Spigot world.spigotConfig.init(); // Spigot
@@ -37,7 +37,7 @@
} }
Plugin[] pluginClone = pluginManager.getPlugins().clone(); // Paper Plugin[] pluginClone = pluginManager.getPlugins().clone(); // Paper
@@ -1022,6 +_,7 @@ @@ -1021,6 +_,7 @@
org.spigotmc.SpigotConfig.registerCommands(); // Spigot org.spigotmc.SpigotConfig.registerCommands(); // Spigot
io.papermc.paper.command.PaperCommands.registerCommands(this.console); // Paper io.papermc.paper.command.PaperCommands.registerCommands(this.console); // Paper
this.spark.registerCommandBeforePlugins(this); // Paper - spark this.spark.registerCommandBeforePlugins(this); // Paper - spark
@@ -45,7 +45,7 @@
this.overrideAllCommandBlockCommands = this.commandsConfiguration.getStringList("command-block-overrides").contains("*"); this.overrideAllCommandBlockCommands = this.commandsConfiguration.getStringList("command-block-overrides").contains("*");
this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions"); this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions");
@@ -1479,6 +_,60 @@ @@ -1478,6 +_,60 @@
return true; return true;
} }
@@ -106,7 +106,7 @@
@Override @Override
public List<Recipe> getRecipesFor(ItemStack result) { public List<Recipe> getRecipesFor(ItemStack result) {
Preconditions.checkArgument(result != null, "ItemStack cannot be null"); Preconditions.checkArgument(result != null, "ItemStack cannot be null");
@@ -2725,6 +_,18 @@ @@ -2723,6 +_,18 @@
return CraftServer.this.console.paperConfigurations.createLegacyObject(CraftServer.this.console); return CraftServer.this.console.paperConfigurations.createLegacyObject(CraftServer.this.console);
} }
@@ -125,7 +125,7 @@
@Override @Override
public void restart() { public void restart() {
CraftServer.this.restart(); CraftServer.this.restart();
@@ -2960,4 +_,18 @@ @@ -2958,4 +_,18 @@
public void allowPausing(final Plugin plugin, final boolean value) { public void allowPausing(final Plugin plugin, final boolean value) {
this.console.addPluginAllowingSleep(plugin.getName(), value); this.console.addPluginAllowingSleep(plugin.getName(), value);
} }

View File

@@ -1,6 +1,6 @@
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
@@ -681,4 +_,285 @@ @@ -782,4 +_,285 @@
} }
// Paper end - data component API // Paper end - data component API

View File

@@ -1,6 +1,6 @@
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
@@ -492,7 +_,7 @@ @@ -486,7 +_,7 @@
@Override @Override
public com.destroystokyo.paper.util.VersionFetcher getVersionFetcher() { public com.destroystokyo.paper.util.VersionFetcher getVersionFetcher() {