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

避免因为配置错误而除以0

This commit is contained in:
XiaoMoMi
2025-11-26 19:46:59 +08:00
parent 3f623eff1b
commit e00a803533
2 changed files with 9 additions and 8 deletions

View File

@@ -409,6 +409,10 @@ public class RecipeEventListener implements Listener {
boolean hasResult = true;
int realDurabilityPerItem = (int) (repairItem.amount() + repairItem.percent() * maxDamage);
if (realDurabilityPerItem == 0) {
return;
}
int consumeMaxAmount = damage / realDurabilityPerItem + 1;
int actualConsumedAmount = Math.min(consumeMaxAmount, wrappedSecond.count());
int actualRepairAmount = actualConsumedAmount * realDurabilityPerItem;

View File

@@ -109,7 +109,7 @@ public class ItemSettings {
newSettings.dyeColor = settings.dyeColor;
newSettings.fireworkColor = settings.fireworkColor;
newSettings.ingredientSubstitutes = settings.ingredientSubstitutes;
newSettings.customData = settings.customData;
newSettings.customData = new IdentityHashMap<>(settings.customData);
return newSettings;
}
@@ -360,14 +360,11 @@ public class ItemSettings {
return settings -> settings.renameable(bool);
}));
registerFactory("anvil-repair-item", (value -> {
@SuppressWarnings("unchecked")
List<Map<String, Object>> materials = (List<Map<String, Object>>) value;
List<AnvilRepairItem> anvilRepairItemList = new ArrayList<>();
for (Map<String, Object> material : materials) {
List<AnvilRepairItem> anvilRepairItemList = ResourceConfigUtils.parseConfigAsList(value, material -> {
int amount = ResourceConfigUtils.getAsInt(material.getOrDefault("amount", 0), "amount");
double percent = ResourceConfigUtils.getAsDouble(material.getOrDefault("percent", 0), "percent");
anvilRepairItemList.add(new AnvilRepairItem(MiscUtils.getAsStringList(material.get("target")), amount, percent));
}
return new AnvilRepairItem(MiscUtils.getAsStringList(material.get("target")), amount, percent);
});
return settings -> settings.repairItems(anvilRepairItemList);
}));
registerFactory("fuel-time", (value -> {