Update to Minecraft 1.21.4

By: md_5 <git@md-5.net>
This commit is contained in:
CraftBukkit/Spigot
2024-12-04 03:20:00 +11:00
parent 267ae64dd6
commit 5381ea78f7
125 changed files with 1383 additions and 1093 deletions

View File

@@ -40,24 +40,24 @@ public abstract class CraftFurnace<T extends TileEntityFurnace> extends CraftCon
@Override
public short getBurnTime() {
return (short) this.getSnapshot().litTime;
return (short) this.getSnapshot().litTimeRemaining;
}
@Override
public void setBurnTime(short burnTime) {
this.getSnapshot().litTime = burnTime;
this.getSnapshot().litTimeRemaining = burnTime;
// SPIGOT-844: Allow lighting and relighting using this API
this.data = this.data.setValue(BlockFurnace.LIT, burnTime > 0);
}
@Override
public short getCookTime() {
return (short) this.getSnapshot().cookingProgress;
return (short) this.getSnapshot().cookingTimer;
}
@Override
public void setCookTime(short cookTime) {
this.getSnapshot().cookingProgress = cookTime;
this.getSnapshot().cookingTimer = cookTime;
}
@Override

View File

@@ -499,7 +499,6 @@ public class CraftBlockData implements BlockData {
register(net.minecraft.world.level.block.CaveVinesBlock.class, org.bukkit.craftbukkit.block.impl.CraftCaveVines::new);
register(net.minecraft.world.level.block.CaveVinesPlantBlock.class, org.bukkit.craftbukkit.block.impl.CraftCaveVinesPlant::new);
register(net.minecraft.world.level.block.CeilingHangingSignBlock.class, org.bukkit.craftbukkit.block.impl.CraftCeilingHangingSign::new);
register(net.minecraft.world.level.block.CherryLeavesBlock.class, org.bukkit.craftbukkit.block.impl.CraftCherryLeaves::new);
register(net.minecraft.world.level.block.ChiseledBookShelfBlock.class, org.bukkit.craftbukkit.block.impl.CraftChiseledBookShelf::new);
register(net.minecraft.world.level.block.CopperBulbBlock.class, org.bukkit.craftbukkit.block.impl.CraftCopperBulb::new);
register(net.minecraft.world.level.block.CrafterBlock.class, org.bukkit.craftbukkit.block.impl.CraftCrafter::new);
@@ -517,6 +516,8 @@ public class CraftBlockData implements BlockData {
register(net.minecraft.world.level.block.MangrovePropaguleBlock.class, org.bukkit.craftbukkit.block.impl.CraftMangrovePropagule::new);
register(net.minecraft.world.level.block.MangroveRootsBlock.class, org.bukkit.craftbukkit.block.impl.CraftMangroveRoots::new);
register(net.minecraft.world.level.block.MossyCarpetBlock.class, org.bukkit.craftbukkit.block.impl.CraftMossyCarpet::new);
register(net.minecraft.world.level.block.MultifaceBlock.class, org.bukkit.craftbukkit.block.impl.CraftMultiface::new);
register(net.minecraft.world.level.block.ParticleLeavesBlock.class, org.bukkit.craftbukkit.block.impl.CraftParticleLeaves::new);
register(net.minecraft.world.level.block.PiglinWallSkullBlock.class, org.bukkit.craftbukkit.block.impl.CraftPiglinWallSkull::new);
register(net.minecraft.world.level.block.PinkPetalsBlock.class, org.bukkit.craftbukkit.block.impl.CraftPinkPetals::new);
register(net.minecraft.world.level.block.PitcherCropBlock.class, org.bukkit.craftbukkit.block.impl.CraftPitcherCrop::new);

View File

@@ -5,15 +5,26 @@ import org.bukkit.craftbukkit.block.data.CraftBlockData;
public abstract class CraftCreakingHeart extends CraftBlockData implements CreakingHeart {
private static final net.minecraft.world.level.block.state.properties.BlockStateEnum<?> CREAKING = getEnum("creaking");
private static final net.minecraft.world.level.block.state.properties.BlockStateBoolean ACTIVE = getBoolean("active");
private static final net.minecraft.world.level.block.state.properties.BlockStateBoolean NATURAL = getBoolean("natural");
@Override
public org.bukkit.block.data.type.CreakingHeart.Creaking getCreaking() {
return get(CREAKING, org.bukkit.block.data.type.CreakingHeart.Creaking.class);
public boolean isActive() {
return get(ACTIVE);
}
@Override
public void setCreaking(org.bukkit.block.data.type.CreakingHeart.Creaking creaking) {
set(CREAKING, creaking);
public void setActive(boolean active) {
set(ACTIVE, active);
}
@Override
public boolean isNatural() {
return get(NATURAL);
}
@Override
public void setNatural(boolean natural) {
set(NATURAL, natural);
}
}

View File

@@ -15,16 +15,27 @@ public final class CraftCreakingHeart extends org.bukkit.craftbukkit.block.data.
// org.bukkit.craftbukkit.block.data.type.CraftCreakingHeart
private static final net.minecraft.world.level.block.state.properties.BlockStateEnum<?> CREAKING = getEnum(net.minecraft.world.level.block.CreakingHeartBlock.class, "creaking");
private static final net.minecraft.world.level.block.state.properties.BlockStateBoolean ACTIVE = getBoolean(net.minecraft.world.level.block.CreakingHeartBlock.class, "active");
private static final net.minecraft.world.level.block.state.properties.BlockStateBoolean NATURAL = getBoolean(net.minecraft.world.level.block.CreakingHeartBlock.class, "natural");
@Override
public org.bukkit.block.data.type.CreakingHeart.Creaking getCreaking() {
return get(CREAKING, org.bukkit.block.data.type.CreakingHeart.Creaking.class);
public boolean isActive() {
return get(ACTIVE);
}
@Override
public void setCreaking(org.bukkit.block.data.type.CreakingHeart.Creaking creaking) {
set(CREAKING, creaking);
public void setActive(boolean active) {
set(ACTIVE, active);
}
@Override
public boolean isNatural() {
return get(NATURAL);
}
@Override
public void setNatural(boolean natural) {
set(NATURAL, natural);
}
// org.bukkit.craftbukkit.block.data.CraftOrientable

View File

@@ -0,0 +1,79 @@
/**
* Automatically generated file, changes will be lost.
*/
package org.bukkit.craftbukkit.block.impl;
public final class CraftMultiface extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.ResinClump, org.bukkit.block.data.MultipleFacing, org.bukkit.block.data.Waterlogged {
public CraftMultiface() {
super();
}
public CraftMultiface(net.minecraft.world.level.block.state.IBlockData state) {
super(state);
}
// org.bukkit.craftbukkit.block.data.CraftMultipleFacing
private static final net.minecraft.world.level.block.state.properties.BlockStateBoolean[] FACES = new net.minecraft.world.level.block.state.properties.BlockStateBoolean[]{
getBoolean(net.minecraft.world.level.block.MultifaceBlock.class, "north", true), getBoolean(net.minecraft.world.level.block.MultifaceBlock.class, "east", true), getBoolean(net.minecraft.world.level.block.MultifaceBlock.class, "south", true), getBoolean(net.minecraft.world.level.block.MultifaceBlock.class, "west", true), getBoolean(net.minecraft.world.level.block.MultifaceBlock.class, "up", true), getBoolean(net.minecraft.world.level.block.MultifaceBlock.class, "down", true)
};
@Override
public boolean hasFace(org.bukkit.block.BlockFace face) {
net.minecraft.world.level.block.state.properties.BlockStateBoolean state = FACES[face.ordinal()];
if (state == null) {
throw new IllegalArgumentException("Non-allowed face " + face + ". Check MultipleFacing.getAllowedFaces.");
}
return get(state);
}
@Override
public void setFace(org.bukkit.block.BlockFace face, boolean has) {
net.minecraft.world.level.block.state.properties.BlockStateBoolean state = FACES[face.ordinal()];
if (state == null) {
throw new IllegalArgumentException("Non-allowed face " + face + ". Check MultipleFacing.getAllowedFaces.");
}
set(state, has);
}
@Override
public java.util.Set<org.bukkit.block.BlockFace> getFaces() {
com.google.common.collect.ImmutableSet.Builder<org.bukkit.block.BlockFace> faces = com.google.common.collect.ImmutableSet.builder();
for (int i = 0; i < FACES.length; i++) {
if (FACES[i] != null && get(FACES[i])) {
faces.add(org.bukkit.block.BlockFace.values()[i]);
}
}
return faces.build();
}
@Override
public java.util.Set<org.bukkit.block.BlockFace> getAllowedFaces() {
com.google.common.collect.ImmutableSet.Builder<org.bukkit.block.BlockFace> faces = com.google.common.collect.ImmutableSet.builder();
for (int i = 0; i < FACES.length; i++) {
if (FACES[i] != null) {
faces.add(org.bukkit.block.BlockFace.values()[i]);
}
}
return faces.build();
}
// org.bukkit.craftbukkit.block.data.CraftWaterlogged
private static final net.minecraft.world.level.block.state.properties.BlockStateBoolean WATERLOGGED = getBoolean(net.minecraft.world.level.block.MultifaceBlock.class, "waterlogged");
@Override
public boolean isWaterlogged() {
return get(WATERLOGGED);
}
@Override
public void setWaterlogged(boolean waterlogged) {
set(WATERLOGGED, waterlogged);
}
}

View File

@@ -3,20 +3,20 @@
*/
package org.bukkit.craftbukkit.block.impl;
public final class CraftCherryLeaves extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.Leaves, org.bukkit.block.data.Waterlogged {
public final class CraftParticleLeaves extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.Leaves, org.bukkit.block.data.Waterlogged {
public CraftCherryLeaves() {
public CraftParticleLeaves() {
super();
}
public CraftCherryLeaves(net.minecraft.world.level.block.state.IBlockData state) {
public CraftParticleLeaves(net.minecraft.world.level.block.state.IBlockData state) {
super(state);
}
// org.bukkit.craftbukkit.block.data.type.CraftLeaves
private static final net.minecraft.world.level.block.state.properties.BlockStateInteger DISTANCE = getInteger(net.minecraft.world.level.block.CherryLeavesBlock.class, "distance");
private static final net.minecraft.world.level.block.state.properties.BlockStateBoolean PERSISTENT = getBoolean(net.minecraft.world.level.block.CherryLeavesBlock.class, "persistent");
private static final net.minecraft.world.level.block.state.properties.BlockStateInteger DISTANCE = getInteger(net.minecraft.world.level.block.ParticleLeavesBlock.class, "distance");
private static final net.minecraft.world.level.block.state.properties.BlockStateBoolean PERSISTENT = getBoolean(net.minecraft.world.level.block.ParticleLeavesBlock.class, "persistent");
@Override
public boolean isPersistent() {
@@ -40,7 +40,7 @@ public final class CraftCherryLeaves extends org.bukkit.craftbukkit.block.data.C
// org.bukkit.craftbukkit.block.data.CraftWaterlogged
private static final net.minecraft.world.level.block.state.properties.BlockStateBoolean WATERLOGGED = getBoolean(net.minecraft.world.level.block.CherryLeavesBlock.class, "waterlogged");
private static final net.minecraft.world.level.block.state.properties.BlockStateBoolean WATERLOGGED = getBoolean(net.minecraft.world.level.block.ParticleLeavesBlock.class, "waterlogged");
@Override
public boolean isWaterlogged() {