9
0
mirror of https://github.com/Xiao-MoMi/craft-engine.git synced 2025-12-30 12:29:15 +00:00

纠正一些错误

This commit is contained in:
XiaoMoMi
2025-06-28 20:16:17 +08:00
parent cb48025194
commit 5db64d24cc
7 changed files with 407 additions and 405 deletions

View File

@@ -51,10 +51,10 @@ public final class BukkitCustomBlock extends AbstractCustomBlock {
@Override
protected BlockBehavior setupBehavior(List<Map<String, Object>> behaviorConfig) {
if (behaviorConfig.isEmpty()) {
if (behaviorConfig == null || behaviorConfig.isEmpty()) {
return new EmptyBlockBehavior();
} else if (behaviorConfig.size() == 1) {
return BlockBehaviors.fromMap(this, behaviorConfig.get(0));
return BlockBehaviors.fromMap(this, behaviorConfig.getFirst());
} else {
List<AbstractBlockBehavior> behaviors = new ArrayList<>();
for (Map<String, Object> config : behaviorConfig) {

View File

@@ -1,5 +1,6 @@
package net.momirealms.craftengine.bukkit.plugin.injector;
import com.google.common.collect.ImmutableMap;
import com.mojang.serialization.MapCodec;
import it.unimi.dsi.fastutil.objects.Reference2ObjectArrayMap;
import net.bytebuddy.ByteBuddy;
@@ -29,6 +30,7 @@ import net.momirealms.craftengine.core.item.Item;
import net.momirealms.craftengine.core.plugin.context.ContextHolder;
import net.momirealms.craftengine.core.plugin.context.parameter.DirectContextParameters;
import net.momirealms.craftengine.core.util.ReflectionUtils;
import net.momirealms.craftengine.core.util.VersionHelper;
import net.momirealms.craftengine.core.world.World;
import net.momirealms.craftengine.core.world.WorldPosition;
import org.bukkit.inventory.ItemStack;
@@ -64,9 +66,13 @@ public final class BlockStateGenerator {
.method(ElementMatchers.is(CoreReflections.method$StateHolder$setValue))
.intercept(MethodDelegation.to(SetPropertyValueInterceptor.INSTANCE));
Class<?> clazz$CraftEngineBlock = stateBuilder.make().load(BlockStateGenerator.class.getClassLoader()).getLoaded();
constructor$CraftEngineBlockState = MethodHandles.publicLookup().in(clazz$CraftEngineBlock)
constructor$CraftEngineBlockState = VersionHelper.isOrAbove1_20_5() ?
MethodHandles.publicLookup().in(clazz$CraftEngineBlock)
.findConstructor(clazz$CraftEngineBlock, MethodType.methodType(void.class, CoreReflections.clazz$Block, Reference2ObjectArrayMap.class, MapCodec.class))
.asType(MethodType.methodType(CoreReflections.clazz$BlockState, CoreReflections.clazz$Block, Reference2ObjectArrayMap.class, MapCodec.class));
.asType(MethodType.methodType(CoreReflections.clazz$BlockState, CoreReflections.clazz$Block, Reference2ObjectArrayMap.class, MapCodec.class)) :
MethodHandles.publicLookup().in(clazz$CraftEngineBlock)
.findConstructor(clazz$CraftEngineBlock, MethodType.methodType(void.class, CoreReflections.clazz$Block, ImmutableMap.class, MapCodec.class))
.asType(MethodType.methodType(CoreReflections.clazz$BlockState, CoreReflections.clazz$Block, ImmutableMap.class, MapCodec.class));
String generatedFactoryClassName = packageWithName.substring(0, packageWithName.lastIndexOf('.')) + ".CraftEngineStateFactory";
DynamicType.Builder<?> factoryBuilder = byteBuddy

View File

@@ -1732,7 +1732,7 @@ public final class CoreReflections {
);
public static final Method method$StateHolder$setValue = requireNonNull(
ReflectionUtils.getMethod(clazz$StateHolder, Object.class, new String[] {"setValue", "b"}, clazz$Property, Comparable.class)
ReflectionUtils.getMethod(clazz$StateHolder, Object.class, new String[] {"setValue", VersionHelper.isOrAbove1_21_2() ? "b" : "a"}, clazz$Property, Comparable.class)
);
public static final Method method$Block$updateFromNeighbourShapes = requireNonNull(