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

添加防呆

This commit is contained in:
XiaoMoMi
2025-11-24 01:14:04 +08:00
parent a4f58ab57c
commit 4c9058528f
4 changed files with 26 additions and 2 deletions

View File

@@ -399,6 +399,9 @@ public class ItemSettings {
registerFactory("equippable", (value -> { registerFactory("equippable", (value -> {
Map<String, Object> args = MiscUtils.castToMap(value, false); Map<String, Object> args = MiscUtils.castToMap(value, false);
EquipmentData data = EquipmentData.fromMap(args); EquipmentData data = EquipmentData.fromMap(args);
if (data.assetId() == null) {
throw new IllegalArgumentException("Please move 'equippable' option to 'data' section.");
}
ComponentBasedEquipment componentBasedEquipment = ComponentBasedEquipment.FACTORY.create(data.assetId(), args); ComponentBasedEquipment componentBasedEquipment = ComponentBasedEquipment.FACTORY.create(data.assetId(), args);
((AbstractItemManager<?>) CraftEngine.instance().itemManager()).addOrMergeEquipment(componentBasedEquipment); ((AbstractItemManager<?>) CraftEngine.instance().itemManager()).addOrMergeEquipment(componentBasedEquipment);
ItemEquipment itemEquipment = new ItemEquipment(Tristate.FALSE, data, componentBasedEquipment); ItemEquipment itemEquipment = new ItemEquipment(Tristate.FALSE, data, componentBasedEquipment);

View File

@@ -8,11 +8,11 @@ public abstract class AbstractEquipment implements Equipment {
protected final Key assetId; protected final Key assetId;
protected AbstractEquipment(Key assetId) { protected AbstractEquipment(Key assetId) {
this.assetId = Objects.requireNonNull(assetId, "assetId cannot be null"); this.assetId = Objects.requireNonNull(assetId, "asset-id cannot be null");
} }
@Override @Override
public Key assetId() { public Key assetId() {
return assetId; return this.assetId;
} }
} }

View File

@@ -143,5 +143,21 @@ public class ComponentBasedEquipment extends AbstractEquipment implements Suppli
return dyeData; return dyeData;
} }
} }
@Override
public @NotNull String toString() {
return "Layer{" +
"texture='" + texture + '\'' +
", data=" + data +
", usePlayerTexture=" + usePlayerTexture +
'}';
}
}
@Override
public String toString() {
return "ComponentBasedEquipment{" +
"layers=" + this.layers +
'}';
} }
} }

View File

@@ -1915,6 +1915,11 @@ public abstract class AbstractPackManager implements PackManager {
private void processComponentBasedEquipment(ComponentBasedEquipment componentBasedEquipment, Path generatedPackPath) { private void processComponentBasedEquipment(ComponentBasedEquipment componentBasedEquipment, Path generatedPackPath) {
Key assetId = componentBasedEquipment.assetId(); Key assetId = componentBasedEquipment.assetId();
if (assetId == null) {
this.plugin.logger().severe("Asset id is null for equipment " + componentBasedEquipment);
return;
}
if (Config.packMaxVersion().isAtOrAbove(MinecraftVersions.V1_21_4)) { if (Config.packMaxVersion().isAtOrAbove(MinecraftVersions.V1_21_4)) {
Path equipmentPath = generatedPackPath Path equipmentPath = generatedPackPath
.resolve("assets") .resolve("assets")