@@ -2,8 +2,6 @@ package org.bukkit.craftbukkit.block;
|
||||
|
||||
import net.minecraft.core.BlockPosition;
|
||||
import net.minecraft.util.RandomSource;
|
||||
import net.minecraft.world.entity.EntityTypes;
|
||||
import net.minecraft.world.entity.animal.EntityBee;
|
||||
import net.minecraft.world.level.GeneratorAccessSeed;
|
||||
import net.minecraft.world.level.World;
|
||||
import net.minecraft.world.level.block.entity.TileEntity;
|
||||
@@ -63,9 +61,7 @@ public final class CapturedBlockState extends CraftBlockState {
|
||||
int j = 2 + random.nextInt(2);
|
||||
|
||||
for (int k = 0; k < j; ++k) {
|
||||
EntityBee entitybee = new EntityBee(EntityTypes.BEE, generatoraccessseed.getMinecraftWorld());
|
||||
|
||||
tileentitybeehive.addOccupantWithPresetTicks(entitybee, false, random.nextInt(599));
|
||||
tileentitybeehive.storeBee(TileEntityBeehive.c.create(random.nextInt(599)));
|
||||
}
|
||||
}
|
||||
// End copied block
|
||||
|
||||
@@ -3,17 +3,16 @@ package org.bukkit.craftbukkit.block;
|
||||
import com.google.common.base.Preconditions;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.nbt.NBTTagList;
|
||||
import net.minecraft.world.item.EnumColor;
|
||||
import net.minecraft.world.level.block.BlockBannerAbstract;
|
||||
import net.minecraft.world.level.block.entity.BannerPatternLayers;
|
||||
import net.minecraft.world.level.block.entity.TileEntityBanner;
|
||||
import org.bukkit.DyeColor;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.block.Banner;
|
||||
import org.bukkit.block.banner.Pattern;
|
||||
import org.bukkit.block.banner.PatternType;
|
||||
import org.bukkit.craftbukkit.block.banner.CraftPatternType;
|
||||
|
||||
public class CraftBanner extends CraftBlockEntityState<TileEntityBanner> implements Banner {
|
||||
|
||||
@@ -35,10 +34,10 @@ public class CraftBanner extends CraftBlockEntityState<TileEntityBanner> impleme
|
||||
base = DyeColor.getByWoolData((byte) ((BlockBannerAbstract) this.data.getBlock()).getColor().getId());
|
||||
patterns = new ArrayList<Pattern>();
|
||||
|
||||
if (banner.itemPatterns != null) {
|
||||
for (int i = 0; i < banner.itemPatterns.size(); i++) {
|
||||
NBTTagCompound p = (NBTTagCompound) banner.itemPatterns.get(i);
|
||||
patterns.add(new Pattern(DyeColor.getByWoolData((byte) p.getInt("Color")), PatternType.getByIdentifier(p.getString("Pattern"))));
|
||||
if (banner.getPatterns() != null) {
|
||||
for (int i = 0; i < banner.getPatterns().layers().size(); i++) {
|
||||
BannerPatternLayers.b p = banner.getPatterns().layers().get(i);
|
||||
patterns.add(new Pattern(DyeColor.getByWoolData((byte) p.color().getId()), CraftPatternType.minecraftHolderToBukkit(p.pattern())));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -95,15 +94,12 @@ public class CraftBanner extends CraftBlockEntityState<TileEntityBanner> impleme
|
||||
|
||||
banner.baseColor = EnumColor.byId(base.getWoolData());
|
||||
|
||||
NBTTagList newPatterns = new NBTTagList();
|
||||
List<BannerPatternLayers.b> newPatterns = new ArrayList<>();
|
||||
|
||||
for (Pattern p : patterns) {
|
||||
NBTTagCompound compound = new NBTTagCompound();
|
||||
compound.putInt("Color", p.getColor().getWoolData());
|
||||
compound.putString("Pattern", p.getPattern().getIdentifier());
|
||||
newPatterns.add(compound);
|
||||
newPatterns.add(new net.minecraft.world.level.block.entity.BannerPatternLayers.b(CraftPatternType.bukkitToMinecraftHolder(p.getPattern()), EnumColor.byId(p.getColor().getWoolData())));
|
||||
}
|
||||
banner.itemPatterns = newPatterns;
|
||||
banner.setPatterns(new BannerPatternLayers(newPatterns));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -59,7 +59,7 @@ public class CraftBeacon extends CraftBlockEntityState<TileEntityBeacon> impleme
|
||||
|
||||
@Override
|
||||
public void setPrimaryEffect(PotionEffectType effect) {
|
||||
this.getSnapshot().primaryPower = (effect != null) ? CraftPotionEffectType.bukkitToMinecraft(effect) : null;
|
||||
this.getSnapshot().primaryPower = (effect != null) ? CraftPotionEffectType.bukkitToMinecraftHolder(effect) : null;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -69,7 +69,7 @@ public class CraftBeacon extends CraftBlockEntityState<TileEntityBeacon> impleme
|
||||
|
||||
@Override
|
||||
public void setSecondaryEffect(PotionEffectType effect) {
|
||||
this.getSnapshot().secondaryPower = (effect != null) ? CraftPotionEffectType.bukkitToMinecraft(effect) : null;
|
||||
this.getSnapshot().secondaryPower = (effect != null) ? CraftPotionEffectType.bukkitToMinecraftHolder(effect) : null;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -85,12 +85,12 @@ public class CraftBeacon extends CraftBlockEntityState<TileEntityBeacon> impleme
|
||||
|
||||
@Override
|
||||
public boolean isLocked() {
|
||||
return !this.getSnapshot().lockKey.key.isEmpty();
|
||||
return !this.getSnapshot().lockKey.key().isEmpty();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getLock() {
|
||||
return this.getSnapshot().lockKey.key;
|
||||
return this.getSnapshot().lockKey.key();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -83,7 +83,7 @@ public class CraftBeehive extends CraftBlockEntityState<TileEntityBeehive> imple
|
||||
public void addEntity(Bee entity) {
|
||||
Preconditions.checkArgument(entity != null, "Entity must not be null");
|
||||
|
||||
getSnapshot().addOccupant(((CraftBee) entity).getHandle(), false);
|
||||
getSnapshot().addOccupant(((CraftBee) entity).getHandle());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1,9 +1,14 @@
|
||||
package org.bukkit.craftbukkit.block;
|
||||
|
||||
import net.minecraft.core.IRegistryCustom;
|
||||
import net.minecraft.core.component.DataComponentMap;
|
||||
import net.minecraft.core.component.DataComponentPatch;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.network.protocol.Packet;
|
||||
import net.minecraft.network.protocol.game.PacketListenerPlayOut;
|
||||
import net.minecraft.network.protocol.game.PacketPlayOutTileEntityData;
|
||||
import net.minecraft.server.MinecraftServer;
|
||||
import net.minecraft.world.level.GeneratorAccess;
|
||||
import net.minecraft.world.level.block.entity.TileEntity;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.World;
|
||||
@@ -39,27 +44,40 @@ public class CraftBlockEntityState<T extends TileEntity> extends CraftBlockState
|
||||
this.load(tileEntity);
|
||||
}
|
||||
|
||||
private IRegistryCustom getRegistryAccess() {
|
||||
GeneratorAccess worldHandle = getWorldHandle();
|
||||
return (worldHandle != null) ? worldHandle.registryAccess() : MinecraftServer.getDefaultRegistryAccess();
|
||||
}
|
||||
|
||||
private T createSnapshot(T tileEntity) {
|
||||
if (tileEntity == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
NBTTagCompound nbtTagCompound = tileEntity.saveWithFullMetadata();
|
||||
T snapshot = (T) TileEntity.loadStatic(getPosition(), getHandle(), nbtTagCompound);
|
||||
NBTTagCompound nbtTagCompound = tileEntity.saveWithFullMetadata(getRegistryAccess());
|
||||
T snapshot = (T) TileEntity.loadStatic(getPosition(), getHandle(), nbtTagCompound, getRegistryAccess());
|
||||
|
||||
return snapshot;
|
||||
}
|
||||
|
||||
public void applyComponents(DataComponentMap datacomponentmap, DataComponentPatch datacomponentpatch) {
|
||||
snapshot.applyComponents(datacomponentmap, datacomponentpatch);
|
||||
}
|
||||
|
||||
public DataComponentMap collectComponents() {
|
||||
return snapshot.collectComponents();
|
||||
}
|
||||
|
||||
// Loads the specified data into the snapshot TileEntity.
|
||||
public void loadData(NBTTagCompound nbtTagCompound) {
|
||||
snapshot.load(nbtTagCompound);
|
||||
snapshot.loadWithComponents(nbtTagCompound, getRegistryAccess());
|
||||
load(snapshot);
|
||||
}
|
||||
|
||||
// copies the TileEntity-specific data, retains the position
|
||||
private void copyData(T from, T to) {
|
||||
NBTTagCompound nbtTagCompound = from.saveWithFullMetadata();
|
||||
to.load(nbtTagCompound);
|
||||
NBTTagCompound nbtTagCompound = from.saveWithFullMetadata(getRegistryAccess());
|
||||
to.loadWithComponents(nbtTagCompound, getRegistryAccess());
|
||||
}
|
||||
|
||||
// gets the wrapped TileEntity
|
||||
@@ -84,7 +102,13 @@ public class CraftBlockEntityState<T extends TileEntity> extends CraftBlockState
|
||||
// update snapshot
|
||||
applyTo(snapshot);
|
||||
|
||||
return snapshot.saveWithFullMetadata();
|
||||
return snapshot.saveWithFullMetadata(getRegistryAccess());
|
||||
}
|
||||
|
||||
public NBTTagCompound getSnapshotNBTWithoutComponents() {
|
||||
NBTTagCompound nbt = getSnapshotNBT();
|
||||
snapshot.removeComponentsFromTag(nbt);
|
||||
return nbt;
|
||||
}
|
||||
|
||||
// copies the data of the given tile entity to this block state
|
||||
@@ -128,7 +152,7 @@ public class CraftBlockEntityState<T extends TileEntity> extends CraftBlockState
|
||||
|
||||
@Nullable
|
||||
public Packet<PacketListenerPlayOut> getUpdatePacket(@NotNull Location location) {
|
||||
T vanillaTileEntitiy = (T) TileEntity.loadStatic(CraftLocation.toBlockPosition(location), getHandle(), getSnapshotNBT());
|
||||
T vanillaTileEntitiy = (T) TileEntity.loadStatic(CraftLocation.toBlockPosition(location), getHandle(), getSnapshotNBT(), getRegistryAccess());
|
||||
return PacketPlayOutTileEntityData.create(vanillaTileEntitiy);
|
||||
}
|
||||
|
||||
|
||||
@@ -9,8 +9,11 @@ import java.util.Map;
|
||||
import java.util.function.BiFunction;
|
||||
import javax.annotation.Nullable;
|
||||
import net.minecraft.core.BlockPosition;
|
||||
import net.minecraft.core.IRegistryCustom;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.server.MinecraftServer;
|
||||
import net.minecraft.world.level.GeneratorAccess;
|
||||
import net.minecraft.world.level.IWorldReader;
|
||||
import net.minecraft.world.level.block.entity.BrushableBlockEntity;
|
||||
import net.minecraft.world.level.block.entity.CalibratedSculkSensorBlockEntity;
|
||||
import net.minecraft.world.level.block.entity.ChiseledBookShelfBlockEntity;
|
||||
@@ -54,6 +57,7 @@ import net.minecraft.world.level.block.entity.TileEntitySkull;
|
||||
import net.minecraft.world.level.block.entity.TileEntitySmoker;
|
||||
import net.minecraft.world.level.block.entity.TileEntityStructure;
|
||||
import net.minecraft.world.level.block.entity.TrialSpawnerBlockEntity;
|
||||
import net.minecraft.world.level.block.entity.vault.VaultBlockEntity;
|
||||
import net.minecraft.world.level.block.piston.TileEntityPiston;
|
||||
import net.minecraft.world.level.block.state.IBlockData;
|
||||
import org.bukkit.Material;
|
||||
@@ -336,6 +340,7 @@ public final class CraftBlockStates {
|
||||
register(Material.TRAPPED_CHEST, CraftChest.class, CraftChest::new, TileEntityChestTrapped::new);
|
||||
register(Material.CRAFTER, CraftCrafter.class, CraftCrafter::new, CrafterBlockEntity::new);
|
||||
register(Material.TRIAL_SPAWNER, CraftTrialSpawner.class, CraftTrialSpawner::new, TrialSpawnerBlockEntity::new);
|
||||
register(Material.VAULT, CraftVault.class, CraftVault::new, VaultBlockEntity::new);
|
||||
}
|
||||
|
||||
private static void register(Material blockType, BlockStateFactory<?> factory) {
|
||||
@@ -394,24 +399,34 @@ public final class CraftBlockStates {
|
||||
return blockState;
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public static BlockState getBlockState(Material material, @Nullable NBTTagCompound blockEntityTag) {
|
||||
return getBlockState(BlockPosition.ZERO, material, blockEntityTag);
|
||||
return getBlockState(MinecraftServer.getDefaultRegistryAccess(), BlockPosition.ZERO, material, blockEntityTag);
|
||||
}
|
||||
|
||||
public static BlockState getBlockState(BlockPosition blockPosition, Material material, @Nullable NBTTagCompound blockEntityTag) {
|
||||
public static BlockState getBlockState(IWorldReader world, BlockPosition blockPosition, Material material, @Nullable NBTTagCompound blockEntityTag) {
|
||||
return getBlockState(world.registryAccess(), blockPosition, material, blockEntityTag);
|
||||
}
|
||||
|
||||
public static BlockState getBlockState(IRegistryCustom registry, BlockPosition blockPosition, Material material, @Nullable NBTTagCompound blockEntityTag) {
|
||||
Preconditions.checkNotNull(material, "material is null");
|
||||
IBlockData blockData = CraftBlockType.bukkitToMinecraft(material).defaultBlockState();
|
||||
return getBlockState(blockPosition, blockData, blockEntityTag);
|
||||
return getBlockState(registry, blockPosition, blockData, blockEntityTag);
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public static BlockState getBlockState(IBlockData blockData, @Nullable NBTTagCompound blockEntityTag) {
|
||||
return getBlockState(BlockPosition.ZERO, blockData, blockEntityTag);
|
||||
return getBlockState(MinecraftServer.getDefaultRegistryAccess(), BlockPosition.ZERO, blockData, blockEntityTag);
|
||||
}
|
||||
|
||||
public static BlockState getBlockState(BlockPosition blockPosition, IBlockData blockData, @Nullable NBTTagCompound blockEntityTag) {
|
||||
public static BlockState getBlockState(IWorldReader world, BlockPosition blockPosition, IBlockData blockData, @Nullable NBTTagCompound blockEntityTag) {
|
||||
return getBlockState(world.registryAccess(), blockPosition, blockData, blockEntityTag);
|
||||
}
|
||||
|
||||
public static BlockState getBlockState(IRegistryCustom registry, BlockPosition blockPosition, IBlockData blockData, @Nullable NBTTagCompound blockEntityTag) {
|
||||
Preconditions.checkNotNull(blockPosition, "blockPosition is null");
|
||||
Preconditions.checkNotNull(blockData, "blockData is null");
|
||||
TileEntity tileEntity = (blockEntityTag == null) ? null : TileEntity.loadStatic(blockPosition, blockData, blockEntityTag);
|
||||
TileEntity tileEntity = (blockEntityTag == null) ? null : TileEntity.loadStatic(blockPosition, blockData, blockEntityTag, registry);
|
||||
return getBlockState(null, blockPosition, blockData, tileEntity);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,13 +1,11 @@
|
||||
package org.bukkit.craftbukkit.block;
|
||||
|
||||
import net.minecraft.resources.MinecraftKey;
|
||||
import net.minecraft.world.level.block.entity.BrushableBlockEntity;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.block.BrushableBlock;
|
||||
import org.bukkit.craftbukkit.CraftLootTable;
|
||||
import org.bukkit.craftbukkit.inventory.CraftItemStack;
|
||||
import org.bukkit.craftbukkit.util.CraftNamespacedKey;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.loot.LootTable;
|
||||
|
||||
@@ -36,18 +34,13 @@ public class CraftBrushableBlock extends CraftBlockEntityState<BrushableBlockEnt
|
||||
super.applyTo(lootable);
|
||||
|
||||
if (this.getSnapshot().lootTable == null) {
|
||||
lootable.setLootTable((MinecraftKey) null, 0L);
|
||||
lootable.setLootTable(null, 0L);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public LootTable getLootTable() {
|
||||
if (getSnapshot().lootTable == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
MinecraftKey key = getSnapshot().lootTable;
|
||||
return Bukkit.getLootTable(CraftNamespacedKey.fromMinecraft(key));
|
||||
return CraftLootTable.minecraftToBukkit(getSnapshot().lootTable);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -66,8 +59,7 @@ public class CraftBrushableBlock extends CraftBlockEntityState<BrushableBlockEnt
|
||||
}
|
||||
|
||||
private void setLootTable(LootTable table, long seed) {
|
||||
MinecraftKey key = (table == null) ? null : CraftNamespacedKey.toMinecraft(table.getKey());
|
||||
getSnapshot().setLootTable(key, seed);
|
||||
getSnapshot().setLootTable(CraftLootTable.bukkitToMinecraft(table), seed);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -70,7 +70,14 @@ public class CraftChiseledBookshelf extends CraftBlockEntityState<ChiseledBookSh
|
||||
return -1;
|
||||
}
|
||||
|
||||
return ChiseledBookShelfBlock.getHitSlot(faceVector);
|
||||
return getHitSlot(faceVector);
|
||||
}
|
||||
|
||||
private static int getHitSlot(Vec2F vec2f) {
|
||||
int i = vec2f.y >= 0.5F ? 0 : 1;
|
||||
int j = ChiseledBookShelfBlock.getSection(vec2f.x);
|
||||
|
||||
return j + i * 3;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -33,7 +33,7 @@ public class CraftCommandBlock extends CraftBlockEntityState<TileEntityCommand>
|
||||
|
||||
@Override
|
||||
public void setName(String name) {
|
||||
getSnapshot().getCommandBlock().setName(CraftChatMessage.fromStringOrNull(name != null ? name : "@"));
|
||||
getSnapshot().getCommandBlock().setCustomName(CraftChatMessage.fromStringOrNull(name != null ? name : "@"));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -19,12 +19,12 @@ public abstract class CraftContainer<T extends TileEntityContainer> extends Craf
|
||||
|
||||
@Override
|
||||
public boolean isLocked() {
|
||||
return !this.getSnapshot().lockKey.key.isEmpty();
|
||||
return !this.getSnapshot().lockKey.key().isEmpty();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getLock() {
|
||||
return this.getSnapshot().lockKey.key;
|
||||
return this.getSnapshot().lockKey.key();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -40,7 +40,7 @@ public abstract class CraftContainer<T extends TileEntityContainer> extends Craf
|
||||
|
||||
@Override
|
||||
public void setCustomName(String name) {
|
||||
this.getSnapshot().setCustomName(CraftChatMessage.fromStringOrNull(name));
|
||||
this.getSnapshot().name = CraftChatMessage.fromStringOrNull(name);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -48,7 +48,7 @@ public abstract class CraftContainer<T extends TileEntityContainer> extends Craf
|
||||
super.applyTo(container);
|
||||
|
||||
if (this.getSnapshot().name == null) {
|
||||
container.setCustomName(null);
|
||||
container.name = null;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -3,14 +3,18 @@ package org.bukkit.craftbukkit.block;
|
||||
import com.google.common.base.Preconditions;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.stream.Collectors;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.InclusiveRange;
|
||||
import net.minecraft.util.RandomSource;
|
||||
import net.minecraft.util.random.SimpleWeightedRandomList;
|
||||
import net.minecraft.util.random.WeightedEntry.b;
|
||||
import net.minecraft.world.entity.EntityTypes;
|
||||
import net.minecraft.world.entity.EquipmentTable;
|
||||
import net.minecraft.world.level.MobSpawnerData;
|
||||
import net.minecraft.world.level.block.entity.TileEntityMobSpawner;
|
||||
import org.bukkit.Location;
|
||||
@@ -18,6 +22,8 @@ import org.bukkit.World;
|
||||
import org.bukkit.block.CreatureSpawner;
|
||||
import org.bukkit.block.spawner.SpawnRule;
|
||||
import org.bukkit.block.spawner.SpawnerEntry;
|
||||
import org.bukkit.craftbukkit.CraftEquipmentSlot;
|
||||
import org.bukkit.craftbukkit.CraftLootTable;
|
||||
import org.bukkit.craftbukkit.entity.CraftEntitySnapshot;
|
||||
import org.bukkit.craftbukkit.entity.CraftEntityType;
|
||||
import org.bukkit.entity.EntitySnapshot;
|
||||
@@ -72,7 +78,7 @@ public class CraftCreatureSpawner extends CraftBlockEntityState<TileEntityMobSpa
|
||||
NBTTagCompound compoundTag = ((CraftEntitySnapshot) snapshot).getData();
|
||||
|
||||
this.getSnapshot().getSpawner().spawnPotentials = SimpleWeightedRandomList.empty();
|
||||
this.getSnapshot().getSpawner().nextSpawnData = new MobSpawnerData(compoundTag, Optional.empty());
|
||||
this.getSnapshot().getSpawner().nextSpawnData = new MobSpawnerData(compoundTag, Optional.empty(), Optional.empty());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -80,8 +86,8 @@ public class CraftCreatureSpawner extends CraftBlockEntityState<TileEntityMobSpa
|
||||
NBTTagCompound compoundTag = ((CraftEntitySnapshot) snapshot).getData();
|
||||
|
||||
SimpleWeightedRandomList.a<MobSpawnerData> builder = SimpleWeightedRandomList.builder(); // PAIL rename Builder
|
||||
this.getSnapshot().getSpawner().spawnPotentials.unwrap().forEach(entry -> builder.add(entry.getData(), entry.getWeight().asInt()));
|
||||
builder.add(new MobSpawnerData(compoundTag, Optional.ofNullable(toMinecraftRule(spawnRule))), weight);
|
||||
this.getSnapshot().getSpawner().spawnPotentials.unwrap().forEach(entry -> builder.add(entry.data(), entry.getWeight().asInt()));
|
||||
builder.add(new MobSpawnerData(compoundTag, Optional.ofNullable(toMinecraftRule(spawnRule)), Optional.empty()), weight);
|
||||
this.getSnapshot().getSpawner().spawnPotentials = builder.build();
|
||||
}
|
||||
|
||||
@@ -95,7 +101,7 @@ public class CraftCreatureSpawner extends CraftBlockEntityState<TileEntityMobSpa
|
||||
SimpleWeightedRandomList.a<MobSpawnerData> builder = SimpleWeightedRandomList.builder();
|
||||
for (SpawnerEntry spawnerEntry : entries) {
|
||||
NBTTagCompound compoundTag = ((CraftEntitySnapshot) spawnerEntry.getSnapshot()).getData();
|
||||
builder.add(new MobSpawnerData(compoundTag, Optional.ofNullable(toMinecraftRule(spawnerEntry.getSpawnRule()))), spawnerEntry.getSpawnWeight());
|
||||
builder.add(new MobSpawnerData(compoundTag, Optional.ofNullable(toMinecraftRule(spawnerEntry.getSpawnRule())), getEquipment(spawnerEntry.getEquipment())), spawnerEntry.getSpawnWeight());
|
||||
}
|
||||
this.getSnapshot().getSpawner().spawnPotentials = builder.build();
|
||||
}
|
||||
@@ -105,11 +111,11 @@ public class CraftCreatureSpawner extends CraftBlockEntityState<TileEntityMobSpa
|
||||
List<SpawnerEntry> entries = new ArrayList<>();
|
||||
|
||||
for (b<MobSpawnerData> entry : this.getSnapshot().getSpawner().spawnPotentials.unwrap()) { // PAIL rename Wrapper
|
||||
CraftEntitySnapshot snapshot = CraftEntitySnapshot.create(entry.getData().getEntityToSpawn());
|
||||
CraftEntitySnapshot snapshot = CraftEntitySnapshot.create(entry.data().getEntityToSpawn());
|
||||
|
||||
if (snapshot != null) {
|
||||
SpawnRule rule = entry.getData().customSpawnRules().map(this::fromMinecraftRule).orElse(null);
|
||||
entries.add(new SpawnerEntry(snapshot, entry.getWeight().asInt(), rule));
|
||||
SpawnRule rule = entry.data().customSpawnRules().map(this::fromMinecraftRule).orElse(null);
|
||||
entries.add(new SpawnerEntry(snapshot, entry.getWeight().asInt(), rule, getEquipment(entry.data().equipment())));
|
||||
}
|
||||
}
|
||||
return entries;
|
||||
@@ -123,10 +129,10 @@ public class CraftCreatureSpawner extends CraftBlockEntityState<TileEntityMobSpa
|
||||
}
|
||||
|
||||
private SpawnRule fromMinecraftRule(MobSpawnerData.a rule) {
|
||||
InclusiveRange<Integer> blockLight = rule.blockLightLimit();
|
||||
InclusiveRange<Integer> skyLight = rule.skyLightLimit();
|
||||
InclusiveRange<Integer> blockLight = rule.blockLightLimit();
|
||||
InclusiveRange<Integer> skyLight = rule.skyLightLimit();
|
||||
|
||||
return new SpawnRule(blockLight.maxInclusive(), blockLight.maxInclusive(), skyLight.minInclusive(), skyLight.maxInclusive());
|
||||
return new SpawnRule(blockLight.maxInclusive(), blockLight.maxInclusive(), skyLight.minInclusive(), skyLight.maxInclusive());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -233,4 +239,22 @@ public class CraftCreatureSpawner extends CraftBlockEntityState<TileEntityMobSpa
|
||||
public CraftCreatureSpawner copy(Location location) {
|
||||
return new CraftCreatureSpawner(this, location);
|
||||
}
|
||||
|
||||
private static Optional<EquipmentTable> getEquipment(SpawnerEntry.Equipment bukkit) {
|
||||
if (bukkit == null) {
|
||||
return Optional.empty();
|
||||
}
|
||||
|
||||
return Optional.of(new EquipmentTable(
|
||||
CraftLootTable.bukkitToMinecraft(bukkit.getEquipmentLootTable()),
|
||||
bukkit.getDropChances().entrySet().stream().collect(Collectors.toMap((entry) -> CraftEquipmentSlot.getNMS(entry.getKey()), Map.Entry::getValue)))
|
||||
);
|
||||
}
|
||||
|
||||
private static SpawnerEntry.Equipment getEquipment(Optional<EquipmentTable> optional) {
|
||||
return optional.map((nms) -> new SpawnerEntry.Equipment(
|
||||
CraftLootTable.minecraftToBukkit(nms.lootTable()),
|
||||
new HashMap<>(nms.slotDropChances().entrySet().stream().collect(Collectors.toMap((entry) -> CraftEquipmentSlot.getSlot(entry.getKey()), Map.Entry::getValue)))
|
||||
)).orElse(null);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,10 +4,12 @@ import com.google.common.base.Preconditions;
|
||||
import java.util.EnumMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.stream.Collectors;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.Items;
|
||||
import net.minecraft.world.level.block.entity.DecoratedPotBlockEntity;
|
||||
import net.minecraft.world.level.block.entity.PotDecorations;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.Tag;
|
||||
@@ -46,14 +48,14 @@ public class CraftDecoratedPot extends CraftBlockEntityState<DecoratedPotBlockEn
|
||||
Preconditions.checkArgument(face != null, "face must not be null");
|
||||
Preconditions.checkArgument(sherd == null || sherd == Material.BRICK || Tag.ITEMS_DECORATED_POT_SHERDS.isTagged(sherd), "sherd is not a valid sherd material: %s", sherd);
|
||||
|
||||
Item sherdItem = (sherd != null) ? CraftItemType.bukkitToMinecraft(sherd) : Items.BRICK;
|
||||
DecoratedPotBlockEntity.Decoration decorations = getSnapshot().getDecorations();
|
||||
Optional<Item> sherdItem = (sherd != null) ? Optional.of(CraftItemType.bukkitToMinecraft(sherd)) : Optional.of(Items.BRICK);
|
||||
PotDecorations decorations = getSnapshot().getDecorations();
|
||||
|
||||
switch (face) {
|
||||
case BACK -> getSnapshot().decorations = new DecoratedPotBlockEntity.Decoration(sherdItem, decorations.left(), decorations.right(), decorations.front());
|
||||
case LEFT -> getSnapshot().decorations = new DecoratedPotBlockEntity.Decoration(decorations.back(), sherdItem, decorations.right(), decorations.front());
|
||||
case RIGHT -> getSnapshot().decorations = new DecoratedPotBlockEntity.Decoration(decorations.back(), decorations.left(), sherdItem, decorations.front());
|
||||
case FRONT -> getSnapshot().decorations = new DecoratedPotBlockEntity.Decoration(decorations.back(), decorations.left(), decorations.right(), sherdItem);
|
||||
case BACK -> getSnapshot().decorations = new PotDecorations(sherdItem, decorations.left(), decorations.right(), decorations.front());
|
||||
case LEFT -> getSnapshot().decorations = new PotDecorations(decorations.back(), sherdItem, decorations.right(), decorations.front());
|
||||
case RIGHT -> getSnapshot().decorations = new PotDecorations(decorations.back(), decorations.left(), sherdItem, decorations.front());
|
||||
case FRONT -> getSnapshot().decorations = new PotDecorations(decorations.back(), decorations.left(), decorations.right(), sherdItem);
|
||||
default -> throw new IllegalArgumentException("Unexpected value: " + face);
|
||||
}
|
||||
}
|
||||
@@ -62,8 +64,8 @@ public class CraftDecoratedPot extends CraftBlockEntityState<DecoratedPotBlockEn
|
||||
public Material getSherd(Side face) {
|
||||
Preconditions.checkArgument(face != null, "face must not be null");
|
||||
|
||||
DecoratedPotBlockEntity.Decoration decorations = getSnapshot().getDecorations();
|
||||
Item sherdItem = switch (face) {
|
||||
PotDecorations decorations = getSnapshot().getDecorations();
|
||||
Optional<Item> sherdItem = switch (face) {
|
||||
case BACK -> decorations.back();
|
||||
case LEFT -> decorations.left();
|
||||
case RIGHT -> decorations.right();
|
||||
@@ -71,24 +73,24 @@ public class CraftDecoratedPot extends CraftBlockEntityState<DecoratedPotBlockEn
|
||||
default -> throw new IllegalArgumentException("Unexpected value: " + face);
|
||||
};
|
||||
|
||||
return CraftItemType.minecraftToBukkit(sherdItem);
|
||||
return CraftItemType.minecraftToBukkit(sherdItem.orElse(Items.BRICK));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<Side, Material> getSherds() {
|
||||
DecoratedPotBlockEntity.Decoration decorations = getSnapshot().getDecorations();
|
||||
PotDecorations decorations = getSnapshot().getDecorations();
|
||||
|
||||
Map<Side, Material> sherds = new EnumMap<>(Side.class);
|
||||
sherds.put(Side.BACK, CraftItemType.minecraftToBukkit(decorations.back()));
|
||||
sherds.put(Side.LEFT, CraftItemType.minecraftToBukkit(decorations.left()));
|
||||
sherds.put(Side.RIGHT, CraftItemType.minecraftToBukkit(decorations.right()));
|
||||
sherds.put(Side.FRONT, CraftItemType.minecraftToBukkit(decorations.front()));
|
||||
sherds.put(Side.BACK, CraftItemType.minecraftToBukkit(decorations.back().orElse(Items.BRICK)));
|
||||
sherds.put(Side.LEFT, CraftItemType.minecraftToBukkit(decorations.left().orElse(Items.BRICK)));
|
||||
sherds.put(Side.RIGHT, CraftItemType.minecraftToBukkit(decorations.right().orElse(Items.BRICK)));
|
||||
sherds.put(Side.FRONT, CraftItemType.minecraftToBukkit(decorations.front().orElse(Items.BRICK)));
|
||||
return sherds;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Material> getShards() {
|
||||
return getSnapshot().getDecorations().sorted().map(CraftItemType::minecraftToBukkit).collect(Collectors.toUnmodifiableList());
|
||||
return getSnapshot().getDecorations().ordered().stream().map(CraftItemType::minecraftToBukkit).collect(Collectors.toUnmodifiableList());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1,12 +1,10 @@
|
||||
package org.bukkit.craftbukkit.block;
|
||||
|
||||
import net.minecraft.resources.MinecraftKey;
|
||||
import net.minecraft.world.level.block.entity.TileEntityLootable;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Nameable;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.craftbukkit.util.CraftNamespacedKey;
|
||||
import org.bukkit.craftbukkit.CraftLootTable;
|
||||
import org.bukkit.loot.LootTable;
|
||||
import org.bukkit.loot.Lootable;
|
||||
|
||||
@@ -25,18 +23,13 @@ public abstract class CraftLootable<T extends TileEntityLootable> extends CraftC
|
||||
super.applyTo(lootable);
|
||||
|
||||
if (this.getSnapshot().lootTable == null) {
|
||||
lootable.setLootTable((MinecraftKey) null, 0L);
|
||||
lootable.setLootTable(null, 0L);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public LootTable getLootTable() {
|
||||
if (getSnapshot().lootTable == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
MinecraftKey key = getSnapshot().lootTable;
|
||||
return Bukkit.getLootTable(CraftNamespacedKey.fromMinecraft(key));
|
||||
return CraftLootTable.minecraftToBukkit(getSnapshot().lootTable);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -55,8 +48,7 @@ public abstract class CraftLootable<T extends TileEntityLootable> extends CraftC
|
||||
}
|
||||
|
||||
private void setLootTable(LootTable table, long seed) {
|
||||
MinecraftKey key = (table == null) ? null : CraftNamespacedKey.toMinecraft(table.getKey());
|
||||
getSnapshot().setLootTable(key, seed);
|
||||
getSnapshot().setLootTable(CraftLootTable.bukkitToMinecraft(table), seed);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -5,6 +5,7 @@ import com.mojang.authlib.GameProfile;
|
||||
import net.minecraft.SystemUtils;
|
||||
import net.minecraft.resources.MinecraftKey;
|
||||
import net.minecraft.server.MinecraftServer;
|
||||
import net.minecraft.world.item.component.ResolvableProfile;
|
||||
import net.minecraft.world.level.block.entity.TileEntitySkull;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Location;
|
||||
@@ -40,24 +41,9 @@ public class CraftSkull extends CraftBlockEntityState<TileEntitySkull> implement
|
||||
public void load(TileEntitySkull skull) {
|
||||
super.load(skull);
|
||||
|
||||
profile = skull.owner;
|
||||
}
|
||||
|
||||
static int getSkullType(SkullType type) {
|
||||
switch (type) {
|
||||
default:
|
||||
case SKELETON:
|
||||
return 0;
|
||||
case WITHER:
|
||||
return 1;
|
||||
case ZOMBIE:
|
||||
return 2;
|
||||
case PLAYER:
|
||||
return 3;
|
||||
case CREEPER:
|
||||
return 4;
|
||||
case DRAGON:
|
||||
return 5;
|
||||
ResolvableProfile owner = skull.getOwnerProfile();
|
||||
if (owner != null) {
|
||||
profile = owner.gameProfile();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -201,7 +187,7 @@ public class CraftSkull extends CraftBlockEntityState<TileEntitySkull> implement
|
||||
super.applyTo(skull);
|
||||
|
||||
if (getSkullType() == SkullType.PLAYER) {
|
||||
skull.setOwner(profile);
|
||||
skull.setOwner(new ResolvableProfile(profile));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
package org.bukkit.craftbukkit.block;
|
||||
|
||||
import net.minecraft.world.level.block.entity.vault.VaultBlockEntity;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.block.TrialSpawner;
|
||||
|
||||
public class CraftVault extends CraftBlockEntityState<VaultBlockEntity> implements TrialSpawner {
|
||||
|
||||
public CraftVault(World world, VaultBlockEntity tileEntity) {
|
||||
super(world, tileEntity);
|
||||
}
|
||||
|
||||
protected CraftVault(CraftVault state, Location location) {
|
||||
super(state, location);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CraftVault copy() {
|
||||
return new CraftVault(this, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CraftVault copy(Location location) {
|
||||
return new CraftVault(this, location);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
package org.bukkit.craftbukkit.block.banner;
|
||||
|
||||
import com.google.common.base.Preconditions;
|
||||
import net.minecraft.core.Holder;
|
||||
import net.minecraft.core.IRegistry;
|
||||
import net.minecraft.core.registries.Registries;
|
||||
import net.minecraft.world.level.block.entity.EnumBannerPatternType;
|
||||
import org.bukkit.Registry;
|
||||
import org.bukkit.block.banner.PatternType;
|
||||
import org.bukkit.craftbukkit.CraftRegistry;
|
||||
import org.bukkit.craftbukkit.util.CraftNamespacedKey;
|
||||
|
||||
public class CraftPatternType {
|
||||
|
||||
public static PatternType minecraftToBukkit(EnumBannerPatternType minecraft) {
|
||||
Preconditions.checkArgument(minecraft != null);
|
||||
|
||||
IRegistry<EnumBannerPatternType> registry = CraftRegistry.getMinecraftRegistry(Registries.BANNER_PATTERN);
|
||||
PatternType bukkit = Registry.BANNER_PATTERN.get(CraftNamespacedKey.fromMinecraft(registry.getResourceKey(minecraft).orElseThrow().location()));
|
||||
|
||||
Preconditions.checkArgument(bukkit != null);
|
||||
|
||||
return bukkit;
|
||||
}
|
||||
|
||||
public static PatternType minecraftHolderToBukkit(Holder<EnumBannerPatternType> minecraft) {
|
||||
return minecraftToBukkit(minecraft.value());
|
||||
}
|
||||
|
||||
public static EnumBannerPatternType bukkitToMinecraft(PatternType bukkit) {
|
||||
Preconditions.checkArgument(bukkit != null);
|
||||
|
||||
return CraftRegistry.getMinecraftRegistry(Registries.BANNER_PATTERN)
|
||||
.getOptional(CraftNamespacedKey.toMinecraft(bukkit.getKey())).orElseThrow();
|
||||
}
|
||||
|
||||
public static Holder<EnumBannerPatternType> bukkitToMinecraftHolder(PatternType bukkit) {
|
||||
Preconditions.checkArgument(bukkit != null);
|
||||
|
||||
IRegistry<EnumBannerPatternType> registry = CraftRegistry.getMinecraftRegistry(Registries.BANNER_PATTERN);
|
||||
|
||||
if (registry.wrapAsHolder(bukkitToMinecraft(bukkit)) instanceof Holder.c<EnumBannerPatternType> holder) {
|
||||
return holder;
|
||||
}
|
||||
|
||||
throw new IllegalArgumentException("No Reference holder found for " + bukkit
|
||||
+ ", this can happen if a plugin creates its own banner pattern without properly registering it.");
|
||||
}
|
||||
}
|
||||
@@ -13,7 +13,6 @@ import net.minecraft.commands.arguments.blocks.ArgumentBlock;
|
||||
import net.minecraft.core.BlockPosition;
|
||||
import net.minecraft.core.EnumDirection;
|
||||
import net.minecraft.core.registries.BuiltInRegistries;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.INamable;
|
||||
import net.minecraft.world.level.BlockAccessAir;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
@@ -251,13 +250,13 @@ public class CraftBlockData implements BlockData {
|
||||
return stateString.toString();
|
||||
}
|
||||
|
||||
public NBTTagCompound toStates() {
|
||||
NBTTagCompound compound = new NBTTagCompound();
|
||||
public Map<String, String> toStates() {
|
||||
Map<String, String> compound = new HashMap<>();
|
||||
|
||||
for (Map.Entry<IBlockState<?>, Comparable<?>> entry : state.getValues().entrySet()) {
|
||||
IBlockState iblockstate = (IBlockState) entry.getKey();
|
||||
|
||||
compound.putString(iblockstate.getName(), iblockstate.getName(entry.getValue()));
|
||||
compound.put(iblockstate.getName(), iblockstate.getName(entry.getValue()));
|
||||
}
|
||||
|
||||
return compound;
|
||||
@@ -501,6 +500,7 @@ public class CraftBlockData implements BlockData {
|
||||
register(net.minecraft.world.level.block.EquipableCarvedPumpkinBlock.class, org.bukkit.craftbukkit.block.impl.CraftEquipableCarvedPumpkin::new);
|
||||
register(net.minecraft.world.level.block.GlowLichenBlock.class, org.bukkit.craftbukkit.block.impl.CraftGlowLichen::new);
|
||||
register(net.minecraft.world.level.block.HangingRootsBlock.class, org.bukkit.craftbukkit.block.impl.CraftHangingRoots::new);
|
||||
register(net.minecraft.world.level.block.HeavyCoreBlock.class, org.bukkit.craftbukkit.block.impl.CraftHeavyCore::new);
|
||||
register(net.minecraft.world.level.block.InfestedRotatedPillarBlock.class, org.bukkit.craftbukkit.block.impl.CraftInfestedRotatedPillar::new);
|
||||
register(net.minecraft.world.level.block.LayeredCauldronBlock.class, org.bukkit.craftbukkit.block.impl.CraftLayeredCauldron::new);
|
||||
register(net.minecraft.world.level.block.LightBlock.class, org.bukkit.craftbukkit.block.impl.CraftLight::new);
|
||||
@@ -521,6 +521,7 @@ public class CraftBlockData implements BlockData {
|
||||
register(net.minecraft.world.level.block.TallSeagrassBlock.class, org.bukkit.craftbukkit.block.impl.CraftTallSeagrass::new);
|
||||
register(net.minecraft.world.level.block.TorchflowerCropBlock.class, org.bukkit.craftbukkit.block.impl.CraftTorchflowerCrop::new);
|
||||
register(net.minecraft.world.level.block.TrialSpawnerBlock.class, org.bukkit.craftbukkit.block.impl.CraftTrialSpawner::new);
|
||||
register(net.minecraft.world.level.block.VaultBlock.class, org.bukkit.craftbukkit.block.impl.CraftVault::new);
|
||||
register(net.minecraft.world.level.block.WallHangingSignBlock.class, org.bukkit.craftbukkit.block.impl.CraftWallHangingSign::new);
|
||||
register(net.minecraft.world.level.block.WaterloggedTransparentBlock.class, org.bukkit.craftbukkit.block.impl.CraftWaterloggedTransparent::new);
|
||||
register(net.minecraft.world.level.block.WeatheringCopperBulbBlock.class, org.bukkit.craftbukkit.block.impl.CraftWeatheringCopperBulb::new);
|
||||
|
||||
@@ -6,6 +6,7 @@ import org.bukkit.craftbukkit.block.data.CraftBlockData;
|
||||
public abstract class CraftTrialSpawner extends CraftBlockData implements TrialSpawner {
|
||||
|
||||
private static final net.minecraft.world.level.block.state.properties.BlockStateEnum<?> TRIAL_SPAWNER_STATE = getEnum("trial_spawner_state");
|
||||
private static final net.minecraft.world.level.block.state.properties.BlockStateBoolean OMINOUS = getBoolean("ominous");
|
||||
|
||||
@Override
|
||||
public org.bukkit.block.data.type.TrialSpawner.State getTrialSpawnerState() {
|
||||
@@ -16,4 +17,14 @@ public abstract class CraftTrialSpawner extends CraftBlockData implements TrialS
|
||||
public void setTrialSpawnerState(org.bukkit.block.data.type.TrialSpawner.State state) {
|
||||
set(TRIAL_SPAWNER_STATE, state);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isOminous() {
|
||||
return get(OMINOUS);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setOminous(boolean ominous) {
|
||||
set(OMINOUS, ominous);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
package org.bukkit.craftbukkit.block.data.type;
|
||||
|
||||
import org.bukkit.block.data.type.Vault;
|
||||
import org.bukkit.craftbukkit.block.data.CraftBlockData;
|
||||
|
||||
public abstract class CraftVault extends CraftBlockData implements Vault {
|
||||
|
||||
private static final net.minecraft.world.level.block.state.properties.BlockStateEnum<?> VAULT_STATE = getEnum("vault_state");
|
||||
private static final net.minecraft.world.level.block.state.properties.BlockStateBoolean OMINOUS = getBoolean("ominous");
|
||||
|
||||
@Override
|
||||
public org.bukkit.block.data.type.Vault.State getTrialSpawnerState() {
|
||||
return get(VAULT_STATE, org.bukkit.block.data.type.Vault.State.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setTrialSpawnerState(org.bukkit.block.data.type.Vault.State state) {
|
||||
set(VAULT_STATE, state);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isOminous() {
|
||||
return get(OMINOUS);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setOminous(boolean ominous) {
|
||||
set(OMINOUS, ominous);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
/**
|
||||
* Automatically generated file, changes will be lost.
|
||||
*/
|
||||
package org.bukkit.craftbukkit.block.impl;
|
||||
|
||||
public final class CraftHeavyCore extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Waterlogged {
|
||||
|
||||
public CraftHeavyCore() {
|
||||
super();
|
||||
}
|
||||
|
||||
public CraftHeavyCore(net.minecraft.world.level.block.state.IBlockData state) {
|
||||
super(state);
|
||||
}
|
||||
|
||||
// org.bukkit.craftbukkit.block.data.CraftWaterlogged
|
||||
|
||||
private static final net.minecraft.world.level.block.state.properties.BlockStateBoolean WATERLOGGED = getBoolean(net.minecraft.world.level.block.HeavyCoreBlock.class, "waterlogged");
|
||||
|
||||
@Override
|
||||
public boolean isWaterlogged() {
|
||||
return get(WATERLOGGED);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setWaterlogged(boolean waterlogged) {
|
||||
set(WATERLOGGED, waterlogged);
|
||||
}
|
||||
}
|
||||
@@ -16,6 +16,7 @@ public final class CraftTrialSpawner extends org.bukkit.craftbukkit.block.data.C
|
||||
// org.bukkit.craftbukkit.block.data.type.CraftTrialSpawner
|
||||
|
||||
private static final net.minecraft.world.level.block.state.properties.BlockStateEnum<?> TRIAL_SPAWNER_STATE = getEnum(net.minecraft.world.level.block.TrialSpawnerBlock.class, "trial_spawner_state");
|
||||
private static final net.minecraft.world.level.block.state.properties.BlockStateBoolean OMINOUS = getBoolean(net.minecraft.world.level.block.TrialSpawnerBlock.class, "ominous");
|
||||
|
||||
@Override
|
||||
public org.bukkit.block.data.type.TrialSpawner.State getTrialSpawnerState() {
|
||||
@@ -26,4 +27,14 @@ public final class CraftTrialSpawner extends org.bukkit.craftbukkit.block.data.C
|
||||
public void setTrialSpawnerState(org.bukkit.block.data.type.TrialSpawner.State state) {
|
||||
set(TRIAL_SPAWNER_STATE, state);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isOminous() {
|
||||
return get(OMINOUS);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setOminous(boolean ominous) {
|
||||
set(OMINOUS, ominous);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
/**
|
||||
* Automatically generated file, changes will be lost.
|
||||
*/
|
||||
package org.bukkit.craftbukkit.block.impl;
|
||||
|
||||
public final class CraftVault extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.Vault, org.bukkit.block.data.Directional {
|
||||
|
||||
public CraftVault() {
|
||||
super();
|
||||
}
|
||||
|
||||
public CraftVault(net.minecraft.world.level.block.state.IBlockData state) {
|
||||
super(state);
|
||||
}
|
||||
|
||||
// org.bukkit.craftbukkit.block.data.type.CraftVault
|
||||
|
||||
private static final net.minecraft.world.level.block.state.properties.BlockStateEnum<?> VAULT_STATE = getEnum(net.minecraft.world.level.block.VaultBlock.class, "vault_state");
|
||||
private static final net.minecraft.world.level.block.state.properties.BlockStateBoolean OMINOUS = getBoolean(net.minecraft.world.level.block.VaultBlock.class, "ominous");
|
||||
|
||||
@Override
|
||||
public org.bukkit.block.data.type.Vault.State getTrialSpawnerState() {
|
||||
return get(VAULT_STATE, org.bukkit.block.data.type.Vault.State.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setTrialSpawnerState(org.bukkit.block.data.type.Vault.State state) {
|
||||
set(VAULT_STATE, state);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isOminous() {
|
||||
return get(OMINOUS);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setOminous(boolean ominous) {
|
||||
set(OMINOUS, ominous);
|
||||
}
|
||||
|
||||
// org.bukkit.craftbukkit.block.data.CraftDirectional
|
||||
|
||||
private static final net.minecraft.world.level.block.state.properties.BlockStateEnum<?> FACING = getEnum(net.minecraft.world.level.block.VaultBlock.class, "facing");
|
||||
|
||||
@Override
|
||||
public org.bukkit.block.BlockFace getFacing() {
|
||||
return get(FACING, org.bukkit.block.BlockFace.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setFacing(org.bukkit.block.BlockFace facing) {
|
||||
set(FACING, facing);
|
||||
}
|
||||
|
||||
@Override
|
||||
public java.util.Set<org.bukkit.block.BlockFace> getFaces() {
|
||||
return getValues(FACING, org.bukkit.block.BlockFace.class);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user