mirror of
https://github.com/EngineHub/WorldEdit.git
synced 2025-04-06 14:30:42 +08:00
Merge branch 'version/7.2.x'
This commit is contained in:
commit
ebf355f8fb
@ -51,12 +51,12 @@ dependencies {
|
||||
implementation("me.champeau.gradle:japicmp-gradle-plugin:0.4.0")
|
||||
implementation("com.github.johnrengelman:shadow:8.1.1")
|
||||
implementation("org.jfrog.buildinfo:build-info-extractor-gradle:4.32.0")
|
||||
implementation("org.spongepowered:spongegradle-plugin-development:2.1.1")
|
||||
implementation("org.spongepowered:vanillagradle:0.2.1-20230603.203956-54")
|
||||
implementation("net.minecraftforge.gradle:ForgeGradle:6.0.13")
|
||||
implementation("org.spongepowered:spongegradle-plugin-development:2.2.0")
|
||||
implementation("org.spongepowered:vanillagradle:0.2.1-20231105.223944-69")
|
||||
implementation("net.minecraftforge.gradle:ForgeGradle:6.0.16")
|
||||
implementation("net.fabricmc:fabric-loom:$loomVersion")
|
||||
implementation("net.fabricmc:sponge-mixin:$mixinVersion")
|
||||
implementation("org.enginehub.gradle:gradle-codecov-plugin:0.2.0")
|
||||
implementation("io.papermc.paperweight.userdev:io.papermc.paperweight.userdev.gradle.plugin:1.5.5")
|
||||
implementation("io.papermc.paperweight.userdev:io.papermc.paperweight.userdev.gradle.plugin:1.5.9")
|
||||
implementation("org.spongepowered:mixingradle:0.7.38")
|
||||
}
|
||||
|
@ -4,5 +4,5 @@ version=7.3.0-SNAPSHOT
|
||||
org.gradle.jvmargs=-Xmx2G
|
||||
org.gradle.parallel=true
|
||||
|
||||
loom.version=1.3.9
|
||||
loom.version=1.4.4
|
||||
mixin.version=0.12.5+mixin.0.8.5
|
||||
|
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
Binary file not shown.
3
gradle/wrapper/gradle-wrapper.properties
vendored
3
gradle/wrapper/gradle-wrapper.properties
vendored
@ -1,6 +1,7 @@
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip
|
||||
networkTimeout=10000
|
||||
validateDistributionUrl=true
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
|
29
gradlew
vendored
29
gradlew
vendored
@ -83,10 +83,8 @@ done
|
||||
# This is normally unused
|
||||
# shellcheck disable=SC2034
|
||||
APP_BASE_NAME=${0##*/}
|
||||
APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
|
||||
|
||||
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
||||
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
|
||||
APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit
|
||||
|
||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
||||
MAX_FD=maximum
|
||||
@ -133,10 +131,13 @@ location of your Java installation."
|
||||
fi
|
||||
else
|
||||
JAVACMD=java
|
||||
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
if ! command -v java >/dev/null 2>&1
|
||||
then
|
||||
die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
|
||||
Please set the JAVA_HOME variable in your environment to match the
|
||||
location of your Java installation."
|
||||
fi
|
||||
fi
|
||||
|
||||
# Increase the maximum file descriptors if we can.
|
||||
@ -144,7 +145,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
|
||||
case $MAX_FD in #(
|
||||
max*)
|
||||
# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
|
||||
# shellcheck disable=SC3045
|
||||
# shellcheck disable=SC2039,SC3045
|
||||
MAX_FD=$( ulimit -H -n ) ||
|
||||
warn "Could not query maximum file descriptor limit"
|
||||
esac
|
||||
@ -152,7 +153,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
|
||||
'' | soft) :;; #(
|
||||
*)
|
||||
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
|
||||
# shellcheck disable=SC3045
|
||||
# shellcheck disable=SC2039,SC3045
|
||||
ulimit -n "$MAX_FD" ||
|
||||
warn "Could not set maximum file descriptor limit to $MAX_FD"
|
||||
esac
|
||||
@ -197,11 +198,15 @@ if "$cygwin" || "$msys" ; then
|
||||
done
|
||||
fi
|
||||
|
||||
# Collect all arguments for the java command;
|
||||
# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
|
||||
# shell script including quotes and variable substitutions, so put them in
|
||||
# double quotes to make sure that they get re-expanded; and
|
||||
# * put everything else in single quotes, so that it's not re-expanded.
|
||||
|
||||
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
||||
|
||||
# Collect all arguments for the java command:
|
||||
# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
|
||||
# and any embedded shellness will be escaped.
|
||||
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
|
||||
# treated as '${Hostname}' itself on the command line.
|
||||
|
||||
set -- \
|
||||
"-Dorg.gradle.appname=$APP_BASE_NAME" \
|
||||
|
@ -2,7 +2,7 @@ rootProject.name = "worldedit"
|
||||
|
||||
include("worldedit-libs")
|
||||
|
||||
listOf("1.17.1", "1.18.2", "1.19.4", "1.20", "1.20.2").forEach {
|
||||
listOf("1.17.1", "1.18.2", "1.19.4", "1.20", "1.20.2", "1.20.4").forEach {
|
||||
include("worldedit-bukkit:adapters:adapter-$it")
|
||||
}
|
||||
|
||||
|
@ -4,5 +4,5 @@ applyPaperweightAdapterConfiguration()
|
||||
|
||||
dependencies {
|
||||
// https://repo.papermc.io/service/rest/repository/browse/maven-public/io/papermc/paper/dev-bundle/
|
||||
the<PaperweightUserDependenciesExtension>().paperDevBundle("1.20.2-R0.1-20230924.232656-10")
|
||||
the<PaperweightUserDependenciesExtension>().paperDevBundle("1.20.2-R0.1-20231119.012505-100")
|
||||
}
|
||||
|
@ -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")
|
||||
}
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -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) {
|
||||
}
|
||||
}
|
@ -0,0 +1,150 @@
|
||||
/*
|
||||
* 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.worldedit.EditSession;
|
||||
import com.sk89q.worldedit.MaxChangedBlocksException;
|
||||
import com.sk89q.worldedit.bukkit.BukkitAdapter;
|
||||
import com.sk89q.worldedit.entity.BaseEntity;
|
||||
import com.sk89q.worldedit.math.BlockVector3;
|
||||
import com.sk89q.worldedit.util.Location;
|
||||
import com.sk89q.worldedit.util.concurrency.LazyReference;
|
||||
import com.sk89q.worldedit.world.block.BlockTypes;
|
||||
import com.sk89q.worldedit.world.entity.EntityTypes;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.registries.Registries;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.server.level.ServerLevel;
|
||||
import net.minecraft.world.entity.Entity;
|
||||
import net.minecraft.world.level.WorldGenLevel;
|
||||
import net.minecraft.world.level.block.entity.BlockEntity;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.phys.Vec3;
|
||||
import org.enginehub.linbus.tree.LinCompoundTag;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.lang.reflect.InvocationHandler;
|
||||
import java.lang.reflect.Method;
|
||||
import java.lang.reflect.Proxy;
|
||||
|
||||
public class PaperweightServerLevelDelegateProxy implements InvocationHandler {
|
||||
|
||||
private final EditSession editSession;
|
||||
private final ServerLevel serverLevel;
|
||||
private final PaperweightAdapter adapter;
|
||||
|
||||
private PaperweightServerLevelDelegateProxy(EditSession editSession, ServerLevel serverLevel, PaperweightAdapter adapter) {
|
||||
this.editSession = editSession;
|
||||
this.serverLevel = serverLevel;
|
||||
this.adapter = adapter;
|
||||
}
|
||||
|
||||
public static WorldGenLevel newInstance(EditSession editSession, ServerLevel serverLevel, PaperweightAdapter adapter) {
|
||||
return (WorldGenLevel) Proxy.newProxyInstance(
|
||||
serverLevel.getClass().getClassLoader(),
|
||||
serverLevel.getClass().getInterfaces(),
|
||||
new PaperweightServerLevelDelegateProxy(editSession, serverLevel, adapter)
|
||||
);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private BlockEntity getBlockEntity(BlockPos blockPos) {
|
||||
BlockEntity tileEntity = this.serverLevel.getChunkAt(blockPos).getBlockEntity(blockPos);
|
||||
if (tileEntity == null) {
|
||||
return null;
|
||||
}
|
||||
BlockEntity newEntity = tileEntity.getType().create(blockPos, getBlockState(blockPos));
|
||||
newEntity.load((CompoundTag) adapter.fromNative(this.editSession.getFullBlock(BlockVector3.at(blockPos.getX(), blockPos.getY(), blockPos.getZ())).getNbtReference().getValue()));
|
||||
|
||||
return newEntity;
|
||||
}
|
||||
|
||||
private BlockState getBlockState(BlockPos blockPos) {
|
||||
return adapter.adapt(this.editSession.getBlock(BlockVector3.at(blockPos.getX(), blockPos.getY(), blockPos.getZ())));
|
||||
}
|
||||
|
||||
private boolean setBlock(BlockPos blockPos, BlockState blockState) {
|
||||
try {
|
||||
return editSession.setBlock(BlockVector3.at(blockPos.getX(), blockPos.getY(), blockPos.getZ()), adapter.adapt(blockState));
|
||||
} catch (MaxChangedBlocksException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
private boolean removeBlock(BlockPos blockPos, boolean bl) {
|
||||
try {
|
||||
return editSession.setBlock(BlockVector3.at(blockPos.getX(), blockPos.getY(), blockPos.getZ()), BlockTypes.AIR.getDefaultState());
|
||||
} catch (MaxChangedBlocksException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
private boolean addEntity(Entity entity) {
|
||||
Vec3 pos = entity.getPosition(0.0f);
|
||||
Location location = new Location(BukkitAdapter.adapt(serverLevel.getWorld()), pos.x(), pos.y(), pos.z());
|
||||
|
||||
ResourceLocation id = serverLevel.registryAccess().registryOrThrow(Registries.ENTITY_TYPE).getKey(entity.getType());
|
||||
CompoundTag tag = new CompoundTag();
|
||||
entity.saveWithoutId(tag);
|
||||
BaseEntity baseEntity = new BaseEntity(EntityTypes.get(id.toString()), LazyReference.from(() -> (LinCompoundTag) adapter.toNative(tag)));
|
||||
|
||||
return editSession.createEntity(location, baseEntity) != null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
|
||||
switch (method.getName()) {
|
||||
case "a_", "getBlockState", "addFreshEntityWithPassengers" -> {
|
||||
if (args.length == 1 && args[0] instanceof BlockPos blockPos) {
|
||||
// getBlockState
|
||||
return getBlockState(blockPos);
|
||||
} else if (args.length >= 1 && args[0] instanceof Entity entity) {
|
||||
// addFreshEntityWithPassengers
|
||||
return addEntity(entity);
|
||||
}
|
||||
}
|
||||
case "c_", "getBlockEntity" -> {
|
||||
if (args.length == 1 && args[0] instanceof BlockPos blockPos) {
|
||||
// getBlockEntity
|
||||
return getBlockEntity(blockPos);
|
||||
}
|
||||
}
|
||||
case "a", "setBlock", "removeBlock", "destroyBlock" -> {
|
||||
if (args.length >= 2 && args[0] instanceof BlockPos blockPos && args[1] instanceof BlockState blockState) {
|
||||
// setBlock
|
||||
return setBlock(blockPos, blockState);
|
||||
} else if (args.length >= 2 && args[0] instanceof BlockPos blockPos && args[1] instanceof Boolean bl) {
|
||||
// removeBlock (and also matches destroyBlock)
|
||||
return removeBlock(blockPos, bl);
|
||||
}
|
||||
}
|
||||
case "j", "addEntity" -> {
|
||||
if (args.length >= 1 && args[0] instanceof Entity entity) {
|
||||
return addEntity(entity);
|
||||
}
|
||||
}
|
||||
default -> { }
|
||||
}
|
||||
|
||||
return method.invoke(this.serverLevel, args);
|
||||
}
|
||||
|
||||
}
|
@ -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.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 org.enginehub.linbus.tree.LinCompoundTag;
|
||||
|
||||
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, LinCompoundTag 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);
|
||||
}
|
||||
}
|
@ -4,5 +4,5 @@ applyPaperweightAdapterConfiguration()
|
||||
|
||||
dependencies {
|
||||
// https://repo.papermc.io/service/rest/repository/browse/maven-public/io/papermc/paper/dev-bundle/
|
||||
the<PaperweightUserDependenciesExtension>().paperDevBundle("1.20.1-R0.1-20230816.041652-110")
|
||||
the<PaperweightUserDependenciesExtension>().paperDevBundle("1.20.1-R0.1-20230921.165944-178")
|
||||
}
|
||||
|
@ -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,
|
||||
|
@ -88,7 +88,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);
|
||||
|
@ -24,6 +24,7 @@ import com.sk89q.worldedit.extent.AbstractDelegateExtent;
|
||||
import com.sk89q.worldedit.extent.Extent;
|
||||
import com.sk89q.worldedit.math.BlockVector3;
|
||||
import com.sk89q.worldedit.world.World;
|
||||
import com.sk89q.worldedit.world.biome.BiomeType;
|
||||
import com.sk89q.worldedit.world.block.BlockStateHolder;
|
||||
import com.sk89q.worldedit.world.block.BlockType;
|
||||
|
||||
@ -76,4 +77,14 @@ public class DataValidatorExtent extends AbstractDelegateExtent {
|
||||
return super.setBlock(location, block);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean setBiome(BlockVector3 location, BiomeType biome) {
|
||||
final int y = location.getBlockY();
|
||||
|
||||
if (y < minY || y > maxY) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return super.setBiome(location, biome);
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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");
|
||||
|
@ -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");
|
||||
|
@ -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");
|
||||
|
@ -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");
|
||||
|
@ -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)
|
||||
}
|
||||
|
@ -666,8 +666,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,
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -33,6 +33,6 @@ class ForgeWatchdog implements Watchdog {
|
||||
|
||||
@Override
|
||||
public void tick() {
|
||||
server.nextTickTime = Util.getMillis();
|
||||
server.nextTickTimeNanos = Util.getNanos();
|
||||
}
|
||||
}
|
||||
|
@ -653,8 +653,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,
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user