From 9396b10557d4e7800c787733f7770617f7b92a58 Mon Sep 17 00:00:00 2001 From: XiaoMoMi Date: Tue, 29 Apr 2025 04:31:16 +0800 Subject: [PATCH] =?UTF-8?q?=E7=B4=AF=E4=BA=86=E5=AE=B6=E4=BA=BA=E4=BB=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/translations/en.yml | 3 +- .../bukkit/block/BukkitBlockManager.java | 97 ++++++++----------- .../behavior/ConcretePowderBlockBehavior.java | 5 +- .../block/behavior/CropBlockBehavior.java | 1 - .../block/behavior/FallingBlockBehavior.java | 1 - .../block/behavior/SaplingBlockBehavior.java | 5 +- .../craftengine/core/block/CustomBlock.java | 4 +- .../core/block/behavior/BlockBehaviors.java | 2 +- .../core/block/properties/EnumProperty.java | 1 - .../block/properties/IntegerProperty.java | 1 - .../core/block/properties/StringProperty.java | 1 - .../core/item/behavior/ItemBehaviors.java | 1 + .../item/recipe/CustomBlastingRecipe.java | 2 - .../item/recipe/CustomCampfireRecipe.java | 2 - .../item/recipe/CustomSmeltingRecipe.java | 3 - .../core/item/recipe/CustomSmokingRecipe.java | 3 - .../core/loot/condition/RandomCondition.java | 1 - .../loot/condition/TableBonusCondition.java | 1 - .../core/pack/AbstractPackManager.java | 17 ++-- .../CustomModelDataConditionProperty.java | 1 - .../HasComponentConditionProperty.java | 1 - .../KeyBindDownConditionProperty.java | 1 - .../CompassRangeDispatchProperty.java | 1 - .../CustomModelDataRangeDispatchProperty.java | 1 - .../TimeRangeDispatchProperty.java | 1 - .../UseCycleRangeDispatchProperty.java | 1 - .../select/BlockStateSelectProperty.java | 1 - .../select/CustomModelDataSelectProperty.java | 1 - .../model/select/LocalTimeSelectProperty.java | 1 - .../pack/model/special/ChestSpecialModel.java | 1 - .../pack/model/special/HeadSpecialModel.java | 1 - .../model/special/ShulkerBoxSpecialModel.java | 1 - .../pack/model/tint/CustomModelDataTint.java | 2 - .../core/pack/model/tint/GrassTint.java | 1 - .../config/template/ListTemplateArgument.java | 14 ++- .../SelfIncreaseIntTemplateArgument.java | 2 - .../config/template/TemplateManagerImpl.java | 2 - .../plugin/locale/TranslationManagerImpl.java | 2 +- .../craftengine/core/sound/Sound.java | 1 - .../craftengine/core/util/MiscUtils.java | 11 --- .../core/util/ResourceConfigUtils.java | 2 - 41 files changed, 80 insertions(+), 121 deletions(-) diff --git a/bukkit/loader/src/main/resources/translations/en.yml b/bukkit/loader/src/main/resources/translations/en.yml index aaa30b4ca..e2db3a07a 100644 --- a/bukkit/loader/src/main/resources/translations/en.yml +++ b/bukkit/loader/src/main/resources/translations/en.yml @@ -64,7 +64,7 @@ command.upload.failure.not_supported: "Current hosting method '' doe command.upload.on_progress: "Started uploading progress. Check the console for more information." command.send_resource_pack.success.single: "Sent resource pack to ." command.send_resource_pack.success.multiple: "Send resource packs to players." - +warning.config.pack.duplicated_files: "Duplicated files Found. Please resolve them through config.yml 'resource-pack.duplicated-files-handler' section." warning.config.type.int: "Issue found in file - Failed to load '': Cannot cast '' to integer type for option ''." warning.config.type.float: "Issue found in file - Failed to load '': Cannot cast '' to float type for option ''." warning.config.type.double: "Issue found in file - Failed to load '': Cannot cast '' to double type for option ''." @@ -101,6 +101,7 @@ warning.config.recipe.smithing_transform.post_processor.keep_component.missing_t warning.config.i18n.unknown_locale: "Issue found in file - Unknown locale ''." warning.config.template.duplicate: "Issue found in file - Duplicated template ''." warning.config.template.argument.self_increase_int.invalid_range: "Issue found in file - The template '' is using a 'from' '' larger than 'to' '' in 'self_increase_int' argument." +warning.config.template.argument.list.invalid_type: "Issue found in file - The template '' is using a 'list' argument which expects a 'List' as argument while the input argument is a(n) ''." warning.config.vanilla_loot.missing_type: "Issue found in file - 'type' not set for vanilla loot ''." warning.config.vanilla_loot.block.invalid_target: "Issue found in file - Invalid block target '' in vanilla loot ''." warning.config.sound.duplicate: "Issue found in file - Duplicated sound ''." diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/BukkitBlockManager.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/BukkitBlockManager.java index 5a2a01441..7958debae 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/BukkitBlockManager.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/BukkitBlockManager.java @@ -344,15 +344,24 @@ public class BukkitBlockManager extends AbstractBlockManager { Map> properties; Map appearances; Map variants; - Map stateSection = MiscUtils.castToMap(section.get("state"), true); - if (stateSection != null) { + Object stateObj = section.get("state"); + if (stateObj == null) { + stateObj = section.get("states"); + } + if (stateObj == null) { + throw new LocalizedResourceConfigException("warning.config.block.missing_state", path, id); + } + Map stateSection = MiscUtils.castToMap(stateObj, true); + + // single state + if (!stateSection.containsKey("properties")) { properties = Map.of(); int internalId = ResourceConfigUtils.getAsInt(stateSection.getOrDefault("id", -1), "id"); if (internalId < 0) { throw new LocalizedResourceConfigException("warning.config.block.state.missing_real_id", path, id); } - Pair pair = parseAppearanceSection(pack, path, id, stateSection); + Pair pair = parseAppearanceSection(id, stateSection); if (pair == null) return; appearances = Map.of("default", pair.right()); @@ -366,19 +375,14 @@ public class BukkitBlockManager extends AbstractBlockManager { } variants = Map.of("", new VariantState("default", settings, internalBlockRegistryId)); } else { - // states - Map statesSection = MiscUtils.castToMap(section.get("states"), true); - if (statesSection == null) { - throw new LocalizedResourceConfigException("warning.config.block.missing_state", path, id); - } // properties - Map propertySection = MiscUtils.castToMap(statesSection.get("properties"), true); + Map propertySection = MiscUtils.castToMap(stateSection.get("properties"), true); if (propertySection == null) { throw new LocalizedResourceConfigException("warning.config.block.state.missing_properties", path, id); } properties = parseProperties(propertySection); // appearance - Map appearancesSection = MiscUtils.castToMap(statesSection.get("appearances"), true); + Map appearancesSection = MiscUtils.castToMap(stateSection.get("appearances"), true); if (appearancesSection == null) { throw new LocalizedResourceConfigException("warning.config.block.state.missing_appearances", path, id); } @@ -386,14 +390,14 @@ public class BukkitBlockManager extends AbstractBlockManager { Map tempTypeMap = new HashMap<>(); for (Map.Entry appearanceEntry : appearancesSection.entrySet()) { if (appearanceEntry.getValue() instanceof Map appearanceSection) { - Pair pair = parseAppearanceSection(pack, path, id, MiscUtils.castToMap(appearanceSection, false)); + Pair pair = parseAppearanceSection(id, MiscUtils.castToMap(appearanceSection, false)); if (pair == null) return; appearances.put(appearanceEntry.getKey(), pair.right()); tempTypeMap.put(appearanceEntry.getKey(), pair.left()); } } // variants - Map variantsSection = MiscUtils.castToMap(statesSection.get("variants"), true); + Map variantsSection = MiscUtils.castToMap(stateSection.get("variants"), true); if (variantsSection == null) { throw new LocalizedResourceConfigException("warning.config.block.state.missing_variants", path, id); } @@ -425,7 +429,6 @@ public class BukkitBlockManager extends AbstractBlockManager { } Map behaviors = MiscUtils.castToMap(section.getOrDefault("behavior", Map.of()), false); - CustomBlock block = BukkitCustomBlock.builder(id) .appearances(appearances) .variantMapper(variants) @@ -448,6 +451,7 @@ public class BukkitBlockManager extends AbstractBlockManager { } byId.put(id, block); + // generate mod assets if (Config.generateModAssets()) { for (ImmutableBlockState state : block.variantProvider().states()) { @@ -468,32 +472,20 @@ public class BukkitBlockManager extends AbstractBlockManager { } @Nullable - private Pair parseAppearanceSection(Pack pack, Path path, Key id, Map section) { + private Pair parseAppearanceSection(Key id, Map section) { // require state non null Object vanillaStateString = section.get("state"); if (vanillaStateString == null) { - throw new LocalizedResourceConfigException("warning.config.block.state.missing_state", path, id); + throw new LocalizedResourceConfigException("warning.config.block.state.missing_state"); } // get its registry id - int vanillaStateRegistryId; - VanillaStateParseResult parseResult = parseVanillaStateRegistryId(vanillaStateString.toString()); - if (parseResult.success()) { - vanillaStateRegistryId = parseResult.result; - } else { - String[] args = new String[parseResult.args.length + 2]; - args[0] = path.toString(); - args[1] = id.toString(); - System.arraycopy(parseResult.args, 0, args, 2, parseResult.args.length); - TranslationManager.instance().log(parseResult.reason(), args); - return null; - } + int vanillaStateRegistryId = parseVanillaStateRegistryId(vanillaStateString.toString()); // check conflict Key ifAny = this.tempRegistryIdConflictMap.get(vanillaStateRegistryId); if (ifAny != null && !ifAny.equals(id)) { - TranslationManager.instance().log("warning.config.block.state.conflict", path.toString(), id.toString(), BlockStateUtils.fromBlockData(BlockStateUtils.idToBlockState(vanillaStateRegistryId)).getAsString(), ifAny.toString()); - return null; + throw new LocalizedResourceConfigException("warning.config.block.state.conflict", BlockStateUtils.fromBlockData(BlockStateUtils.idToBlockState(vanillaStateRegistryId)).getAsString(), ifAny.toString()); } // require models not to be null @@ -502,16 +494,16 @@ public class BukkitBlockManager extends AbstractBlockManager { models = section.get("model"); } if (models == null) { - throw new LocalizedResourceConfigException("warning.config.block.state.missing_model", path, id); + throw new LocalizedResourceConfigException("warning.config.block.state.missing_model"); } List variants = new ArrayList<>(); if (models instanceof Map singleModelSection) { - loadVariantModel(pack, path, id, variants, MiscUtils.castToMap(singleModelSection, false)); + loadVariantModel(variants, MiscUtils.castToMap(singleModelSection, false)); } else if (models instanceof List modelList) { for (Object model : modelList) { if (model instanceof Map singleModelMap) { - loadVariantModel(pack, path, id, variants, MiscUtils.castToMap(singleModelMap, false)); + loadVariantModel(variants, MiscUtils.castToMap(singleModelMap, false)); } } } @@ -536,7 +528,7 @@ public class BukkitBlockManager extends AbstractBlockManager { return Pair.of(block, vanillaStateRegistryId); } - private void loadVariantModel(Pack pack, Path path, Key id, List variants, Map singleModelMap) { + private void loadVariantModel(List variants, Map singleModelMap) { JsonObject json = new JsonObject(); String modelPath = (String) singleModelMap.get("path"); if (modelPath == null) { @@ -557,50 +549,47 @@ public class BukkitBlockManager extends AbstractBlockManager { variants.add(json); } - private VanillaStateParseResult parseVanillaStateRegistryId(String blockState) { + private int parseVanillaStateRegistryId(String blockState) { String[] split = blockState.split(":", 3); if (split.length >= 4) { - return VanillaStateParseResult.failure("warning.config.block.state.invalid_vanilla", new String[]{blockState}); + throw new LocalizedResourceConfigException("warning.config.block.state.invalid_vanilla", blockState); } int registryId; String stateOrId = split[split.length - 1]; boolean isId = !stateOrId.contains("[") && !stateOrId.contains("]"); if (isId) { - if (split.length == 1) return VanillaStateParseResult.failure("warning.config.block.state.invalid_vanilla", new String[]{blockState}); + if (split.length == 1) { + throw new LocalizedResourceConfigException("warning.config.block.state.invalid_vanilla", blockState); + } Key block = split.length == 2 ? Key.of(split[0]) : Key.of(split[0], split[1]); try { int id = split.length == 2 ? Integer.parseInt(split[1]) : Integer.parseInt(split[2]); - if (id < 0) return VanillaStateParseResult.failure("warning.config.block.state.invalid_vanilla", new String[]{blockState}); + if (id < 0) { + throw new LocalizedResourceConfigException("warning.config.block.state.invalid_vanilla", blockState); + } List arranger = this.blockAppearanceArranger.get(block); - if (arranger == null) return VanillaStateParseResult.failure("warning.config.block.state.unavailable_vanilla", new String[]{blockState}); - if (id >= arranger.size()) return VanillaStateParseResult.failure("warning.config.block.state.invalid_vanilla_id", new String[]{blockState, String.valueOf(arranger.size() - 1)}); + if (arranger == null) { + throw new LocalizedResourceConfigException("warning.config.block.state.unavailable_vanilla", blockState); + } + if (id >= arranger.size()) { + throw new LocalizedResourceConfigException("warning.config.block.state.invalid_vanilla_id", blockState, String.valueOf(arranger.size() - 1)); + } registryId = arranger.get(id); } catch (NumberFormatException e) { - return VanillaStateParseResult.failure("warning.config.block.state.invalid_vanilla", new String[]{blockState}); + throw new LocalizedResourceConfigException("warning.config.block.state.invalid_vanilla", e, blockState); } } else { try { BlockData blockData = Bukkit.createBlockData(blockState); registryId = BlockStateUtils.blockDataToId(blockData); if (!this.blockAppearanceMapper.containsKey(registryId)) { - return VanillaStateParseResult.failure("warning.config.block.state.unavailable_vanilla", new String[]{blockState}); + throw new LocalizedResourceConfigException("warning.config.block.state.unavailable_vanilla", blockState); } } catch (IllegalArgumentException e) { - return VanillaStateParseResult.failure("warning.config.block.state.invalid_vanilla", new String[]{blockState}); + throw new LocalizedResourceConfigException("warning.config.block.state.invalid_vanilla", e, blockState); } } - return VanillaStateParseResult.success(registryId); - } - - public record VanillaStateParseResult(boolean success, int result, String reason, String[] args) { - - public static VanillaStateParseResult success(int result) { - return new VanillaStateParseResult(true, result, null, null); - } - - public static VanillaStateParseResult failure(String reason, String[] args) { - return new VanillaStateParseResult(false, -1, reason, args); - } + return registryId; } private void loadMappingsAndAdditionalBlocks() { diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/ConcretePowderBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/ConcretePowderBlockBehavior.java index 868d8c87f..3ac1d4ccb 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/ConcretePowderBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/ConcretePowderBlockBehavior.java @@ -14,7 +14,10 @@ import net.momirealms.craftengine.core.block.behavior.BlockBehaviorFactory; import net.momirealms.craftengine.core.item.context.BlockPlaceContext; import net.momirealms.craftengine.core.plugin.CraftEngine; import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigException; -import net.momirealms.craftengine.core.util.*; +import net.momirealms.craftengine.core.util.Direction; +import net.momirealms.craftengine.core.util.Key; +import net.momirealms.craftengine.core.util.ResourceConfigUtils; +import net.momirealms.craftengine.core.util.VersionHelper; import net.momirealms.craftengine.shared.block.BlockBehavior; import org.bukkit.block.BlockState; import org.bukkit.event.block.BlockFormEvent; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/CropBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/CropBlockBehavior.java index fc3ce5513..7d687ae26 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/CropBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/CropBlockBehavior.java @@ -17,7 +17,6 @@ import net.momirealms.craftengine.core.loot.number.NumberProvider; import net.momirealms.craftengine.core.loot.number.NumberProviders; import net.momirealms.craftengine.core.loot.parameter.LootParameters; import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigException; -import net.momirealms.craftengine.core.util.MiscUtils; import net.momirealms.craftengine.core.util.RandomUtils; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import net.momirealms.craftengine.core.util.Tuple; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/FallingBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/FallingBlockBehavior.java index 171b682bc..54b2d436a 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/FallingBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/FallingBlockBehavior.java @@ -11,7 +11,6 @@ import net.momirealms.craftengine.core.block.ImmutableBlockState; import net.momirealms.craftengine.core.block.behavior.BlockBehaviorFactory; import net.momirealms.craftengine.core.item.Item; import net.momirealms.craftengine.core.loot.parameter.LootParameters; -import net.momirealms.craftengine.core.util.MiscUtils; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import net.momirealms.craftengine.core.util.VersionHelper; import net.momirealms.craftengine.core.util.context.ContextHolder; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SaplingBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SaplingBlockBehavior.java index 382619943..6dae49a43 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SaplingBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SaplingBlockBehavior.java @@ -11,7 +11,10 @@ import net.momirealms.craftengine.core.block.behavior.BlockBehaviorFactory; import net.momirealms.craftengine.core.block.properties.Property; import net.momirealms.craftengine.core.plugin.CraftEngine; import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigException; -import net.momirealms.craftengine.core.util.*; +import net.momirealms.craftengine.core.util.Key; +import net.momirealms.craftengine.core.util.RandomUtils; +import net.momirealms.craftengine.core.util.ResourceConfigUtils; +import net.momirealms.craftengine.core.util.Tuple; import net.momirealms.craftengine.shared.block.BlockBehavior; import org.bukkit.Location; import org.bukkit.World; diff --git a/core/src/main/java/net/momirealms/craftengine/core/block/CustomBlock.java b/core/src/main/java/net/momirealms/craftengine/core/block/CustomBlock.java index 1c9014b3e..d1aae38fd 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/block/CustomBlock.java +++ b/core/src/main/java/net/momirealms/craftengine/core/block/CustomBlock.java @@ -178,8 +178,8 @@ public abstract class CustomBlock { return this; } - public Builder behavior(Map behaviorSettings) { - this.behavior = behaviorSettings; + public Builder behavior(Map behavior) { + this.behavior = behavior; return this; } diff --git a/core/src/main/java/net/momirealms/craftengine/core/block/behavior/BlockBehaviors.java b/core/src/main/java/net/momirealms/craftengine/core/block/behavior/BlockBehaviors.java index 445961eb5..79f189e9c 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/block/behavior/BlockBehaviors.java +++ b/core/src/main/java/net/momirealms/craftengine/core/block/behavior/BlockBehaviors.java @@ -24,7 +24,7 @@ public class BlockBehaviors { } public static BlockBehavior fromMap(CustomBlock block, @Nullable Map map) { - if (map == null) return EmptyBlockBehavior.INSTANCE; + if (map == null || map.isEmpty()) return EmptyBlockBehavior.INSTANCE; Object type = map.get("type"); if (type == null) { throw new LocalizedResourceConfigException("warning.config.block.behavior.missing_type"); diff --git a/core/src/main/java/net/momirealms/craftengine/core/block/properties/EnumProperty.java b/core/src/main/java/net/momirealms/craftengine/core/block/properties/EnumProperty.java index b4d530aa7..d26941108 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/block/properties/EnumProperty.java +++ b/core/src/main/java/net/momirealms/craftengine/core/block/properties/EnumProperty.java @@ -1,7 +1,6 @@ package net.momirealms.craftengine.core.block.properties; import com.google.common.collect.ImmutableMap; -import net.momirealms.craftengine.core.plugin.CraftEngine; import net.momirealms.sparrow.nbt.StringTag; import net.momirealms.sparrow.nbt.Tag; diff --git a/core/src/main/java/net/momirealms/craftengine/core/block/properties/IntegerProperty.java b/core/src/main/java/net/momirealms/craftengine/core/block/properties/IntegerProperty.java index 7f7edeb06..7b77e0bd0 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/block/properties/IntegerProperty.java +++ b/core/src/main/java/net/momirealms/craftengine/core/block/properties/IntegerProperty.java @@ -2,7 +2,6 @@ package net.momirealms.craftengine.core.block.properties; import it.unimi.dsi.fastutil.ints.IntImmutableList; import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigException; -import net.momirealms.craftengine.core.util.MiscUtils; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import net.momirealms.sparrow.nbt.IntTag; import net.momirealms.sparrow.nbt.NumericTag; diff --git a/core/src/main/java/net/momirealms/craftengine/core/block/properties/StringProperty.java b/core/src/main/java/net/momirealms/craftengine/core/block/properties/StringProperty.java index 0c9dbb7c1..c6ef572e3 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/block/properties/StringProperty.java +++ b/core/src/main/java/net/momirealms/craftengine/core/block/properties/StringProperty.java @@ -1,7 +1,6 @@ package net.momirealms.craftengine.core.block.properties; import com.google.common.collect.ImmutableMap; -import net.momirealms.craftengine.core.plugin.CraftEngine; import net.momirealms.craftengine.core.util.MiscUtils; import net.momirealms.sparrow.nbt.StringTag; import net.momirealms.sparrow.nbt.Tag; diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/behavior/ItemBehaviors.java b/core/src/main/java/net/momirealms/craftengine/core/item/behavior/ItemBehaviors.java index 0c02d14c9..d31aef35c 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/behavior/ItemBehaviors.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/behavior/ItemBehaviors.java @@ -22,6 +22,7 @@ public class ItemBehaviors { } public static ItemBehavior fromMap(Pack pack, Path path, Key id, Map map) { + if (map == null || map.isEmpty()) return EmptyItemBehavior.INSTANCE; Object type = map.get("type"); if (type == null) { throw new LocalizedResourceConfigException("warning.config.item.behavior.missing_type"); diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/recipe/CustomBlastingRecipe.java b/core/src/main/java/net/momirealms/craftengine/core/item/recipe/CustomBlastingRecipe.java index fd0f29ebe..d7f2e531d 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/recipe/CustomBlastingRecipe.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/recipe/CustomBlastingRecipe.java @@ -2,11 +2,9 @@ package net.momirealms.craftengine.core.item.recipe; import net.momirealms.craftengine.core.registry.Holder; import net.momirealms.craftengine.core.util.Key; -import net.momirealms.craftengine.core.util.MiscUtils; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import org.jetbrains.annotations.NotNull; -import java.util.Locale; import java.util.Map; import java.util.Set; diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/recipe/CustomCampfireRecipe.java b/core/src/main/java/net/momirealms/craftengine/core/item/recipe/CustomCampfireRecipe.java index 984d185dd..007381419 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/recipe/CustomCampfireRecipe.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/recipe/CustomCampfireRecipe.java @@ -2,11 +2,9 @@ package net.momirealms.craftengine.core.item.recipe; import net.momirealms.craftengine.core.registry.Holder; import net.momirealms.craftengine.core.util.Key; -import net.momirealms.craftengine.core.util.MiscUtils; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import org.jetbrains.annotations.NotNull; -import java.util.Locale; import java.util.Map; import java.util.Set; diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/recipe/CustomSmeltingRecipe.java b/core/src/main/java/net/momirealms/craftengine/core/item/recipe/CustomSmeltingRecipe.java index 6698c3591..0a667cdff 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/recipe/CustomSmeltingRecipe.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/recipe/CustomSmeltingRecipe.java @@ -1,13 +1,10 @@ package net.momirealms.craftengine.core.item.recipe; -import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigException; import net.momirealms.craftengine.core.registry.Holder; import net.momirealms.craftengine.core.util.Key; -import net.momirealms.craftengine.core.util.MiscUtils; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import org.jetbrains.annotations.NotNull; -import java.util.Locale; import java.util.Map; import java.util.Set; diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/recipe/CustomSmokingRecipe.java b/core/src/main/java/net/momirealms/craftengine/core/item/recipe/CustomSmokingRecipe.java index c875a19d5..9054a2b02 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/recipe/CustomSmokingRecipe.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/recipe/CustomSmokingRecipe.java @@ -1,13 +1,10 @@ package net.momirealms.craftengine.core.item.recipe; -import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigException; import net.momirealms.craftengine.core.registry.Holder; import net.momirealms.craftengine.core.util.Key; -import net.momirealms.craftengine.core.util.MiscUtils; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import org.jetbrains.annotations.NotNull; -import java.util.Locale; import java.util.Map; import java.util.Set; diff --git a/core/src/main/java/net/momirealms/craftengine/core/loot/condition/RandomCondition.java b/core/src/main/java/net/momirealms/craftengine/core/loot/condition/RandomCondition.java index a13aa0913..50cb43f1e 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/loot/condition/RandomCondition.java +++ b/core/src/main/java/net/momirealms/craftengine/core/loot/condition/RandomCondition.java @@ -2,7 +2,6 @@ package net.momirealms.craftengine.core.loot.condition; import net.momirealms.craftengine.core.loot.LootContext; import net.momirealms.craftengine.core.util.Key; -import net.momirealms.craftengine.core.util.MiscUtils; import net.momirealms.craftengine.core.util.RandomUtils; import net.momirealms.craftengine.core.util.ResourceConfigUtils; diff --git a/core/src/main/java/net/momirealms/craftengine/core/loot/condition/TableBonusCondition.java b/core/src/main/java/net/momirealms/craftengine/core/loot/condition/TableBonusCondition.java index e71358c1d..125d5859d 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/loot/condition/TableBonusCondition.java +++ b/core/src/main/java/net/momirealms/craftengine/core/loot/condition/TableBonusCondition.java @@ -6,7 +6,6 @@ import net.momirealms.craftengine.core.loot.LootContext; import net.momirealms.craftengine.core.loot.parameter.LootParameters; import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigException; import net.momirealms.craftengine.core.util.Key; -import net.momirealms.craftengine.core.util.MiscUtils; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.ArrayList; diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/AbstractPackManager.java b/core/src/main/java/net/momirealms/craftengine/core/pack/AbstractPackManager.java index be0ddac75..ac7d5f9da 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/AbstractPackManager.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/AbstractPackManager.java @@ -513,15 +513,18 @@ public abstract class AbstractPackManager implements PackManager { List folders = new ArrayList<>(); folders.addAll(loadedPacks().stream().filter(Pack::enabled).map(Pack::resourcePackFolder).toList()); folders.addAll(Config.foldersToMerge().stream().map(it -> plugin.dataFolderPath().getParent().resolve(it)).filter(Files::exists).toList()); - List>> duplicated = mergeFolder(folders, generatedPackPath); if (!duplicated.isEmpty()) { - this.plugin.logger().severe("Duplicated files Found. Please resolve them through config.yml resource-pack.duplicated-files-handler."); + plugin.logger().severe(AdventureHelper.miniMessage().stripTags(TranslationManager.instance().miniMessageTranslation("warning.config.pack.duplicated_files"))); + int x = 1; for (Pair> path : duplicated) { - this.plugin.logger().warn(""); - this.plugin.logger().warn("Target: " + path.left()); - for (Path path0 : path.right()) { - this.plugin.logger().warn(" - " + path0.toAbsolutePath()); + this.plugin.logger().warn("[ " + (x++) + " ] " + path.left()); + for (int i = 0, size = path.right().size(); i < size; i++) { + if (i == size - 1) { + this.plugin.logger().info(" └ " + path.right().get(i).toAbsolutePath()); + } else { + this.plugin.logger().info(" ├ " + path.right().get(i).toAbsolutePath()); + } } } } @@ -932,7 +935,7 @@ public abstract class AbstractPackManager implements PackManager { } if (Config.packMinVersion() < 21.19f && has) { - plugin.logger().warn("You are using item-model component for models which requires 1.21.2+. But the min supported version is " + "1." + Config.packMinVersion()); + plugin.logger().warn("You are using 'item-model' component for some models which requires 1.21.2+ client. But the min-supported-version set in 'config.yml' is " + "1." + Config.packMinVersion()); } } diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/condition/CustomModelDataConditionProperty.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/condition/CustomModelDataConditionProperty.java index ec17f1df0..205301496 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/condition/CustomModelDataConditionProperty.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/condition/CustomModelDataConditionProperty.java @@ -2,7 +2,6 @@ package net.momirealms.craftengine.core.pack.model.condition; import com.google.gson.JsonObject; import net.momirealms.craftengine.core.util.Key; -import net.momirealms.craftengine.core.util.MiscUtils; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/condition/HasComponentConditionProperty.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/condition/HasComponentConditionProperty.java index 028a14a0a..4f0a9a7aa 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/condition/HasComponentConditionProperty.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/condition/HasComponentConditionProperty.java @@ -5,7 +5,6 @@ import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigExce import net.momirealms.craftengine.core.util.Key; import java.util.Map; -import java.util.Objects; public class HasComponentConditionProperty implements ConditionProperty { public static final Factory FACTORY = new Factory(); diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/condition/KeyBindDownConditionProperty.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/condition/KeyBindDownConditionProperty.java index 5e2b678d3..5597a60b5 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/condition/KeyBindDownConditionProperty.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/condition/KeyBindDownConditionProperty.java @@ -5,7 +5,6 @@ import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigExce import net.momirealms.craftengine.core.util.Key; import java.util.Map; -import java.util.Objects; public class KeyBindDownConditionProperty implements ConditionProperty { public static final Factory FACTORY = new Factory(); diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/rangedisptach/CompassRangeDispatchProperty.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/rangedisptach/CompassRangeDispatchProperty.java index 48fbfefd4..3b8f31f0b 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/rangedisptach/CompassRangeDispatchProperty.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/rangedisptach/CompassRangeDispatchProperty.java @@ -5,7 +5,6 @@ import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigExce import net.momirealms.craftengine.core.util.Key; import java.util.Map; -import java.util.Objects; public class CompassRangeDispatchProperty implements RangeDispatchProperty { public static final Factory FACTORY = new Factory(); diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/rangedisptach/CustomModelDataRangeDispatchProperty.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/rangedisptach/CustomModelDataRangeDispatchProperty.java index 445cd83da..7c7b51031 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/rangedisptach/CustomModelDataRangeDispatchProperty.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/rangedisptach/CustomModelDataRangeDispatchProperty.java @@ -3,7 +3,6 @@ package net.momirealms.craftengine.core.pack.model.rangedisptach; import com.google.gson.JsonObject; import net.momirealms.craftengine.core.pack.model.LegacyModelPredicate; import net.momirealms.craftengine.core.util.Key; -import net.momirealms.craftengine.core.util.MiscUtils; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/rangedisptach/TimeRangeDispatchProperty.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/rangedisptach/TimeRangeDispatchProperty.java index 9e8d9da05..9af1705fe 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/rangedisptach/TimeRangeDispatchProperty.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/rangedisptach/TimeRangeDispatchProperty.java @@ -5,7 +5,6 @@ import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigExce import net.momirealms.craftengine.core.util.Key; import java.util.Map; -import java.util.Objects; public class TimeRangeDispatchProperty implements RangeDispatchProperty { public static final Factory FACTORY = new Factory(); diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/rangedisptach/UseCycleRangeDispatchProperty.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/rangedisptach/UseCycleRangeDispatchProperty.java index 522d05f30..972bcbbed 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/rangedisptach/UseCycleRangeDispatchProperty.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/rangedisptach/UseCycleRangeDispatchProperty.java @@ -2,7 +2,6 @@ package net.momirealms.craftengine.core.pack.model.rangedisptach; import com.google.gson.JsonObject; import net.momirealms.craftengine.core.util.Key; -import net.momirealms.craftengine.core.util.MiscUtils; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/select/BlockStateSelectProperty.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/select/BlockStateSelectProperty.java index 0e0944c97..d30e02f36 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/select/BlockStateSelectProperty.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/select/BlockStateSelectProperty.java @@ -5,7 +5,6 @@ import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigExce import net.momirealms.craftengine.core.util.Key; import java.util.Map; -import java.util.Objects; public class BlockStateSelectProperty implements SelectProperty { public static final Factory FACTORY = new Factory(); diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/select/CustomModelDataSelectProperty.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/select/CustomModelDataSelectProperty.java index a7f23ead6..cafd0e00a 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/select/CustomModelDataSelectProperty.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/select/CustomModelDataSelectProperty.java @@ -2,7 +2,6 @@ package net.momirealms.craftengine.core.pack.model.select; import com.google.gson.JsonObject; import net.momirealms.craftengine.core.util.Key; -import net.momirealms.craftengine.core.util.MiscUtils; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/select/LocalTimeSelectProperty.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/select/LocalTimeSelectProperty.java index 84e97c1c8..ec8cec8a6 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/select/LocalTimeSelectProperty.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/select/LocalTimeSelectProperty.java @@ -6,7 +6,6 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.Map; -import java.util.Objects; public class LocalTimeSelectProperty implements SelectProperty { public static final Factory FACTORY = new Factory(); diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/special/ChestSpecialModel.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/special/ChestSpecialModel.java index 8acbfaca4..a0a2fd810 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/special/ChestSpecialModel.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/special/ChestSpecialModel.java @@ -2,7 +2,6 @@ package net.momirealms.craftengine.core.pack.model.special; import com.google.gson.JsonObject; import net.momirealms.craftengine.core.util.Key; -import net.momirealms.craftengine.core.util.MiscUtils; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/special/HeadSpecialModel.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/special/HeadSpecialModel.java index 355aefef5..7c67497df 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/special/HeadSpecialModel.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/special/HeadSpecialModel.java @@ -2,7 +2,6 @@ package net.momirealms.craftengine.core.pack.model.special; import com.google.gson.JsonObject; import net.momirealms.craftengine.core.util.Key; -import net.momirealms.craftengine.core.util.MiscUtils; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/special/ShulkerBoxSpecialModel.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/special/ShulkerBoxSpecialModel.java index 2c01f9048..69807c639 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/special/ShulkerBoxSpecialModel.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/special/ShulkerBoxSpecialModel.java @@ -3,7 +3,6 @@ package net.momirealms.craftengine.core.pack.model.special; import com.google.gson.JsonObject; import net.momirealms.craftengine.core.util.Direction; import net.momirealms.craftengine.core.util.Key; -import net.momirealms.craftengine.core.util.MiscUtils; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Locale; diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/tint/CustomModelDataTint.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/tint/CustomModelDataTint.java index df14b2b50..c76be9f9e 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/tint/CustomModelDataTint.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/tint/CustomModelDataTint.java @@ -1,9 +1,7 @@ package net.momirealms.craftengine.core.pack.model.tint; import com.google.gson.JsonObject; -import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigException; import net.momirealms.craftengine.core.util.Key; -import net.momirealms.craftengine.core.util.MiscUtils; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import org.incendo.cloud.type.Either; diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/tint/GrassTint.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/tint/GrassTint.java index e20a2d6fd..d579c0c43 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/tint/GrassTint.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/tint/GrassTint.java @@ -3,7 +3,6 @@ package net.momirealms.craftengine.core.pack.model.tint; import com.google.gson.JsonObject; import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigException; import net.momirealms.craftengine.core.util.Key; -import net.momirealms.craftengine.core.util.MiscUtils; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/ListTemplateArgument.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/ListTemplateArgument.java index 2b5daca92..0ed041519 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/ListTemplateArgument.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/ListTemplateArgument.java @@ -1,10 +1,11 @@ package net.momirealms.craftengine.core.plugin.config.template; +import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigException; import net.momirealms.craftengine.core.util.Key; -import net.momirealms.craftengine.core.util.MiscUtils; import java.util.List; import java.util.Map; +import java.util.function.Supplier; public class ListTemplateArgument implements TemplateArgument { public static final Factory FACTORY = new Factory(); @@ -28,7 +29,16 @@ public class ListTemplateArgument implements TemplateArgument { @Override public TemplateArgument create(Map arguments) { - return new ListTemplateArgument(MiscUtils.castToList(arguments.getOrDefault("list", List.of()), false)); + Object list = arguments.getOrDefault("list", List.of()); + return new ListTemplateArgument(castToListOrThrow(list, () -> new LocalizedResourceConfigException("warning.config.template.argument.list.invalid_type", list.getClass().getSimpleName()))); + } + + @SuppressWarnings("unchecked") + private static List castToListOrThrow(Object obj, Supplier throwableSupplier) { + if (obj instanceof List list) { + return (List) list; + } + throw throwableSupplier.get(); } } } diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/SelfIncreaseIntTemplateArgument.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/SelfIncreaseIntTemplateArgument.java index daf5e89e1..d99690814 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/SelfIncreaseIntTemplateArgument.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/SelfIncreaseIntTemplateArgument.java @@ -2,9 +2,7 @@ package net.momirealms.craftengine.core.plugin.config.template; import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigException; import net.momirealms.craftengine.core.util.Key; -import net.momirealms.craftengine.core.util.MiscUtils; import net.momirealms.craftengine.core.util.ResourceConfigUtils; -import software.amazon.awssdk.services.s3.endpoints.internal.Value; import java.util.Map; diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/TemplateManagerImpl.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/TemplateManagerImpl.java index 7ae3a8aac..080dfa9ba 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/TemplateManagerImpl.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/TemplateManagerImpl.java @@ -4,11 +4,9 @@ import net.momirealms.craftengine.core.pack.LoadingSequence; import net.momirealms.craftengine.core.pack.Pack; import net.momirealms.craftengine.core.plugin.config.ConfigSectionParser; import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigException; -import net.momirealms.craftengine.core.plugin.locale.TranslationManager; import net.momirealms.craftengine.core.util.GsonHelper; import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.MiscUtils; -import net.momirealms.craftengine.core.util.ResourceConfigUtils; import org.jetbrains.annotations.NotNull; import java.nio.file.Path; diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/locale/TranslationManagerImpl.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/locale/TranslationManagerImpl.java index 9731503ee..1d540278e 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/locale/TranslationManagerImpl.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/locale/TranslationManagerImpl.java @@ -226,7 +226,7 @@ public class TranslationManagerImpl implements TranslationManager { @Override public void log(String id, String... args) { String translation = miniMessageTranslation(id); - if (translation == null) translation = id; + if (translation == null || translation.isEmpty()) translation = id; this.plugin.senderFactory().console().sendMessage(AdventureHelper.miniMessage().deserialize(translation, new IndexedArgumentTag(Arrays.stream(args).map(Component::text).toList()))); } diff --git a/core/src/main/java/net/momirealms/craftengine/core/sound/Sound.java b/core/src/main/java/net/momirealms/craftengine/core/sound/Sound.java index ec16fd8dc..c33b5b114 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/sound/Sound.java +++ b/core/src/main/java/net/momirealms/craftengine/core/sound/Sound.java @@ -4,7 +4,6 @@ import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonPrimitive; import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigException; -import net.momirealms.craftengine.core.util.MiscUtils; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.HashMap; diff --git a/core/src/main/java/net/momirealms/craftengine/core/util/MiscUtils.java b/core/src/main/java/net/momirealms/craftengine/core/util/MiscUtils.java index e8159bef3..c208c1c2f 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/util/MiscUtils.java +++ b/core/src/main/java/net/momirealms/craftengine/core/util/MiscUtils.java @@ -23,17 +23,6 @@ public class MiscUtils { throw new IllegalArgumentException("Expected Map, got: " + (obj == null ? null : obj.getClass().getSimpleName())); } - @SuppressWarnings("unchecked") - public static List castToList(Object obj, boolean allowNull) { - if (allowNull && obj == null) { - return null; - } - if (obj instanceof List list) { - return (List) list; - } - throw new IllegalArgumentException("Expected List, got: " + obj.getClass().getSimpleName()); - } - public static List getAsStringList(Object o) { List list = new ArrayList<>(); if (o instanceof List) { 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 172c9da89..888bb15e8 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 @@ -2,8 +2,6 @@ package net.momirealms.craftengine.core.util; import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigException; -import java.util.Map; - public final class ResourceConfigUtils { private ResourceConfigUtils() {}