Add support for MC 1.20.4 (#2439)

* [Fabric] Add 1.20.3-pre1 support

* MCUtils updates

* 1.20.3-pre2

* Update Fabric to 1.20.3 final release

* Forge for 1.20.3

* Bukkit for 1.20.3

* We're 1.20.4 now
This commit is contained in:
Maddy Miller 2023-12-11 20:49:00 +10:00 committed by GitHub
parent 9b8eb2ce37
commit 13d4d6c98a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
20 changed files with 4309 additions and 18 deletions

View File

@ -2,7 +2,7 @@ rootProject.name = "worldedit"
include("worldedit-libs")
listOf("legacy", "1.17.1", "1.18.2", "1.19.4", "1.20", "1.20.2").forEach {
listOf("legacy", "1.17.1", "1.18.2", "1.19.4", "1.20", "1.20.2", "1.20.4").forEach {
include("worldedit-bukkit:adapters:adapter-$it")
}

View File

@ -0,0 +1,8 @@
import io.papermc.paperweight.userdev.PaperweightUserDependenciesExtension
applyPaperweightAdapterConfiguration()
dependencies {
// https://repo.papermc.io/service/rest/repository/browse/maven-public/io/papermc/paper/dev-bundle/
the<PaperweightUserDependenciesExtension>().paperDevBundle("1.20.4-R0.1-20231207.202833-1")
}

View File

@ -0,0 +1,98 @@
/*
* WorldEdit, a Minecraft world manipulation toolkit
* Copyright (C) sk89q <http://www.sk89q.com>
* Copyright (C) WorldEdit team and contributors
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package com.sk89q.worldedit.bukkit.adapter.impl.v1_20_R3;
import com.mojang.authlib.GameProfile;
import net.minecraft.network.chat.Component;
import net.minecraft.server.level.ClientInformation;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.stats.Stat;
import net.minecraft.world.MenuProvider;
import net.minecraft.world.damagesource.DamageSource;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.HumanoidArm;
import net.minecraft.world.entity.player.ChatVisiblity;
import net.minecraft.world.level.block.entity.SignBlockEntity;
import net.minecraft.world.phys.Vec3;
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
import java.util.OptionalInt;
import java.util.UUID;
class PaperweightFakePlayer extends ServerPlayer {
private static final GameProfile FAKE_WORLDEDIT_PROFILE = new GameProfile(UUID.nameUUIDFromBytes("worldedit".getBytes()), "[WorldEdit]");
private static final Vec3 ORIGIN = new Vec3(0.0D, 0.0D, 0.0D);
private static final ClientInformation FAKE_CLIENT_INFO = new ClientInformation(
"en_US", 16, ChatVisiblity.FULL, true, 0, HumanoidArm.LEFT, false, false
);
PaperweightFakePlayer(ServerLevel world) {
super(world.getServer(), world, FAKE_WORLDEDIT_PROFILE, FAKE_CLIENT_INFO);
}
@Override
public Vec3 position() {
return ORIGIN;
}
@Override
public void tick() {
}
@Override
public void die(DamageSource damagesource) {
}
@Override
public Entity changeDimension(ServerLevel worldserver, TeleportCause cause) {
return this;
}
@Override
public OptionalInt openMenu(MenuProvider factory) {
return OptionalInt.empty();
}
@Override
public void updateOptions(ClientInformation clientOptions) {
}
@Override
public void displayClientMessage(Component message, boolean actionBar) {
}
@Override
public void awardStat(Stat<?> stat, int amount) {
}
@Override
public void awardStat(Stat<?> stat) {
}
@Override
public boolean isInvulnerableTo(DamageSource damageSource) {
return true;
}
@Override
public void openTextEdit(SignBlockEntity sign, boolean front) {
}
}

View File

@ -0,0 +1,188 @@
/*
* WorldEdit, a Minecraft world manipulation toolkit
* Copyright (C) sk89q <http://www.sk89q.com>
* Copyright (C) WorldEdit team and contributors
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package com.sk89q.worldedit.bukkit.adapter.impl.v1_20_R3;
import com.sk89q.jnbt.CompoundTag;
import com.sk89q.worldedit.bukkit.BukkitAdapter;
import com.sk89q.worldedit.internal.block.BlockStateIdAccess;
import com.sk89q.worldedit.internal.wna.WorldNativeAccess;
import com.sk89q.worldedit.util.SideEffect;
import com.sk89q.worldedit.util.SideEffectSet;
import com.sk89q.worldedit.world.block.BlockState;
import net.minecraft.core.BlockPos;
import net.minecraft.nbt.Tag;
import net.minecraft.server.level.FullChunkStatus;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.chunk.LevelChunk;
import org.bukkit.craftbukkit.v1_20_R3.CraftWorld;
import org.bukkit.craftbukkit.v1_20_R3.block.data.CraftBlockData;
import org.bukkit.event.block.BlockPhysicsEvent;
import java.lang.ref.WeakReference;
import java.util.Objects;
import javax.annotation.Nullable;
public class PaperweightWorldNativeAccess implements WorldNativeAccess<LevelChunk, net.minecraft.world.level.block.state.BlockState, BlockPos> {
private static final int UPDATE = 1;
private static final int NOTIFY = 2;
private final PaperweightAdapter adapter;
private final WeakReference<ServerLevel> world;
private SideEffectSet sideEffectSet;
public PaperweightWorldNativeAccess(PaperweightAdapter adapter, WeakReference<ServerLevel> world) {
this.adapter = adapter;
this.world = world;
}
private ServerLevel getWorld() {
return Objects.requireNonNull(world.get(), "The reference to the world was lost");
}
@Override
public void setCurrentSideEffectSet(SideEffectSet sideEffectSet) {
this.sideEffectSet = sideEffectSet;
}
@Override
public LevelChunk getChunk(int x, int z) {
return getWorld().getChunk(x, z);
}
@Override
public net.minecraft.world.level.block.state.BlockState toNative(BlockState state) {
int stateId = BlockStateIdAccess.getBlockStateId(state);
return BlockStateIdAccess.isValidInternalId(stateId)
? Block.stateById(stateId)
: ((CraftBlockData) BukkitAdapter.adapt(state)).getState();
}
@Override
public net.minecraft.world.level.block.state.BlockState getBlockState(LevelChunk chunk, BlockPos position) {
return chunk.getBlockState(position);
}
@Nullable
@Override
public net.minecraft.world.level.block.state.BlockState setBlockState(LevelChunk chunk, BlockPos position, net.minecraft.world.level.block.state.BlockState state) {
return chunk.setBlockState(position, state, false, this.sideEffectSet.shouldApply(SideEffect.UPDATE));
}
@Override
public net.minecraft.world.level.block.state.BlockState getValidBlockForPosition(net.minecraft.world.level.block.state.BlockState block, BlockPos position) {
return Block.updateFromNeighbourShapes(block, getWorld(), position);
}
@Override
public BlockPos getPosition(int x, int y, int z) {
return new BlockPos(x, y, z);
}
@Override
public void updateLightingForBlock(BlockPos position) {
getWorld().getChunkSource().getLightEngine().checkBlock(position);
}
@Override
public boolean updateTileEntity(BlockPos position, CompoundTag tag) {
// We will assume that the tile entity was created for us
BlockEntity tileEntity = getWorld().getBlockEntity(position);
if (tileEntity == null) {
return false;
}
Tag nativeTag = adapter.fromNative(tag);
PaperweightAdapter.readTagIntoTileEntity((net.minecraft.nbt.CompoundTag) nativeTag, tileEntity);
return true;
}
@Override
public void notifyBlockUpdate(LevelChunk chunk, BlockPos position, net.minecraft.world.level.block.state.BlockState oldState, net.minecraft.world.level.block.state.BlockState newState) {
if (chunk.getSections()[getWorld().getSectionIndex(position.getY())] != null) {
getWorld().sendBlockUpdated(position, oldState, newState, UPDATE | NOTIFY);
}
}
@Override
public boolean isChunkTicking(LevelChunk chunk) {
return chunk.getFullStatus().isOrAfter(FullChunkStatus.BLOCK_TICKING);
}
@Override
public void markBlockChanged(LevelChunk chunk, BlockPos position) {
if (chunk.getSections()[getWorld().getSectionIndex(position.getY())] != null) {
getWorld().getChunkSource().blockChanged(position);
}
}
@Override
public void notifyNeighbors(BlockPos pos, net.minecraft.world.level.block.state.BlockState oldState, net.minecraft.world.level.block.state.BlockState newState) {
ServerLevel world = getWorld();
if (sideEffectSet.shouldApply(SideEffect.EVENTS)) {
world.updateNeighborsAt(pos, oldState.getBlock());
} else {
// When we don't want events, manually run the physics without them.
Block block = oldState.getBlock();
fireNeighborChanged(pos, world, block, pos.west());
fireNeighborChanged(pos, world, block, pos.east());
fireNeighborChanged(pos, world, block, pos.below());
fireNeighborChanged(pos, world, block, pos.above());
fireNeighborChanged(pos, world, block, pos.north());
fireNeighborChanged(pos, world, block, pos.south());
}
if (newState.hasAnalogOutputSignal()) {
world.updateNeighbourForOutputSignal(pos, newState.getBlock());
}
}
@Override
public void updateBlock(BlockPos pos, net.minecraft.world.level.block.state.BlockState oldState, net.minecraft.world.level.block.state.BlockState newState) {
ServerLevel world = getWorld();
newState.onPlace(world, pos, oldState, false);
}
// Not sure why neighborChanged is deprecated
@SuppressWarnings("deprecation")
private void fireNeighborChanged(BlockPos pos, ServerLevel world, Block block, BlockPos neighborPos) {
world.getBlockState(neighborPos).neighborChanged(world, neighborPos, block, pos, false);
}
@Override
public void updateNeighbors(BlockPos pos, net.minecraft.world.level.block.state.BlockState oldState, net.minecraft.world.level.block.state.BlockState newState, int recursionLimit) {
ServerLevel world = getWorld();
oldState.updateIndirectNeighbourShapes(world, pos, NOTIFY, recursionLimit);
if (sideEffectSet.shouldApply(SideEffect.EVENTS)) {
CraftWorld craftWorld = world.getWorld();
BlockPhysicsEvent event = new BlockPhysicsEvent(craftWorld.getBlockAt(pos.getX(), pos.getY(), pos.getZ()), CraftBlockData.fromData(newState));
world.getCraftServer().getPluginManager().callEvent(event);
if (event.isCancelled()) {
return;
}
}
newState.updateNeighbourShapes(world, pos, NOTIFY, recursionLimit);
newState.updateIndirectNeighbourShapes(world, pos, NOTIFY, recursionLimit);
}
@Override
public void onBlockStateChange(BlockPos pos, net.minecraft.world.level.block.state.BlockState oldState, net.minecraft.world.level.block.state.BlockState newState) {
getWorld().onBlockStateChange(pos, oldState, newState);
}
}

View File

@ -121,7 +121,9 @@ public abstract class LocalConfiguration {
BlockTypes.YELLOW_BED,
BlockTypes.POWERED_RAIL,
BlockTypes.DETECTOR_RAIL,
// Keep grass for <1.20.3 compat
BlockTypes.GRASS,
BlockTypes.SHORT_GRASS,
BlockTypes.DEAD_BUSH,
BlockTypes.MOVING_PISTON,
BlockTypes.PISTON_HEAD,

View File

@ -85,7 +85,11 @@ public class MultiStageReorder extends AbstractBufferingExtent implements Reorde
priorityMap.put(BlockTypes.RED_BED, PlacementPriority.LAST);
priorityMap.put(BlockTypes.WHITE_BED, PlacementPriority.LAST);
priorityMap.put(BlockTypes.YELLOW_BED, PlacementPriority.LAST);
priorityMap.put(BlockTypes.GRASS, PlacementPriority.LAST);
// Keep "grass" for <1.20.3 compat
@SuppressWarnings("deprecation")
BlockType grass = BlockTypes.GRASS;
priorityMap.put(grass, PlacementPriority.LAST);
priorityMap.put(BlockTypes.SHORT_GRASS, PlacementPriority.LAST);
priorityMap.put(BlockTypes.TALL_GRASS, PlacementPriority.LAST);
priorityMap.put(BlockTypes.ROSE_BUSH, PlacementPriority.LAST);
priorityMap.put(BlockTypes.DANDELION, PlacementPriority.LAST);

View File

@ -26,6 +26,7 @@ import com.sk89q.worldedit.function.pattern.Pattern;
import com.sk89q.worldedit.function.pattern.RandomPattern;
import com.sk89q.worldedit.math.BlockVector3;
import com.sk89q.worldedit.world.block.BlockState;
import com.sk89q.worldedit.world.block.BlockType;
import com.sk89q.worldedit.world.block.BlockTypes;
/**
@ -95,7 +96,12 @@ public class FloraGenerator implements RegionFunction {
*/
public static Pattern getTemperatePattern() {
RandomPattern pattern = new RandomPattern();
pattern.add(BlockTypes.GRASS.getDefaultState(), 300);
BlockType grass = BlockTypes.SHORT_GRASS;
if (grass == null) {
// Fallback for <1.20.3 compat
grass = BlockTypes.GRASS;
}
pattern.add(grass.getDefaultState(), 300);
pattern.add(BlockTypes.POPPY.getDefaultState(), 5);
pattern.add(BlockTypes.DANDELION.getDefaultState(), 5);
return pattern;

View File

@ -47,6 +47,7 @@ public final class BlockCategories {
public static final BlockCategory BIG_DRIPLEAF_PLACEABLE = get("minecraft:big_dripleaf_placeable");
public static final BlockCategory BIRCH_LOGS = get("minecraft:birch_logs");
public static final BlockCategory BUTTONS = get("minecraft:buttons");
public static final BlockCategory CAMEL_SAND_STEP_SOUND_BLOCKS = get("minecraft:camel_sand_step_sound_blocks");
public static final BlockCategory CAMPFIRES = get("minecraft:campfires");
public static final BlockCategory CANDLE_CAKES = get("minecraft:candle_cakes");
public static final BlockCategory CANDLES = get("minecraft:candles");
@ -59,6 +60,7 @@ public final class BlockCategories {
public static final BlockCategory COAL_ORES = get("minecraft:coal_ores");
public static final BlockCategory COMBINATION_STEP_SOUND_BLOCKS = get("minecraft:combination_step_sound_blocks");
public static final BlockCategory COMPLETES_FIND_TREE_TUTORIAL = get("minecraft:completes_find_tree_tutorial");
public static final BlockCategory CONCRETE_POWDER = get("minecraft:concrete_powder");
public static final BlockCategory CONVERTABLE_TO_MUD = get("minecraft:convertable_to_mud");
public static final BlockCategory COPPER_ORES = get("minecraft:copper_ores");
public static final BlockCategory CORAL_BLOCKS = get("minecraft:coral_blocks");

View File

@ -212,6 +212,7 @@ public final class BlockTypes {
@Nullable public static final BlockType CHEST = get("minecraft:chest");
@Nullable public static final BlockType CHIPPED_ANVIL = get("minecraft:chipped_anvil");
@Nullable public static final BlockType CHISELED_BOOKSHELF = get("minecraft:chiseled_bookshelf");
@Nullable public static final BlockType CHISELED_COPPER = get("minecraft:chiseled_copper");
@Nullable public static final BlockType CHISELED_DEEPSLATE = get("minecraft:chiseled_deepslate");
@Nullable public static final BlockType CHISELED_NETHER_BRICKS = get("minecraft:chiseled_nether_bricks");
@Nullable public static final BlockType CHISELED_POLISHED_BLACKSTONE = get("minecraft:chiseled_polished_blackstone");
@ -219,6 +220,8 @@ public final class BlockTypes {
@Nullable public static final BlockType CHISELED_RED_SANDSTONE = get("minecraft:chiseled_red_sandstone");
@Nullable public static final BlockType CHISELED_SANDSTONE = get("minecraft:chiseled_sandstone");
@Nullable public static final BlockType CHISELED_STONE_BRICKS = get("minecraft:chiseled_stone_bricks");
@Nullable public static final BlockType CHISELED_TUFF = get("minecraft:chiseled_tuff");
@Nullable public static final BlockType CHISELED_TUFF_BRICKS = get("minecraft:chiseled_tuff_bricks");
@Nullable public static final BlockType CHORUS_FLOWER = get("minecraft:chorus_flower");
@Nullable public static final BlockType CHORUS_PLANT = get("minecraft:chorus_plant");
@Nullable public static final BlockType CLAY = get("minecraft:clay");
@ -240,13 +243,18 @@ public final class BlockTypes {
@Nullable public static final BlockType COMPOSTER = get("minecraft:composter");
@Nullable public static final BlockType CONDUIT = get("minecraft:conduit");
@Nullable public static final BlockType COPPER_BLOCK = get("minecraft:copper_block");
@Nullable public static final BlockType COPPER_BULB = get("minecraft:copper_bulb");
@Nullable public static final BlockType COPPER_DOOR = get("minecraft:copper_door");
@Nullable public static final BlockType COPPER_GRATE = get("minecraft:copper_grate");
@Nullable public static final BlockType COPPER_ORE = get("minecraft:copper_ore");
@Nullable public static final BlockType COPPER_TRAPDOOR = get("minecraft:copper_trapdoor");
@Nullable public static final BlockType CORNFLOWER = get("minecraft:cornflower");
@Nullable public static final BlockType CRACKED_DEEPSLATE_BRICKS = get("minecraft:cracked_deepslate_bricks");
@Nullable public static final BlockType CRACKED_DEEPSLATE_TILES = get("minecraft:cracked_deepslate_tiles");
@Nullable public static final BlockType CRACKED_NETHER_BRICKS = get("minecraft:cracked_nether_bricks");
@Nullable public static final BlockType CRACKED_POLISHED_BLACKSTONE_BRICKS = get("minecraft:cracked_polished_blackstone_bricks");
@Nullable public static final BlockType CRACKED_STONE_BRICKS = get("minecraft:cracked_stone_bricks");
@Nullable public static final BlockType CRAFTER = get("minecraft:crafter");
@Nullable public static final BlockType CRAFTING_TABLE = get("minecraft:crafting_table");
@Nullable public static final BlockType CREEPER_HEAD = get("minecraft:creeper_head");
@Nullable public static final BlockType CREEPER_WALL_HEAD = get("minecraft:creeper_wall_head");
@ -381,7 +389,12 @@ public final class BlockTypes {
@Nullable public static final BlockType END_STONE_BRICK_WALL = get("minecraft:end_stone_brick_wall");
@Nullable public static final BlockType END_STONE_BRICKS = get("minecraft:end_stone_bricks");
@Nullable public static final BlockType ENDER_CHEST = get("minecraft:ender_chest");
@Nullable public static final BlockType EXPOSED_CHISELED_COPPER = get("minecraft:exposed_chiseled_copper");
@Nullable public static final BlockType EXPOSED_COPPER = get("minecraft:exposed_copper");
@Nullable public static final BlockType EXPOSED_COPPER_BULB = get("minecraft:exposed_copper_bulb");
@Nullable public static final BlockType EXPOSED_COPPER_DOOR = get("minecraft:exposed_copper_door");
@Nullable public static final BlockType EXPOSED_COPPER_GRATE = get("minecraft:exposed_copper_grate");
@Nullable public static final BlockType EXPOSED_COPPER_TRAPDOOR = get("minecraft:exposed_copper_trapdoor");
@Nullable public static final BlockType EXPOSED_CUT_COPPER = get("minecraft:exposed_cut_copper");
@Nullable public static final BlockType EXPOSED_CUT_COPPER_SLAB = get("minecraft:exposed_cut_copper_slab");
@Nullable public static final BlockType EXPOSED_CUT_COPPER_STAIRS = get("minecraft:exposed_cut_copper_stairs");
@ -410,7 +423,7 @@ public final class BlockTypes {
@Nullable public static final BlockType GRANITE_SLAB = get("minecraft:granite_slab");
@Nullable public static final BlockType GRANITE_STAIRS = get("minecraft:granite_stairs");
@Nullable public static final BlockType GRANITE_WALL = get("minecraft:granite_wall");
@Nullable public static final BlockType GRASS = get("minecraft:grass");
@Deprecated @Nullable public static final BlockType GRASS = get("minecraft:grass");
@Nullable public static final BlockType GRASS_BLOCK = get("minecraft:grass_block");
@Deprecated @Nullable public static final BlockType GRASS_PATH = get("minecraft:grass_path");
@Nullable public static final BlockType GRAVEL = get("minecraft:gravel");
@ -653,7 +666,12 @@ public final class BlockTypes {
@Nullable public static final BlockType ORANGE_WALL_BANNER = get("minecraft:orange_wall_banner");
@Nullable public static final BlockType ORANGE_WOOL = get("minecraft:orange_wool");
@Nullable public static final BlockType OXEYE_DAISY = get("minecraft:oxeye_daisy");
@Nullable public static final BlockType OXIDIZED_CHISELED_COPPER = get("minecraft:oxidized_chiseled_copper");
@Nullable public static final BlockType OXIDIZED_COPPER = get("minecraft:oxidized_copper");
@Nullable public static final BlockType OXIDIZED_COPPER_BULB = get("minecraft:oxidized_copper_bulb");
@Nullable public static final BlockType OXIDIZED_COPPER_DOOR = get("minecraft:oxidized_copper_door");
@Nullable public static final BlockType OXIDIZED_COPPER_GRATE = get("minecraft:oxidized_copper_grate");
@Nullable public static final BlockType OXIDIZED_COPPER_TRAPDOOR = get("minecraft:oxidized_copper_trapdoor");
@Nullable public static final BlockType OXIDIZED_CUT_COPPER = get("minecraft:oxidized_cut_copper");
@Nullable public static final BlockType OXIDIZED_CUT_COPPER_SLAB = get("minecraft:oxidized_cut_copper_slab");
@Nullable public static final BlockType OXIDIZED_CUT_COPPER_STAIRS = get("minecraft:oxidized_cut_copper_stairs");
@ -712,6 +730,10 @@ public final class BlockTypes {
@Nullable public static final BlockType POLISHED_GRANITE = get("minecraft:polished_granite");
@Nullable public static final BlockType POLISHED_GRANITE_SLAB = get("minecraft:polished_granite_slab");
@Nullable public static final BlockType POLISHED_GRANITE_STAIRS = get("minecraft:polished_granite_stairs");
@Nullable public static final BlockType POLISHED_TUFF = get("minecraft:polished_tuff");
@Nullable public static final BlockType POLISHED_TUFF_SLAB = get("minecraft:polished_tuff_slab");
@Nullable public static final BlockType POLISHED_TUFF_STAIRS = get("minecraft:polished_tuff_stairs");
@Nullable public static final BlockType POLISHED_TUFF_WALL = get("minecraft:polished_tuff_wall");
@Nullable public static final BlockType POPPY = get("minecraft:poppy");
@Nullable public static final BlockType POTATOES = get("minecraft:potatoes");
@Nullable public static final BlockType POTTED_ACACIA_SAPLING = get("minecraft:potted_acacia_sapling");
@ -839,6 +861,7 @@ public final class BlockTypes {
@Nullable public static final BlockType SEA_LANTERN = get("minecraft:sea_lantern");
@Nullable public static final BlockType SEA_PICKLE = get("minecraft:sea_pickle");
@Nullable public static final BlockType SEAGRASS = get("minecraft:seagrass");
@Nullable public static final BlockType SHORT_GRASS = get("minecraft:short_grass");
@Nullable public static final BlockType SHROOMLIGHT = get("minecraft:shroomlight");
@Nullable public static final BlockType SHULKER_BOX = get("minecraft:shulker_box");
@Deprecated @Nullable public static final BlockType SIGN = get("minecraft:sign");
@ -940,6 +963,7 @@ public final class BlockTypes {
@Nullable public static final BlockType TORCHFLOWER = get("minecraft:torchflower");
@Nullable public static final BlockType TORCHFLOWER_CROP = get("minecraft:torchflower_crop");
@Nullable public static final BlockType TRAPPED_CHEST = get("minecraft:trapped_chest");
@Nullable public static final BlockType TRIAL_SPAWNER = get("minecraft:trial_spawner");
@Nullable public static final BlockType TRIPWIRE = get("minecraft:tripwire");
@Nullable public static final BlockType TRIPWIRE_HOOK = get("minecraft:tripwire_hook");
@Nullable public static final BlockType TUBE_CORAL = get("minecraft:tube_coral");
@ -947,6 +971,13 @@ public final class BlockTypes {
@Nullable public static final BlockType TUBE_CORAL_FAN = get("minecraft:tube_coral_fan");
@Nullable public static final BlockType TUBE_CORAL_WALL_FAN = get("minecraft:tube_coral_wall_fan");
@Nullable public static final BlockType TUFF = get("minecraft:tuff");
@Nullable public static final BlockType TUFF_BRICK_SLAB = get("minecraft:tuff_brick_slab");
@Nullable public static final BlockType TUFF_BRICK_STAIRS = get("minecraft:tuff_brick_stairs");
@Nullable public static final BlockType TUFF_BRICK_WALL = get("minecraft:tuff_brick_wall");
@Nullable public static final BlockType TUFF_BRICKS = get("minecraft:tuff_bricks");
@Nullable public static final BlockType TUFF_SLAB = get("minecraft:tuff_slab");
@Nullable public static final BlockType TUFF_STAIRS = get("minecraft:tuff_stairs");
@Nullable public static final BlockType TUFF_WALL = get("minecraft:tuff_wall");
@Nullable public static final BlockType TURTLE_EGG = get("minecraft:turtle_egg");
@Nullable public static final BlockType TWISTING_VINES = get("minecraft:twisting_vines");
@Nullable public static final BlockType TWISTING_VINES_PLANT = get("minecraft:twisting_vines_plant");
@ -976,23 +1007,48 @@ public final class BlockTypes {
@Nullable public static final BlockType WARPED_WART_BLOCK = get("minecraft:warped_wart_block");
@Nullable public static final BlockType WATER = get("minecraft:water");
@Nullable public static final BlockType WATER_CAULDRON = get("minecraft:water_cauldron");
@Nullable public static final BlockType WAXED_CHISELED_COPPER = get("minecraft:waxed_chiseled_copper");
@Nullable public static final BlockType WAXED_COPPER_BLOCK = get("minecraft:waxed_copper_block");
@Nullable public static final BlockType WAXED_COPPER_BULB = get("minecraft:waxed_copper_bulb");
@Nullable public static final BlockType WAXED_COPPER_DOOR = get("minecraft:waxed_copper_door");
@Nullable public static final BlockType WAXED_COPPER_GRATE = get("minecraft:waxed_copper_grate");
@Nullable public static final BlockType WAXED_COPPER_TRAPDOOR = get("minecraft:waxed_copper_trapdoor");
@Nullable public static final BlockType WAXED_CUT_COPPER = get("minecraft:waxed_cut_copper");
@Nullable public static final BlockType WAXED_CUT_COPPER_SLAB = get("minecraft:waxed_cut_copper_slab");
@Nullable public static final BlockType WAXED_CUT_COPPER_STAIRS = get("minecraft:waxed_cut_copper_stairs");
@Nullable public static final BlockType WAXED_EXPOSED_CHISELED_COPPER = get("minecraft:waxed_exposed_chiseled_copper");
@Nullable public static final BlockType WAXED_EXPOSED_COPPER = get("minecraft:waxed_exposed_copper");
@Nullable public static final BlockType WAXED_EXPOSED_COPPER_BULB = get("minecraft:waxed_exposed_copper_bulb");
@Nullable public static final BlockType WAXED_EXPOSED_COPPER_DOOR = get("minecraft:waxed_exposed_copper_door");
@Nullable public static final BlockType WAXED_EXPOSED_COPPER_GRATE = get("minecraft:waxed_exposed_copper_grate");
@Nullable public static final BlockType WAXED_EXPOSED_COPPER_TRAPDOOR = get("minecraft:waxed_exposed_copper_trapdoor");
@Nullable public static final BlockType WAXED_EXPOSED_CUT_COPPER = get("minecraft:waxed_exposed_cut_copper");
@Nullable public static final BlockType WAXED_EXPOSED_CUT_COPPER_SLAB = get("minecraft:waxed_exposed_cut_copper_slab");
@Nullable public static final BlockType WAXED_EXPOSED_CUT_COPPER_STAIRS = get("minecraft:waxed_exposed_cut_copper_stairs");
@Nullable public static final BlockType WAXED_OXIDIZED_CHISELED_COPPER = get("minecraft:waxed_oxidized_chiseled_copper");
@Nullable public static final BlockType WAXED_OXIDIZED_COPPER = get("minecraft:waxed_oxidized_copper");
@Nullable public static final BlockType WAXED_OXIDIZED_COPPER_BULB = get("minecraft:waxed_oxidized_copper_bulb");
@Nullable public static final BlockType WAXED_OXIDIZED_COPPER_DOOR = get("minecraft:waxed_oxidized_copper_door");
@Nullable public static final BlockType WAXED_OXIDIZED_COPPER_GRATE = get("minecraft:waxed_oxidized_copper_grate");
@Nullable public static final BlockType WAXED_OXIDIZED_COPPER_TRAPDOOR = get("minecraft:waxed_oxidized_copper_trapdoor");
@Nullable public static final BlockType WAXED_OXIDIZED_CUT_COPPER = get("minecraft:waxed_oxidized_cut_copper");
@Nullable public static final BlockType WAXED_OXIDIZED_CUT_COPPER_SLAB = get("minecraft:waxed_oxidized_cut_copper_slab");
@Nullable public static final BlockType WAXED_OXIDIZED_CUT_COPPER_STAIRS = get("minecraft:waxed_oxidized_cut_copper_stairs");
@Nullable public static final BlockType WAXED_WEATHERED_CHISELED_COPPER = get("minecraft:waxed_weathered_chiseled_copper");
@Nullable public static final BlockType WAXED_WEATHERED_COPPER = get("minecraft:waxed_weathered_copper");
@Nullable public static final BlockType WAXED_WEATHERED_COPPER_BULB = get("minecraft:waxed_weathered_copper_bulb");
@Nullable public static final BlockType WAXED_WEATHERED_COPPER_DOOR = get("minecraft:waxed_weathered_copper_door");
@Nullable public static final BlockType WAXED_WEATHERED_COPPER_GRATE = get("minecraft:waxed_weathered_copper_grate");
@Nullable public static final BlockType WAXED_WEATHERED_COPPER_TRAPDOOR = get("minecraft:waxed_weathered_copper_trapdoor");
@Nullable public static final BlockType WAXED_WEATHERED_CUT_COPPER = get("minecraft:waxed_weathered_cut_copper");
@Nullable public static final BlockType WAXED_WEATHERED_CUT_COPPER_SLAB = get("minecraft:waxed_weathered_cut_copper_slab");
@Nullable public static final BlockType WAXED_WEATHERED_CUT_COPPER_STAIRS = get("minecraft:waxed_weathered_cut_copper_stairs");
@Nullable public static final BlockType WEATHERED_CHISELED_COPPER = get("minecraft:weathered_chiseled_copper");
@Nullable public static final BlockType WEATHERED_COPPER = get("minecraft:weathered_copper");
@Nullable public static final BlockType WEATHERED_COPPER_BULB = get("minecraft:weathered_copper_bulb");
@Nullable public static final BlockType WEATHERED_COPPER_DOOR = get("minecraft:weathered_copper_door");
@Nullable public static final BlockType WEATHERED_COPPER_GRATE = get("minecraft:weathered_copper_grate");
@Nullable public static final BlockType WEATHERED_COPPER_TRAPDOOR = get("minecraft:weathered_copper_trapdoor");
@Nullable public static final BlockType WEATHERED_CUT_COPPER = get("minecraft:weathered_cut_copper");
@Nullable public static final BlockType WEATHERED_CUT_COPPER_SLAB = get("minecraft:weathered_cut_copper_slab");
@Nullable public static final BlockType WEATHERED_CUT_COPPER_STAIRS = get("minecraft:weathered_cut_copper_stairs");

View File

@ -38,6 +38,7 @@ public final class EntityTypes {
@Nullable public static final EntityType BLAZE = get("minecraft:blaze");
@Nullable public static final EntityType BLOCK_DISPLAY = get("minecraft:block_display");
@Nullable public static final EntityType BOAT = get("minecraft:boat");
@Nullable public static final EntityType BREEZE = get("minecraft:breeze");
@Nullable public static final EntityType CAMEL = get("minecraft:camel");
@Nullable public static final EntityType CAT = get("minecraft:cat");
@Nullable public static final EntityType CAVE_SPIDER = get("minecraft:cave_spider");
@ -142,6 +143,7 @@ public final class EntityTypes {
@Nullable public static final EntityType VINDICATOR = get("minecraft:vindicator");
@Nullable public static final EntityType WANDERING_TRADER = get("minecraft:wandering_trader");
@Nullable public static final EntityType WARDEN = get("minecraft:warden");
@Nullable public static final EntityType WIND_CHARGE = get("minecraft:wind_charge");
@Nullable public static final EntityType WITCH = get("minecraft:witch");
@Nullable public static final EntityType WITHER = get("minecraft:wither");
@Nullable public static final EntityType WITHER_SKELETON = get("minecraft:wither_skeleton");

View File

@ -168,6 +168,7 @@ public final class ItemTypes {
@Nullable public static final ItemType BRAIN_CORAL_BLOCK = get("minecraft:brain_coral_block");
@Nullable public static final ItemType BRAIN_CORAL_FAN = get("minecraft:brain_coral_fan");
@Nullable public static final ItemType BREAD = get("minecraft:bread");
@Nullable public static final ItemType BREEZE_SPAWN_EGG = get("minecraft:breeze_spawn_egg");
@Nullable public static final ItemType BREWER_POTTERY_SHERD = get("minecraft:brewer_pottery_sherd");
@Nullable public static final ItemType BREWING_STAND = get("minecraft:brewing_stand");
@Nullable public static final ItemType BRICK = get("minecraft:brick");
@ -243,6 +244,7 @@ public final class ItemTypes {
@Nullable public static final ItemType CHICKEN_SPAWN_EGG = get("minecraft:chicken_spawn_egg");
@Nullable public static final ItemType CHIPPED_ANVIL = get("minecraft:chipped_anvil");
@Nullable public static final ItemType CHISELED_BOOKSHELF = get("minecraft:chiseled_bookshelf");
@Nullable public static final ItemType CHISELED_COPPER = get("minecraft:chiseled_copper");
@Nullable public static final ItemType CHISELED_DEEPSLATE = get("minecraft:chiseled_deepslate");
@Nullable public static final ItemType CHISELED_NETHER_BRICKS = get("minecraft:chiseled_nether_bricks");
@Nullable public static final ItemType CHISELED_POLISHED_BLACKSTONE = get("minecraft:chiseled_polished_blackstone");
@ -250,6 +252,8 @@ public final class ItemTypes {
@Nullable public static final ItemType CHISELED_RED_SANDSTONE = get("minecraft:chiseled_red_sandstone");
@Nullable public static final ItemType CHISELED_SANDSTONE = get("minecraft:chiseled_sandstone");
@Nullable public static final ItemType CHISELED_STONE_BRICKS = get("minecraft:chiseled_stone_bricks");
@Nullable public static final ItemType CHISELED_TUFF = get("minecraft:chiseled_tuff");
@Nullable public static final ItemType CHISELED_TUFF_BRICKS = get("minecraft:chiseled_tuff_bricks");
@Nullable public static final ItemType CHORUS_FLOWER = get("minecraft:chorus_flower");
@Nullable public static final ItemType CHORUS_FRUIT = get("minecraft:chorus_fruit");
@Nullable public static final ItemType CHORUS_PLANT = get("minecraft:chorus_plant");
@ -289,8 +293,12 @@ public final class ItemTypes {
@Nullable public static final ItemType COOKED_SALMON = get("minecraft:cooked_salmon");
@Nullable public static final ItemType COOKIE = get("minecraft:cookie");
@Nullable public static final ItemType COPPER_BLOCK = get("minecraft:copper_block");
@Nullable public static final ItemType COPPER_BULB = get("minecraft:copper_bulb");
@Nullable public static final ItemType COPPER_DOOR = get("minecraft:copper_door");
@Nullable public static final ItemType COPPER_GRATE = get("minecraft:copper_grate");
@Nullable public static final ItemType COPPER_INGOT = get("minecraft:copper_ingot");
@Nullable public static final ItemType COPPER_ORE = get("minecraft:copper_ore");
@Nullable public static final ItemType COPPER_TRAPDOOR = get("minecraft:copper_trapdoor");
@Nullable public static final ItemType CORNFLOWER = get("minecraft:cornflower");
@Nullable public static final ItemType COW_SPAWN_EGG = get("minecraft:cow_spawn_egg");
@Nullable public static final ItemType CRACKED_DEEPSLATE_BRICKS = get("minecraft:cracked_deepslate_bricks");
@ -298,6 +306,7 @@ public final class ItemTypes {
@Nullable public static final ItemType CRACKED_NETHER_BRICKS = get("minecraft:cracked_nether_bricks");
@Nullable public static final ItemType CRACKED_POLISHED_BLACKSTONE_BRICKS = get("minecraft:cracked_polished_blackstone_bricks");
@Nullable public static final ItemType CRACKED_STONE_BRICKS = get("minecraft:cracked_stone_bricks");
@Nullable public static final ItemType CRAFTER = get("minecraft:crafter");
@Nullable public static final ItemType CRAFTING_TABLE = get("minecraft:crafting_table");
@Nullable public static final ItemType CREEPER_BANNER_PATTERN = get("minecraft:creeper_banner_pattern");
@Nullable public static final ItemType CREEPER_HEAD = get("minecraft:creeper_head");
@ -460,7 +469,12 @@ public final class ItemTypes {
@Nullable public static final ItemType EVOKER_SPAWN_EGG = get("minecraft:evoker_spawn_egg");
@Nullable public static final ItemType EXPERIENCE_BOTTLE = get("minecraft:experience_bottle");
@Nullable public static final ItemType EXPLORER_POTTERY_SHERD = get("minecraft:explorer_pottery_sherd");
@Nullable public static final ItemType EXPOSED_CHISELED_COPPER = get("minecraft:exposed_chiseled_copper");
@Nullable public static final ItemType EXPOSED_COPPER = get("minecraft:exposed_copper");
@Nullable public static final ItemType EXPOSED_COPPER_BULB = get("minecraft:exposed_copper_bulb");
@Nullable public static final ItemType EXPOSED_COPPER_DOOR = get("minecraft:exposed_copper_door");
@Nullable public static final ItemType EXPOSED_COPPER_GRATE = get("minecraft:exposed_copper_grate");
@Nullable public static final ItemType EXPOSED_COPPER_TRAPDOOR = get("minecraft:exposed_copper_trapdoor");
@Nullable public static final ItemType EXPOSED_CUT_COPPER = get("minecraft:exposed_cut_copper");
@Nullable public static final ItemType EXPOSED_CUT_COPPER_SLAB = get("minecraft:exposed_cut_copper_slab");
@Nullable public static final ItemType EXPOSED_CUT_COPPER_STAIRS = get("minecraft:exposed_cut_copper_stairs");
@ -527,7 +541,7 @@ public final class ItemTypes {
@Nullable public static final ItemType GRANITE_SLAB = get("minecraft:granite_slab");
@Nullable public static final ItemType GRANITE_STAIRS = get("minecraft:granite_stairs");
@Nullable public static final ItemType GRANITE_WALL = get("minecraft:granite_wall");
@Nullable public static final ItemType GRASS = get("minecraft:grass");
@Deprecated @Nullable public static final ItemType GRASS = get("minecraft:grass");
@Nullable public static final ItemType GRASS_BLOCK = get("minecraft:grass_block");
@Deprecated @Nullable public static final ItemType GRASS_PATH = get("minecraft:grass_path");
@Nullable public static final ItemType GRAVEL = get("minecraft:gravel");
@ -843,7 +857,12 @@ public final class ItemTypes {
@Nullable public static final ItemType ORANGE_TULIP = get("minecraft:orange_tulip");
@Nullable public static final ItemType ORANGE_WOOL = get("minecraft:orange_wool");
@Nullable public static final ItemType OXEYE_DAISY = get("minecraft:oxeye_daisy");
@Nullable public static final ItemType OXIDIZED_CHISELED_COPPER = get("minecraft:oxidized_chiseled_copper");
@Nullable public static final ItemType OXIDIZED_COPPER = get("minecraft:oxidized_copper");
@Nullable public static final ItemType OXIDIZED_COPPER_BULB = get("minecraft:oxidized_copper_bulb");
@Nullable public static final ItemType OXIDIZED_COPPER_DOOR = get("minecraft:oxidized_copper_door");
@Nullable public static final ItemType OXIDIZED_COPPER_GRATE = get("minecraft:oxidized_copper_grate");
@Nullable public static final ItemType OXIDIZED_COPPER_TRAPDOOR = get("minecraft:oxidized_copper_trapdoor");
@Nullable public static final ItemType OXIDIZED_CUT_COPPER = get("minecraft:oxidized_cut_copper");
@Nullable public static final ItemType OXIDIZED_CUT_COPPER_SLAB = get("minecraft:oxidized_cut_copper_slab");
@Nullable public static final ItemType OXIDIZED_CUT_COPPER_STAIRS = get("minecraft:oxidized_cut_copper_stairs");
@ -912,6 +931,10 @@ public final class ItemTypes {
@Nullable public static final ItemType POLISHED_GRANITE = get("minecraft:polished_granite");
@Nullable public static final ItemType POLISHED_GRANITE_SLAB = get("minecraft:polished_granite_slab");
@Nullable public static final ItemType POLISHED_GRANITE_STAIRS = get("minecraft:polished_granite_stairs");
@Nullable public static final ItemType POLISHED_TUFF = get("minecraft:polished_tuff");
@Nullable public static final ItemType POLISHED_TUFF_SLAB = get("minecraft:polished_tuff_slab");
@Nullable public static final ItemType POLISHED_TUFF_STAIRS = get("minecraft:polished_tuff_stairs");
@Nullable public static final ItemType POLISHED_TUFF_WALL = get("minecraft:polished_tuff_wall");
@Nullable public static final ItemType POPPED_CHORUS_FRUIT = get("minecraft:popped_chorus_fruit");
@Nullable public static final ItemType POPPY = get("minecraft:poppy");
@Nullable public static final ItemType PORKCHOP = get("minecraft:porkchop");
@ -1038,6 +1061,7 @@ public final class ItemTypes {
@Nullable public static final ItemType SHEEP_SPAWN_EGG = get("minecraft:sheep_spawn_egg");
@Nullable public static final ItemType SHELTER_POTTERY_SHERD = get("minecraft:shelter_pottery_sherd");
@Nullable public static final ItemType SHIELD = get("minecraft:shield");
@Nullable public static final ItemType SHORT_GRASS = get("minecraft:short_grass");
@Nullable public static final ItemType SHROOMLIGHT = get("minecraft:shroomlight");
@Nullable public static final ItemType SHULKER_BOX = get("minecraft:shulker_box");
@Nullable public static final ItemType SHULKER_SHELL = get("minecraft:shulker_shell");
@ -1175,6 +1199,8 @@ public final class ItemTypes {
@Nullable public static final ItemType TOTEM_OF_UNDYING = get("minecraft:totem_of_undying");
@Nullable public static final ItemType TRADER_LLAMA_SPAWN_EGG = get("minecraft:trader_llama_spawn_egg");
@Nullable public static final ItemType TRAPPED_CHEST = get("minecraft:trapped_chest");
@Nullable public static final ItemType TRIAL_KEY = get("minecraft:trial_key");
@Nullable public static final ItemType TRIAL_SPAWNER = get("minecraft:trial_spawner");
@Nullable public static final ItemType TRIDENT = get("minecraft:trident");
@Nullable public static final ItemType TRIPWIRE_HOOK = get("minecraft:tripwire_hook");
@Nullable public static final ItemType TROPICAL_FISH = get("minecraft:tropical_fish");
@ -1184,6 +1210,13 @@ public final class ItemTypes {
@Nullable public static final ItemType TUBE_CORAL_BLOCK = get("minecraft:tube_coral_block");
@Nullable public static final ItemType TUBE_CORAL_FAN = get("minecraft:tube_coral_fan");
@Nullable public static final ItemType TUFF = get("minecraft:tuff");
@Nullable public static final ItemType TUFF_BRICK_SLAB = get("minecraft:tuff_brick_slab");
@Nullable public static final ItemType TUFF_BRICK_STAIRS = get("minecraft:tuff_brick_stairs");
@Nullable public static final ItemType TUFF_BRICK_WALL = get("minecraft:tuff_brick_wall");
@Nullable public static final ItemType TUFF_BRICKS = get("minecraft:tuff_bricks");
@Nullable public static final ItemType TUFF_SLAB = get("minecraft:tuff_slab");
@Nullable public static final ItemType TUFF_STAIRS = get("minecraft:tuff_stairs");
@Nullable public static final ItemType TUFF_WALL = get("minecraft:tuff_wall");
@Nullable public static final ItemType TURTLE_EGG = get("minecraft:turtle_egg");
@Nullable public static final ItemType TURTLE_HELMET = get("minecraft:turtle_helmet");
@Nullable public static final ItemType TURTLE_SPAWN_EGG = get("minecraft:turtle_spawn_egg");
@ -1216,24 +1249,49 @@ public final class ItemTypes {
@Nullable public static final ItemType WARPED_TRAPDOOR = get("minecraft:warped_trapdoor");
@Nullable public static final ItemType WARPED_WART_BLOCK = get("minecraft:warped_wart_block");
@Nullable public static final ItemType WATER_BUCKET = get("minecraft:water_bucket");
@Nullable public static final ItemType WAXED_CHISELED_COPPER = get("minecraft:waxed_chiseled_copper");
@Nullable public static final ItemType WAXED_COPPER_BLOCK = get("minecraft:waxed_copper_block");
@Nullable public static final ItemType WAXED_COPPER_BULB = get("minecraft:waxed_copper_bulb");
@Nullable public static final ItemType WAXED_COPPER_DOOR = get("minecraft:waxed_copper_door");
@Nullable public static final ItemType WAXED_COPPER_GRATE = get("minecraft:waxed_copper_grate");
@Nullable public static final ItemType WAXED_COPPER_TRAPDOOR = get("minecraft:waxed_copper_trapdoor");
@Nullable public static final ItemType WAXED_CUT_COPPER = get("minecraft:waxed_cut_copper");
@Nullable public static final ItemType WAXED_CUT_COPPER_SLAB = get("minecraft:waxed_cut_copper_slab");
@Nullable public static final ItemType WAXED_CUT_COPPER_STAIRS = get("minecraft:waxed_cut_copper_stairs");
@Nullable public static final ItemType WAXED_EXPOSED_CHISELED_COPPER = get("minecraft:waxed_exposed_chiseled_copper");
@Nullable public static final ItemType WAXED_EXPOSED_COPPER = get("minecraft:waxed_exposed_copper");
@Nullable public static final ItemType WAXED_EXPOSED_COPPER_BULB = get("minecraft:waxed_exposed_copper_bulb");
@Nullable public static final ItemType WAXED_EXPOSED_COPPER_DOOR = get("minecraft:waxed_exposed_copper_door");
@Nullable public static final ItemType WAXED_EXPOSED_COPPER_GRATE = get("minecraft:waxed_exposed_copper_grate");
@Nullable public static final ItemType WAXED_EXPOSED_COPPER_TRAPDOOR = get("minecraft:waxed_exposed_copper_trapdoor");
@Nullable public static final ItemType WAXED_EXPOSED_CUT_COPPER = get("minecraft:waxed_exposed_cut_copper");
@Nullable public static final ItemType WAXED_EXPOSED_CUT_COPPER_SLAB = get("minecraft:waxed_exposed_cut_copper_slab");
@Nullable public static final ItemType WAXED_EXPOSED_CUT_COPPER_STAIRS = get("minecraft:waxed_exposed_cut_copper_stairs");
@Nullable public static final ItemType WAXED_OXIDIZED_CHISELED_COPPER = get("minecraft:waxed_oxidized_chiseled_copper");
@Nullable public static final ItemType WAXED_OXIDIZED_COPPER = get("minecraft:waxed_oxidized_copper");
@Nullable public static final ItemType WAXED_OXIDIZED_COPPER_BULB = get("minecraft:waxed_oxidized_copper_bulb");
@Nullable public static final ItemType WAXED_OXIDIZED_COPPER_DOOR = get("minecraft:waxed_oxidized_copper_door");
@Nullable public static final ItemType WAXED_OXIDIZED_COPPER_GRATE = get("minecraft:waxed_oxidized_copper_grate");
@Nullable public static final ItemType WAXED_OXIDIZED_COPPER_TRAPDOOR = get("minecraft:waxed_oxidized_copper_trapdoor");
@Nullable public static final ItemType WAXED_OXIDIZED_CUT_COPPER = get("minecraft:waxed_oxidized_cut_copper");
@Nullable public static final ItemType WAXED_OXIDIZED_CUT_COPPER_SLAB = get("minecraft:waxed_oxidized_cut_copper_slab");
@Nullable public static final ItemType WAXED_OXIDIZED_CUT_COPPER_STAIRS = get("minecraft:waxed_oxidized_cut_copper_stairs");
@Nullable public static final ItemType WAXED_WEATHERED_CHISELED_COPPER = get("minecraft:waxed_weathered_chiseled_copper");
@Nullable public static final ItemType WAXED_WEATHERED_COPPER = get("minecraft:waxed_weathered_copper");
@Nullable public static final ItemType WAXED_WEATHERED_COPPER_BULB = get("minecraft:waxed_weathered_copper_bulb");
@Nullable public static final ItemType WAXED_WEATHERED_COPPER_DOOR = get("minecraft:waxed_weathered_copper_door");
@Nullable public static final ItemType WAXED_WEATHERED_COPPER_GRATE = get("minecraft:waxed_weathered_copper_grate");
@Nullable public static final ItemType WAXED_WEATHERED_COPPER_TRAPDOOR = get("minecraft:waxed_weathered_copper_trapdoor");
@Nullable public static final ItemType WAXED_WEATHERED_CUT_COPPER = get("minecraft:waxed_weathered_cut_copper");
@Nullable public static final ItemType WAXED_WEATHERED_CUT_COPPER_SLAB = get("minecraft:waxed_weathered_cut_copper_slab");
@Nullable public static final ItemType WAXED_WEATHERED_CUT_COPPER_STAIRS = get("minecraft:waxed_weathered_cut_copper_stairs");
@Nullable public static final ItemType WAYFINDER_ARMOR_TRIM_SMITHING_TEMPLATE = get("minecraft:wayfinder_armor_trim_smithing_template");
@Nullable public static final ItemType WEATHERED_CHISELED_COPPER = get("minecraft:weathered_chiseled_copper");
@Nullable public static final ItemType WEATHERED_COPPER = get("minecraft:weathered_copper");
@Nullable public static final ItemType WEATHERED_COPPER_BULB = get("minecraft:weathered_copper_bulb");
@Nullable public static final ItemType WEATHERED_COPPER_DOOR = get("minecraft:weathered_copper_door");
@Nullable public static final ItemType WEATHERED_COPPER_GRATE = get("minecraft:weathered_copper_grate");
@Nullable public static final ItemType WEATHERED_COPPER_TRAPDOOR = get("minecraft:weathered_copper_trapdoor");
@Nullable public static final ItemType WEATHERED_CUT_COPPER = get("minecraft:weathered_cut_copper");
@Nullable public static final ItemType WEATHERED_CUT_COPPER_SLAB = get("minecraft:weathered_cut_copper_slab");
@Nullable public static final ItemType WEATHERED_CUT_COPPER_STAIRS = get("minecraft:weathered_cut_copper_stairs");

View File

@ -22,8 +22,8 @@ applyShadowConfiguration()
apply(plugin = "fabric-loom")
apply(plugin = "java-library")
val minecraftVersion = "1.20.2"
val loaderVersion = "0.14.22"
val minecraftVersion = "1.20.4"
val loaderVersion = "0.15.1"
val fabricApiConfiguration: Configuration = configurations.create("fabricApi")
@ -64,7 +64,7 @@ dependencies {
.toSet()
// [2] Request the matching dependency from fabric-loom
for (wantedDependency in wantedDependencies) {
val dep = project.the<FabricApiExtension>().module(wantedDependency, "0.89.1+1.20.2")
val dep = project.the<FabricApiExtension>().module(wantedDependency, "0.91.1+1.20.4")
"include"(dep)
"modImplementation"(dep)
}

View File

@ -610,8 +610,8 @@ public class FabricWorld extends AbstractWorld {
public List<? extends Entity> getEntities(Region region) {
final Level world = getWorld();
AABB box = new AABB(
FabricAdapter.toBlockPos(region.getMinimumPoint()),
FabricAdapter.toBlockPos(region.getMaximumPoint().add(BlockVector3.ONE))
FabricAdapter.toVec3(region.getMinimumPoint()),
FabricAdapter.toVec3(region.getMaximumPoint().add(BlockVector3.ONE))
);
List<net.minecraft.world.entity.Entity> nmsEntities = world.getEntities(
(net.minecraft.world.entity.Entity) null,

View File

@ -36,7 +36,7 @@ import java.nio.file.Path;
public abstract class MixinMinecraftServer implements Watchdog, ExtendedMinecraftServer {
@Shadow
private long nextTickTime;
private long nextTickTimeNanos;
@Final
@Shadow
protected LevelStorageSource.LevelStorageAccess storageSource;
@ -44,7 +44,7 @@ public abstract class MixinMinecraftServer implements Watchdog, ExtendedMinecraf
@Unique
@Override
public void tick() {
nextTickTime = Util.getMillis();
nextTickTimeNanos = Util.getNanos();
}
@Unique

View File

@ -12,11 +12,11 @@ plugins {
applyPlatformAndCoreConfiguration(javaRelease = 17)
applyShadowConfiguration()
val minecraftVersion = "1.20.2"
val minecraftVersion = "1.20.4"
val nextMajorMinecraftVersion: String = minecraftVersion.split('.').let { (useless, major) ->
"$useless.${major.toInt() + 1}"
}
val forgeVersion = "48.0.20"
val forgeVersion = "49.0.3"
val apiClasspath = configurations.create("apiClasspath") {
isCanBeResolved = true

View File

@ -33,6 +33,6 @@ class ForgeWatchdog implements Watchdog {
@Override
public void tick() {
server.nextTickTime = Util.getMillis();
server.nextTickTimeNanos = Util.getNanos();
}
}

View File

@ -596,8 +596,8 @@ public class ForgeWorld extends AbstractWorld {
public List<? extends Entity> getEntities(Region region) {
final ServerLevel world = getWorld();
AABB box = new AABB(
ForgeAdapter.toBlockPos(region.getMinimumPoint()),
ForgeAdapter.toBlockPos(region.getMaximumPoint().add(BlockVector3.ONE))
ForgeAdapter.toVec3(region.getMinimumPoint()),
ForgeAdapter.toVec3(region.getMaximumPoint().add(BlockVector3.ONE))
);
List<net.minecraft.world.entity.Entity> nmsEntities = world.getEntities(
(net.minecraft.world.entity.Entity) null,

View File

@ -1,4 +1,4 @@
public net.minecraft.server.MinecraftServer f_129726_ # nextTickTime
public net.minecraft.server.MinecraftServer f_302313_ # nextTickTimeNanos
# For regen
public net.minecraft.server.MinecraftServer f_129744_ # storageSource