Update to Minecraft 1.21.2

By: md_5 <git@md-5.net>
This commit is contained in:
CraftBukkit/Spigot
2024-10-23 02:15:00 +11:00
parent 2c4beb962b
commit d3a23f42c3
522 changed files with 8501 additions and 6477 deletions

View File

@@ -0,0 +1,51 @@
--- a/net/minecraft/world/item/component/Consumable.java
+++ b/net/minecraft/world/item/component/Consumable.java
@@ -29,6 +29,11 @@
import net.minecraft.world.level.World;
import net.minecraft.world.level.gameevent.GameEvent;
+// CraftBukkit start
+import net.minecraft.world.item.Items;
+import org.bukkit.event.entity.EntityPotionEffectEvent;
+// CraftBukkit end
+
public record Consumable(float consumeSeconds, ItemUseAnimation animation, Holder<SoundEffect> sound, boolean hasConsumeParticles, List<ConsumeEffect> onConsumeEffects) {
public static final float DEFAULT_CONSUME_SECONDS = 1.6F;
@@ -69,8 +74,19 @@
consumablelistener.onConsume(world, entityliving, itemstack, this);
});
if (!world.isClientSide) {
+ // CraftBukkit start
+ EntityPotionEffectEvent.Cause cause;
+ if (itemstack.is(Items.MILK_BUCKET)) {
+ cause = EntityPotionEffectEvent.Cause.MILK;
+ } else if (itemstack.is(Items.POTION)) {
+ cause = EntityPotionEffectEvent.Cause.POTION_DRINK;
+ } else {
+ cause = EntityPotionEffectEvent.Cause.FOOD;
+ }
+
this.onConsumeEffects.forEach((consumeeffect) -> {
- consumeeffect.apply(world, itemstack, entityliving);
+ consumeeffect.apply(world, itemstack, entityliving, cause);
+ // CraftBukkit end
});
}
@@ -79,6 +95,15 @@
return itemstack;
}
+ // CraftBukkit start
+ public void cancelUsingItem(net.minecraft.server.level.EntityPlayer entityplayer, ItemStack itemstack) {
+ itemstack.getAllOfType(ConsumableListener.class).forEach((consumablelistener) -> {
+ consumablelistener.cancelUsingItem(entityplayer, itemstack);
+ });
+ entityplayer.server.getPlayerList().sendActivePlayerEffects(entityplayer);
+ }
+ // CraftBukkit end
+
public boolean canConsume(EntityLiving entityliving, ItemStack itemstack) {
FoodInfo foodinfo = (FoodInfo) itemstack.get(DataComponents.FOOD);

View File

@@ -0,0 +1,9 @@
--- a/net/minecraft/world/item/component/ConsumableListener.java
+++ b/net/minecraft/world/item/component/ConsumableListener.java
@@ -7,4 +7,6 @@
public interface ConsumableListener {
void onConsume(World world, EntityLiving entityliving, ItemStack itemstack, Consumable consumable);
+
+ default void cancelUsingItem(net.minecraft.server.level.EntityPlayer entityplayer, ItemStack itemstack) {} // CraftBukkit
}

View File

@@ -0,0 +1,22 @@
--- a/net/minecraft/world/item/component/DeathProtection.java
+++ b/net/minecraft/world/item/component/DeathProtection.java
@@ -15,6 +15,10 @@
import net.minecraft.world.item.consume_effects.ClearAllStatusEffectsConsumeEffect;
import net.minecraft.world.item.consume_effects.ConsumeEffect;
+// CraftBukkit start
+import org.bukkit.event.entity.EntityPotionEffectEvent;
+// CraftBukkit end
+
public record DeathProtection(List<ConsumeEffect> deathEffects) {
public static final Codec<DeathProtection> CODEC = RecordCodecBuilder.create((instance) -> {
@@ -29,7 +33,7 @@
while (iterator.hasNext()) {
ConsumeEffect consumeeffect = (ConsumeEffect) iterator.next();
- consumeeffect.apply(entityliving.level(), itemstack, entityliving);
+ consumeeffect.apply(entityliving.level(), itemstack, entityliving, EntityPotionEffectEvent.Cause.TOTEM); // CraftBukkit
}
}

View File

@@ -0,0 +1,27 @@
--- a/net/minecraft/world/item/component/SuspiciousStewEffects.java
+++ b/net/minecraft/world/item/component/SuspiciousStewEffects.java
@@ -29,7 +29,7 @@
public static final StreamCodec<RegistryFriendlyByteBuf, SuspiciousStewEffects> STREAM_CODEC = SuspiciousStewEffects.a.STREAM_CODEC.apply(ByteBufCodecs.list()).map(SuspiciousStewEffects::new, SuspiciousStewEffects::effects);
public SuspiciousStewEffects withEffectAdded(SuspiciousStewEffects.a suspicioussteweffects_a) {
- return new SuspiciousStewEffects(SystemUtils.copyAndAdd(this.effects, (Object) suspicioussteweffects_a));
+ return new SuspiciousStewEffects(SystemUtils.copyAndAdd(this.effects, suspicioussteweffects_a)); // CraftBukkit - decompile error
}
@Override
@@ -44,6 +44,15 @@
}
+ // CraftBukkit start
+ @Override
+ public void cancelUsingItem(net.minecraft.server.level.EntityPlayer entityplayer, ItemStack itemstack) {
+ for (SuspiciousStewEffects.a suspicioussteweffects_a : this.effects) {
+ entityplayer.connection.send(new net.minecraft.network.protocol.game.PacketPlayOutRemoveEntityEffect(entityplayer.getId(), suspicioussteweffects_a.effect()));
+ }
+ }
+ // CraftBukkit end
+
@Override
public void addToTooltip(Item.b item_b, Consumer<IChatBaseComponent> consumer, TooltipFlag tooltipflag) {
if (tooltipflag.isCreative()) {