diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/api/CraftEngineFurniture.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/api/CraftEngineFurniture.java
index 5d5c4532f..7f2a1cabe 100644
--- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/api/CraftEngineFurniture.java
+++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/api/CraftEngineFurniture.java
@@ -80,7 +80,7 @@ public final class CraftEngineFurniture {
*
* @param location location
* @param furnitureId furniture to place
- * @param anchorType anchor id
+ * @param anchorType anchor type
* @return the loaded furniture
*/
@Nullable
@@ -98,7 +98,7 @@ public final class CraftEngineFurniture {
*
* @param location location
* @param furniture furniture to place
- * @param anchorType anchor id
+ * @param anchorType anchor type
* @return the loaded furniture
*/
@NotNull
@@ -114,7 +114,7 @@ public final class CraftEngineFurniture {
*
* @param location location
* @param furnitureId furniture to place
- * @param anchorType anchor id
+ * @param anchorType anchor type
* @param playSound whether to play place sounds
* @return the loaded furniture
*/
@@ -133,7 +133,7 @@ public final class CraftEngineFurniture {
*
* @param location location
* @param furniture furniture to place
- * @param anchorType anchor id
+ * @param anchorType anchor type
* @param playSound whether to play place sounds
* @return the loaded furniture
*/
diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/api/event/AsyncResourcePackCacheEvent.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/api/event/AsyncResourcePackCacheEvent.java
index 62099bba8..dfa064fa3 100644
--- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/api/event/AsyncResourcePackCacheEvent.java
+++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/api/event/AsyncResourcePackCacheEvent.java
@@ -49,7 +49,7 @@ public final class AsyncResourcePackCacheEvent extends Event {
* Adds an external resource pack to the cache.
*
* This method accepts either a .zip file or a directory path representing a resource pack.
- * The resource pack will be added to the appropriate cache collection based on its id.
+ * The resource pack will be added to the appropriate cache collection based on its type.
*
*
* @param path the file system path to the resource pack. Must be either a .zip file or a directory.
diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/NearLiquidBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/NearLiquidBlockBehavior.java
index 060282f7d..9c9b02c65 100644
--- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/NearLiquidBlockBehavior.java
+++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/NearLiquidBlockBehavior.java
@@ -45,7 +45,7 @@ public class NearLiquidBlockBehavior extends AbstractCanSurviveBlockBehavior {
public static class Factory implements BlockBehaviorFactory {
@Override
public BlockBehavior create(CustomBlock block, Map arguments) {
- List liquidTypes = MiscUtils.getAsStringList(arguments.getOrDefault("liquid-id", List.of("water")));
+ List liquidTypes = MiscUtils.getAsStringList(arguments.getOrDefault("liquid-type", List.of("water")));
boolean stackable = ResourceConfigUtils.getAsBoolean(arguments.getOrDefault("stackable", false), "stackable");
int delay = ResourceConfigUtils.getAsInt(arguments.getOrDefault("delay", 0), "delay");
List positionsToCheck = MiscUtils.getAsStringList(arguments.getOrDefault("positions", List.of()));
diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/OnLiquidBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/OnLiquidBlockBehavior.java
index 3e8a3fed1..e71780c7c 100644
--- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/OnLiquidBlockBehavior.java
+++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/OnLiquidBlockBehavior.java
@@ -40,7 +40,7 @@ public class OnLiquidBlockBehavior extends AbstractCanSurviveBlockBehavior {
public static class Factory implements BlockBehaviorFactory {
@Override
public BlockBehavior create(CustomBlock block, Map arguments) {
- List liquidTypes = MiscUtils.getAsStringList(arguments.getOrDefault("liquid-id", List.of("water")));
+ List liquidTypes = MiscUtils.getAsStringList(arguments.getOrDefault("liquid-type", List.of("water")));
boolean stackable = ResourceConfigUtils.getAsBoolean(arguments.getOrDefault("stackable", false), "stackable");
int delay = ResourceConfigUtils.getAsInt(arguments.getOrDefault("delay", 0), "delay");
return new OnLiquidBlockBehavior(block, delay, stackable, liquidTypes.contains("water"), liquidTypes.contains("lava"));
diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/data/ItemDisplayEntityData.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/data/ItemDisplayEntityData.java
index 091f8654e..09d39ebdc 100644
--- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/data/ItemDisplayEntityData.java
+++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/data/ItemDisplayEntityData.java
@@ -6,7 +6,7 @@ public class ItemDisplayEntityData extends DisplayEntityData {
// Item display only
public static final ItemDisplayEntityData DisplayedItem = new ItemDisplayEntityData<>(ItemDisplayEntityData.class, EntityDataValue.Serializers$ITEM_STACK, CoreReflections.instance$ItemStack$EMPTY);
/**
- * Display id:
+ * Display type:
* 0 = NONE
* 1 = THIRD_PERSON_LEFT_HAND
* 2 = THIRD_PERSON_RIGHT_HAND
diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/hitbox/BukkitFurnitureHitboxTypes.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/hitbox/BukkitFurnitureHitboxTypes.java
index b930275bc..10c1a33d2 100644
--- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/hitbox/BukkitFurnitureHitboxTypes.java
+++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/hitbox/BukkitFurnitureHitboxTypes.java
@@ -1,6 +1,7 @@
package net.momirealms.craftengine.bukkit.entity.furniture.hitbox;
import net.momirealms.craftengine.core.entity.furniture.hitbox.FurnitureHitBoxTypes;
+import net.momirealms.craftengine.core.util.VersionHelper;
public class BukkitFurnitureHitboxTypes extends FurnitureHitBoxTypes {
@@ -9,7 +10,9 @@ public class BukkitFurnitureHitboxTypes extends FurnitureHitBoxTypes {
static {
register(INTERACTION, InteractionFurnitureHitboxConfig.FACTORY);
register(SHULKER, ShulkerFurnitureHitboxConfig.FACTORY);
-// register(HAPPY_GHAST, HappyGhastFurnitureHitboxConfig.FACTORY);
-// register(CUSTOM, CustomFurnitureHitboxConfig.FACTORY);
+ // register(CUSTOM, CustomFurnitureHitboxConfig.FACTORY);
+ if (VersionHelper.isOrAbove1_21_6()) {
+ register(HAPPY_GHAST, HappyGhastFurnitureHitboxConfig.FACTORY);
+ }
}
}
diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/hitbox/HappyGhastFurnitureHitbox.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/hitbox/HappyGhastFurnitureHitbox.java
new file mode 100644
index 000000000..8905b7c2f
--- /dev/null
+++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/hitbox/HappyGhastFurnitureHitbox.java
@@ -0,0 +1,88 @@
+package net.momirealms.craftengine.bukkit.entity.furniture.hitbox;
+
+import it.unimi.dsi.fastutil.ints.IntArrayList;
+import net.momirealms.craftengine.bukkit.nms.FastNMS;
+import net.momirealms.craftengine.bukkit.plugin.reflection.minecraft.CoreReflections;
+import net.momirealms.craftengine.bukkit.plugin.reflection.minecraft.MAttributeHolders;
+import net.momirealms.craftengine.bukkit.plugin.reflection.minecraft.MEntityTypes;
+import net.momirealms.craftengine.bukkit.plugin.reflection.minecraft.NetworkReflections;
+import net.momirealms.craftengine.core.entity.furniture.Collider;
+import net.momirealms.craftengine.core.entity.furniture.Furniture;
+import net.momirealms.craftengine.core.entity.furniture.hitbox.FurnitureHitboxPart;
+import net.momirealms.craftengine.core.entity.player.Player;
+import net.momirealms.craftengine.core.plugin.CraftEngine;
+import net.momirealms.craftengine.core.util.QuaternionUtils;
+import net.momirealms.craftengine.core.world.Vec3d;
+import net.momirealms.craftengine.core.world.WorldPosition;
+import net.momirealms.craftengine.core.world.collision.AABB;
+import org.joml.Quaternionf;
+import org.joml.Vector3f;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.UUID;
+import java.util.function.Consumer;
+
+public class HappyGhastFurnitureHitbox extends AbstractFurnitureHitBox {
+ private final HappyGhastFurnitureHitboxConfig config;
+ private final Collider collider;
+ private final Object spawnPacket;
+ private final Object despawnPacket;
+ private final FurnitureHitboxPart part;
+
+ public HappyGhastFurnitureHitbox(Furniture furniture, HappyGhastFurnitureHitboxConfig config) {
+ super(furniture, config);
+ this.config = config;
+ WorldPosition position = furniture.position();
+ Quaternionf conjugated = QuaternionUtils.toQuaternionf(0f, (float) Math.toRadians(180 - position.yRot()), 0f).conjugate();
+ Vector3f offset = conjugated.transform(new Vector3f(config.position()));
+ Vec3d pos = Furniture.getRelativePosition(position, config.position());
+ AABB aabb = AABB.fromInteraction(pos, 3 * config.scale(), 3 * config.scale());
+ int happyGhastId = CoreReflections.instance$Entity$ENTITY_COUNTER.incrementAndGet();
+ List packets = new ArrayList<>(3);
+ packets.add(FastNMS.INSTANCE.constructor$ClientboundAddEntityPacket(
+ happyGhastId, UUID.randomUUID(), position.x + offset.x, position.y + offset.y, position.z + offset.z, 0, position.yRot,
+ MEntityTypes.HAPPY_GHAST, 0, CoreReflections.instance$Vec3$Zero, 0
+ ));
+ packets.add(FastNMS.INSTANCE.constructor$ClientboundSetEntityDataPacket(happyGhastId, config.cachedValues()));
+ if (config.scale() != 1) {
+ try {
+ Object attributeInstance = CoreReflections.constructor$AttributeInstance.newInstance(MAttributeHolders.SCALE, (Consumer>) (o) -> {});
+ CoreReflections.method$AttributeInstance$setBaseValue.invoke(attributeInstance, config.scale());
+ packets.add(NetworkReflections.constructor$ClientboundUpdateAttributesPacket0.newInstance(happyGhastId, Collections.singletonList(attributeInstance)));
+ } catch (ReflectiveOperationException e) {
+ CraftEngine.instance().logger().warn("Failed to apply scale attribute", e);
+ }
+ }
+ this.collider = createCollider(furniture.world(), pos, aabb, config.hardCollision(), config.blocksBuilding(), config.canBeHitByProjectile());
+ this.part = new FurnitureHitboxPart(happyGhastId, aabb, pos);
+ this.spawnPacket = FastNMS.INSTANCE.constructor$ClientboundBundlePacket(packets);
+ this.despawnPacket = FastNMS.INSTANCE.constructor$ClientboundRemoveEntitiesPacket(new IntArrayList() {{ add(happyGhastId); }});
+ }
+
+ @Override
+ public List colliders() {
+ return List.of(this.collider);
+ }
+
+ @Override
+ public List parts() {
+ return List.of(this.part);
+ }
+
+ @Override
+ public void show(Player player) {
+ player.sendPacket(this.spawnPacket, false);
+ }
+
+ @Override
+ public void hide(Player player) {
+ player.sendPacket(this.despawnPacket, false);
+ }
+
+ @Override
+ public HappyGhastFurnitureHitboxConfig config() {
+ return this.config;
+ }
+}
diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/hitbox/HappyGhastFurnitureHitboxConfig.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/hitbox/HappyGhastFurnitureHitboxConfig.java
new file mode 100644
index 000000000..7e28b68da
--- /dev/null
+++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/hitbox/HappyGhastFurnitureHitboxConfig.java
@@ -0,0 +1,83 @@
+package net.momirealms.craftengine.bukkit.entity.furniture.hitbox;
+
+import net.momirealms.craftengine.bukkit.entity.data.HappyGhastData;
+import net.momirealms.craftengine.core.entity.furniture.Furniture;
+import net.momirealms.craftengine.core.entity.furniture.hitbox.AbstractFurnitureHitBoxConfig;
+import net.momirealms.craftengine.core.entity.furniture.hitbox.FurnitureHitBoxConfig;
+import net.momirealms.craftengine.core.entity.furniture.hitbox.FurnitureHitBoxConfigFactory;
+import net.momirealms.craftengine.core.entity.seat.SeatConfig;
+import net.momirealms.craftengine.core.util.ResourceConfigUtils;
+import net.momirealms.craftengine.core.world.Vec3d;
+import net.momirealms.craftengine.core.world.WorldPosition;
+import net.momirealms.craftengine.core.world.collision.AABB;
+import org.joml.Vector3f;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.function.Consumer;
+
+public class HappyGhastFurnitureHitboxConfig extends AbstractFurnitureHitBoxConfig {
+ public static final Factory FACTORY = new Factory();
+ private final double scale;
+ private final boolean hardCollision;
+ private final List cachedValues = new ArrayList<>(3);
+
+ public HappyGhastFurnitureHitboxConfig(SeatConfig[] seats,
+ Vector3f position,
+ boolean canUseItemOn,
+ boolean blocksBuilding,
+ boolean canBeHitByProjectile,
+ double scale,
+ boolean hardCollision) {
+ super(seats, position, canUseItemOn, blocksBuilding, canBeHitByProjectile);
+ this.scale = scale;
+ this.hardCollision = hardCollision;
+ HappyGhastData.StaysStill.addEntityDataIfNotDefaultValue(hardCollision, this.cachedValues);
+ HappyGhastData.MobFlags.addEntityDataIfNotDefaultValue((byte) 0x01, this.cachedValues); // NO AI
+ HappyGhastData.SharedFlags.addEntityDataIfNotDefaultValue((byte) 0x20, this.cachedValues); // Invisible
+ }
+
+ public double scale() {
+ return scale;
+ }
+
+ public boolean hardCollision() {
+ return hardCollision;
+ }
+
+ public List cachedValues() {
+ return cachedValues;
+ }
+
+ @Override
+ public HappyGhastFurnitureHitbox create(Furniture furniture) {
+ return new HappyGhastFurnitureHitbox(furniture, this);
+ }
+
+ @Override
+ public void prepareForPlacement(WorldPosition targetPos, Consumer aabbConsumer) {
+ if (this.blocksBuilding) {
+ Vec3d relativePosition = Furniture.getRelativePosition(targetPos, this.position);
+ aabbConsumer.accept(AABB.fromInteraction(relativePosition, 3 * this.scale, 3 * this.scale));
+ }
+ }
+
+ public static class Factory implements FurnitureHitBoxConfigFactory {
+
+ @Override
+ public FurnitureHitBoxConfig create(Map arguments) {
+ Vector3f position = ResourceConfigUtils.getAsVector3f(arguments.getOrDefault("position", 0), "position");
+ boolean canUseItemOn = ResourceConfigUtils.getAsBoolean(arguments.getOrDefault("can-use-item-on", true), "can-use-item-on");
+ boolean blocksBuilding = ResourceConfigUtils.getAsBoolean(arguments.getOrDefault("blocks-building", true), "blocks-building");
+ boolean canBeHitByProjectile = ResourceConfigUtils.getAsBoolean(arguments.getOrDefault("can-be-hit-by-projectile", true), "can-be-hit-by-projectile");
+ double scale = ResourceConfigUtils.getAsDouble(arguments.getOrDefault("scale", 1), "scale");
+ boolean hardCollision = ResourceConfigUtils.getAsBoolean(arguments.getOrDefault("hard-collision", true), "hard-collision");
+ return new HappyGhastFurnitureHitboxConfig(
+ SeatConfig.fromObj(arguments.get("seats")),
+ position, canUseItemOn, blocksBuilding, canBeHitByProjectile,
+ scale, hardCollision
+ );
+ }
+ }
+}
diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/hitbox/InteractionFurnitureHitbox.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/hitbox/InteractionFurnitureHitbox.java
index 836434808..44380525c 100644
--- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/hitbox/InteractionFurnitureHitbox.java
+++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/hitbox/InteractionFurnitureHitbox.java
@@ -1,8 +1,6 @@
package net.momirealms.craftengine.bukkit.entity.furniture.hitbox;
import it.unimi.dsi.fastutil.ints.IntArrayList;
-import net.momirealms.craftengine.bukkit.entity.data.BaseEntityData;
-import net.momirealms.craftengine.bukkit.entity.data.InteractionEntityData;
import net.momirealms.craftengine.bukkit.nms.FastNMS;
import net.momirealms.craftengine.bukkit.plugin.reflection.minecraft.CoreReflections;
import net.momirealms.craftengine.bukkit.plugin.reflection.minecraft.MEntityTypes;
@@ -14,7 +12,6 @@ import net.momirealms.craftengine.core.world.Vec3d;
import net.momirealms.craftengine.core.world.WorldPosition;
import net.momirealms.craftengine.core.world.collision.AABB;
-import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
@@ -30,22 +27,15 @@ public class InteractionFurnitureHitbox extends AbstractFurnitureHitBox {
this.config = config;
WorldPosition position = furniture.position();
Vec3d pos = Furniture.getRelativePosition(position, config.position());
- AABB aabb = AABB.fromInteraction(pos, config.size.x, config.size.y);
+ AABB aabb = AABB.fromInteraction(pos, config.size().x, config.size().y);
this.collider = createCollider(furniture.world(), pos, aabb, false, config.blocksBuilding(), config.canBeHitByProjectile());
int interactionId = CoreReflections.instance$Entity$ENTITY_COUNTER.incrementAndGet();
- List values = new ArrayList<>(4);
- InteractionEntityData.Height.addEntityDataIfNotDefaultValue(config.size.y, values);
- InteractionEntityData.Width.addEntityDataIfNotDefaultValue(config.size.x, values);
- InteractionEntityData.Responsive.addEntityDataIfNotDefaultValue(config.responsive, values);
- if (config.invisible) {
- BaseEntityData.SharedFlags.addEntityDataIfNotDefaultValue((byte) 0x20, values);
- }
this.spawnPacket = FastNMS.INSTANCE.constructor$ClientboundBundlePacket(List.of(
FastNMS.INSTANCE.constructor$ClientboundAddEntityPacket(
interactionId, UUID.randomUUID(), position.x, position.y, position.z, 0, position.yRot,
MEntityTypes.INTERACTION, 0, CoreReflections.instance$Vec3$Zero, 0
),
- FastNMS.INSTANCE.constructor$ClientboundSetEntityDataPacket(interactionId, values)
+ FastNMS.INSTANCE.constructor$ClientboundSetEntityDataPacket(interactionId, config.cachedValues())
));
this.part = new FurnitureHitboxPart(interactionId, aabb, pos);
this.despawnPacket = FastNMS.INSTANCE.constructor$ClientboundRemoveEntitiesPacket(new IntArrayList() {{ add(interactionId); }});
diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/hitbox/InteractionFurnitureHitboxConfig.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/hitbox/InteractionFurnitureHitboxConfig.java
index 7711218c2..a3e853d17 100644
--- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/hitbox/InteractionFurnitureHitboxConfig.java
+++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/hitbox/InteractionFurnitureHitboxConfig.java
@@ -1,5 +1,7 @@
package net.momirealms.craftengine.bukkit.entity.furniture.hitbox;
+import net.momirealms.craftengine.bukkit.entity.data.BaseEntityData;
+import net.momirealms.craftengine.bukkit.entity.data.InteractionEntityData;
import net.momirealms.craftengine.core.entity.furniture.Furniture;
import net.momirealms.craftengine.core.entity.furniture.hitbox.AbstractFurnitureHitBoxConfig;
import net.momirealms.craftengine.core.entity.furniture.hitbox.FurnitureHitBoxConfigFactory;
@@ -10,16 +12,19 @@ import net.momirealms.craftengine.core.world.WorldPosition;
import net.momirealms.craftengine.core.world.collision.AABB;
import org.joml.Vector3f;
+import java.util.ArrayList;
+import java.util.List;
import java.util.Map;
import java.util.function.Consumer;
public class InteractionFurnitureHitboxConfig extends AbstractFurnitureHitBoxConfig {
public static final Factory FACTORY = new Factory();
- public static final InteractionFurnitureHitboxConfig DEFAULT = new InteractionFurnitureHitboxConfig(new SeatConfig[0], new Vector3f(), false, false, false, false, new Vector3f(1,1,1), true);
+ public static final InteractionFurnitureHitboxConfig DEFAULT = new InteractionFurnitureHitboxConfig();
- public final Vector3f size;
- public final boolean responsive;
- public final boolean invisible;
+ private final Vector3f size;
+ private final boolean responsive;
+ private final boolean invisible;
+ private final List cachedValues = new ArrayList<>(4);
public InteractionFurnitureHitboxConfig(SeatConfig[] seats,
Vector3f position,
@@ -33,6 +38,19 @@ public class InteractionFurnitureHitboxConfig extends AbstractFurnitureHitBoxCon
this.size = size;
this.responsive = responsive;
this.invisible = invisible;
+ InteractionEntityData.Height.addEntityDataIfNotDefaultValue(size.y, cachedValues);
+ InteractionEntityData.Width.addEntityDataIfNotDefaultValue(size.x, cachedValues);
+ InteractionEntityData.Responsive.addEntityDataIfNotDefaultValue(responsive, cachedValues);
+ if (invisible) {
+ BaseEntityData.SharedFlags.addEntityDataIfNotDefaultValue((byte) 0x20, cachedValues);
+ }
+ }
+
+ private InteractionFurnitureHitboxConfig() {
+ super(new SeatConfig[0], new Vector3f(), false, false, false);
+ this.size = new Vector3f(1);
+ this.responsive = true;
+ this.invisible = false;
}
public Vector3f size() {
@@ -47,6 +65,10 @@ public class InteractionFurnitureHitboxConfig extends AbstractFurnitureHitBoxCon
return invisible;
}
+ public List cachedValues() {
+ return cachedValues;
+ }
+
@Override
public void prepareForPlacement(WorldPosition targetPos, Consumer aabbConsumer) {
if (this.blocksBuilding) {
diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/hitbox/ShulkerFurnitureHitbox.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/hitbox/ShulkerFurnitureHitbox.java
index 69842ded6..9a6c39d43 100644
--- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/hitbox/ShulkerFurnitureHitbox.java
+++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/hitbox/ShulkerFurnitureHitbox.java
@@ -58,7 +58,7 @@ public class ShulkerFurnitureHitbox extends AbstractFurnitureHitBox {
entityIds[1], UUID.randomUUID(), x + offset.x, processedY, z - offset.z, 0, yaw,
MEntityTypes.SHULKER, 0, CoreReflections.instance$Vec3$Zero, 0
));
- packets.add(FastNMS.INSTANCE.constructor$ClientboundSetEntityDataPacket(entityIds[1], List.copyOf(config.cachedShulkerValues)));
+ packets.add(FastNMS.INSTANCE.constructor$ClientboundSetEntityDataPacket(entityIds[1], List.copyOf(config.cachedShulkerValues())));
packets.add(FastNMS.INSTANCE.constructor$ClientboundSetPassengersPacket(entityIds[0], entityIds[1]));
// fix some special occasions
@@ -73,16 +73,16 @@ public class ShulkerFurnitureHitbox extends AbstractFurnitureHitBox {
CraftEngine.instance().logger().warn("Failed to construct ClientboundMoveEntityPacket$Pos", e);
}
}
- if (VersionHelper.isOrAbove1_20_5() && config.scale != 1) {
+ if (VersionHelper.isOrAbove1_20_5() && config.scale() != 1) {
try {
Object attributeInstance = CoreReflections.constructor$AttributeInstance.newInstance(MAttributeHolders.SCALE, (Consumer>) (o) -> {});
- CoreReflections.method$AttributeInstance$setBaseValue.invoke(attributeInstance, config.scale);
+ CoreReflections.method$AttributeInstance$setBaseValue.invoke(attributeInstance, config.scale());
packets.add(NetworkReflections.constructor$ClientboundUpdateAttributesPacket0.newInstance(entityIds[1], Collections.singletonList(attributeInstance)));
} catch (ReflectiveOperationException e) {
CraftEngine.instance().logger().warn("Failed to apply scale attribute", e);
}
}
- config.spawner.accept(entityIds, position.world(), x, y, z, yaw, offset, packets::add, colliders::add, parts::add);
+ config.spawner().accept(entityIds, position.world(), x, y, z, yaw, offset, packets::add, colliders::add, parts::add);
this.parts = parts;
this.colliders = colliders;
this.spawnPacket = FastNMS.INSTANCE.constructor$ClientboundBundlePacket(packets);
@@ -115,8 +115,8 @@ public class ShulkerFurnitureHitbox extends AbstractFurnitureHitBox {
}
public int[] acquireEntityIds(Supplier entityIdSupplier) {
- if (config.interactionEntity) {
- if (config.direction.stepY() != 0) {
+ if (config.interactionEntity()) {
+ if (config.direction().stepY() != 0) {
// 展示实体 // 潜影贝 // 交互实体
return new int[] {entityIdSupplier.get(), entityIdSupplier.get(), entityIdSupplier.get()};
} else {
diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/hitbox/ShulkerFurnitureHitboxConfig.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/hitbox/ShulkerFurnitureHitboxConfig.java
index 4a86ba359..004b73d26 100644
--- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/hitbox/ShulkerFurnitureHitboxConfig.java
+++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/hitbox/ShulkerFurnitureHitboxConfig.java
@@ -32,14 +32,14 @@ import java.util.function.Consumer;
public class ShulkerFurnitureHitboxConfig extends AbstractFurnitureHitBoxConfig {
public static final Factory FACTORY = new Factory();
- public final float scale;
- public final byte peek;
- public final boolean interactive;
- public final boolean interactionEntity;
- public final Direction direction;
- public final DirectionalShulkerSpawner spawner;
- public final List cachedShulkerValues = new ArrayList<>();
- public final AABBCreator aabbCreator;
+ private final float scale;
+ private final byte peek;
+ private final boolean interactive;
+ private final boolean interactionEntity;
+ private final Direction direction;
+ private final DirectionalShulkerSpawner spawner;
+ private final List cachedShulkerValues = new ArrayList<>(6);
+ private final AABBCreator aabbCreator;
public ShulkerFurnitureHitboxConfig(SeatConfig[] seats,
Vector3f position,
@@ -178,6 +178,14 @@ public class ShulkerFurnitureHitboxConfig extends AbstractFurnitureHitBoxConfig<
return direction;
}
+ public DirectionalShulkerSpawner spawner() {
+ return spawner;
+ }
+
+ public List cachedShulkerValues() {
+ return cachedShulkerValues;
+ }
+
@Override
public ShulkerFurnitureHitbox create(Furniture furniture) {
return new ShulkerFurnitureHitbox(furniture, this);
@@ -297,8 +305,8 @@ public class ShulkerFurnitureHitboxConfig extends AbstractFurnitureHitBoxConfig<
@Override
public ShulkerFurnitureHitboxConfig create(Map arguments) {
- Vector3f position = ResourceConfigUtils.getAsVector3f(arguments.getOrDefault("position", "0"), "position");
- float scale = ResourceConfigUtils.getAsFloat(arguments.getOrDefault("scale", "1"), "scale");
+ Vector3f position = ResourceConfigUtils.getAsVector3f(arguments.getOrDefault("position", 0), "position");
+ float scale = ResourceConfigUtils.getAsFloat(arguments.getOrDefault("scale", 1), "scale");
byte peek = (byte) ResourceConfigUtils.getAsInt(arguments.getOrDefault("peek", 0), "peek");
Direction directionEnum = ResourceConfigUtils.getAsEnum(arguments.get("direction"), Direction.class, Direction.UP);
boolean interactive = ResourceConfigUtils.getAsBoolean(arguments.getOrDefault("interactive", true), "interactive");
diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/BukkitPlatform.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/BukkitPlatform.java
index 352ffd619..9a6729b0a 100644
--- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/BukkitPlatform.java
+++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/BukkitPlatform.java
@@ -39,7 +39,7 @@ public class BukkitPlatform implements Platform {
Map map = (Map) MRegistryOps.NBT.convertTo(MRegistryOps.JAVA, tag);
return map.get("root");
} catch (CommandSyntaxException e) {
- throw new LocalizedResourceConfigException("warning.config.id.snbt.invalid_syntax", e, nbt);
+ throw new LocalizedResourceConfigException("warning.config.type.snbt.invalid_syntax", e, nbt);
}
}
@@ -55,7 +55,7 @@ public class BukkitPlatform implements Platform {
CompoundTag map = (CompoundTag) MRegistryOps.NBT.convertTo(MRegistryOps.SPARROW_NBT, tag);
return map.get("root");
} catch (CommandSyntaxException e) {
- throw new LocalizedResourceConfigException("warning.config.id.snbt.invalid_syntax", e, nbt);
+ throw new LocalizedResourceConfigException("warning.config.type.snbt.invalid_syntax", e, nbt);
}
}
diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/command/feature/DebugItemDataCommand.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/command/feature/DebugItemDataCommand.java
index 1b4b1a942..861c01eb5 100644
--- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/command/feature/DebugItemDataCommand.java
+++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/command/feature/DebugItemDataCommand.java
@@ -115,7 +115,7 @@ public class DebugItemDataCommand extends BukkitCommandFeature {
} else if (nbt instanceof short[]) {
value = Arrays.toString((short[]) nbt);
} else {
- value = "Unknown array id";
+ value = "Unknown array type";
}
} else {
value = nbt.toString();
diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/command/feature/DebugSpawnFurnitureCommand.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/command/feature/DebugSpawnFurnitureCommand.java
index c07060832..7b32aeba1 100644
--- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/command/feature/DebugSpawnFurnitureCommand.java
+++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/command/feature/DebugSpawnFurnitureCommand.java
@@ -24,6 +24,7 @@ public class DebugSpawnFurnitureCommand extends BukkitCommandFeature assembleCommand(org.incendo.cloud.CommandManager manager, Command.Builder builder) {
return builder
@@ -34,7 +35,7 @@ public class DebugSpawnFurnitureCommand extends BukkitCommandFeature {
// fixme 指令
@@ -47,7 +48,7 @@ public class DebugSpawnFurnitureCommand extends BukkitCommandFeature codec = (NetworkCodec) BuiltInRegistries.MOD_PACKET.getValue(data.type());
if (codec == null) {
- CraftEngine.instance().logger().warn("Unknown data id class: " + data.getClass().getName());
+ CraftEngine.instance().logger().warn("Unknown data type class: " + data.getClass().getName());
return;
}
FriendlyByteBuf buf = new FriendlyByteBuf(Unpooled.buffer());
@@ -65,7 +65,7 @@ public class PayloadHelper {
@SuppressWarnings("unchecked")
NetworkCodec codec = (NetworkCodec) BuiltInRegistries.MOD_PACKET.getValue(type);
if (codec == null) {
- Debugger.COMMON.debug(() -> "Unknown data id received: " + type);
+ Debugger.COMMON.debug(() -> "Unknown data type received: " + type);
return;
}
diff --git a/core/src/main/java/net/momirealms/craftengine/core/block/BlockBehavior.java b/core/src/main/java/net/momirealms/craftengine/core/block/BlockBehavior.java
index b32258402..6d794219f 100644
--- a/core/src/main/java/net/momirealms/craftengine/core/block/BlockBehavior.java
+++ b/core/src/main/java/net/momirealms/craftengine/core/block/BlockBehavior.java
@@ -78,7 +78,7 @@ public abstract class BlockBehavior {
return (boolean) superMethod.call();
}
- // 1.20-1.20.4 BlockState state, BlockGetter world, BlockPos pos, PathComputationType id
+ // 1.20-1.20.4 BlockState state, BlockGetter world, BlockPos pos, PathComputationType type
// 1.20.5+ BlockState state, PathComputationType pathComputationType
public boolean isPathFindable(Object thisBlock, Object[] args, Callable superMethod) throws Exception {
return (boolean) superMethod.call();
diff --git a/core/src/main/java/net/momirealms/craftengine/core/block/behavior/IsPathFindableBlockBehavior.java b/core/src/main/java/net/momirealms/craftengine/core/block/behavior/IsPathFindableBlockBehavior.java
index dca06a1bc..7fe7d8e06 100644
--- a/core/src/main/java/net/momirealms/craftengine/core/block/behavior/IsPathFindableBlockBehavior.java
+++ b/core/src/main/java/net/momirealms/craftengine/core/block/behavior/IsPathFindableBlockBehavior.java
@@ -4,7 +4,7 @@ import java.util.concurrent.Callable;
public interface IsPathFindableBlockBehavior {
- // 1.20-1.20.4 BlockState state, BlockGetter world, BlockPos pos, PathComputationType id
+ // 1.20-1.20.4 BlockState state, BlockGetter world, BlockPos pos, PathComputationType type
// 1.20.5+ BlockState state, PathComputationType pathComputationType
boolean isPathFindable(Object thisBlock, Object[] args, Callable superMethod) throws Exception;
}
diff --git a/core/src/main/java/net/momirealms/craftengine/core/block/entity/render/element/BlockEntityElementConfigs.java b/core/src/main/java/net/momirealms/craftengine/core/block/entity/render/element/BlockEntityElementConfigs.java
index 1dabfa3be..c355c4eb2 100644
--- a/core/src/main/java/net/momirealms/craftengine/core/block/entity/render/element/BlockEntityElementConfigs.java
+++ b/core/src/main/java/net/momirealms/craftengine/core/block/entity/render/element/BlockEntityElementConfigs.java
@@ -15,14 +15,15 @@ public abstract class BlockEntityElementConfigs {
public static final Key TEXT_DISPLAY = Key.of("craftengine:text_display");
public static final Key ITEM = Key.of("craftengine:item");
- public static void register(Key key, BlockEntityElementConfigFactory type) {
- ((WritableRegistry) BuiltInRegistries.BLOCK_ENTITY_ELEMENT_TYPE)
+ public static void register(Key key, BlockEntityElementConfigFactory> type) {
+ ((WritableRegistry>) BuiltInRegistries.BLOCK_ENTITY_ELEMENT_TYPE)
.register(ResourceKey.create(Registries.BLOCK_ENTITY_ELEMENT_TYPE.location(), key), type);
}
public static BlockEntityElementConfig fromMap(Map arguments) {
Key type = Optional.ofNullable(arguments.get("type")).map(String::valueOf).map(it -> Key.withDefaultNamespace(it, "craftengine")).orElse(ITEM_DISPLAY);
- BlockEntityElementConfigFactory factory = BuiltInRegistries.BLOCK_ENTITY_ELEMENT_TYPE.getValue(type);
+ @SuppressWarnings("unchecked")
+ BlockEntityElementConfigFactory factory = (BlockEntityElementConfigFactory) BuiltInRegistries.BLOCK_ENTITY_ELEMENT_TYPE.getValue(type);
if (factory == null) {
throw new LocalizedResourceConfigException("warning.config.block.state.entity_renderer.invalid_type", type.toString());
}
diff --git a/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/FurnitureConfig.java b/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/FurnitureConfig.java
index b9f34c864..cd5634893 100644
--- a/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/FurnitureConfig.java
+++ b/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/FurnitureConfig.java
@@ -48,6 +48,7 @@ public interface FurnitureConfig {
if (optionalVariant.isPresent()) {
variantName = optionalVariant.get();
} else {
+ @SuppressWarnings("deprecation")
Optional optionalAnchorType = accessor.anchorType();
if (optionalAnchorType.isPresent()) {
variantName = optionalAnchorType.get().name().toLowerCase(Locale.ROOT);
diff --git a/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/FurnitureDataAccessor.java b/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/FurnitureDataAccessor.java
index e1bb1bd0e..c6bc0793a 100644
--- a/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/FurnitureDataAccessor.java
+++ b/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/FurnitureDataAccessor.java
@@ -106,6 +106,7 @@ public class FurnitureDataAccessor {
this.data.putString(VARIANT, variant);
}
+ @SuppressWarnings("deprecation")
@ApiStatus.Obsolete
public Optional anchorType() {
if (this.data.containsKey(ANCHOR_TYPE)) return Optional.of(AnchorType.byId(this.data.getInt(ANCHOR_TYPE)));
@@ -113,7 +114,7 @@ public class FurnitureDataAccessor {
}
@ApiStatus.Obsolete
- public FurnitureDataAccessor anchorType(AnchorType type) {
+ public FurnitureDataAccessor anchorType(@SuppressWarnings("deprecation") AnchorType type) {
this.data.putInt(ANCHOR_TYPE, type.getId());
return this;
}
diff --git a/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/element/FurnitureElementConfigs.java b/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/element/FurnitureElementConfigs.java
index 8e375a743..7247cdf0e 100644
--- a/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/element/FurnitureElementConfigs.java
+++ b/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/element/FurnitureElementConfigs.java
@@ -15,14 +15,15 @@ public class FurnitureElementConfigs {
public static final Key TEXT_DISPLAY = Key.of("craftengine:text_display");
public static final Key ITEM = Key.of("craftengine:item");
- public static void register(Key key, FurnitureElementConfigFactory type) {
- ((WritableRegistry) BuiltInRegistries.FURNITURE_ELEMENT_TYPE)
+ public static void register(Key key, FurnitureElementConfigFactory> type) {
+ ((WritableRegistry>) BuiltInRegistries.FURNITURE_ELEMENT_TYPE)
.register(ResourceKey.create(Registries.FURNITURE_ELEMENT_TYPE.location(), key), type);
}
public static FurnitureElementConfig fromMap(Map arguments) {
Key type = Optional.ofNullable(arguments.get("type")).map(String::valueOf).map(it -> Key.withDefaultNamespace(it, "craftengine")).orElse(ITEM_DISPLAY);
- FurnitureElementConfigFactory factory = BuiltInRegistries.FURNITURE_ELEMENT_TYPE.getValue(type);
+ @SuppressWarnings("unchecked")
+ FurnitureElementConfigFactory factory = (FurnitureElementConfigFactory) BuiltInRegistries.FURNITURE_ELEMENT_TYPE.getValue(type);
if (factory == null) {
throw new LocalizedResourceConfigException("warning.config.furniture.element.invalid_type", type.toString());
}
diff --git a/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/hitbox/FurnitureHitBoxTypes.java b/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/hitbox/FurnitureHitBoxTypes.java
index d4f002a9c..61fc5b871 100644
--- a/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/hitbox/FurnitureHitBoxTypes.java
+++ b/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/hitbox/FurnitureHitBoxTypes.java
@@ -17,14 +17,15 @@ public class FurnitureHitBoxTypes {
public static final Key VIRTUAL = Key.of("minecraft:virtual");
public static final Key CUSTOM = Key.of("minecraft:custom");
- public static void register(Key key, FurnitureHitBoxConfigFactory factory) {
- ((WritableRegistry) BuiltInRegistries.FURNITURE_HITBOX_TYPE)
+ public static void register(Key key, FurnitureHitBoxConfigFactory> factory) {
+ ((WritableRegistry>) BuiltInRegistries.FURNITURE_HITBOX_TYPE)
.register(ResourceKey.create(Registries.FURNITURE_HITBOX_TYPE.location(), key), factory);
}
public static FurnitureHitBoxConfig fromMap(Map arguments) {
Key type = Optional.ofNullable(arguments.get("type")).map(String::valueOf).map(Key::of).orElse(FurnitureHitBoxTypes.INTERACTION);
- FurnitureHitBoxConfigFactory factory = BuiltInRegistries.FURNITURE_HITBOX_TYPE.getValue(type);
+ @SuppressWarnings("unchecked")
+ FurnitureHitBoxConfigFactory factory = (FurnitureHitBoxConfigFactory) BuiltInRegistries.FURNITURE_HITBOX_TYPE.getValue(type);
if (factory == null) {
throw new LocalizedResourceConfigException("warning.config.furniture.hitbox.invalid_type", type.toString());
}
diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/Item.java b/core/src/main/java/net/momirealms/craftengine/core/item/Item.java
index f48a6bf39..5b7c2f563 100644
--- a/core/src/main/java/net/momirealms/craftengine/core/item/Item.java
+++ b/core/src/main/java/net/momirealms/craftengine/core/item/Item.java
@@ -28,7 +28,7 @@ import java.util.Optional;
* This interface provides methods for managing item properties such as custom model data,
* damage, display name, lore, enchantments, and tags.
*
- * @param the id of the item implementation
+ * @param the type of the item implementation
*/
public interface Item {
diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/ItemSettings.java b/core/src/main/java/net/momirealms/craftengine/core/item/ItemSettings.java
index 0c125097d..64a67c8dd 100644
--- a/core/src/main/java/net/momirealms/craftengine/core/item/ItemSettings.java
+++ b/core/src/main/java/net/momirealms/craftengine/core/item/ItemSettings.java
@@ -446,8 +446,8 @@ public class ItemSettings {
Key customTridentItemId = Key.of(ResourceConfigUtils.requireNonEmptyStringOrThrow(args.get("item"), "warning.config.item.settings.projectile.missing_item"));
ItemDisplayContext displayType = ItemDisplayContext.valueOf(args.getOrDefault("display-transform", "NONE").toString().toUpperCase(Locale.ENGLISH));
Billboard billboard = Billboard.valueOf(args.getOrDefault("billboard", "FIXED").toString().toUpperCase(Locale.ENGLISH));
- Vector3f translation = ResourceConfigUtils.getAsVector3f(args.getOrDefault("translation", "0"), "translation");
- Vector3f scale = ResourceConfigUtils.getAsVector3f(args.getOrDefault("scale", "1"), "scale");
+ Vector3f translation = ResourceConfigUtils.getAsVector3f(args.getOrDefault("translation", 0), "translation");
+ Vector3f scale = ResourceConfigUtils.getAsVector3f(args.getOrDefault("scale", 1), "scale");
Quaternionf rotation = ResourceConfigUtils.getAsQuaternionf(ResourceConfigUtils.get(args, "rotation"), "rotation");
double range = ResourceConfigUtils.getAsDouble(args.getOrDefault("range", 1), "range");
return settings -> settings.projectileMeta(new ProjectileMeta(customTridentItemId, displayType, billboard, scale, translation, rotation, range));
diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/recipe/CustomSmithingTransformRecipe.java b/core/src/main/java/net/momirealms/craftengine/core/item/recipe/CustomSmithingTransformRecipe.java
index 206655f05..190ee8004 100644
--- a/core/src/main/java/net/momirealms/craftengine/core/item/recipe/CustomSmithingTransformRecipe.java
+++ b/core/src/main/java/net/momirealms/craftengine/core/item/recipe/CustomSmithingTransformRecipe.java
@@ -190,7 +190,7 @@ public class CustomSmithingTransformRecipe extends AbstractedFixedResultRecip
@Override
public CustomSmithingTransformRecipe readMap(Key id, Map arguments) {
List base = MiscUtils.getAsStringList(arguments.get("base"));
- List template = MiscUtils.getAsStringList(arguments.get("template-id"));
+ List template = MiscUtils.getAsStringList(arguments.get("template-type"));
List addition = MiscUtils.getAsStringList(arguments.get("addition"));
boolean mergeComponents = ResourceConfigUtils.getAsBoolean(arguments.getOrDefault("merge-components", true), "merge-components");
boolean mergeEnchantments = ResourceConfigUtils.getAsBoolean(arguments.getOrDefault("merge-enchantments", false), "merge-enchantments");
diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/recipe/CustomSmithingTrimRecipe.java b/core/src/main/java/net/momirealms/craftengine/core/item/recipe/CustomSmithingTrimRecipe.java
index c3a749435..7119a5f48 100644
--- a/core/src/main/java/net/momirealms/craftengine/core/item/recipe/CustomSmithingTrimRecipe.java
+++ b/core/src/main/java/net/momirealms/craftengine/core/item/recipe/CustomSmithingTrimRecipe.java
@@ -141,7 +141,7 @@ public class CustomSmithingTrimRecipe extends AbstractRecipe
@Override
public CustomSmithingTrimRecipe readMap(Key id, Map arguments) {
List base = MiscUtils.getAsStringList(arguments.get("base"));
- List template = MiscUtils.getAsStringList(arguments.get("template-id"));
+ List template = MiscUtils.getAsStringList(arguments.get("template-type"));
List addition = MiscUtils.getAsStringList(arguments.get("addition"));
Key pattern = VersionHelper.isOrAbove1_21_5() ? Key.of(ResourceConfigUtils.requireNonEmptyStringOrThrow(arguments.get("pattern"), "warning.config.recipe.smithing_trim.missing_pattern")) : null;
return new CustomSmithingTrimRecipe<>(id,
diff --git a/core/src/main/java/net/momirealms/craftengine/core/loot/function/ApplyBonusCountFunction.java b/core/src/main/java/net/momirealms/craftengine/core/loot/function/ApplyBonusCountFunction.java
index b5d118862..c0475500d 100644
--- a/core/src/main/java/net/momirealms/craftengine/core/loot/function/ApplyBonusCountFunction.java
+++ b/core/src/main/java/net/momirealms/craftengine/core/loot/function/ApplyBonusCountFunction.java
@@ -87,12 +87,12 @@ public class ApplyBonusCountFunction extends AbstractLootConditionalFunction<
public static Formula fromMap(Map map) {
String type = (String) map.get("type");
if (type == null) {
- throw new NullPointerException("number id cannot be null");
+ throw new NullPointerException("number type cannot be null");
}
Key key = Key.withDefaultNamespace(type, Key.DEFAULT_NAMESPACE);
FormulaFactory factory = BuiltInRegistries.FORMULA_FACTORY.getValue(key);
if (factory == null) {
- throw new IllegalArgumentException("Unknown formula id: " + type);
+ throw new IllegalArgumentException("Unknown formula type: " + type);
}
return factory.create(map);
}
diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/ItemModels.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/ItemModels.java
index c79c52a8a..e6d151250 100644
--- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/ItemModels.java
+++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/ItemModels.java
@@ -75,7 +75,7 @@ public class ItemModels {
Key key = Key.withDefaultNamespace(type, "minecraft");
ItemModelReader reader = BuiltInRegistries.ITEM_MODEL_READER.getValue(key);
if (reader == null) {
- throw new IllegalArgumentException("Invalid item model id: " + key);
+ throw new IllegalArgumentException("Invalid item model type: " + key);
}
return reader.read(json);
}
diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/condition/ConditionProperties.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/condition/ConditionProperties.java
index ce19f4e75..f2d5022fa 100644
--- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/condition/ConditionProperties.java
+++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/condition/ConditionProperties.java
@@ -80,7 +80,7 @@ public class ConditionProperties {
Key key = Key.withDefaultNamespace(type, "minecraft");
ConditionPropertyReader reader = BuiltInRegistries.CONDITION_PROPERTY_READER.getValue(key);
if (reader == null) {
- throw new IllegalArgumentException("Invalid condition property id: " + key);
+ throw new IllegalArgumentException("Invalid condition property type: " + key);
}
return reader.read(json);
}
diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/rangedisptach/RangeDispatchProperties.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/rangedisptach/RangeDispatchProperties.java
index 0d98ca88b..a8f09bcc0 100644
--- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/rangedisptach/RangeDispatchProperties.java
+++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/rangedisptach/RangeDispatchProperties.java
@@ -71,7 +71,7 @@ public class RangeDispatchProperties {
Key key = Key.withDefaultNamespace(type, "minecraft");
RangeDispatchPropertyReader reader = BuiltInRegistries.RANGE_DISPATCH_PROPERTY_READER.getValue(key);
if (reader == null) {
- throw new IllegalArgumentException("Invalid range dispatch property id: " + key);
+ throw new IllegalArgumentException("Invalid range dispatch property type: " + key);
}
return reader.read(json);
}
diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/select/SelectProperties.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/select/SelectProperties.java
index 464c79fc3..e6f5b46e0 100644
--- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/select/SelectProperties.java
+++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/select/SelectProperties.java
@@ -71,7 +71,7 @@ public class SelectProperties {
Key key = Key.withDefaultNamespace(type, "minecraft");
SelectPropertyReader reader = BuiltInRegistries.SELECT_PROPERTY_READER.getValue(key);
if (reader == null) {
- throw new IllegalArgumentException("Invalid select property id: " + key);
+ throw new IllegalArgumentException("Invalid select property type: " + key);
}
return reader.read(json);
}
diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/special/SignSpecialModel.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/special/SignSpecialModel.java
index cdfffd3bb..b6a83032c 100644
--- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/special/SignSpecialModel.java
+++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/special/SignSpecialModel.java
@@ -45,7 +45,7 @@ public class SignSpecialModel implements SpecialModel {
@Override
public SpecialModel create(Map arguments) {
Key type = Key.of(arguments.get("type").toString());
- String woodType = ResourceConfigUtils.requireNonEmptyStringOrThrow(arguments.get("wood-id"), "warning.config.item.model.special.sign.missing_wood_type");
+ String woodType = ResourceConfigUtils.requireNonEmptyStringOrThrow(arguments.get("wood-type"), "warning.config.item.model.special.sign.missing_wood_type");
String texture = ResourceConfigUtils.requireNonEmptyStringOrThrow(arguments.get("texture"), "warning.config.item.model.special.sign.missing_texture");
return new SignSpecialModel(type, woodType, texture);
}
diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/special/SpecialModels.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/special/SpecialModels.java
index 8b222da2b..c27c4bba3 100644
--- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/special/SpecialModels.java
+++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/special/SpecialModels.java
@@ -80,7 +80,7 @@ public class SpecialModels {
Key key = Key.withDefaultNamespace(type, "minecraft");
SpecialModelReader reader = BuiltInRegistries.SPECIAL_MODEL_READER.getValue(key);
if (reader == null) {
- throw new IllegalArgumentException("Invalid special model id: " + key);
+ throw new IllegalArgumentException("Invalid special model type: " + key);
}
return reader.read(json);
}
diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/tint/Tints.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/tint/Tints.java
index 8148873b5..d44d3102d 100644
--- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/tint/Tints.java
+++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/tint/Tints.java
@@ -65,7 +65,7 @@ public class Tints {
Key key = Key.withDefaultNamespace(type, "minecraft");
TintReader reader = BuiltInRegistries.TINT_READER.getValue(key);
if (reader == null) {
- throw new IllegalArgumentException("Invalid tint id: " + type);
+ throw new IllegalArgumentException("Invalid tint type: " + type);
}
return reader.read(json);
}
diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/obfuscation/ObfA.java b/core/src/main/java/net/momirealms/craftengine/core/pack/obfuscation/ObfA.java
index 7833ea8fc..9d545f67d 100644
--- a/core/src/main/java/net/momirealms/craftengine/core/pack/obfuscation/ObfA.java
+++ b/core/src/main/java/net/momirealms/craftengine/core/pack/obfuscation/ObfA.java
@@ -36,7 +36,7 @@ public enum ObfA {
return type;
}
}
- throw new IllegalArgumentException("Unknown resource id: " + xclf);
+ throw new IllegalArgumentException("Unknown resource type: " + xclf);
}
public static final byte[] VALUES = new byte[] {
diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/command/sender/AbstractSender.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/command/sender/AbstractSender.java
index 96a87ede0..ff1e71fa1 100644
--- a/core/src/main/java/net/momirealms/craftengine/core/plugin/command/sender/AbstractSender.java
+++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/command/sender/AbstractSender.java
@@ -9,7 +9,7 @@ import java.util.UUID;
/**
* Simple implementation of {@link Sender} using a {@link SenderFactory}
*
- * @param the command sender id
+ * @param the command sender type
*/
public final class AbstractSender implements Sender {
private final Plugin plugin;
diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/Config.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/Config.java
index 2ec08dbdf..df09a8b08 100644
--- a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/Config.java
+++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/Config.java
@@ -448,10 +448,10 @@ public class Config {
// furniture
furniture$hide_base_entity = config.getBoolean("furniture.hide-base-entity", true);
- furniture$collision_entity_type = ColliderType.valueOf(config.getString("furniture.collision-entity-id", "interaction").toUpperCase(Locale.ENGLISH));
+ furniture$collision_entity_type = ColliderType.valueOf(config.getString("furniture.collision-entity-type", "interaction").toUpperCase(Locale.ENGLISH));
// equipment
- equipment$sacrificed_vanilla_armor$type = config.getString("equipment.sacrificed-vanilla-armor.id", "chainmail").toLowerCase(Locale.ENGLISH);
+ equipment$sacrificed_vanilla_armor$type = config.getString("equipment.sacrificed-vanilla-armor.type", "chainmail").toLowerCase(Locale.ENGLISH);
if (!AbstractPackManager.ALLOWED_VANILLA_EQUIPMENT.contains(equipment$sacrificed_vanilla_armor$type)) {
TranslationManager.instance().log("warning.config.equipment.invalid_sacrificed_armor", equipment$sacrificed_vanilla_armor$type);
equipment$sacrificed_vanilla_armor$type = "chainmail";
diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/StringKeyConstructor.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/StringKeyConstructor.java
index 4c3ea46fc..10f7f8bea 100644
--- a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/StringKeyConstructor.java
+++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/StringKeyConstructor.java
@@ -259,7 +259,7 @@ public class StringKeyConstructor extends SafeConstructor {
if (value instanceof Number number) {
return number.byteValue();
}
- throw new RuntimeException("Unexpected id: " + value.getClass().getName());
+ throw new RuntimeException("Unexpected type: " + value.getClass().getName());
}
}
@@ -271,7 +271,7 @@ public class StringKeyConstructor extends SafeConstructor {
if (value instanceof Number number) {
return number.shortValue();
}
- throw new RuntimeException("Unexpected id: " + value.getClass().getName());
+ throw new RuntimeException("Unexpected type: " + value.getClass().getName());
}
}
@@ -283,7 +283,7 @@ public class StringKeyConstructor extends SafeConstructor {
if (value instanceof Number number) {
return number.longValue();
}
- throw new RuntimeException("Unexpected id: " + value.getClass().getName());
+ throw new RuntimeException("Unexpected type: " + value.getClass().getName());
}
}
@@ -295,7 +295,7 @@ public class StringKeyConstructor extends SafeConstructor {
if (value instanceof Number number) {
return number.floatValue();
}
- throw new RuntimeException("Unexpected id: " + value.getClass().getName());
+ throw new RuntimeException("Unexpected type: " + value.getClass().getName());
}
}
@@ -307,7 +307,7 @@ public class StringKeyConstructor extends SafeConstructor {
if (value instanceof Number number) {
return number.doubleValue();
}
- throw new RuntimeException("Unexpected id: " + value.getClass().getName());
+ throw new RuntimeException("Unexpected type: " + value.getClass().getName());
}
}
}
diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ExpressionTemplateArgument.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ExpressionTemplateArgument.java
index 790641d5d..cf02eeb46 100644
--- a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ExpressionTemplateArgument.java
+++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ExpressionTemplateArgument.java
@@ -61,7 +61,7 @@ public class ExpressionTemplateArgument implements TemplateArgument {
public TemplateArgument create(Map arguments) {
return new ExpressionTemplateArgument(
arguments.getOrDefault("expression", "").toString(),
- ValueType.valueOf(arguments.getOrDefault("value-id", "double").toString().toUpperCase(Locale.ROOT))
+ ValueType.valueOf(arguments.getOrDefault("value-type", "double").toString().toUpperCase(Locale.ROOT))
);
}
}
diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/TemplateArguments.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/TemplateArguments.java
index 4c0e9baa7..9b1a8ef91 100644
--- a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/TemplateArguments.java
+++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/TemplateArguments.java
@@ -58,7 +58,7 @@ public class TemplateArguments {
Key key = Key.withDefaultNamespace(type0, Key.DEFAULT_NAMESPACE);
TemplateArgumentFactory factory = BuiltInRegistries.TEMPLATE_ARGUMENT_FACTORY.getValue(key);
if (factory == null) {
- throw new IllegalArgumentException("Unknown argument id: " + type);
+ throw new IllegalArgumentException("Unknown argument type: " + type);
}
return factory.create(map);
}
diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/DamageFunction.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/DamageFunction.java
index fa33c8b7f..97e197b55 100644
--- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/DamageFunction.java
+++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/DamageFunction.java
@@ -43,7 +43,7 @@ public class DamageFunction extends AbstractConditionalFunc
@Override
public Function create(Map arguments) {
PlayerSelector selector = PlayerSelectors.fromObject(arguments.getOrDefault("target", "self"), conditionFactory());
- Key damageType = Key.of(ResourceConfigUtils.getAsStringOrNull(arguments.getOrDefault("damage-id", "generic")));
+ Key damageType = Key.of(ResourceConfigUtils.getAsStringOrNull(arguments.getOrDefault("damage-type", "generic")));
NumberProvider amount = NumberProviders.fromObject(arguments.getOrDefault("amount", 1f));
return new DamageFunction<>(selector, damageType, amount, getPredicates(arguments));
}
diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/OpenWindowFunction.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/OpenWindowFunction.java
index 1d1b17e4e..bbe2fe3d0 100644
--- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/OpenWindowFunction.java
+++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/OpenWindowFunction.java
@@ -65,7 +65,7 @@ public class OpenWindowFunction extends AbstractConditional
@Override
public Function create(Map arguments) {
String title = Optional.ofNullable(arguments.get("title")).map(String::valueOf).orElse(null);
- String rawType = ResourceConfigUtils.requireNonEmptyStringOrThrow(arguments.get("gui-id"), "warning.config.function.open_window.missing_gui_type");
+ String rawType = ResourceConfigUtils.requireNonEmptyStringOrThrow(arguments.get("gui-type"), "warning.config.function.open_window.missing_gui_type");
try {
GuiType type = GuiType.valueOf(rawType.toUpperCase(Locale.ENGLISH));
return new OpenWindowFunction<>(getPredicates(arguments), PlayerSelectors.fromObject(arguments.get("target"), conditionFactory()), type, title);
diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/ReplaceFurnitureFunction.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/ReplaceFurnitureFunction.java
index 20dee5084..61eec5c6c 100644
--- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/ReplaceFurnitureFunction.java
+++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/ReplaceFurnitureFunction.java
@@ -15,6 +15,7 @@ import java.util.List;
import java.util.Map;
import java.util.Optional;
+@SuppressWarnings("deprecation")
public class ReplaceFurnitureFunction extends AbstractConditionalFunction {
private final Key newFurnitureId;
private final NumberProvider x;
@@ -95,7 +96,7 @@ public class ReplaceFurnitureFunction extends AbstractCondi
NumberProvider z = NumberProviders.fromObject(arguments.getOrDefault("z", ""));
NumberProvider pitch = NumberProviders.fromObject(arguments.getOrDefault("pitch", ""));
NumberProvider yaw = NumberProviders.fromObject(arguments.getOrDefault("yaw", ""));
- AnchorType anchorType = ResourceConfigUtils.getAsEnum(arguments.get("anchor-id"), AnchorType.class, null);
+ AnchorType anchorType = ResourceConfigUtils.getAsEnum(arguments.get("anchor-type"), AnchorType.class, null);
boolean dropLoot = ResourceConfigUtils.getAsBoolean(arguments.getOrDefault("drop-loot", true), "drop-loot");
boolean playSound = ResourceConfigUtils.getAsBoolean(arguments.getOrDefault("play-sound", true), "play-sound");
return new ReplaceFurnitureFunction<>(furnitureId, x, y, z, pitch, yaw, anchorType, dropLoot, playSound, getPredicates(arguments));
diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/SpawnFurnitureFunction.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/SpawnFurnitureFunction.java
index 1db66e416..d29b7758e 100644
--- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/SpawnFurnitureFunction.java
+++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/SpawnFurnitureFunction.java
@@ -87,7 +87,7 @@ public class SpawnFurnitureFunction extends AbstractConditi
NumberProvider z = NumberProviders.fromObject(arguments.getOrDefault("z", ""));
NumberProvider pitch = NumberProviders.fromObject(arguments.getOrDefault("pitch", ""));
NumberProvider yaw = NumberProviders.fromObject(arguments.getOrDefault("yaw", ""));
- String variant = ResourceConfigUtils.getAsStringOrNull(ResourceConfigUtils.get(arguments, "variant", "anchor-id"));
+ String variant = ResourceConfigUtils.getAsStringOrNull(ResourceConfigUtils.get(arguments, "variant", "anchor-type"));
boolean playSound = ResourceConfigUtils.getAsBoolean(arguments.getOrDefault("play-sound", true), "play-sound");
return new SpawnFurnitureFunction<>(furnitureId, x, y, z, pitch, yaw, variant, playSound, getPredicates(arguments));
}
diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/ToastFunction.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/ToastFunction.java
index ec63aa261..853cc7c28 100644
--- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/ToastFunction.java
+++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/ToastFunction.java
@@ -63,7 +63,7 @@ public class ToastFunction extends AbstractConditionalFunct
@Override
public Function create(Map arguments) {
AdvancementType advancementType;
- String advancementName = arguments.getOrDefault("advancement-id", "goal").toString();
+ String advancementName = arguments.getOrDefault("advancement-type", "goal").toString();
try {
advancementType = AdvancementType.valueOf(advancementName.toUpperCase(Locale.ROOT));
} catch (IllegalArgumentException e) {
diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/locale/LangData.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/locale/LangData.java
index b0f6d19dd..b677d18a5 100644
--- a/core/src/main/java/net/momirealms/craftengine/core/plugin/locale/LangData.java
+++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/locale/LangData.java
@@ -53,7 +53,7 @@ public class LangData {
temp.put(result, entry.getValue());
}
},
- () -> CraftEngine.instance().logger().warn("Unknown lang id: " + key)
+ () -> CraftEngine.instance().logger().warn("Unknown lang type: " + key)
);
} else {
temp.put(key, entry.getValue());
diff --git a/core/src/main/java/net/momirealms/craftengine/core/registry/BuiltInRegistries.java b/core/src/main/java/net/momirealms/craftengine/core/registry/BuiltInRegistries.java
index 62bf71645..287ca2752 100644
--- a/core/src/main/java/net/momirealms/craftengine/core/registry/BuiltInRegistries.java
+++ b/core/src/main/java/net/momirealms/craftengine/core/registry/BuiltInRegistries.java
@@ -89,10 +89,10 @@ public class BuiltInRegistries {
public static final Registry> ITEM_UPDATER_TYPE = createConstantBoundRegistry(Registries.ITEM_UPDATER_TYPE, 16);
public static final Registry> MOD_PACKET = createConstantBoundRegistry(Registries.MOD_PACKET, 16);
public static final Registry> BLOCK_ENTITY_TYPE = createConstantBoundRegistry(Registries.BLOCK_ENTITY_TYPE, 64);
- public static final Registry BLOCK_ENTITY_ELEMENT_TYPE = createConstantBoundRegistry(Registries.BLOCK_ENTITY_ELEMENT_TYPE, 16);
+ public static final Registry> BLOCK_ENTITY_ELEMENT_TYPE = createConstantBoundRegistry(Registries.BLOCK_ENTITY_ELEMENT_TYPE, 16);
public static final Registry CRAFT_REMAINDER_FACTORY = createConstantBoundRegistry(Registries.CRAFT_REMAINDER_FACTORY, 16);
- public static final Registry FURNITURE_ELEMENT_TYPE = createConstantBoundRegistry(Registries.FURNITURE_ELEMENT_TYPE, 16);
- public static final Registry FURNITURE_HITBOX_TYPE = createConstantBoundRegistry(Registries.FURNITURE_HITBOX_TYPE, 16);
+ public static final Registry> FURNITURE_ELEMENT_TYPE = createConstantBoundRegistry(Registries.FURNITURE_ELEMENT_TYPE, 16);
+ public static final Registry> FURNITURE_HITBOX_TYPE = createConstantBoundRegistry(Registries.FURNITURE_HITBOX_TYPE, 16);
private static Registry createConstantBoundRegistry(ResourceKey extends Registry> key, int expectedSize) {
return new ConstantBoundRegistry<>(key, expectedSize);
diff --git a/core/src/main/java/net/momirealms/craftengine/core/registry/Registries.java b/core/src/main/java/net/momirealms/craftengine/core/registry/Registries.java
index 9b728d316..4afecdcd7 100644
--- a/core/src/main/java/net/momirealms/craftengine/core/registry/Registries.java
+++ b/core/src/main/java/net/momirealms/craftengine/core/registry/Registries.java
@@ -91,8 +91,8 @@ public class Registries {
public static final ResourceKey>> ITEM_UPDATER_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("item_updater_type"));
public static final ResourceKey>> MOD_PACKET = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("mod_packet_type"));
public static final ResourceKey>> BLOCK_ENTITY_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("block_entity_type"));
- public static final ResourceKey> BLOCK_ENTITY_ELEMENT_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("block_entity_element_type"));
+ public static final ResourceKey>> BLOCK_ENTITY_ELEMENT_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("block_entity_element_type"));
public static final ResourceKey> CRAFT_REMAINDER_FACTORY = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("craft_remainder_factory"));
- public static final ResourceKey> FURNITURE_ELEMENT_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("furniture_element_type"));
- public static final ResourceKey> FURNITURE_HITBOX_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("furniture_hitbox_type"));
+ public static final ResourceKey>> FURNITURE_ELEMENT_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("furniture_element_type"));
+ public static final ResourceKey>> FURNITURE_HITBOX_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("furniture_hitbox_type"));
}
diff --git a/core/src/main/java/net/momirealms/craftengine/core/sound/SoundData.java b/core/src/main/java/net/momirealms/craftengine/core/sound/SoundData.java
index cc7919e9c..af0356c6e 100644
--- a/core/src/main/java/net/momirealms/craftengine/core/sound/SoundData.java
+++ b/core/src/main/java/net/momirealms/craftengine/core/sound/SoundData.java
@@ -22,7 +22,7 @@ public record SoundData(Key id, SoundValue volume, SoundValue pitch) {
SoundValue pitchValue = Optional.ofNullable(SoundValue.of(map.get("pitch"))).orElse(volume);
return new SoundData(id, volumeValue, pitchValue);
} else {
- throw new IllegalArgumentException("Illegal object id for sound data: " + obj.getClass());
+ throw new IllegalArgumentException("Illegal object type for sound data: " + obj.getClass());
}
}
diff --git a/core/src/main/java/net/momirealms/craftengine/core/util/Pair.java b/core/src/main/java/net/momirealms/craftengine/core/util/Pair.java
index 7d5e95ce6..de9774f5c 100644
--- a/core/src/main/java/net/momirealms/craftengine/core/util/Pair.java
+++ b/core/src/main/java/net/momirealms/craftengine/core/util/Pair.java
@@ -6,8 +6,8 @@ import java.util.Objects;
* A generic class representing a pair of values.
* This class provides methods to create and access pairs of values.
*
- * @param the id of the left value
- * @param the id of the right value
+ * @param the type of the left value
+ * @param the type of the right value
*/
public record Pair(L left, R right) {
@@ -16,8 +16,8 @@ public record Pair(L left, R right) {
*
* @param left the left value
* @param right the right value
- * @param the id of the left value
- * @param the id of the right value
+ * @param the type of the left value
+ * @param the type of the right value
* @return a new {@link Pair} with the specified values
*/
public static Pair of(final L left, final R right) {
diff --git a/core/src/main/java/net/momirealms/craftengine/core/util/ReflectionUtils.java b/core/src/main/java/net/momirealms/craftengine/core/util/ReflectionUtils.java
index 30472678c..703571af4 100644
--- a/core/src/main/java/net/momirealms/craftengine/core/util/ReflectionUtils.java
+++ b/core/src/main/java/net/momirealms/craftengine/core/util/ReflectionUtils.java
@@ -439,7 +439,7 @@ public class ReflectionUtils {
public static List getMethods(@NotNull Class> clazz, @NotNull Class> returnType, @NotNull Class>... parameterTypes) {
List list = new ArrayList<>();
for (Method method : clazz.getMethods()) {
- if (!returnType.isAssignableFrom(method.getReturnType()) // check id
+ if (!returnType.isAssignableFrom(method.getReturnType()) // check type
|| method.getParameterCount() != parameterTypes.length // check length
) continue;
Class>[] types = method.getParameterTypes();
diff --git a/core/src/main/java/net/momirealms/craftengine/core/util/ResourceConfigUtils.java b/core/src/main/java/net/momirealms/craftengine/core/util/ResourceConfigUtils.java
index 08308a8fa..43a35d7dc 100644
--- a/core/src/main/java/net/momirealms/craftengine/core/util/ResourceConfigUtils.java
+++ b/core/src/main/java/net/momirealms/craftengine/core/util/ResourceConfigUtils.java
@@ -137,13 +137,13 @@ public final class ResourceConfigUtils {
try {
return Integer.parseInt(s.replace("_", ""));
} catch (NumberFormatException e) {
- throw new LocalizedResourceConfigException("warning.config.id.int", e, s, option);
+ throw new LocalizedResourceConfigException("warning.config.type.int", e, s, option);
}
}
case Boolean b -> {
return b ? 1 : 0;
}
- default -> throw new LocalizedResourceConfigException("warning.config.id.int", o.toString(), option);
+ default -> throw new LocalizedResourceConfigException("warning.config.type.int", o.toString(), option);
}
}
@@ -162,11 +162,11 @@ public final class ResourceConfigUtils {
try {
return Double.parseDouble(s);
} catch (NumberFormatException e) {
- throw new LocalizedResourceConfigException("warning.config.id.double", e, s, option);
+ throw new LocalizedResourceConfigException("warning.config.type.double", e, s, option);
}
}
default -> {
- throw new LocalizedResourceConfigException("warning.config.id.double", o.toString(), option);
+ throw new LocalizedResourceConfigException("warning.config.type.double", o.toString(), option);
}
}
}
@@ -183,14 +183,14 @@ public final class ResourceConfigUtils {
try {
return Float.parseFloat(s);
} catch (NumberFormatException e) {
- throw new LocalizedResourceConfigException("warning.config.id.float", e, s, option);
+ throw new LocalizedResourceConfigException("warning.config.type.float", e, s, option);
}
}
case Number number -> {
return number.floatValue();
}
default -> {
- throw new LocalizedResourceConfigException("warning.config.id.float", o.toString(), option);
+ throw new LocalizedResourceConfigException("warning.config.type.float", o.toString(), option);
}
}
}
@@ -206,15 +206,15 @@ public final class ResourceConfigUtils {
case Number n -> {
if (n.byteValue() == 0) return false;
if (n.byteValue() == 1) return true;
- throw new LocalizedResourceConfigException("warning.config.id.boolean", String.valueOf(n), option);
+ throw new LocalizedResourceConfigException("warning.config.type.boolean", String.valueOf(n), option);
}
case String s -> {
if (s.equalsIgnoreCase("true")) return true;
if (s.equalsIgnoreCase("false")) return false;
- throw new LocalizedResourceConfigException("warning.config.id.boolean", s, option);
+ throw new LocalizedResourceConfigException("warning.config.type.boolean", s, option);
}
default -> {
- throw new LocalizedResourceConfigException("warning.config.id.boolean", o.toString(), option);
+ throw new LocalizedResourceConfigException("warning.config.type.boolean", o.toString(), option);
}
}
}
@@ -234,11 +234,11 @@ public final class ResourceConfigUtils {
try {
return Long.parseLong(s.replace("_", ""));
} catch (NumberFormatException e) {
- throw new LocalizedResourceConfigException("warning.config.id.long", e, s, option);
+ throw new LocalizedResourceConfigException("warning.config.type.long", e, s, option);
}
}
default -> {
- throw new LocalizedResourceConfigException("warning.config.id.long", o.toString(), option);
+ throw new LocalizedResourceConfigException("warning.config.type.long", o.toString(), option);
}
}
}
@@ -248,7 +248,7 @@ public final class ResourceConfigUtils {
if (obj instanceof Map, ?> map) {
return (Map) map;
}
- throw new LocalizedResourceConfigException("warning.config.id.map", String.valueOf(obj), option);
+ throw new LocalizedResourceConfigException("warning.config.type.map", String.valueOf(obj), option);
}
@SuppressWarnings("unchecked")
@@ -259,24 +259,30 @@ public final class ResourceConfigUtils {
if (obj instanceof Map, ?> map) {
return (Map) map;
}
- throw new LocalizedResourceConfigException("warning.config.id.map", String.valueOf(obj), option);
+ throw new LocalizedResourceConfigException("warning.config.type.map", String.valueOf(obj), option);
}
public static Vector3f getAsVector3f(Object o, String option) {
- if (o == null) return new Vector3f();
- if (o instanceof List> list && list.size() == 3) {
- return new Vector3f(Float.parseFloat(list.get(0).toString()), Float.parseFloat(list.get(1).toString()), Float.parseFloat(list.get(2).toString()));
- } else if (o instanceof Number number) {
- return new Vector3f(number.floatValue());
- } else {
- String stringFormat = o.toString();
- String[] split = stringFormat.split(",");
- if (split.length == 3) {
- return new Vector3f(Float.parseFloat(split[0]), Float.parseFloat(split[1]), Float.parseFloat(split[2]));
- } else if (split.length == 1) {
- return new Vector3f(Float.parseFloat(split[0]));
- } else {
- throw new LocalizedResourceConfigException("warning.config.id.vector3f", stringFormat, option);
+ switch (o) {
+ case null -> {
+ return new Vector3f();
+ }
+ case List> list when list.size() == 3 -> {
+ return new Vector3f(Float.parseFloat(list.get(0).toString()), Float.parseFloat(list.get(1).toString()), Float.parseFloat(list.get(2).toString()));
+ }
+ case Number number -> {
+ return new Vector3f(number.floatValue());
+ }
+ default -> {
+ String stringFormat = o.toString();
+ String[] split = stringFormat.split(",");
+ if (split.length == 3) {
+ return new Vector3f(Float.parseFloat(split[0]), Float.parseFloat(split[1]), Float.parseFloat(split[2]));
+ } else if (split.length == 1) {
+ return new Vector3f(Float.parseFloat(split[0]));
+ } else {
+ throw new LocalizedResourceConfigException("warning.config.type.vector3f", stringFormat, option);
+ }
}
}
}
@@ -295,7 +301,7 @@ public final class ResourceConfigUtils {
} else if (split.length == 1) {
return QuaternionUtils.toQuaternionf(0, (float) -Math.toRadians(Float.parseFloat(split[0])), 0);
} else {
- throw new LocalizedResourceConfigException("warning.config.id.quaternionf", stringFormat, option);
+ throw new LocalizedResourceConfigException("warning.config.type.quaternionf", stringFormat, option);
}
}
}
@@ -313,7 +319,7 @@ public final class ResourceConfigUtils {
double d = Double.parseDouble(split[0]);
return new Vec3d(d, d, d);
} else {
- throw new LocalizedResourceConfigException("warning.config.id.vec3d", stringFormat, option);
+ throw new LocalizedResourceConfigException("warning.config.type.vec3d", stringFormat, option);
}
}
}
@@ -347,7 +353,7 @@ public final class ResourceConfigUtils {
public static AABB getAsAABB(Object o, String option) {
switch (o) {
- case null -> throw new LocalizedResourceConfigException("warning.config.id.aabb", "null", option);
+ case null -> throw new LocalizedResourceConfigException("warning.config.type.aabb", "null", option);
case AABB aabb -> {
return aabb;
}
@@ -367,7 +373,7 @@ public final class ResourceConfigUtils {
try {
args[i] = Double.parseDouble(list.get(i).toString());
} catch (NumberFormatException e) {
- throw new LocalizedResourceConfigException("warning.config.id.aabb", o.toString(), option);
+ throw new LocalizedResourceConfigException("warning.config.type.aabb", o.toString(), option);
}
}
}
@@ -378,7 +384,7 @@ public final class ResourceConfigUtils {
try {
args[i] = Double.parseDouble(split[i]);
} catch (NumberFormatException e) {
- throw new LocalizedResourceConfigException("warning.config.id.aabb", o.toString(), option);
+ throw new LocalizedResourceConfigException("warning.config.type.aabb", o.toString(), option);
}
}
}
@@ -391,7 +397,7 @@ public final class ResourceConfigUtils {
} else if (args.length == 6) {
return new AABB(args[0], args[1], args[2], args[3], args[4], args[5]);
} else {
- throw new LocalizedResourceConfigException("warning.config.id.aabb", o.toString(), option);
+ throw new LocalizedResourceConfigException("warning.config.type.aabb", o.toString(), option);
}
}
}
diff --git a/core/src/main/java/net/momirealms/craftengine/core/util/SNBTReader.java b/core/src/main/java/net/momirealms/craftengine/core/util/SNBTReader.java
index 27fd39740..0be81388d 100644
--- a/core/src/main/java/net/momirealms/craftengine/core/util/SNBTReader.java
+++ b/core/src/main/java/net/momirealms/craftengine/core/util/SNBTReader.java
@@ -156,7 +156,7 @@ public final class SNBTReader extends DefaultStringReader {
// 1.21.6的SNBT原版是支持 {key:[B;1,2b,0xFF]} 这种奇葩写法的, 越界部分会被自动舍弃, 如0xff的byte值为-1.
// 如果需要和原版对齐, 那么只需要判断是否是数字就行了.
// if (!(element instanceof Number number))
- // throw new IllegalArgumentException("Error element id at pos " + getCursor());
+ // throw new IllegalArgumentException("Error element type at pos " + getCursor());
if (!(element instanceof Number number))
throw new IllegalArgumentException("Error parsing number at pos " + getCursor());
diff --git a/core/src/main/java/net/momirealms/craftengine/core/util/Tuple.java b/core/src/main/java/net/momirealms/craftengine/core/util/Tuple.java
index d91a2afaf..e4cf6baf5 100644
--- a/core/src/main/java/net/momirealms/craftengine/core/util/Tuple.java
+++ b/core/src/main/java/net/momirealms/craftengine/core/util/Tuple.java
@@ -6,9 +6,9 @@ import java.util.Objects;
* A generic class representing a tuple with three values.
* This class provides methods for creating and accessing tuples with three values.
*
- * @param the id of the left value
- * @param the id of the middle value
- * @param the id of the right value
+ * @param the type of the left value
+ * @param the type of the middle value
+ * @param the type of the right value
*/
public record Tuple(L left, M mid, R right) {
@@ -18,9 +18,9 @@ public record Tuple(L left, M mid, R right) {
* @param left the left value
* @param mid the middle value
* @param right the right value
- * @param the id of the left value
- * @param the id of the middle value
- * @param the id of the right value
+ * @param the type of the left value
+ * @param the type of the middle value
+ * @param the type of the right value
* @return a new {@link Tuple} with the specified values
*/
public static Tuple of(final L left, final M mid, final R right) {
diff --git a/core/src/main/java/net/momirealms/craftengine/core/util/TypeUtils.java b/core/src/main/java/net/momirealms/craftengine/core/util/TypeUtils.java
index 02687838f..8e3b3dc1a 100644
--- a/core/src/main/java/net/momirealms/craftengine/core/util/TypeUtils.java
+++ b/core/src/main/java/net/momirealms/craftengine/core/util/TypeUtils.java
@@ -8,18 +8,18 @@ public class TypeUtils {
private TypeUtils() {}
/**
- * Checks if the provided object is of the specified id.
+ * Checks if the provided object is of the specified type.
* If not, throws an IllegalArgumentException with a detailed message.
*
* @param object The object to check.
- * @param expectedType The expected class id.
- * @param The id parameter for expectedType.
- * @return The object cast to the expected id if it matches.
- * @throws IllegalArgumentException if the object's id does not match the expected id.
+ * @param expectedType The expected class type.
+ * @param The type parameter for expectedType.
+ * @return The object cast to the expected type if it matches.
+ * @throws IllegalArgumentException if the object's type does not match the expected type.
*/
public static T checkType(Object object, Class expectedType) {
if (!expectedType.isInstance(object)) {
- throw new IllegalArgumentException("Expected id: " + expectedType.getName() +
+ throw new IllegalArgumentException("Expected type: " + expectedType.getName() +
", but got: " + (object == null ? "null" : object.getClass().getName()));
}
return expectedType.cast(object);
@@ -48,7 +48,7 @@ public class TypeUtils {
}
yield bytes;
}
- default -> throw new IllegalStateException("Unsupported id: " + type.toLowerCase(Locale.ENGLISH));
+ default -> throw new IllegalStateException("Unsupported type: " + type.toLowerCase(Locale.ENGLISH));
};
}