From 5c6b90eb18c8ad0b64135223b12e0f907ca53620 Mon Sep 17 00:00:00 2001 From: XiaoMoMi Date: Sat, 27 Dec 2025 20:07:46 +0800 Subject: [PATCH 1/8] =?UTF-8?q?=E9=87=8D=E6=9E=84=E6=88=98=E5=88=A9?= =?UTF-8?q?=E5=93=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../worldguard/WorldGuardRegionCondition.java | 1 - .../craftengine/core/loot/LootConditions.java | 112 ------------------ .../craftengine/core/loot/LootPool.java | 19 ++- .../craftengine/core/loot/LootTable.java | 25 +--- .../entry/AbstractLootEntryContainer.java | 3 - .../entry/AlternativesLootEntryContainer.java | 23 ++-- .../loot/entry/EmptyLoopEntryContainer.java | 18 +-- .../loot/entry/ExpLootEntryContainer.java | 16 +-- .../FurnitureItemLootEntryContainer.java | 25 ++-- .../loot/entry/LootEntryContainerType.java | 6 + .../core/loot/entry/LootEntryContainers.java | 46 +++---- .../entry/SingleItemLootEntryContainer.java | 28 ++--- .../AbstractLootConditionalFunction.java | 2 - .../function/ApplyBonusCountFunction.java | 20 +--- .../core/loot/function/ApplyDataFunction.java | 24 ++-- .../core/loot/function/DropExpFunction.java | 20 +--- .../loot/function/ExplosionDecayFunction.java | 20 ++-- .../loot/function/LimitCountFunction.java | 23 ++-- .../core/loot/function/LootFunction.java | 3 - .../core/loot/function/LootFunctionType.java | 6 + .../core/loot/function/LootFunctions.java | 47 +++----- .../core/loot/function/SetCountFunction.java | 23 ++-- .../pack/conflict/matcher/PathMatchers.java | 5 +- .../pack/conflict/resolution/Resolution.java | 1 - .../core/pack/model/definition/ItemModel.java | 1 - .../condition/ConditionProperties.java | 1 - .../condition/ConditionProperty.java | 1 - .../core/pack/model/definition/tint/Tint.java | 1 - .../pack/model/simplified/BowModelReader.java | 1 - .../model/simplified/CrossbowModelReader.java | 1 - .../simplified/GeneratedModelReader.java | 1 - .../condition/AlwaysFalseCondition.java | 2 - .../context/condition/AnyOfCondition.java | 1 - .../context/function/AllOfFunction.java | 1 - .../context/function/DummyFunction.java | 1 - .../plugin/context/function/Function.java | 1 - .../core/registry/BuiltInRegistries.java | 13 +- .../craftengine/core/registry/Registries.java | 14 +-- 38 files changed, 148 insertions(+), 408 deletions(-) delete mode 100644 core/src/main/java/net/momirealms/craftengine/core/loot/LootConditions.java create mode 100644 core/src/main/java/net/momirealms/craftengine/core/loot/entry/LootEntryContainerType.java create mode 100644 core/src/main/java/net/momirealms/craftengine/core/loot/function/LootFunctionType.java diff --git a/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/worldguard/WorldGuardRegionCondition.java b/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/worldguard/WorldGuardRegionCondition.java index 965de9bf3..1726f1098 100644 --- a/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/worldguard/WorldGuardRegionCondition.java +++ b/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/worldguard/WorldGuardRegionCondition.java @@ -8,7 +8,6 @@ import com.sk89q.worldguard.protection.managers.RegionManager; import com.sk89q.worldguard.protection.regions.ProtectedRegion; import net.momirealms.craftengine.core.plugin.context.Condition; import net.momirealms.craftengine.core.plugin.context.Context; -import net.momirealms.craftengine.core.plugin.context.condition.AlwaysTrueCondition; import net.momirealms.craftengine.core.plugin.context.condition.ConditionFactory; import net.momirealms.craftengine.core.plugin.context.parameter.DirectContextParameters; import net.momirealms.craftengine.core.util.Key; diff --git a/core/src/main/java/net/momirealms/craftengine/core/loot/LootConditions.java b/core/src/main/java/net/momirealms/craftengine/core/loot/LootConditions.java deleted file mode 100644 index 785b0c048..000000000 --- a/core/src/main/java/net/momirealms/craftengine/core/loot/LootConditions.java +++ /dev/null @@ -1,112 +0,0 @@ -package net.momirealms.craftengine.core.loot; - -import net.momirealms.craftengine.core.plugin.context.Condition; -import net.momirealms.craftengine.core.plugin.context.condition.*; -import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigException; -import net.momirealms.craftengine.core.registry.BuiltInRegistries; -import net.momirealms.craftengine.core.registry.Registries; -import net.momirealms.craftengine.core.registry.WritableRegistry; -import net.momirealms.craftengine.core.util.Key; -import net.momirealms.craftengine.core.util.ResourceConfigUtils; -import net.momirealms.craftengine.core.util.ResourceKey; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.function.Predicate; - -public class LootConditions { - - static { - register(CommonConditions.MATCH_ITEM, MatchItemCondition.factory()); - register(CommonConditions.MATCH_BLOCK_PROPERTY, MatchBlockPropertyCondition.factory()); - register(CommonConditions.TABLE_BONUS, TableBonusCondition.factory()); - register(CommonConditions.SURVIVES_EXPLOSION, SurvivesExplosionCondition.factory()); - register(CommonConditions.ANY_OF, AnyOfCondition.factory(LootConditions::fromMap)); - register(CommonConditions.ALL_OF, AllOfCondition.factory(LootConditions::fromMap)); - register(CommonConditions.HAS_PLAYER, HasPlayerCondition.factory()); - register(CommonConditions.HAS_ITEM, HasItemCondition.factory()); - register(CommonConditions.ENCHANTMENT, EnchantmentCondition.factory()); - register(CommonConditions.INVERTED, InvertedCondition.factory(LootConditions::fromMap)); - register(CommonConditions.FALLING_BLOCK, FallingBlockCondition.factory()); - register(CommonConditions.RANDOM, RandomCondition.factory()); - register(CommonConditions.DISTANCE, DistanceCondition.factory()); - register(CommonConditions.PERMISSION, PermissionCondition.factory()); - register(CommonConditions.EQUALS, StringEqualsCondition.factory()); - register(CommonConditions.STRING_REGEX, StringRegexCondition.factory()); - register(CommonConditions.STRING_EQUALS, StringEqualsCondition.factory()); - register(CommonConditions.STRING_CONTAINS, StringContainsCondition.factory()); - register(CommonConditions.EXPRESSION, ExpressionCondition.factory()); - register(CommonConditions.IS_NULL, IsNullCondition.factory()); - register(CommonConditions.HAND, HandCondition.factory()); - register(CommonConditions.ON_COOLDOWN, OnCooldownCondition.factory()); - register(CommonConditions.INVENTORY_HAS_ITEM, InventoryHasItemCondition.factory()); - register(CommonConditions.MATCH_FURNITURE_VARIANT, MatchFurnitureVariantCondition.factory()); - } - - public static void register(Key key, ConditionFactory factory) { - ((WritableRegistry>) BuiltInRegistries.LOOT_CONDITION_FACTORY) - .register(ResourceKey.create(Registries.LOOT_CONDITION_FACTORY.location(), key), factory); - } - - public static Predicate andConditions(List> predicates) { - List> list = List.copyOf(predicates); - return switch (list.size()) { - case 0 -> ctx -> true; - case 1 -> list.get(0); - case 2 -> list.get(0).and(list.get(1)); - default -> (ctx -> { - for (Predicate predicate : list) { - if (!predicate.test(ctx)) { - return false; - } - } - return true; - }); - }; - } - - public static Predicate orConditions(List> predicates) { - List> list = List.copyOf(predicates); - return switch (list.size()) { - case 0 -> ctx -> false; - case 1 -> list.get(0); - case 2 -> list.get(0).or(list.get(1)); - default -> (ctx -> { - for (Predicate predicate : list) { - if (predicate.test(ctx)) { - return true; - } - } - return false; - }); - }; - } - - public static List> fromMapList(List> mapList) { - if (mapList == null || mapList.isEmpty()) return List.of(); - List> functions = new ArrayList<>(); - for (Map map : mapList) { - functions.add(fromMap(map)); - } - return functions; - } - - public static Condition fromMap(Map map) { - String type = ResourceConfigUtils.requireNonEmptyStringOrThrow(map.get("type"), "warning.config.loot_table.condition.missing_type"); - Key key = Key.withDefaultNamespace(type, Key.DEFAULT_NAMESPACE); - if (key.value().charAt(0) == '!') { - ConditionFactory factory = BuiltInRegistries.LOOT_CONDITION_FACTORY.getValue(new Key(key.namespace(), key.value().substring(1))); - if (factory == null) { - throw new LocalizedResourceConfigException("warning.config.loot_table.condition.invalid_type", type); - } - return new InvertedCondition<>(factory.create(map)); - } else { - ConditionFactory factory = BuiltInRegistries.LOOT_CONDITION_FACTORY.getValue(key); - if (factory == null) { - throw new LocalizedResourceConfigException("warning.config.loot_table.condition.invalid_type", type); - } - return factory.create(map); - } - } -} diff --git a/core/src/main/java/net/momirealms/craftengine/core/loot/LootPool.java b/core/src/main/java/net/momirealms/craftengine/core/loot/LootPool.java index f82d2a7e9..828e30b13 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/loot/LootPool.java +++ b/core/src/main/java/net/momirealms/craftengine/core/loot/LootPool.java @@ -17,31 +17,28 @@ import java.util.function.BiFunction; import java.util.function.Consumer; import java.util.function.Predicate; -public class LootPool { +public final class LootPool { private final List> entryContainers; - private final List> conditions; private final Predicate compositeCondition; private final List> functions; private final BiFunction, LootContext, Item> compositeFunction; private final NumberProvider rolls; private final NumberProvider bonusRolls; - public LootPool(List> entryContainers, List> conditions, List> functions, NumberProvider rolls, NumberProvider bonusRolls) { + public LootPool(List> entryContainers, + List> conditions, + List> functions, + NumberProvider rolls, + NumberProvider bonusRolls) { this.entryContainers = entryContainers; - this.conditions = conditions; this.functions = functions; this.rolls = rolls; this.bonusRolls = bonusRolls; - this.compositeCondition = LootConditions.andConditions(conditions); + this.compositeCondition = MiscUtils.allOf(conditions); this.compositeFunction = LootFunctions.compose(functions); } public void addRandomItems(Consumer> lootConsumer, LootContext context) { - for (Condition condition : this.conditions) { - if (!condition.test(context)) { - return; - } - } if (this.compositeCondition.test(context)) { Consumer> consumer = LootFunction.decorate(this.compositeFunction, lootConsumer, context); int i = this.rolls.getInt(context) + MiscUtils.floor(this.bonusRolls.getFloat(context) * context.luck()); @@ -75,7 +72,7 @@ public class LootPool { int i = list.size(); if (mutableInt.intValue() != 0 && i != 0) { if (i == 1) { - list.get(0).createItem(lootConsumer, context); + list.getFirst().createItem(lootConsumer, context); } else { int j = RandomUtils.generateRandomInt(0, mutableInt.intValue()); for (LootEntry loot : list) { diff --git a/core/src/main/java/net/momirealms/craftengine/core/loot/LootTable.java b/core/src/main/java/net/momirealms/craftengine/core/loot/LootTable.java index 662cefcea..83bdb44d4 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/loot/LootTable.java +++ b/core/src/main/java/net/momirealms/craftengine/core/loot/LootTable.java @@ -1,12 +1,12 @@ package net.momirealms.craftengine.core.loot; -import com.google.common.collect.Lists; import net.momirealms.craftengine.core.entity.player.Player; import net.momirealms.craftengine.core.item.Item; import net.momirealms.craftengine.core.loot.entry.LootEntryContainer; import net.momirealms.craftengine.core.loot.entry.LootEntryContainers; import net.momirealms.craftengine.core.loot.function.LootFunction; import net.momirealms.craftengine.core.loot.function.LootFunctions; +import net.momirealms.craftengine.core.plugin.context.CommonConditions; import net.momirealms.craftengine.core.plugin.context.Condition; import net.momirealms.craftengine.core.plugin.context.ContextHolder; import net.momirealms.craftengine.core.plugin.context.number.NumberProvider; @@ -20,7 +20,6 @@ import org.jetbrains.annotations.Nullable; import java.util.ArrayList; import java.util.List; import java.util.Map; -import java.util.Optional; import java.util.function.BiFunction; import java.util.function.Consumer; import java.util.function.Supplier; @@ -51,18 +50,9 @@ public class LootTable { Map pool = MiscUtils.castToMap(rawPoolMap, false); NumberProvider rolls = NumberProviders.fromObject(pool.getOrDefault("rolls", 1)); NumberProvider bonus_rolls = NumberProviders.fromObject(pool.getOrDefault("bonus_rolls", 0)); - List> conditions = Optional.ofNullable(pool.get("conditions")) - .map(it -> LootConditions.fromMapList(castToMapListOrThrow(it, - () -> new LocalizedResourceConfigException("warning.config.loot_table.invalid_conditions_type", it.getClass().getSimpleName())))) - .orElse(Lists.newArrayList()); - List> containers = Optional.ofNullable(pool.get("entries")) - .map(it -> (List>) new ArrayList>(LootEntryContainers.fromMapList(castToMapListOrThrow(it, - () -> new LocalizedResourceConfigException("warning.config.loot_table.invalid_entries_type", it.getClass().getSimpleName()))))) - .orElse(Lists.newArrayList()); - List> functions = Optional.ofNullable(pool.get("functions")) - .map(it -> (List>) new ArrayList>(LootFunctions.fromMapList(castToMapListOrThrow(it, - () -> new LocalizedResourceConfigException("warning.config.loot_table.invalid_functions_type", it.getClass().getSimpleName()))))) - .orElse(Lists.newArrayList()); + List> conditions = ResourceConfigUtils.parseConfigAsList(pool.get("conditions"), CommonConditions::fromMap); + List> containers = ResourceConfigUtils.parseConfigAsList(pool.get("entries"), LootEntryContainers::fromMap); + List> functions = ResourceConfigUtils.parseConfigAsList(pool.get("functions"), LootFunctions::fromMap); lootPools.add(new LootPool<>(containers, conditions, functions, rolls, bonus_rolls)); } else if (rawPool instanceof String string) { LootPool lootPool = readFlatFormatLootPool(string); @@ -70,12 +60,7 @@ public class LootTable { lootPools.add(lootPool); } } - return new LootTable<>(lootPools, - Optional.ofNullable(map.get("functions")) - .map(it -> (List>) new ArrayList>(LootFunctions.fromMapList(castToMapListOrThrow(it, - () -> new LocalizedResourceConfigException("warning.config.loot_table.invalid_functions_type", it.getClass().getSimpleName()))))) - .orElse(Lists.newArrayList()) - ); + return new LootTable<>(lootPools, ResourceConfigUtils.parseConfigAsList(map.get("functions"), LootFunctions::fromMap)); } public List> getRandomItems(ContextHolder parameters, World world) { diff --git a/core/src/main/java/net/momirealms/craftengine/core/loot/entry/AbstractLootEntryContainer.java b/core/src/main/java/net/momirealms/craftengine/core/loot/entry/AbstractLootEntryContainer.java index 0f860d061..3e5670d4a 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/loot/entry/AbstractLootEntryContainer.java +++ b/core/src/main/java/net/momirealms/craftengine/core/loot/entry/AbstractLootEntryContainer.java @@ -2,7 +2,6 @@ package net.momirealms.craftengine.core.loot.entry; import net.momirealms.craftengine.core.loot.LootContext; import net.momirealms.craftengine.core.plugin.context.Condition; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.MiscUtils; import java.util.List; @@ -21,6 +20,4 @@ public abstract class AbstractLootEntryContainer implements LootEntryContaine public final boolean test(LootContext context) { return this.compositeCondition.test(context); } - - public abstract Key type(); } \ No newline at end of file diff --git a/core/src/main/java/net/momirealms/craftengine/core/loot/entry/AlternativesLootEntryContainer.java b/core/src/main/java/net/momirealms/craftengine/core/loot/entry/AlternativesLootEntryContainer.java index 18cb4ff0b..76d3058b2 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/loot/entry/AlternativesLootEntryContainer.java +++ b/core/src/main/java/net/momirealms/craftengine/core/loot/entry/AlternativesLootEntryContainer.java @@ -1,15 +1,17 @@ package net.momirealms.craftengine.core.loot.entry; -import net.momirealms.craftengine.core.loot.LootConditions; import net.momirealms.craftengine.core.loot.LootContext; +import net.momirealms.craftengine.core.plugin.context.CommonConditions; import net.momirealms.craftengine.core.plugin.context.Condition; import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; -import java.util.*; +import java.util.List; +import java.util.Map; public class AlternativesLootEntryContainer extends AbstractCompositeLootEntryContainer { - public static final Factory FACTORY = new Factory<>(); + public static final Key ID = Key.from("craftengine:alternatives"); + public static final LootEntryContainerFactory FACTORY = new Factory<>(); protected AlternativesLootEntryContainer(List> conditions, List> children) { super(conditions, children); @@ -32,21 +34,12 @@ public class AlternativesLootEntryContainer extends AbstractCompositeLootEntr }; } - @Override - public Key type() { - return LootEntryContainers.ALTERNATIVES; - } + private static class Factory implements LootEntryContainerFactory { - public static class Factory implements LootEntryContainerFactory { - @SuppressWarnings("unchecked") @Override public LootEntryContainer create(Map arguments) { - List> containers = Optional.ofNullable(ResourceConfigUtils.get(arguments, "children", "terms", "branches")) - .map(it -> (List>) new ArrayList>(LootEntryContainers.fromMapList((List>) it))) - .orElse(Collections.emptyList()); - List> conditions = Optional.ofNullable(arguments.get("conditions")) - .map(it -> LootConditions.fromMapList((List>) it)) - .orElse(Collections.emptyList()); + List> containers = ResourceConfigUtils.parseConfigAsList(ResourceConfigUtils.get(arguments, "children", "terms", "branches"), LootEntryContainers::fromMap); + List> conditions = ResourceConfigUtils.parseConfigAsList(arguments.get("conditions"), CommonConditions::fromMap); return new AlternativesLootEntryContainer<>(conditions, containers); } } diff --git a/core/src/main/java/net/momirealms/craftengine/core/loot/entry/EmptyLoopEntryContainer.java b/core/src/main/java/net/momirealms/craftengine/core/loot/entry/EmptyLoopEntryContainer.java index 32d71af6c..48f9e72ab 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/loot/entry/EmptyLoopEntryContainer.java +++ b/core/src/main/java/net/momirealms/craftengine/core/loot/entry/EmptyLoopEntryContainer.java @@ -1,20 +1,19 @@ package net.momirealms.craftengine.core.loot.entry; import net.momirealms.craftengine.core.item.Item; -import net.momirealms.craftengine.core.loot.LootConditions; import net.momirealms.craftengine.core.loot.LootContext; +import net.momirealms.craftengine.core.plugin.context.CommonConditions; import net.momirealms.craftengine.core.plugin.context.Condition; import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; -import java.util.Collections; import java.util.List; import java.util.Map; -import java.util.Optional; import java.util.function.Consumer; public class EmptyLoopEntryContainer extends AbstractSingleLootEntryContainer { - public static final Factory FACTORY = new Factory<>(); + public static final Key ID = Key.from("craftengine:empty"); + public static final LootEntryContainerFactory FACTORY = new Factory<>(); protected EmptyLoopEntryContainer(List> conditions, int weight, int quality) { super(conditions, null, weight, quality); @@ -23,20 +22,13 @@ public class EmptyLoopEntryContainer extends AbstractSingleLootEntryContainer @Override protected void createItem(Consumer> lootConsumer, LootContext context) {} - @Override - public Key type() { - return LootEntryContainers.EMPTY; - } + private static class Factory implements LootEntryContainerFactory { - public static class Factory implements LootEntryContainerFactory { - @SuppressWarnings("unchecked") @Override public LootEntryContainer create(Map arguments) { int weight = ResourceConfigUtils.getAsInt(arguments.getOrDefault("weight", 1), "weight"); int quality = ResourceConfigUtils.getAsInt(arguments.getOrDefault("quality", 0), "quality"); - List> conditions = Optional.ofNullable(arguments.get("conditions")) - .map(it -> LootConditions.fromMapList((List>) it)) - .orElse(Collections.emptyList()); + List> conditions = ResourceConfigUtils.parseConfigAsList(arguments.get("conditions"), CommonConditions::fromMap); return new EmptyLoopEntryContainer<>(conditions, weight, quality); } } diff --git a/core/src/main/java/net/momirealms/craftengine/core/loot/entry/ExpLootEntryContainer.java b/core/src/main/java/net/momirealms/craftengine/core/loot/entry/ExpLootEntryContainer.java index 19dae5698..c28027816 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/loot/entry/ExpLootEntryContainer.java +++ b/core/src/main/java/net/momirealms/craftengine/core/loot/entry/ExpLootEntryContainer.java @@ -1,7 +1,7 @@ package net.momirealms.craftengine.core.loot.entry; -import net.momirealms.craftengine.core.loot.LootConditions; import net.momirealms.craftengine.core.loot.LootContext; +import net.momirealms.craftengine.core.plugin.context.CommonConditions; import net.momirealms.craftengine.core.plugin.context.Condition; import net.momirealms.craftengine.core.plugin.context.number.NumberProvider; import net.momirealms.craftengine.core.plugin.context.number.NumberProviders; @@ -9,13 +9,12 @@ import net.momirealms.craftengine.core.plugin.context.parameter.DirectContextPar import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; -import java.util.Collections; import java.util.List; import java.util.Map; -import java.util.Optional; import java.util.function.Consumer; public class ExpLootEntryContainer extends AbstractLootEntryContainer { + public static final Key ID = Key.from("craftengine:exp"); public static final Factory FACTORY = new Factory<>(); private final NumberProvider value; @@ -24,11 +23,6 @@ public class ExpLootEntryContainer extends AbstractLootEntryContainer { this.value = value; } - @Override - public Key type() { - return LootEntryContainers.EXP; - } - @Override public boolean expand(LootContext context, Consumer> choiceConsumer) { if (super.test(context)) { @@ -41,13 +35,11 @@ public class ExpLootEntryContainer extends AbstractLootEntryContainer { } public static class Factory implements LootEntryContainerFactory { - @SuppressWarnings("unchecked") + @Override public LootEntryContainer create(Map arguments) { Object value = ResourceConfigUtils.requireNonNullOrThrow(arguments.get("count"), "warning.config.loot_table.entry.exp.missing_count"); - List> conditions = Optional.ofNullable(arguments.get("conditions")) - .map(it -> LootConditions.fromMapList((List>) it)) - .orElse(Collections.emptyList()); + List> conditions = ResourceConfigUtils.parseConfigAsList(arguments.get("conditions"), CommonConditions::fromMap); return new ExpLootEntryContainer<>(NumberProviders.fromObject(value), conditions); } } diff --git a/core/src/main/java/net/momirealms/craftengine/core/loot/entry/FurnitureItemLootEntryContainer.java b/core/src/main/java/net/momirealms/craftengine/core/loot/entry/FurnitureItemLootEntryContainer.java index 438ef2cd5..3f280b11f 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/loot/entry/FurnitureItemLootEntryContainer.java +++ b/core/src/main/java/net/momirealms/craftengine/core/loot/entry/FurnitureItemLootEntryContainer.java @@ -1,21 +1,23 @@ package net.momirealms.craftengine.core.loot.entry; import net.momirealms.craftengine.core.item.Item; -import net.momirealms.craftengine.core.loot.LootConditions; import net.momirealms.craftengine.core.loot.LootContext; import net.momirealms.craftengine.core.loot.function.LootFunction; import net.momirealms.craftengine.core.loot.function.LootFunctions; +import net.momirealms.craftengine.core.plugin.context.CommonConditions; import net.momirealms.craftengine.core.plugin.context.Condition; import net.momirealms.craftengine.core.plugin.context.parameter.DirectContextParameters; import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import org.jetbrains.annotations.Nullable; -import java.util.*; +import java.util.List; +import java.util.Map; +import java.util.Optional; import java.util.function.Consumer; public class FurnitureItemLootEntryContainer extends SingleItemLootEntryContainer { - public static final Factory FACTORY = new Factory<>(); + public static final LootEntryContainerFactory FACTORY = new Factory<>(); private final boolean hasFallback; protected FurnitureItemLootEntryContainer(@Nullable Key item, List> conditions, List> lootFunctions, int weight, int quality) { @@ -23,11 +25,6 @@ public class FurnitureItemLootEntryContainer extends SingleItemLootEntryConta this.hasFallback = item != null; } - @Override - public Key type() { - return LootEntryContainers.FURNITURE_ITEM; - } - @SuppressWarnings("unchecked") @Override protected void createItem(Consumer> lootConsumer, LootContext context) { @@ -39,19 +36,15 @@ public class FurnitureItemLootEntryContainer extends SingleItemLootEntryConta } } - public static class Factory implements LootEntryContainerFactory { - @SuppressWarnings("unchecked") + private static class Factory implements LootEntryContainerFactory { + @Override public LootEntryContainer create(Map arguments) { Key item = Optional.ofNullable(arguments.get("item")).map(String::valueOf).map(Key::of).orElse(null); int weight = ResourceConfigUtils.getAsInt(arguments.getOrDefault("weight", 1), "weight"); int quality = ResourceConfigUtils.getAsInt(arguments.getOrDefault("quality", 0), "quality"); - List> conditions = Optional.ofNullable(arguments.get("conditions")) - .map(it -> LootConditions.fromMapList((List>) it)) - .orElse(Collections.emptyList()); - List> functions = Optional.ofNullable(arguments.get("functions")) - .map(it -> (List>) new ArrayList>(LootFunctions.fromMapList((List>) it))) - .orElse(Collections.emptyList()); + List> conditions = ResourceConfigUtils.parseConfigAsList(arguments.get("conditions"), CommonConditions::fromMap); + List> functions = ResourceConfigUtils.parseConfigAsList(arguments.get("functions"), LootFunctions::fromMap); return new FurnitureItemLootEntryContainer<>(item, conditions, functions, weight, quality); } } diff --git a/core/src/main/java/net/momirealms/craftengine/core/loot/entry/LootEntryContainerType.java b/core/src/main/java/net/momirealms/craftengine/core/loot/entry/LootEntryContainerType.java new file mode 100644 index 000000000..ff5bc1512 --- /dev/null +++ b/core/src/main/java/net/momirealms/craftengine/core/loot/entry/LootEntryContainerType.java @@ -0,0 +1,6 @@ +package net.momirealms.craftengine.core.loot.entry; + +import net.momirealms.craftengine.core.util.Key; + +public record LootEntryContainerType(Key id, LootEntryContainerFactory factory) { +} diff --git a/core/src/main/java/net/momirealms/craftengine/core/loot/entry/LootEntryContainers.java b/core/src/main/java/net/momirealms/craftengine/core/loot/entry/LootEntryContainers.java index f28403072..a8a495640 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/loot/entry/LootEntryContainers.java +++ b/core/src/main/java/net/momirealms/craftengine/core/loot/entry/LootEntryContainers.java @@ -8,49 +8,33 @@ import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import net.momirealms.craftengine.core.util.ResourceKey; -import java.util.ArrayList; -import java.util.List; import java.util.Map; public class LootEntryContainers { - public static final Key ALTERNATIVES = Key.from("craftengine:alternatives"); - public static final Key IF_ELSE = Key.from("craftengine:if_else"); - public static final Key ITEM = Key.from("craftengine:item"); - public static final Key FURNITURE_ITEM = Key.from("craftengine:furniture_item"); - public static final Key EXP = Key.from("craftengine:exp"); - public static final Key EMPTY = Key.from("craftengine:empty"); + public static final LootEntryContainerType ALTERNATIVES = register(AlternativesLootEntryContainer.ID, AlternativesLootEntryContainer.FACTORY); + public static final LootEntryContainerType IF_ELSE = register(Key.from("craftengine:if_else"), AlternativesLootEntryContainer.FACTORY); + public static final LootEntryContainerType ITEM = register(SingleItemLootEntryContainer.ID, SingleItemLootEntryContainer.FACTORY); + public static final LootEntryContainerType EXP = register(ExpLootEntryContainer.ID, ExpLootEntryContainer.FACTORY); + public static final LootEntryContainerType FURNITURE_ITEM = register(FurnitureItemLootEntryContainer.ID, FurnitureItemLootEntryContainer.FACTORY); + public static final LootEntryContainerType EMPTY = register(EmptyLoopEntryContainer.ID, EmptyLoopEntryContainer.FACTORY); - static { - register(ALTERNATIVES, AlternativesLootEntryContainer.FACTORY); - register(IF_ELSE, AlternativesLootEntryContainer.FACTORY); - register(ITEM, SingleItemLootEntryContainer.FACTORY); - register(EXP, ExpLootEntryContainer.FACTORY); - register(FURNITURE_ITEM, FurnitureItemLootEntryContainer.FACTORY); - register(EMPTY, EmptyLoopEntryContainer.FACTORY); - } + protected LootEntryContainers() {} - public static void register(Key key, LootEntryContainerFactory factory) { - ((WritableRegistry>) BuiltInRegistries.LOOT_ENTRY_CONTAINER_FACTORY) - .register(ResourceKey.create(Registries.LOOT_ENTRY_CONTAINER_FACTORY.location(), key), factory); - } - - public static List> fromMapList(List> mapList) { - if (mapList == null || mapList.isEmpty()) return List.of(); - List> functions = new ArrayList<>(); - for (Map map : mapList) { - functions.add(fromMap(map)); - } - return functions; + public static LootEntryContainerType register(Key key, LootEntryContainerFactory factory) { + LootEntryContainerType type = new LootEntryContainerType<>(key, factory); + ((WritableRegistry>) BuiltInRegistries.LOOT_ENTRY_CONTAINER_TYPE) + .register(ResourceKey.create(Registries.LOOT_ENTRY_CONTAINER_TYPE.location(), key), type); + return type; } @SuppressWarnings("unchecked") public static LootEntryContainer fromMap(Map map) { String type = ResourceConfigUtils.requireNonEmptyStringOrThrow(map.get("type"), "warning.config.loot_table.entry.missing_type"); Key key = Key.withDefaultNamespace(type, Key.DEFAULT_NAMESPACE); - LootEntryContainerFactory factory = (LootEntryContainerFactory) BuiltInRegistries.LOOT_ENTRY_CONTAINER_FACTORY.getValue(key); - if (factory == null) { + LootEntryContainerType containerType = (LootEntryContainerType) BuiltInRegistries.LOOT_ENTRY_CONTAINER_TYPE.getValue(key); + if (containerType == null) { throw new LocalizedResourceConfigException("warning.config.loot_table.entry.invalid_type", type); } - return factory.create(map); + return containerType.factory().create(map); } } diff --git a/core/src/main/java/net/momirealms/craftengine/core/loot/entry/SingleItemLootEntryContainer.java b/core/src/main/java/net/momirealms/craftengine/core/loot/entry/SingleItemLootEntryContainer.java index 57929f117..38ff7b277 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/loot/entry/SingleItemLootEntryContainer.java +++ b/core/src/main/java/net/momirealms/craftengine/core/loot/entry/SingleItemLootEntryContainer.java @@ -1,21 +1,23 @@ package net.momirealms.craftengine.core.loot.entry; import net.momirealms.craftengine.core.item.Item; -import net.momirealms.craftengine.core.loot.LootConditions; import net.momirealms.craftengine.core.loot.LootContext; import net.momirealms.craftengine.core.loot.function.LootFunction; import net.momirealms.craftengine.core.loot.function.LootFunctions; import net.momirealms.craftengine.core.plugin.CraftEngine; +import net.momirealms.craftengine.core.plugin.context.CommonConditions; import net.momirealms.craftengine.core.plugin.context.Condition; import net.momirealms.craftengine.core.plugin.context.parameter.DirectContextParameters; import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; -import java.util.*; +import java.util.List; +import java.util.Map; import java.util.function.Consumer; public class SingleItemLootEntryContainer extends AbstractSingleLootEntryContainer { - public static final Factory FACTORY = new Factory<>(); + public static final Key ID = Key.from("craftengine:item"); + public static final LootEntryContainerFactory FACTORY = new Factory<>(); private final Key item; protected SingleItemLootEntryContainer(Key item, List> conditions, List> lootFunctions, int weight, int quality) { @@ -23,11 +25,6 @@ public class SingleItemLootEntryContainer extends AbstractSingleLootEntryCont this.item = item; } - @Override - public Key type() { - return LootEntryContainers.ITEM; - } - @SuppressWarnings("unchecked") @Override protected void createItem(Consumer> lootConsumer, LootContext context) { @@ -39,20 +36,15 @@ public class SingleItemLootEntryContainer extends AbstractSingleLootEntryCont } } - public static class Factory implements LootEntryContainerFactory { - @SuppressWarnings("unchecked") + private static class Factory implements LootEntryContainerFactory { + @Override public LootEntryContainer create(Map arguments) { - String itemObj = ResourceConfigUtils.requireNonEmptyStringOrThrow(ResourceConfigUtils.get(arguments, "item", "id"), "warning.config.loot_table.entry.item.missing_item"); - Key item = Key.from(itemObj); + Key item = Key.from(ResourceConfigUtils.requireNonEmptyStringOrThrow(ResourceConfigUtils.get(arguments, "item", "id"), "warning.config.loot_table.entry.item.missing_item")); int weight = ResourceConfigUtils.getAsInt(arguments.getOrDefault("weight", 1), "weight"); int quality = ResourceConfigUtils.getAsInt(arguments.getOrDefault("quality", 0), "quality"); - List> conditions = Optional.ofNullable(arguments.get("conditions")) - .map(it -> LootConditions.fromMapList((List>) it)) - .orElse(Collections.emptyList()); - List> functions = Optional.ofNullable(arguments.get("functions")) - .map(it -> (List>) new ArrayList>(LootFunctions.fromMapList((List>) it))) - .orElse(Collections.emptyList()); + List> conditions = ResourceConfigUtils.parseConfigAsList(arguments.get("conditions"), CommonConditions::fromMap); + List> functions = ResourceConfigUtils.parseConfigAsList(arguments.get("functions"), LootFunctions::fromMap); return new SingleItemLootEntryContainer<>(item, conditions, functions, weight, quality); } } diff --git a/core/src/main/java/net/momirealms/craftengine/core/loot/function/AbstractLootConditionalFunction.java b/core/src/main/java/net/momirealms/craftengine/core/loot/function/AbstractLootConditionalFunction.java index 7169d2cad..776128e4d 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/loot/function/AbstractLootConditionalFunction.java +++ b/core/src/main/java/net/momirealms/craftengine/core/loot/function/AbstractLootConditionalFunction.java @@ -9,11 +9,9 @@ import java.util.List; import java.util.function.Predicate; public abstract class AbstractLootConditionalFunction implements LootFunction { - protected final List> predicates; private final Predicate compositePredicates; public AbstractLootConditionalFunction(List> predicates) { - this.predicates = predicates; this.compositePredicates = MiscUtils.allOf(predicates); } 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 c0475500d..d909da11a 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 @@ -2,8 +2,8 @@ package net.momirealms.craftengine.core.loot.function; import net.momirealms.craftengine.core.item.Item; import net.momirealms.craftengine.core.item.data.Enchantment; -import net.momirealms.craftengine.core.loot.LootConditions; import net.momirealms.craftengine.core.loot.LootContext; +import net.momirealms.craftengine.core.plugin.context.CommonConditions; import net.momirealms.craftengine.core.plugin.context.Condition; import net.momirealms.craftengine.core.plugin.context.parameter.DirectContextParameters; import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigException; @@ -12,13 +12,13 @@ import net.momirealms.craftengine.core.registry.Registries; import net.momirealms.craftengine.core.registry.WritableRegistry; import net.momirealms.craftengine.core.util.*; -import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Optional; -public class ApplyBonusCountFunction extends AbstractLootConditionalFunction { - public static final Factory FACTORY = new Factory<>(); +public final class ApplyBonusCountFunction extends AbstractLootConditionalFunction { + public static final Key ID = Key.from("craftengine:apply_bonus"); + public static final LootFunctionFactory FACTORY = new Factory<>(); private final Key enchantment; private final Formula formula; @@ -37,14 +37,8 @@ public class ApplyBonusCountFunction extends AbstractLootConditionalFunction< return item; } - @Override - public Key type() { - return LootFunctions.APPLY_BONUS; - } + private static class Factory implements LootFunctionFactory { - public static class Factory implements LootFunctionFactory { - - @SuppressWarnings("unchecked") @Override public LootFunction create(Map arguments) { String enchantment = ResourceConfigUtils.requireNonEmptyStringOrThrow(arguments.get("enchantment"), "warning.config.loot_table.function.apply_bonus.missing_enchantment"); @@ -52,9 +46,7 @@ public class ApplyBonusCountFunction extends AbstractLootConditionalFunction< if (formulaMap == null) { throw new LocalizedResourceConfigException("warning.config.loot_table.function.apply_bonus.missing_formula"); } - List> conditions = Optional.ofNullable(arguments.get("conditions")) - .map(it -> LootConditions.fromMapList((List>) it)) - .orElse(Collections.emptyList()); + List> conditions = ResourceConfigUtils.parseConfigAsList(arguments.get("conditions"), CommonConditions::fromMap); return new ApplyBonusCountFunction<>(conditions, Key.from(enchantment), Formulas.fromMap(formulaMap)); } } diff --git a/core/src/main/java/net/momirealms/craftengine/core/loot/function/ApplyDataFunction.java b/core/src/main/java/net/momirealms/craftengine/core/loot/function/ApplyDataFunction.java index f71e40898..11fd30a2a 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/loot/function/ApplyDataFunction.java +++ b/core/src/main/java/net/momirealms/craftengine/core/loot/function/ApplyDataFunction.java @@ -4,16 +4,19 @@ import net.momirealms.craftengine.core.item.Item; import net.momirealms.craftengine.core.item.ItemBuildContext; import net.momirealms.craftengine.core.item.processor.ItemProcessor; import net.momirealms.craftengine.core.item.processor.ItemProcessors; -import net.momirealms.craftengine.core.loot.LootConditions; import net.momirealms.craftengine.core.loot.LootContext; +import net.momirealms.craftengine.core.plugin.context.CommonConditions; import net.momirealms.craftengine.core.plugin.context.Condition; import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; -import java.util.*; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; -public class ApplyDataFunction extends AbstractLootConditionalFunction { - public static final Factory FACTORY = new Factory<>(); +public final class ApplyDataFunction extends AbstractLootConditionalFunction { + public static final Key ID = Key.from("craftengine:apply_data"); + public static final LootFunctionFactory FACTORY = new Factory<>(); private final ItemProcessor[] modifiers; public ApplyDataFunction(List> conditions, ItemProcessor[] modifiers) { @@ -21,11 +24,6 @@ public class ApplyDataFunction extends AbstractLootConditionalFunction { this.modifiers = modifiers; } - @Override - public Key type() { - return LootFunctions.APPLY_DATA; - } - @SuppressWarnings({"unchecked", "rawtypes"}) @Override protected Item applyInternal(Item item, LootContext context) { @@ -36,16 +34,14 @@ public class ApplyDataFunction extends AbstractLootConditionalFunction { return item; } - public static class Factory implements LootFunctionFactory { - @SuppressWarnings("unchecked") + private static class Factory implements LootFunctionFactory { + @Override public LootFunction create(Map arguments) { List> modifiers = new ArrayList<>(); Map data = ResourceConfigUtils.getAsMap(ResourceConfigUtils.requireNonNullOrThrow(arguments.get("data"), "warning.config.loot_table.function.apply_data.missing_data"), "data"); ItemProcessors.applyDataModifiers(data, modifiers::add); - List> conditions = Optional.ofNullable(arguments.get("conditions")) - .map(it -> LootConditions.fromMapList((List>) it)) - .orElse(Collections.emptyList()); + List> conditions = ResourceConfigUtils.parseConfigAsList(arguments.get("conditions"), CommonConditions::fromMap); return new ApplyDataFunction<>(conditions, modifiers.toArray(new ItemProcessor[0])); } } diff --git a/core/src/main/java/net/momirealms/craftengine/core/loot/function/DropExpFunction.java b/core/src/main/java/net/momirealms/craftengine/core/loot/function/DropExpFunction.java index 6fda51f13..bf290b7a9 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/loot/function/DropExpFunction.java +++ b/core/src/main/java/net/momirealms/craftengine/core/loot/function/DropExpFunction.java @@ -1,8 +1,8 @@ package net.momirealms.craftengine.core.loot.function; import net.momirealms.craftengine.core.item.Item; -import net.momirealms.craftengine.core.loot.LootConditions; import net.momirealms.craftengine.core.loot.LootContext; +import net.momirealms.craftengine.core.plugin.context.CommonConditions; import net.momirealms.craftengine.core.plugin.context.Condition; import net.momirealms.craftengine.core.plugin.context.number.NumberProvider; import net.momirealms.craftengine.core.plugin.context.number.NumberProviders; @@ -10,13 +10,12 @@ import net.momirealms.craftengine.core.plugin.context.parameter.DirectContextPar import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; -import java.util.Collections; import java.util.List; import java.util.Map; -import java.util.Optional; -public class DropExpFunction extends AbstractLootConditionalFunction { - public static final Factory FACTORY = new Factory<>(); +public final class DropExpFunction extends AbstractLootConditionalFunction { + public static final Key ID = Key.from("craftengine:drop_exp"); + public static final LootFunctionFactory FACTORY = new Factory<>(); private final NumberProvider value; public DropExpFunction(NumberProvider value, List> predicates) { @@ -31,19 +30,12 @@ public class DropExpFunction extends AbstractLootConditionalFunction { return item; } - @Override - public Key type() { - return LootFunctions.DROP_EXP; - } + private static class Factory implements LootFunctionFactory { - public static class Factory implements LootFunctionFactory { - @SuppressWarnings("unchecked") @Override public LootFunction create(Map arguments) { Object value = ResourceConfigUtils.requireNonNullOrThrow(arguments.get("count"), "warning.config.loot_table.function.drop_exp.missing_count"); - List> conditions = Optional.ofNullable(arguments.get("conditions")) - .map(it -> LootConditions.fromMapList((List>) it)) - .orElse(Collections.emptyList()); + List> conditions = ResourceConfigUtils.parseConfigAsList(arguments.get("conditions"), CommonConditions::fromMap); return new DropExpFunction<>(NumberProviders.fromObject(value), conditions); } } diff --git a/core/src/main/java/net/momirealms/craftengine/core/loot/function/ExplosionDecayFunction.java b/core/src/main/java/net/momirealms/craftengine/core/loot/function/ExplosionDecayFunction.java index 5f2faa985..77fa1cd4d 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/loot/function/ExplosionDecayFunction.java +++ b/core/src/main/java/net/momirealms/craftengine/core/loot/function/ExplosionDecayFunction.java @@ -1,20 +1,21 @@ package net.momirealms.craftengine.core.loot.function; import net.momirealms.craftengine.core.item.Item; -import net.momirealms.craftengine.core.loot.LootConditions; import net.momirealms.craftengine.core.loot.LootContext; +import net.momirealms.craftengine.core.plugin.context.CommonConditions; import net.momirealms.craftengine.core.plugin.context.Condition; import net.momirealms.craftengine.core.plugin.context.parameter.DirectContextParameters; import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.RandomUtils; +import net.momirealms.craftengine.core.util.ResourceConfigUtils; -import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Optional; -public class ExplosionDecayFunction extends AbstractLootConditionalFunction { - public static final Factory FACTORY = new Factory<>(); +public final class ExplosionDecayFunction extends AbstractLootConditionalFunction { + public static final Key ID = Key.from("craftengine:explosion_decay"); + public static final LootFunctionFactory FACTORY = new Factory<>(); public ExplosionDecayFunction(List> predicates) { super(predicates); @@ -37,18 +38,11 @@ public class ExplosionDecayFunction extends AbstractLootConditionalFunction implements LootFunctionFactory { - public static class Factory implements LootFunctionFactory { - @SuppressWarnings("unchecked") @Override public LootFunction create(Map arguments) { - List> conditions = Optional.ofNullable(arguments.get("conditions")) - .map(it -> LootConditions.fromMapList((List>) it)) - .orElse(Collections.emptyList()); + List> conditions = ResourceConfigUtils.parseConfigAsList(arguments.get("conditions"), CommonConditions::fromMap); return new ExplosionDecayFunction<>(conditions); } } diff --git a/core/src/main/java/net/momirealms/craftengine/core/loot/function/LimitCountFunction.java b/core/src/main/java/net/momirealms/craftengine/core/loot/function/LimitCountFunction.java index 8ecc4fc2b..83bdda386 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/loot/function/LimitCountFunction.java +++ b/core/src/main/java/net/momirealms/craftengine/core/loot/function/LimitCountFunction.java @@ -1,21 +1,21 @@ package net.momirealms.craftengine.core.loot.function; import net.momirealms.craftengine.core.item.Item; -import net.momirealms.craftengine.core.loot.LootConditions; import net.momirealms.craftengine.core.loot.LootContext; +import net.momirealms.craftengine.core.plugin.context.CommonConditions; import net.momirealms.craftengine.core.plugin.context.Condition; import net.momirealms.craftengine.core.plugin.context.number.NumberProvider; import net.momirealms.craftengine.core.plugin.context.number.NumberProviders; import net.momirealms.craftengine.core.util.Key; +import net.momirealms.craftengine.core.util.ResourceConfigUtils; import org.jetbrains.annotations.Nullable; -import java.util.Collections; import java.util.List; import java.util.Map; -import java.util.Optional; -public class LimitCountFunction extends AbstractLootConditionalFunction { - public static final Factory FACTORY = new Factory<>(); +public final class LimitCountFunction extends AbstractLootConditionalFunction { + public static final Key ID = Key.from("craftengine:limit_count"); + public static final LootFunctionFactory FACTORY = new Factory<>(); @Nullable private final NumberProvider min; @Nullable @@ -27,11 +27,6 @@ public class LimitCountFunction extends AbstractLootConditionalFunction { this.max = max; } - @Override - public Key type() { - return LootFunctions.LIMIT_COUNT; - } - @Override protected Item applyInternal(Item item, LootContext context) { int amount = item.count(); @@ -50,15 +45,13 @@ public class LimitCountFunction extends AbstractLootConditionalFunction { return item; } - public static class Factory implements LootFunctionFactory { - @SuppressWarnings("unchecked") + private static class Factory implements LootFunctionFactory { + @Override public LootFunction create(Map arguments) { Object min = arguments.get("min"); Object max = arguments.get("max"); - List> conditions = Optional.ofNullable(arguments.get("conditions")) - .map(it -> LootConditions.fromMapList((List>) it)) - .orElse(Collections.emptyList()); + List> conditions = ResourceConfigUtils.parseConfigAsList(arguments.get("conditions"), CommonConditions::fromMap); return new LimitCountFunction<>(conditions, min == null ? null : NumberProviders.fromObject(min), max == null ? null : NumberProviders.fromObject(max)); } } diff --git a/core/src/main/java/net/momirealms/craftengine/core/loot/function/LootFunction.java b/core/src/main/java/net/momirealms/craftengine/core/loot/function/LootFunction.java index 83e41db56..79e6113a6 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/loot/function/LootFunction.java +++ b/core/src/main/java/net/momirealms/craftengine/core/loot/function/LootFunction.java @@ -2,15 +2,12 @@ package net.momirealms.craftengine.core.loot.function; import net.momirealms.craftengine.core.item.Item; import net.momirealms.craftengine.core.loot.LootContext; -import net.momirealms.craftengine.core.util.Key; import java.util.function.BiFunction; import java.util.function.Consumer; public interface LootFunction extends BiFunction, LootContext, Item> { - Key type(); - static Consumer> decorate(BiFunction, LootContext, Item> itemApplier, Consumer> lootConsumer, LootContext context) { return item -> lootConsumer.accept(itemApplier.apply(item, context)); } diff --git a/core/src/main/java/net/momirealms/craftengine/core/loot/function/LootFunctionType.java b/core/src/main/java/net/momirealms/craftengine/core/loot/function/LootFunctionType.java new file mode 100644 index 000000000..84d509004 --- /dev/null +++ b/core/src/main/java/net/momirealms/craftengine/core/loot/function/LootFunctionType.java @@ -0,0 +1,6 @@ +package net.momirealms.craftengine.core.loot.function; + +import net.momirealms.craftengine.core.util.Key; + +public record LootFunctionType(Key id, LootFunctionFactory factory) { +} diff --git a/core/src/main/java/net/momirealms/craftengine/core/loot/function/LootFunctions.java b/core/src/main/java/net/momirealms/craftengine/core/loot/function/LootFunctions.java index 854e741e1..2389a2a85 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/loot/function/LootFunctions.java +++ b/core/src/main/java/net/momirealms/craftengine/core/loot/function/LootFunctions.java @@ -10,31 +10,25 @@ import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import net.momirealms.craftengine.core.util.ResourceKey; -import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.function.BiFunction; -public class LootFunctions { - public static final Key APPLY_BONUS = Key.from("craftengine:apply_bonus"); - public static final Key APPLY_DATA = Key.from("craftengine:apply_data"); - public static final Key SET_COUNT = Key.from("craftengine:set_count"); - public static final Key EXPLOSION_DECAY = Key.from("craftengine:explosion_decay"); - public static final Key DROP_EXP = Key.from("craftengine:drop_exp"); - public static final Key LIMIT_COUNT = Key.from("craftengine:limit_count"); +public final class LootFunctions { + public static final LootFunctionType APPLY_BONUS = register(ApplyBonusCountFunction.ID, ApplyBonusCountFunction.FACTORY); + public static final LootFunctionType APPLY_DATA = register(ApplyDataFunction.ID, ApplyDataFunction.FACTORY); + public static final LootFunctionType SET_COUNT = register(SetCountFunction.ID, SetCountFunction.FACTORY); + public static final LootFunctionType EXPLOSION_DECAY = register(ExplosionDecayFunction.ID, ExplosionDecayFunction.FACTORY); + public static final LootFunctionType DROP_EXP = register(DropExpFunction.ID, DropExpFunction.FACTORY); + public static final LootFunctionType LIMIT_COUNT = register(LimitCountFunction.ID, LimitCountFunction.FACTORY); - static { - register(SET_COUNT, SetCountFunction.FACTORY); - register(APPLY_DATA, ApplyDataFunction.FACTORY); - register(EXPLOSION_DECAY, ExplosionDecayFunction.FACTORY); - register(APPLY_BONUS, ApplyBonusCountFunction.FACTORY); - register(DROP_EXP, DropExpFunction.FACTORY); - register(LIMIT_COUNT, LimitCountFunction.FACTORY); - } + private LootFunctions() {} - public static void register(Key key, LootFunctionFactory factory) { - ((WritableRegistry>) BuiltInRegistries.LOOT_FUNCTION_FACTORY) - .register(ResourceKey.create(Registries.LOOT_FUNCTION_FACTORY.location(), key), factory); + public static LootFunctionType register(Key key, LootFunctionFactory factory) { + LootFunctionType type = new LootFunctionType<>(key, factory); + ((WritableRegistry>) BuiltInRegistries.LOOT_FUNCTION_TYPE) + .register(ResourceKey.create(Registries.LOOT_FUNCTION_TYPE.location(), key), type); + return type; } public static BiFunction, LootContext, Item> identity() { @@ -60,23 +54,14 @@ public class LootFunctions { }; } - public static List> fromMapList(List> mapList) { - if (mapList == null || mapList.isEmpty()) return List.of(); - List> functions = new ArrayList<>(); - for (Map map : mapList) { - functions.add(fromMap(map)); - } - return functions; - } - @SuppressWarnings("unchecked") public static LootFunction fromMap(Map map) { String type = ResourceConfigUtils.requireNonEmptyStringOrThrow(map.get("type"), "warning.config.loot_table.function.missing_type"); Key key = Key.withDefaultNamespace(type, Key.DEFAULT_NAMESPACE); - LootFunctionFactory factory = (LootFunctionFactory) BuiltInRegistries.LOOT_FUNCTION_FACTORY.getValue(key); - if (factory == null) { + LootFunctionType functionType = (LootFunctionType) BuiltInRegistries.LOOT_FUNCTION_TYPE.getValue(key); + if (functionType == null) { throw new LocalizedResourceConfigException("warning.config.loot_table.function.invalid_type", type); } - return factory.create(map); + return functionType.factory().create(map); } } diff --git a/core/src/main/java/net/momirealms/craftengine/core/loot/function/SetCountFunction.java b/core/src/main/java/net/momirealms/craftengine/core/loot/function/SetCountFunction.java index 4d3c19252..b2b47e67c 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/loot/function/SetCountFunction.java +++ b/core/src/main/java/net/momirealms/craftengine/core/loot/function/SetCountFunction.java @@ -1,22 +1,20 @@ package net.momirealms.craftengine.core.loot.function; import net.momirealms.craftengine.core.item.Item; -import net.momirealms.craftengine.core.loot.LootConditions; import net.momirealms.craftengine.core.loot.LootContext; +import net.momirealms.craftengine.core.plugin.context.CommonConditions; import net.momirealms.craftengine.core.plugin.context.Condition; import net.momirealms.craftengine.core.plugin.context.number.NumberProvider; import net.momirealms.craftengine.core.plugin.context.number.NumberProviders; import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; -import java.util.Collections; import java.util.List; import java.util.Map; -import java.util.Optional; - -public class SetCountFunction extends AbstractLootConditionalFunction { - public static final Factory FACTORY = new Factory<>(); +public final class SetCountFunction extends AbstractLootConditionalFunction { + public static final Key ID = Key.from("craftengine:set_count"); + public static final LootFunctionFactory FACTORY = new Factory<>(); private final NumberProvider value; private final boolean add; @@ -26,11 +24,6 @@ public class SetCountFunction extends AbstractLootConditionalFunction { this.add = add; } - @Override - public Key type() { - return LootFunctions.SET_COUNT; - } - @Override protected Item applyInternal(Item item, LootContext context) { int amount = this.add ? item.count() : 0; @@ -38,15 +31,13 @@ public class SetCountFunction extends AbstractLootConditionalFunction { return item; } - public static class Factory implements LootFunctionFactory { - @SuppressWarnings("unchecked") + private static class Factory implements LootFunctionFactory { + @Override public LootFunction create(Map arguments) { Object value = ResourceConfigUtils.requireNonNullOrThrow(arguments.get("count"), "warning.config.loot_table.function.set_count.missing_count"); boolean add = ResourceConfigUtils.getAsBoolean(arguments.getOrDefault("add", false), "add"); - List> conditions = Optional.ofNullable(arguments.get("conditions")) - .map(it -> LootConditions.fromMapList((List>) it)) - .orElse(Collections.emptyList()); + List> conditions = ResourceConfigUtils.parseConfigAsList(arguments.get("conditions"), CommonConditions::fromMap); return new SetCountFunction<>(conditions, NumberProviders.fromObject(value), add); } } diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/matcher/PathMatchers.java b/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/matcher/PathMatchers.java index 87d16d92d..7110d4596 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/matcher/PathMatchers.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/matcher/PathMatchers.java @@ -2,7 +2,10 @@ package net.momirealms.craftengine.core.pack.conflict.matcher; import net.momirealms.craftengine.core.pack.conflict.PathContext; import net.momirealms.craftengine.core.plugin.context.Condition; -import net.momirealms.craftengine.core.plugin.context.condition.*; +import net.momirealms.craftengine.core.plugin.context.condition.AllOfCondition; +import net.momirealms.craftengine.core.plugin.context.condition.AnyOfCondition; +import net.momirealms.craftengine.core.plugin.context.condition.ConditionFactory; +import net.momirealms.craftengine.core.plugin.context.condition.InvertedCondition; import net.momirealms.craftengine.core.plugin.locale.LocalizedException; import net.momirealms.craftengine.core.registry.BuiltInRegistries; import net.momirealms.craftengine.core.registry.Registries; diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/resolution/Resolution.java b/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/resolution/Resolution.java index da0fe52f7..077d724bf 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/resolution/Resolution.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/resolution/Resolution.java @@ -1,7 +1,6 @@ package net.momirealms.craftengine.core.pack.conflict.resolution; import net.momirealms.craftengine.core.pack.conflict.PathContext; -import net.momirealms.craftengine.core.util.Key; public interface Resolution { diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/ItemModel.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/ItemModel.java index 82eb87d85..0607c843b 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/ItemModel.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/ItemModel.java @@ -3,7 +3,6 @@ package net.momirealms.craftengine.core.pack.model.definition; import com.google.gson.JsonObject; import net.momirealms.craftengine.core.pack.model.generation.ModelGeneration; import net.momirealms.craftengine.core.pack.revision.Revision; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.MinecraftVersion; import java.util.List; diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/condition/ConditionProperties.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/condition/ConditionProperties.java index 465d383b1..638d7f78a 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/condition/ConditionProperties.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/condition/ConditionProperties.java @@ -1,7 +1,6 @@ package net.momirealms.craftengine.core.pack.model.definition.condition; import com.google.gson.JsonObject; -import net.momirealms.craftengine.core.pack.model.definition.rangedisptach.RangeDispatchPropertyType; import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigException; import net.momirealms.craftengine.core.registry.BuiltInRegistries; import net.momirealms.craftengine.core.registry.Registries; diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/condition/ConditionProperty.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/condition/ConditionProperty.java index f825f1083..e825039dd 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/condition/ConditionProperty.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/condition/ConditionProperty.java @@ -1,7 +1,6 @@ package net.momirealms.craftengine.core.pack.model.definition.condition; import com.google.gson.JsonObject; -import net.momirealms.craftengine.core.util.Key; import java.util.function.Consumer; diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/tint/Tint.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/tint/Tint.java index 43fa00cbf..b376c18ae 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/tint/Tint.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/tint/Tint.java @@ -2,7 +2,6 @@ package net.momirealms.craftengine.core.pack.model.definition.tint; import com.google.gson.JsonArray; import com.google.gson.JsonObject; -import net.momirealms.craftengine.core.util.Key; import org.incendo.cloud.type.Either; import java.util.List; diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/simplified/BowModelReader.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/simplified/BowModelReader.java index 05ed76f9c..d22f5b6a3 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/simplified/BowModelReader.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/simplified/BowModelReader.java @@ -3,7 +3,6 @@ package net.momirealms.craftengine.core.pack.model.simplified; import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigException; import net.momirealms.craftengine.core.util.Key; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; import java.util.List; import java.util.Map; diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/simplified/CrossbowModelReader.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/simplified/CrossbowModelReader.java index ffd9aa509..4ecb2c7bb 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/simplified/CrossbowModelReader.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/simplified/CrossbowModelReader.java @@ -3,7 +3,6 @@ package net.momirealms.craftengine.core.pack.model.simplified; import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigException; import net.momirealms.craftengine.core.util.Key; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; import java.util.List; import java.util.Map; diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/simplified/GeneratedModelReader.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/simplified/GeneratedModelReader.java index 00575b738..b591c93e6 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/simplified/GeneratedModelReader.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/simplified/GeneratedModelReader.java @@ -3,7 +3,6 @@ package net.momirealms.craftengine.core.pack.model.simplified; import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigException; import net.momirealms.craftengine.core.util.Key; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; import java.util.HashMap; import java.util.List; diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/condition/AlwaysFalseCondition.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/condition/AlwaysFalseCondition.java index f2ccdbda6..d02a2c41e 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/condition/AlwaysFalseCondition.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/condition/AlwaysFalseCondition.java @@ -2,10 +2,8 @@ package net.momirealms.craftengine.core.plugin.context.condition; import net.momirealms.craftengine.core.plugin.context.Condition; import net.momirealms.craftengine.core.plugin.context.Context; -import net.momirealms.craftengine.core.util.Key; import java.util.Map; -import java.util.function.Function; public final class AlwaysFalseCondition implements Condition { public static final AlwaysFalseCondition INSTANCE = new AlwaysFalseCondition<>(); diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/condition/AnyOfCondition.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/condition/AnyOfCondition.java index 2bc4c6aa6..8ba943630 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/condition/AnyOfCondition.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/condition/AnyOfCondition.java @@ -3,7 +3,6 @@ package net.momirealms.craftengine.core.plugin.context.condition; import net.momirealms.craftengine.core.plugin.context.Condition; import net.momirealms.craftengine.core.plugin.context.Context; 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; diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/AllOfFunction.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/AllOfFunction.java index 77fac3112..a36a24f3e 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/AllOfFunction.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/AllOfFunction.java @@ -1,7 +1,6 @@ package net.momirealms.craftengine.core.plugin.context.function; import net.momirealms.craftengine.core.plugin.context.Context; -import net.momirealms.craftengine.core.util.Key; import java.util.Collection; diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/DummyFunction.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/DummyFunction.java index 6c3fa1e12..1c87529b6 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/DummyFunction.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/DummyFunction.java @@ -1,7 +1,6 @@ package net.momirealms.craftengine.core.plugin.context.function; import net.momirealms.craftengine.core.plugin.context.Context; -import net.momirealms.craftengine.core.util.Key; public class DummyFunction implements Function { diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/Function.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/Function.java index 0c1da132f..14f70b30b 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/Function.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/Function.java @@ -1,7 +1,6 @@ package net.momirealms.craftengine.core.plugin.context.function; import net.momirealms.craftengine.core.plugin.context.Context; -import net.momirealms.craftengine.core.util.Key; import java.util.List; 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 be830eb70..116f726e5 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 @@ -21,17 +21,13 @@ import net.momirealms.craftengine.core.item.recipe.remainder.CraftRemainderFacto import net.momirealms.craftengine.core.item.recipe.result.PostProcessor; import net.momirealms.craftengine.core.item.updater.ItemUpdaterType; import net.momirealms.craftengine.core.loot.LootContext; -import net.momirealms.craftengine.core.loot.entry.LootEntryContainerFactory; +import net.momirealms.craftengine.core.loot.entry.LootEntryContainerType; import net.momirealms.craftengine.core.loot.function.ApplyBonusCountFunction; -import net.momirealms.craftengine.core.loot.function.LootFunctionFactory; -import net.momirealms.craftengine.core.pack.conflict.PathContext; +import net.momirealms.craftengine.core.loot.function.LootFunctionType; import net.momirealms.craftengine.core.pack.conflict.matcher.PathMatcherType; -import net.momirealms.craftengine.core.pack.conflict.resolution.ResolutionFactory; import net.momirealms.craftengine.core.pack.conflict.resolution.ResolutionType; import net.momirealms.craftengine.core.pack.host.ResourcePackHostFactory; import net.momirealms.craftengine.core.pack.model.definition.ItemModelType; -import net.momirealms.craftengine.core.pack.model.definition.condition.ConditionPropertyFactory; -import net.momirealms.craftengine.core.pack.model.definition.condition.ConditionPropertyReader; import net.momirealms.craftengine.core.pack.model.definition.condition.ConditionPropertyType; import net.momirealms.craftengine.core.pack.model.definition.rangedisptach.RangeDispatchPropertyType; import net.momirealms.craftengine.core.pack.model.definition.select.SelectPropertyType; @@ -54,9 +50,8 @@ public final class BuiltInRegistries { public static final Registry> ITEM_PROCESSOR_TYPE = createConstantBoundRegistry(Registries.ITEM_PROCESSOR_TYPE, 64); public static final Registry ITEM_BEHAVIOR_TYPE = createConstantBoundRegistry(Registries.ITEM_BEHAVIOR_TYPE, 64); public static final Registry PROPERTY_FACTORY = createConstantBoundRegistry(Registries.PROPERTY_FACTORY, 16); - public static final Registry> LOOT_FUNCTION_FACTORY = createConstantBoundRegistry(Registries.LOOT_FUNCTION_FACTORY, 32); - public static final Registry> LOOT_CONDITION_FACTORY = createConstantBoundRegistry(Registries.LOOT_CONDITION_FACTORY, 32); - public static final Registry> LOOT_ENTRY_CONTAINER_FACTORY = createConstantBoundRegistry(Registries.LOOT_ENTRY_CONTAINER_FACTORY, 16); + public static final Registry> LOOT_FUNCTION_TYPE = createConstantBoundRegistry(Registries.LOOT_FUNCTION_TYPE, 32); + public static final Registry> LOOT_ENTRY_CONTAINER_TYPE = createConstantBoundRegistry(Registries.LOOT_ENTRY_CONTAINER_TYPE, 16); public static final Registry NUMBER_PROVIDER_FACTORY = createConstantBoundRegistry(Registries.NUMBER_PROVIDER_FACTORY, 16); public static final Registry TEMPLATE_ARGUMENT_FACTORY = createConstantBoundRegistry(Registries.TEMPLATE_ARGUMENT_FACTORY, 16); public static final Registry ITEM_MODEL_TYPE = createConstantBoundRegistry(Registries.ITEM_MODEL_TYPE, 16); 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 841af7631..c5adc39bc 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 @@ -20,18 +20,13 @@ import net.momirealms.craftengine.core.item.recipe.network.modern.display.slot.S import net.momirealms.craftengine.core.item.recipe.remainder.CraftRemainderFactory; import net.momirealms.craftengine.core.item.recipe.result.PostProcessor; import net.momirealms.craftengine.core.item.updater.ItemUpdaterType; -import net.momirealms.craftengine.core.loot.LootContext; -import net.momirealms.craftengine.core.loot.entry.LootEntryContainerFactory; +import net.momirealms.craftengine.core.loot.entry.LootEntryContainerType; import net.momirealms.craftengine.core.loot.function.ApplyBonusCountFunction; -import net.momirealms.craftengine.core.loot.function.LootFunctionFactory; -import net.momirealms.craftengine.core.pack.conflict.PathContext; +import net.momirealms.craftengine.core.loot.function.LootFunctionType; import net.momirealms.craftengine.core.pack.conflict.matcher.PathMatcherType; -import net.momirealms.craftengine.core.pack.conflict.resolution.ResolutionFactory; import net.momirealms.craftengine.core.pack.conflict.resolution.ResolutionType; import net.momirealms.craftengine.core.pack.host.ResourcePackHostFactory; import net.momirealms.craftengine.core.pack.model.definition.ItemModelType; -import net.momirealms.craftengine.core.pack.model.definition.condition.ConditionPropertyFactory; -import net.momirealms.craftengine.core.pack.model.definition.condition.ConditionPropertyReader; import net.momirealms.craftengine.core.pack.model.definition.condition.ConditionPropertyType; import net.momirealms.craftengine.core.pack.model.definition.rangedisptach.RangeDispatchPropertyType; import net.momirealms.craftengine.core.pack.model.definition.select.SelectPropertyType; @@ -58,9 +53,8 @@ public final class Registries { public static final ResourceKey> PROPERTY_FACTORY = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("property_factory")); public static final ResourceKey> BLOCK_BEHAVIOR_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("block_behavior_type")); public static final ResourceKey> ITEM_BEHAVIOR_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("item_behavior_type")); - public static final ResourceKey>> LOOT_FUNCTION_FACTORY = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("loot_function_factory")); - public static final ResourceKey>> LOOT_ENTRY_CONTAINER_FACTORY = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("loot_entry_container_factory")); - public static final ResourceKey>> LOOT_CONDITION_FACTORY = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("loot_condition_factory")); + public static final ResourceKey>> LOOT_FUNCTION_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("loot_function_type")); + public static final ResourceKey>> LOOT_ENTRY_CONTAINER_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("loot_entry_container_type")); public static final ResourceKey> NUMBER_PROVIDER_FACTORY = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("number_provider_factory")); public static final ResourceKey> TEMPLATE_ARGUMENT_FACTORY = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("template_argument_factory")); public static final ResourceKey> ITEM_MODEL_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("item_model_type")); From ece2afed600bebf605caf17c74ca100acc6600dc Mon Sep 17 00:00:00 2001 From: XiaoMoMi Date: Sat, 27 Dec 2025 20:55:34 +0800 Subject: [PATCH 2/8] =?UTF-8?q?=E9=87=8D=E6=9E=84=E6=96=B9=E5=9D=97?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E5=B1=9E=E6=80=A7=E6=B3=A8=E5=86=8C=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../block/properties/BooleanProperty.java | 11 ++-- .../core/block/properties/EnumProperty.java | 10 ++- .../block/properties/IntegerProperty.java | 11 ++-- .../core/block/properties/Properties.java | 64 ++++++++----------- .../block/properties/PropertyFactory.java | 4 +- .../core/block/properties/PropertyType.java | 6 ++ .../core/block/properties/StringProperty.java | 10 +-- .../entry/AlternativesLootEntryContainer.java | 4 +- .../loot/entry/EmptyLoopEntryContainer.java | 4 +- .../loot/entry/ExpLootEntryContainer.java | 4 +- .../FurnitureItemLootEntryContainer.java | 4 +- .../core/registry/BuiltInRegistries.java | 5 +- .../craftengine/core/registry/Registries.java | 4 +- 13 files changed, 74 insertions(+), 67 deletions(-) create mode 100644 core/src/main/java/net/momirealms/craftengine/core/block/properties/PropertyType.java diff --git a/core/src/main/java/net/momirealms/craftengine/core/block/properties/BooleanProperty.java b/core/src/main/java/net/momirealms/craftengine/core/block/properties/BooleanProperty.java index 526f51d5f..eebff84c8 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/block/properties/BooleanProperty.java +++ b/core/src/main/java/net/momirealms/craftengine/core/block/properties/BooleanProperty.java @@ -1,5 +1,6 @@ package net.momirealms.craftengine.core.block.properties; +import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import net.momirealms.sparrow.nbt.ByteTag; import net.momirealms.sparrow.nbt.Tag; @@ -8,8 +9,9 @@ import java.util.List; import java.util.Map; import java.util.Optional; -public class BooleanProperty extends Property { - public final static Factory FACTORY = new Factory(); +public final class BooleanProperty extends Property { + public static final Key ID = Key.of("craftengine:boolean"); + public static final PropertyFactory FACTORY = new Factory(); private static final List VALUES = List.of(true, false); private static final Boolean[] BY_ID = new Boolean[]{ Boolean.FALSE, Boolean.TRUE }; private static final ByteTag TRUE = new ByteTag((byte) 1); @@ -81,9 +83,10 @@ public class BooleanProperty extends Property { return new BooleanProperty(name, defaultValue); } - public static class Factory implements PropertyFactory { + private static class Factory implements PropertyFactory { + @Override - public Property create(String name, Map arguments) { + public Property create(String name, Map arguments) { boolean bool = ResourceConfigUtils.getAsBoolean(arguments.getOrDefault("default", false), "default"); return BooleanProperty.create(name, bool); } 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 3ff181c94..49ac95204 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 @@ -7,7 +7,7 @@ import net.momirealms.sparrow.nbt.Tag; import java.lang.reflect.Array; import java.util.*; -public class EnumProperty> extends Property { +public final class EnumProperty> extends Property { private final List values; private final Map names; private final int[] ordinalToIndex; @@ -106,7 +106,11 @@ public class EnumProperty> extends Property { return new EnumProperty<>(name, type, values, defaultValue); } - public static class Factory> implements PropertyFactory { + public static > PropertyFactory factory(Class enumClass) { + return new Factory<>(enumClass); + } + + private static class Factory> implements PropertyFactory { private final Class enumClass; public Factory(Class enumClass) { @@ -114,7 +118,7 @@ public class EnumProperty> extends Property { } @Override - public Property create(String name, Map arguments) { + public Property create(String name, Map arguments) { List enums = Arrays.asList(enumClass.getEnumConstants()); String defaultValueName = arguments.getOrDefault("default", "").toString().toLowerCase(Locale.ENGLISH); A defaultValue = enums.stream() 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 00bf88224..46000a5d5 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,6 +2,7 @@ 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.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import net.momirealms.sparrow.nbt.IntTag; import net.momirealms.sparrow.nbt.NumericTag; @@ -12,8 +13,9 @@ import java.util.Map; import java.util.Optional; import java.util.stream.IntStream; -public class IntegerProperty extends Property { - public static final Factory FACTORY = new Factory(); +public final class IntegerProperty extends Property { + public static final Key ID = Key.of("craftengine:int"); + public static final PropertyFactory FACTORY = new Factory(); private final IntImmutableList values; public final int min; public final int max; @@ -95,9 +97,10 @@ public class IntegerProperty extends Property { return new IntegerProperty(name, min, max, defaultValue); } - public static class Factory implements PropertyFactory { + private static class Factory implements PropertyFactory { + @Override - public Property create(String name, Map arguments) { + public Property create(String name, Map arguments) { String range = arguments.getOrDefault("range", "1~1").toString(); String[] split = range.split("~"); if (split.length != 2) { diff --git a/core/src/main/java/net/momirealms/craftengine/core/block/properties/Properties.java b/core/src/main/java/net/momirealms/craftengine/core/block/properties/Properties.java index 641c71a72..f8b7fa68e 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/block/properties/Properties.java +++ b/core/src/main/java/net/momirealms/craftengine/core/block/properties/Properties.java @@ -10,49 +10,39 @@ import net.momirealms.craftengine.core.util.*; import java.util.Map; public final class Properties { - public static final Key BOOLEAN = Key.of("craftengine:boolean"); - public static final Key INT = Key.of("craftengine:int"); - public static final Key STRING = Key.of("craftengine:string"); - public static final Key AXIS = Key.of("craftengine:axis"); - public static final Key HORIZONTAL_DIRECTION = Key.of("craftengine:horizontal_direction"); - public static final Key DIRECTION = Key.of("craftengine:direction"); - public static final Key SINGLE_BLOCK_HALF = Key.of("craftengine:single_block_half"); - public static final Key DOUBLE_BLOCK_HALF = Key.of("craftengine:double_block_half"); - public static final Key HINGE = Key.of("craftengine:hinge"); - public static final Key STAIRS_SHAPE = Key.of("craftengine:stairs_shape"); - public static final Key SLAB_TYPE = Key.of("craftengine:slab_type"); - public static final Key SOFA_SHAPE = Key.of("craftengine:sofa_shape"); - public static final Key ANCHOR_TYPE = Key.of("craftengine:anchor_type"); + public static final PropertyType BOOLEAN = register(BooleanProperty.ID, BooleanProperty.FACTORY); + public static final PropertyType INT = register(IntegerProperty.ID, IntegerProperty.FACTORY); + public static final PropertyType STRING = register(StringProperty.ID, StringProperty.FACTORY); + public static final PropertyType AXIS = register(Key.of("craftengine:axis"), EnumProperty.factory(Direction.Axis.class)); + public static final PropertyType HORIZONTAL_DIRECTION = register(Key.of("craftengine:horizontal_direction"), EnumProperty.factory(HorizontalDirection.class)); + public static final PropertyType FOUR_DIRECTION = register(Key.of("craftengine:4-direction"), EnumProperty.factory(HorizontalDirection.class)); + public static final PropertyType DIRECTION = register(Key.of("craftengine:direction"), EnumProperty.factory(Direction.class)); + public static final PropertyType SIX_DIRECTION = register(Key.of("craftengine:6-direction"), EnumProperty.factory(Direction.class)); + public static final PropertyType SINGLE_BLOCK_HALF = register(Key.of("craftengine:single_block_half"), EnumProperty.factory(SingleBlockHalf.class)); + public static final PropertyType DOUBLE_BLOCK_HALF = register(Key.of("craftengine:double_block_half"), EnumProperty.factory(DoubleBlockHalf.class)); + public static final PropertyType HINGE = register(Key.of("craftengine:hinge"), EnumProperty.factory(DoorHinge.class)); + public static final PropertyType STAIRS_SHAPE = register(Key.of("craftengine:stairs_shape"), EnumProperty.factory(StairsShape.class)); + public static final PropertyType SLAB_TYPE = register(Key.of("craftengine:slab_type"), EnumProperty.factory(SlabType.class)); + public static final PropertyType SOFA_SHAPE = register(Key.of("craftengine:sofa_shape"), EnumProperty.factory(SofaShape.class)); + public static final PropertyType ANCHOR_TYPE = register(Key.of("craftengine:anchor_type"), EnumProperty.factory(AnchorType.class)); - static { - register(BOOLEAN, BooleanProperty.FACTORY); - register(INT, IntegerProperty.FACTORY); - register(STRING, StringProperty.FACTORY); - register(AXIS, new EnumProperty.Factory<>(Direction.Axis.class)); - register(DIRECTION, new EnumProperty.Factory<>(Direction.class)); - register(Key.of("craftengine:6-direction"), new EnumProperty.Factory<>(Direction.class)); - register(HORIZONTAL_DIRECTION, new EnumProperty.Factory<>(HorizontalDirection.class)); - register(Key.of("craftengine:4-direction"), new EnumProperty.Factory<>(HorizontalDirection.class)); - register(SINGLE_BLOCK_HALF, new EnumProperty.Factory<>(SingleBlockHalf.class)); - register(DOUBLE_BLOCK_HALF, new EnumProperty.Factory<>(DoubleBlockHalf.class)); - register(HINGE, new EnumProperty.Factory<>(DoorHinge.class)); - register(STAIRS_SHAPE, new EnumProperty.Factory<>(StairsShape.class)); - register(SLAB_TYPE, new EnumProperty.Factory<>(SlabType.class)); - register(SOFA_SHAPE, new EnumProperty.Factory<>(SofaShape.class)); - register(ANCHOR_TYPE, new EnumProperty.Factory<>(AnchorType.class)); + private Properties() {} + + public static > PropertyType register(Key key, PropertyFactory factory) { + PropertyType type = new PropertyType<>(key, factory); + ((WritableRegistry>) BuiltInRegistries.PROPERTY_TYPE) + .register(ResourceKey.create(Registries.PROPERTY_TYPE.location(), key), type); + return type; } - public static void register(Key key, PropertyFactory factory) { - ((WritableRegistry) BuiltInRegistries.PROPERTY_FACTORY).register(ResourceKey.create(Registries.PROPERTY_FACTORY.location(), key), factory); - } - - public static Property fromMap(String name, Map map) { + @SuppressWarnings("unchecked") + public static > Property fromMap(String name, Map map) { String type = ResourceConfigUtils.requireNonEmptyStringOrThrow(map.get("type"), "warning.config.block.state.property.missing_type"); Key key = Key.withDefaultNamespace(type, Key.DEFAULT_NAMESPACE); - PropertyFactory factory = BuiltInRegistries.PROPERTY_FACTORY.getValue(key); - if (factory == null) { + PropertyType propertyType = (PropertyType) BuiltInRegistries.PROPERTY_TYPE.getValue(key); + if (propertyType == null) { throw new LocalizedResourceConfigException("warning.config.block.state.property.invalid_type", key.toString(), name); } - return factory.create(name, map); + return propertyType.factory().create(name, map); } } diff --git a/core/src/main/java/net/momirealms/craftengine/core/block/properties/PropertyFactory.java b/core/src/main/java/net/momirealms/craftengine/core/block/properties/PropertyFactory.java index 32ea8ee86..4256a84e7 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/block/properties/PropertyFactory.java +++ b/core/src/main/java/net/momirealms/craftengine/core/block/properties/PropertyFactory.java @@ -2,7 +2,7 @@ package net.momirealms.craftengine.core.block.properties; import java.util.Map; -public interface PropertyFactory { +public interface PropertyFactory> { - Property create(String name, Map arguments); + Property create(String name, Map arguments); } diff --git a/core/src/main/java/net/momirealms/craftengine/core/block/properties/PropertyType.java b/core/src/main/java/net/momirealms/craftengine/core/block/properties/PropertyType.java new file mode 100644 index 000000000..89d120a34 --- /dev/null +++ b/core/src/main/java/net/momirealms/craftengine/core/block/properties/PropertyType.java @@ -0,0 +1,6 @@ +package net.momirealms.craftengine.core.block.properties; + +import net.momirealms.craftengine.core.util.Key; + +public record PropertyType>(Key id, PropertyFactory factory) { +} 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 f9a556df3..445d00b17 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,6 +1,7 @@ package net.momirealms.craftengine.core.block.properties; import com.google.common.collect.ImmutableMap; +import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.MiscUtils; import net.momirealms.sparrow.nbt.StringTag; import net.momirealms.sparrow.nbt.Tag; @@ -9,8 +10,9 @@ import java.util.List; import java.util.Map; import java.util.Optional; -public class StringProperty extends Property { - public static final Factory FACTORY = new Factory(); +public final class StringProperty extends Property { + public static final Key ID = Key.of("craftengine:string"); + public static final PropertyFactory FACTORY = new Factory(); private final List values; private final ImmutableMap names; @@ -90,10 +92,10 @@ public class StringProperty extends Property { return new StringProperty(name, values, defaultValue); } - public static class Factory implements PropertyFactory { + private static class Factory implements PropertyFactory { @Override - public Property create(String name, Map arguments) { + public Property create(String name, Map arguments) { List values = MiscUtils.getAsStringList(arguments.get("values")) .stream() .toList(); diff --git a/core/src/main/java/net/momirealms/craftengine/core/loot/entry/AlternativesLootEntryContainer.java b/core/src/main/java/net/momirealms/craftengine/core/loot/entry/AlternativesLootEntryContainer.java index 76d3058b2..0eff3f033 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/loot/entry/AlternativesLootEntryContainer.java +++ b/core/src/main/java/net/momirealms/craftengine/core/loot/entry/AlternativesLootEntryContainer.java @@ -9,11 +9,11 @@ import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.List; import java.util.Map; -public class AlternativesLootEntryContainer extends AbstractCompositeLootEntryContainer { +public final class AlternativesLootEntryContainer extends AbstractCompositeLootEntryContainer { public static final Key ID = Key.from("craftengine:alternatives"); public static final LootEntryContainerFactory FACTORY = new Factory<>(); - protected AlternativesLootEntryContainer(List> conditions, List> children) { + private AlternativesLootEntryContainer(List> conditions, List> children) { super(conditions, children); } diff --git a/core/src/main/java/net/momirealms/craftengine/core/loot/entry/EmptyLoopEntryContainer.java b/core/src/main/java/net/momirealms/craftengine/core/loot/entry/EmptyLoopEntryContainer.java index 48f9e72ab..764f7c140 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/loot/entry/EmptyLoopEntryContainer.java +++ b/core/src/main/java/net/momirealms/craftengine/core/loot/entry/EmptyLoopEntryContainer.java @@ -11,11 +11,11 @@ import java.util.List; import java.util.Map; import java.util.function.Consumer; -public class EmptyLoopEntryContainer extends AbstractSingleLootEntryContainer { +public final class EmptyLoopEntryContainer extends AbstractSingleLootEntryContainer { public static final Key ID = Key.from("craftengine:empty"); public static final LootEntryContainerFactory FACTORY = new Factory<>(); - protected EmptyLoopEntryContainer(List> conditions, int weight, int quality) { + private EmptyLoopEntryContainer(List> conditions, int weight, int quality) { super(conditions, null, weight, quality); } diff --git a/core/src/main/java/net/momirealms/craftengine/core/loot/entry/ExpLootEntryContainer.java b/core/src/main/java/net/momirealms/craftengine/core/loot/entry/ExpLootEntryContainer.java index c28027816..1a69b1fc9 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/loot/entry/ExpLootEntryContainer.java +++ b/core/src/main/java/net/momirealms/craftengine/core/loot/entry/ExpLootEntryContainer.java @@ -13,12 +13,12 @@ import java.util.List; import java.util.Map; import java.util.function.Consumer; -public class ExpLootEntryContainer extends AbstractLootEntryContainer { +public final class ExpLootEntryContainer extends AbstractLootEntryContainer { public static final Key ID = Key.from("craftengine:exp"); public static final Factory FACTORY = new Factory<>(); private final NumberProvider value; - protected ExpLootEntryContainer(NumberProvider value, List> conditions) { + private ExpLootEntryContainer(NumberProvider value, List> conditions) { super(conditions); this.value = value; } diff --git a/core/src/main/java/net/momirealms/craftengine/core/loot/entry/FurnitureItemLootEntryContainer.java b/core/src/main/java/net/momirealms/craftengine/core/loot/entry/FurnitureItemLootEntryContainer.java index 3f280b11f..0cbb75760 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/loot/entry/FurnitureItemLootEntryContainer.java +++ b/core/src/main/java/net/momirealms/craftengine/core/loot/entry/FurnitureItemLootEntryContainer.java @@ -16,11 +16,11 @@ import java.util.Map; import java.util.Optional; import java.util.function.Consumer; -public class FurnitureItemLootEntryContainer extends SingleItemLootEntryContainer { +public final class FurnitureItemLootEntryContainer extends SingleItemLootEntryContainer { public static final LootEntryContainerFactory FACTORY = new Factory<>(); private final boolean hasFallback; - protected FurnitureItemLootEntryContainer(@Nullable Key item, List> conditions, List> lootFunctions, int weight, int quality) { + private FurnitureItemLootEntryContainer(@Nullable Key item, List> conditions, List> lootFunctions, int weight, int quality) { super(item, conditions, lootFunctions, weight, quality); this.hasFallback = item != null; } 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 116f726e5..de42f4275 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 @@ -4,7 +4,7 @@ import net.momirealms.craftengine.core.block.CustomBlock; import net.momirealms.craftengine.core.block.behavior.BlockBehaviorType; import net.momirealms.craftengine.core.block.entity.BlockEntityType; import net.momirealms.craftengine.core.block.entity.render.element.BlockEntityElementConfigFactory; -import net.momirealms.craftengine.core.block.properties.PropertyFactory; +import net.momirealms.craftengine.core.block.properties.PropertyType; import net.momirealms.craftengine.core.entity.furniture.behavior.FurnitureBehaviorType; import net.momirealms.craftengine.core.entity.furniture.element.FurnitureElementConfigFactory; import net.momirealms.craftengine.core.entity.furniture.hitbox.FurnitureHitBoxConfigFactory; @@ -20,7 +20,6 @@ import net.momirealms.craftengine.core.item.recipe.network.modern.display.slot.S import net.momirealms.craftengine.core.item.recipe.remainder.CraftRemainderFactory; import net.momirealms.craftengine.core.item.recipe.result.PostProcessor; import net.momirealms.craftengine.core.item.updater.ItemUpdaterType; -import net.momirealms.craftengine.core.loot.LootContext; import net.momirealms.craftengine.core.loot.entry.LootEntryContainerType; import net.momirealms.craftengine.core.loot.function.ApplyBonusCountFunction; import net.momirealms.craftengine.core.loot.function.LootFunctionType; @@ -49,7 +48,7 @@ public final class BuiltInRegistries { public static final Registry BLOCK_BEHAVIOR_TYPE = createConstantBoundRegistry(Registries.BLOCK_BEHAVIOR_TYPE, 64); public static final Registry> ITEM_PROCESSOR_TYPE = createConstantBoundRegistry(Registries.ITEM_PROCESSOR_TYPE, 64); public static final Registry ITEM_BEHAVIOR_TYPE = createConstantBoundRegistry(Registries.ITEM_BEHAVIOR_TYPE, 64); - public static final Registry PROPERTY_FACTORY = createConstantBoundRegistry(Registries.PROPERTY_FACTORY, 16); + public static final Registry> PROPERTY_TYPE = createConstantBoundRegistry(Registries.PROPERTY_TYPE, 16); public static final Registry> LOOT_FUNCTION_TYPE = createConstantBoundRegistry(Registries.LOOT_FUNCTION_TYPE, 32); public static final Registry> LOOT_ENTRY_CONTAINER_TYPE = createConstantBoundRegistry(Registries.LOOT_ENTRY_CONTAINER_TYPE, 16); public static final Registry NUMBER_PROVIDER_FACTORY = createConstantBoundRegistry(Registries.NUMBER_PROVIDER_FACTORY, 16); 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 c5adc39bc..52d872cba 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 @@ -4,7 +4,7 @@ import net.momirealms.craftengine.core.block.CustomBlock; import net.momirealms.craftengine.core.block.behavior.BlockBehaviorType; import net.momirealms.craftengine.core.block.entity.BlockEntityType; import net.momirealms.craftengine.core.block.entity.render.element.BlockEntityElementConfigFactory; -import net.momirealms.craftengine.core.block.properties.PropertyFactory; +import net.momirealms.craftengine.core.block.properties.PropertyType; import net.momirealms.craftengine.core.entity.furniture.behavior.FurnitureBehaviorType; import net.momirealms.craftengine.core.entity.furniture.element.FurnitureElementConfigFactory; import net.momirealms.craftengine.core.entity.furniture.hitbox.FurnitureHitBoxConfigFactory; @@ -50,7 +50,7 @@ public final class Registries { public static final Key ROOT_REGISTRY = Key.withDefaultNamespace("root"); public static final ResourceKey> BLOCK = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("block")); public static final ResourceKey>> ITEM_PROCESSOR_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("item_processor_type")); - public static final ResourceKey> PROPERTY_FACTORY = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("property_factory")); + public static final ResourceKey>> PROPERTY_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("property_type")); public static final ResourceKey> BLOCK_BEHAVIOR_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("block_behavior_type")); public static final ResourceKey> ITEM_BEHAVIOR_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("item_behavior_type")); public static final ResourceKey>> LOOT_FUNCTION_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("loot_function_type")); From 95c35067adfe96ea6ed8290127b0a92690b9cad0 Mon Sep 17 00:00:00 2001 From: XiaoMoMi Date: Sat, 27 Dec 2025 21:08:16 +0800 Subject: [PATCH 3/8] =?UTF-8?q?=E9=87=8D=E6=9E=84=E6=95=B0=E5=AD=97?= =?UTF-8?q?=E6=B3=A8=E5=86=8C=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../number/BinomialNumberProvider.java | 6 +- .../number/ExpressionNumberProvider.java | 25 +---- .../context/number/FixedNumberProvider.java | 13 +-- .../number/GaussianNumberProvider.java | 33 +----- .../plugin/context/number/NumberProvider.java | 3 - .../context/number/NumberProviderType.java | 6 + .../context/number/NumberProviders.java | 103 ++++++++---------- .../context/number/UniformNumberProvider.java | 23 +--- .../core/registry/BuiltInRegistries.java | 3 +- .../craftengine/core/registry/Registries.java | 3 +- 10 files changed, 68 insertions(+), 150 deletions(-) create mode 100644 core/src/main/java/net/momirealms/craftengine/core/plugin/context/number/NumberProviderType.java diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/number/BinomialNumberProvider.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/number/BinomialNumberProvider.java index ac9c03676..688ff33f0 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/number/BinomialNumberProvider.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/number/BinomialNumberProvider.java @@ -8,6 +8,7 @@ import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; public record BinomialNumberProvider(NumberProvider trials, NumberProvider successProbability) implements NumberProvider { + public static final Key ID = Key.of("craftengine:binomial"); public static final NumberProviderFactory FACTORY = new Factory(); @Override @@ -34,11 +35,6 @@ public record BinomialNumberProvider(NumberProvider trials, NumberProvider succe return successCount; } - @Override - public Key type() { - return NumberProviders.BINOMIAL; - } - private static class Factory implements NumberProviderFactory { @Override diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/number/ExpressionNumberProvider.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/number/ExpressionNumberProvider.java index af124b785..b6a004327 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/number/ExpressionNumberProvider.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/number/ExpressionNumberProvider.java @@ -11,47 +11,34 @@ import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; -public class ExpressionNumberProvider implements NumberProvider { +public record ExpressionNumberProvider(String expression) implements NumberProvider { + public static final Key ID = Key.of("craftengine:expression"); public static final NumberProviderFactory FACTORY = new Factory(); - private final String expr; - - public ExpressionNumberProvider(String expr) { - this.expr = expr; - } @Override public float getFloat(Context context) { - Component resultComponent = AdventureHelper.customMiniMessage().deserialize(this.expr, context.tagResolvers()); + Component resultComponent = AdventureHelper.customMiniMessage().deserialize(this.expression, context.tagResolvers()); String resultString = AdventureHelper.plainTextContent(resultComponent); Expression expression = new Expression(resultString); try { return expression.evaluate().getNumberValue().floatValue(); } catch (EvaluationException | ParseException e) { - throw new RuntimeException("Invalid expression: " + this.expr + " -> " + resultString + " -> Cannot parse", e); + throw new RuntimeException("Invalid expression: " + this.expression + " -> " + resultString + " -> Cannot parse", e); } } @Override public double getDouble(Context context) { - Component resultComponent = AdventureHelper.customMiniMessage().deserialize(this.expr, context.tagResolvers()); + Component resultComponent = AdventureHelper.customMiniMessage().deserialize(this.expression, context.tagResolvers()); String resultString = AdventureHelper.plainTextContent(resultComponent); Expression expression = new Expression(resultString); try { return expression.evaluate().getNumberValue().doubleValue(); } catch (EvaluationException | ParseException e) { - throw new RuntimeException("Invalid expression: " + this.expr + " -> " + resultString + " -> Cannot parse", e); + throw new RuntimeException("Invalid expression: " + this.expression + " -> " + resultString + " -> Cannot parse", e); } } - @Override - public Key type() { - return NumberProviders.EXPRESSION; - } - - public String expression() { - return this.expr; - } - private static class Factory implements NumberProviderFactory { @Override diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/number/FixedNumberProvider.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/number/FixedNumberProvider.java index 42ff6d155..e62e1312c 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/number/FixedNumberProvider.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/number/FixedNumberProvider.java @@ -8,13 +8,9 @@ import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; -public class FixedNumberProvider implements NumberProvider { +public record FixedNumberProvider(double value) implements NumberProvider { + public static final Key ID = Key.of("craftengine:fixed"); public static final NumberProviderFactory FACTORY = new Factory(); - private final double value; - - public FixedNumberProvider(double value) { - this.value = value; - } @Override public float getFloat(Context context) { @@ -26,11 +22,6 @@ public class FixedNumberProvider implements NumberProvider { return this.value; } - @Override - public Key type() { - return NumberProviders.FIXED; - } - public static FixedNumberProvider of(final double value) { return new FixedNumberProvider(value); } diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/number/GaussianNumberProvider.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/number/GaussianNumberProvider.java index 4b7dcacad..de9c354b4 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/number/GaussianNumberProvider.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/number/GaussianNumberProvider.java @@ -9,13 +9,9 @@ import java.util.Map; import java.util.Random; import java.util.concurrent.ThreadLocalRandom; -public class GaussianNumberProvider implements NumberProvider { +public record GaussianNumberProvider(double min, double max, double mean, double stdDev, int maxAttempts) implements NumberProvider { + public static final Key ID = Key.of("craftengine:gaussian"); public static final NumberProviderFactory FACTORY = new Factory(); - private final double min; - private final double max; - private final double mean; - private final double stdDev; - private final int maxAttempts; public GaussianNumberProvider(double min, double max, double mean, double stdDev, int maxAttempts) { this.min = min; @@ -57,31 +53,6 @@ public class GaussianNumberProvider implements NumberProvider { return MiscUtils.clamp(this.mean, this.min, this.max); } - @Override - public Key type() { - return NumberProviders.GAUSSIAN; - } - - public double min() { - return min; - } - - public double max() { - return max; - } - - public int maxAttempts() { - return maxAttempts; - } - - public double mean() { - return mean; - } - - public double stdDev() { - return stdDev; - } - private static class Factory implements NumberProviderFactory { @Override diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/number/NumberProvider.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/number/NumberProvider.java index 9ea8a03d1..e7f137e39 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/number/NumberProvider.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/number/NumberProvider.java @@ -1,7 +1,6 @@ package net.momirealms.craftengine.core.plugin.context.number; import net.momirealms.craftengine.core.plugin.context.Context; -import net.momirealms.craftengine.core.util.Key; public interface NumberProvider { @@ -12,6 +11,4 @@ public interface NumberProvider { default int getInt(Context context) { return Math.round(this.getFloat(context)); } - - Key type(); } diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/number/NumberProviderType.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/number/NumberProviderType.java new file mode 100644 index 000000000..c33392cc1 --- /dev/null +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/number/NumberProviderType.java @@ -0,0 +1,6 @@ +package net.momirealms.craftengine.core.plugin.context.number; + +import net.momirealms.craftengine.core.util.Key; + +public record NumberProviderType(Key id, NumberProviderFactory factory) { +} diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/number/NumberProviders.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/number/NumberProviders.java index 81c1750a0..31f75f872 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/number/NumberProviders.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/number/NumberProviders.java @@ -8,39 +8,23 @@ import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import net.momirealms.craftengine.core.util.ResourceKey; -import java.util.ArrayList; -import java.util.List; import java.util.Map; public final class NumberProviders { - public static final Key FIXED = Key.of("craftengine:fixed"); - public static final Key CONSTANT = Key.of("craftengine:constant"); - public static final Key UNIFORM = Key.of("craftengine:uniform"); - public static final Key EXPRESSION = Key.of("craftengine:expression"); - public static final Key GAUSSIAN = Key.of("craftengine:gaussian"); - public static final Key BINOMIAL = Key.of("craftengine:binomial"); + public static final NumberProviderType FIXED = register(FixedNumberProvider.ID, FixedNumberProvider.FACTORY); + public static final NumberProviderType CONSTANT = register(Key.of("craftengine:constant"), FixedNumberProvider.FACTORY); + public static final NumberProviderType UNIFORM = register(UniformNumberProvider.ID, UniformNumberProvider.FACTORY); + public static final NumberProviderType EXPRESSION = register(ExpressionNumberProvider.ID, ExpressionNumberProvider.FACTORY); + public static final NumberProviderType GAUSSIAN = register(GaussianNumberProvider.ID, GaussianNumberProvider.FACTORY); + public static final NumberProviderType BINOMIAL = register(BinomialNumberProvider.ID, BinomialNumberProvider.FACTORY); - static { - register(FIXED, FixedNumberProvider.FACTORY); - register(CONSTANT, FixedNumberProvider.FACTORY); - register(UNIFORM, UniformNumberProvider.FACTORY); - register(GAUSSIAN, GaussianNumberProvider.FACTORY); - register(EXPRESSION, ExpressionNumberProvider.FACTORY); - register(BINOMIAL, BinomialNumberProvider.FACTORY); - } + private NumberProviders() {} - public static void register(Key key, NumberProviderFactory factory) { - ((WritableRegistry) BuiltInRegistries.NUMBER_PROVIDER_FACTORY) - .register(ResourceKey.create(Registries.NUMBER_PROVIDER_FACTORY.location(), key), factory); - } - - public static List fromMapList(List> mapList) { - if (mapList == null || mapList.isEmpty()) return List.of(); - List functions = new ArrayList<>(); - for (Map map : mapList) { - functions.add(fromMap(map)); - } - return functions; + public static NumberProviderType register(Key key, NumberProviderFactory factory) { + NumberProviderType type = new NumberProviderType(key, factory); + ((WritableRegistry) BuiltInRegistries.NUMBER_PROVIDER_TYPE) + .register(ResourceKey.create(Registries.NUMBER_PROVIDER_TYPE.location(), key), type); + return type; } public static NumberProvider direct(double value) { @@ -50,43 +34,46 @@ public final class NumberProviders { public static NumberProvider fromMap(Map map) { String type = ResourceConfigUtils.requireNonEmptyStringOrThrow(map.get("type"), "warning.config.number.missing_type"); Key key = Key.withDefaultNamespace(type, Key.DEFAULT_NAMESPACE); - NumberProviderFactory factory = BuiltInRegistries.NUMBER_PROVIDER_FACTORY.getValue(key); - if (factory == null) { + NumberProviderType providerType = BuiltInRegistries.NUMBER_PROVIDER_TYPE.getValue(key); + if (providerType == null) { throw new LocalizedResourceConfigException("warning.config.number.invalid_type", type); } - return factory.create(map); + return providerType.factory().create(map); } @SuppressWarnings("unchecked") public static NumberProvider fromObject(Object object) { - if (object == null) { - throw new LocalizedResourceConfigException("warning.config.number.missing_argument"); - } - if (object instanceof Number number) { - return new FixedNumberProvider(number.floatValue()); - } else if (object instanceof Boolean bool) { - return new FixedNumberProvider(bool ? 1 : 0); - } else if (object instanceof Map map) { - return fromMap((Map) map); - } else { - String string = object.toString(); - if (string.contains("~")) { - int first = string.indexOf('~'); - int second = string.indexOf('~', first + 1); - if (second == -1) { - NumberProvider min = fromObject(string.substring(0, first)); - NumberProvider max = fromObject(string.substring(first + 1)); - return new UniformNumberProvider(min, max); + switch (object) { + case null -> throw new LocalizedResourceConfigException("warning.config.number.missing_argument"); + case Number number -> { + return new FixedNumberProvider(number.floatValue()); + } + case Boolean bool -> { + return new FixedNumberProvider(bool ? 1 : 0); + } + case Map map -> { + return fromMap((Map) map); + } + default -> { + String string = object.toString(); + if (string.contains("~")) { + int first = string.indexOf('~'); + int second = string.indexOf('~', first + 1); + if (second == -1) { + NumberProvider min = fromObject(string.substring(0, first)); + NumberProvider max = fromObject(string.substring(first + 1)); + return new UniformNumberProvider(min, max); + } else { + throw new LocalizedResourceConfigException("warning.config.number.invalid_format", string); + } + } else if (string.contains("<") && string.contains(">") && string.contains(":")) { + return new ExpressionNumberProvider(string); } else { - throw new LocalizedResourceConfigException("warning.config.number.invalid_format", string); - } - } else if (string.contains("<") && string.contains(">") && string.contains(":")) { - return new ExpressionNumberProvider(string); - } else { - try { - return new FixedNumberProvider(Float.parseFloat(string)); - } catch (NumberFormatException e) { - throw new LocalizedResourceConfigException("warning.config.number.invalid_format", e, string); + try { + return new FixedNumberProvider(Float.parseFloat(string)); + } catch (NumberFormatException e) { + throw new LocalizedResourceConfigException("warning.config.number.invalid_format", e, string); + } } } } diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/number/UniformNumberProvider.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/number/UniformNumberProvider.java index 9284a70f1..dd2c46911 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/number/UniformNumberProvider.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/number/UniformNumberProvider.java @@ -7,23 +7,9 @@ import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; -public class UniformNumberProvider implements NumberProvider { +public record UniformNumberProvider(NumberProvider min, NumberProvider max) implements NumberProvider { + public static final Key ID = Key.of("craftengine:uniform"); public static final NumberProviderFactory FACTORY = new Factory(); - private final NumberProvider min; - private final NumberProvider max; - - public UniformNumberProvider(NumberProvider min, NumberProvider max) { - this.min = min; - this.max = max; - } - - public NumberProvider max() { - return max; - } - - public NumberProvider min() { - return min; - } @Override public int getInt(Context context) { @@ -40,11 +26,6 @@ public class UniformNumberProvider implements NumberProvider { return RandomUtils.generateRandomFloat(this.min.getFloat(context), this.max.getFloat(context)); } - @Override - public Key type() { - return NumberProviders.UNIFORM; - } - private static class Factory implements NumberProviderFactory { @Override 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 de42f4275..e5a533f8b 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 @@ -37,6 +37,7 @@ import net.momirealms.craftengine.core.plugin.context.Context; import net.momirealms.craftengine.core.plugin.context.condition.ConditionFactory; import net.momirealms.craftengine.core.plugin.context.function.FunctionFactory; import net.momirealms.craftengine.core.plugin.context.number.NumberProviderFactory; +import net.momirealms.craftengine.core.plugin.context.number.NumberProviderType; import net.momirealms.craftengine.core.plugin.context.selector.PlayerSelectorFactory; import net.momirealms.craftengine.core.plugin.network.ModPacket; import net.momirealms.craftengine.core.plugin.network.codec.NetworkCodec; @@ -51,7 +52,7 @@ public final class BuiltInRegistries { public static final Registry> PROPERTY_TYPE = createConstantBoundRegistry(Registries.PROPERTY_TYPE, 16); public static final Registry> LOOT_FUNCTION_TYPE = createConstantBoundRegistry(Registries.LOOT_FUNCTION_TYPE, 32); public static final Registry> LOOT_ENTRY_CONTAINER_TYPE = createConstantBoundRegistry(Registries.LOOT_ENTRY_CONTAINER_TYPE, 16); - public static final Registry NUMBER_PROVIDER_FACTORY = createConstantBoundRegistry(Registries.NUMBER_PROVIDER_FACTORY, 16); + public static final Registry NUMBER_PROVIDER_TYPE = createConstantBoundRegistry(Registries.NUMBER_PROVIDER_TYPE, 16); public static final Registry TEMPLATE_ARGUMENT_FACTORY = createConstantBoundRegistry(Registries.TEMPLATE_ARGUMENT_FACTORY, 16); public static final Registry ITEM_MODEL_TYPE = createConstantBoundRegistry(Registries.ITEM_MODEL_TYPE, 16); public static final Registry TINT_TYPE = createConstantBoundRegistry(Registries.TINT_TYPE, 16); 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 52d872cba..3b19136cd 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 @@ -37,6 +37,7 @@ import net.momirealms.craftengine.core.plugin.context.Context; import net.momirealms.craftengine.core.plugin.context.condition.ConditionFactory; import net.momirealms.craftengine.core.plugin.context.function.FunctionFactory; import net.momirealms.craftengine.core.plugin.context.number.NumberProviderFactory; +import net.momirealms.craftengine.core.plugin.context.number.NumberProviderType; import net.momirealms.craftengine.core.plugin.context.selector.PlayerSelectorFactory; import net.momirealms.craftengine.core.plugin.network.ModPacket; import net.momirealms.craftengine.core.plugin.network.codec.NetworkCodec; @@ -55,7 +56,7 @@ public final class Registries { public static final ResourceKey> ITEM_BEHAVIOR_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("item_behavior_type")); public static final ResourceKey>> LOOT_FUNCTION_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("loot_function_type")); public static final ResourceKey>> LOOT_ENTRY_CONTAINER_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("loot_entry_container_type")); - public static final ResourceKey> NUMBER_PROVIDER_FACTORY = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("number_provider_factory")); + public static final ResourceKey> NUMBER_PROVIDER_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("number_provider_type")); public static final ResourceKey> TEMPLATE_ARGUMENT_FACTORY = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("template_argument_factory")); public static final ResourceKey> ITEM_MODEL_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("item_model_type")); public static final ResourceKey> TINT_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("tint_type")); From 988f709c57f42ece98387769115601d6813da10d Mon Sep 17 00:00:00 2001 From: XiaoMoMi Date: Sat, 27 Dec 2025 22:45:44 +0800 Subject: [PATCH 4/8] =?UTF-8?q?=E9=87=8D=E6=9E=84=E6=A8=A1=E6=9D=BF?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E6=B3=A8=E5=86=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/block/properties/EnumProperty.java | 2 +- .../core/block/properties/StringProperty.java | 2 +- .../config/template/TemplateManagerImpl.java | 4 +- .../argument/ConditionTemplateArgument.java | 16 ++++-- .../argument/ExpressionTemplateArgument.java | 15 ++--- .../argument/ListTemplateArgument.java | 20 +++---- .../argument/MapTemplateArgument.java | 24 ++++---- .../argument/NullTemplateArgument.java | 12 ++-- .../argument/ObjectTemplateArgument.java | 20 ++++--- .../argument/PlainStringTemplateArgument.java | 20 +++---- .../SelfIncreaseIntTemplateArgument.java | 21 +++---- .../template/argument/TemplateArgument.java | 4 -- .../argument/TemplateArgumentType.java | 6 ++ .../template/argument/TemplateArguments.java | 57 ++++++++----------- .../argument/ToLowerCaseTemplateArgument.java | 16 ++++-- .../argument/ToUpperCaseTemplateArgument.java | 16 ++++-- .../argument/WhenTemplateArgument.java | 16 ++++-- .../core/registry/BuiltInRegistries.java | 5 +- .../craftengine/core/registry/Registries.java | 5 +- 19 files changed, 143 insertions(+), 138 deletions(-) create mode 100644 core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/TemplateArgumentType.java 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 49ac95204..ddff9c1be 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 @@ -13,7 +13,7 @@ public final class EnumProperty> extends Property { private final int[] ordinalToIndex; private final int[] idLookupTable; - public EnumProperty(String name, Class type, List values, T defaultValue) { + private EnumProperty(String name, Class type, List values, T defaultValue) { super(name, type, defaultValue); this.values = List.copyOf(values); T[] enums = type.getEnumConstants(); 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 445d00b17..5be437023 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 @@ -16,7 +16,7 @@ public final class StringProperty extends Property { private final List values; private final ImmutableMap names; - public StringProperty(String name, List values, String defaultValue) { + private StringProperty(String name, List values, String defaultValue) { super(name, String.class, defaultValue); this.values = List.copyOf(values); 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 cfe45b6ca..a0a2511e0 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 @@ -311,9 +311,9 @@ public class TemplateManagerImpl implements TemplateManager { Object processedPlaceholderValue = processUnknownValue(argumentEntry.getValue(), result); switch (processedPlaceholderValue) { case Map map -> result.put(placeholder, TemplateArguments.fromMap(MiscUtils.castToMap(map, false))); - case List listArgument -> result.put(placeholder, new ListTemplateArgument((List) listArgument)); + case List listArgument -> result.put(placeholder, ListTemplateArgument.list((List) listArgument)); case null -> result.put(placeholder, NullTemplateArgument.INSTANCE); - default -> result.put(placeholder, new ObjectTemplateArgument(processedPlaceholderValue)); + default -> result.put(placeholder, ObjectTemplateArgument.object(processedPlaceholderValue)); } } return result; diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ConditionTemplateArgument.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ConditionTemplateArgument.java index f8f3c72be..d58c1b8de 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ConditionTemplateArgument.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ConditionTemplateArgument.java @@ -5,17 +5,21 @@ import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; -public class ConditionTemplateArgument implements TemplateArgument { - public static final Factory FACTORY = new Factory(); +public final class ConditionTemplateArgument implements TemplateArgument { + public static final Key ID = Key.of("craftengine:condition"); + public static final TemplateArgumentFactory FACTORY = new Factory(); private final TemplateArgument result; private ConditionTemplateArgument(TemplateArgument result) { this.result = result; } - @Override - public Key type() { - return TemplateArguments.CONDITION; + public TemplateArgument result() { + return this.result; + } + + public static ConditionTemplateArgument condition(final TemplateArgument result) { + return new ConditionTemplateArgument(result); } @Override @@ -23,7 +27,7 @@ public class ConditionTemplateArgument implements TemplateArgument { return this.result.get(arguments); } - public static class Factory implements TemplateArgumentFactory { + private static class Factory implements TemplateArgumentFactory { @Override public TemplateArgument create(Map arguments) { 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 cf02eeb46..92d56c5d9 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 @@ -10,12 +10,13 @@ import java.util.Map; import java.util.Optional; import java.util.function.Function; -public class ExpressionTemplateArgument implements TemplateArgument { - public static final Factory FACTORY = new Factory(); +public final class ExpressionTemplateArgument implements TemplateArgument { + public static final Key ID = Key.of("craftengine:expression"); + public static final TemplateArgumentFactory FACTORY = new Factory(); private final ArgumentString expression; private final ValueType valueType; - protected ExpressionTemplateArgument(String expression, ValueType valueType) { + private ExpressionTemplateArgument(String expression, ValueType valueType) { this.expression = ArgumentString.preParse(expression); this.valueType = valueType; } @@ -31,11 +32,6 @@ public class ExpressionTemplateArgument implements TemplateArgument { } } - @Override - public Key type() { - return TemplateArguments.EXPRESSION; - } - protected enum ValueType { INT(e -> e.getNumberValue().intValue()), LONG(e -> e.getNumberValue().longValue()), @@ -56,7 +52,8 @@ public class ExpressionTemplateArgument implements TemplateArgument { } } - public static class Factory implements TemplateArgumentFactory { + private static class Factory implements TemplateArgumentFactory { + @Override public TemplateArgument create(Map arguments) { return new ExpressionTemplateArgument( diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ListTemplateArgument.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ListTemplateArgument.java index 3863b7841..b456dbf58 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ListTemplateArgument.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ListTemplateArgument.java @@ -7,25 +7,25 @@ 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(); +public final class ListTemplateArgument implements TemplateArgument { + public static final Key ID = Key.of("craftengine:list"); + public static final TemplateArgumentFactory FACTORY = new Factory(); private final List value; - public ListTemplateArgument(List value) { + private ListTemplateArgument(List value) { this.value = value; } + public static ListTemplateArgument list(List value) { + return new ListTemplateArgument(value); + } + @Override public List get(Map arguments) { - return value; + return this.value; } - @Override - public Key type() { - return TemplateArguments.LIST; - } - - public static class Factory implements TemplateArgumentFactory { + private static class Factory implements TemplateArgumentFactory { @Override public TemplateArgument create(Map arguments) { diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/MapTemplateArgument.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/MapTemplateArgument.java index b77c47bb0..6b1c557c8 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/MapTemplateArgument.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/MapTemplateArgument.java @@ -5,25 +5,29 @@ import net.momirealms.craftengine.core.util.MiscUtils; import java.util.Map; -public class MapTemplateArgument implements TemplateArgument { - public static final Factory FACTORY = new Factory(); +public final class MapTemplateArgument implements TemplateArgument { + public static final Key ID = Key.of("craftengine:map"); + public static final TemplateArgumentFactory FACTORY = new Factory(); private final Map value; - public MapTemplateArgument(Map value) { + private MapTemplateArgument(Map value) { this.value = value; } + public static MapTemplateArgument map(Map value) { + return new MapTemplateArgument(value); + } + + public Map value() { + return this.value; + } + @Override public Map get(Map arguments) { - return value; + return this.value; } - @Override - public Key type() { - return TemplateArguments.MAP; - } - - public static class Factory implements TemplateArgumentFactory { + private static class Factory implements TemplateArgumentFactory { @Override public TemplateArgument create(Map arguments) { diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/NullTemplateArgument.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/NullTemplateArgument.java index 51a0af576..723a18a7c 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/NullTemplateArgument.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/NullTemplateArgument.java @@ -4,24 +4,20 @@ import net.momirealms.craftengine.core.util.Key; import java.util.Map; -public class NullTemplateArgument implements TemplateArgument { +public final class NullTemplateArgument implements TemplateArgument { + public static final Key ID = Key.of("craftengine:null"); public static final NullTemplateArgument INSTANCE = new NullTemplateArgument(); - public static final Factory FACTORY = new Factory(); + public static final TemplateArgumentFactory FACTORY = new Factory(); private NullTemplateArgument() { } - @Override - public Key type() { - return TemplateArguments.NULL; - } - @Override public Object get(Map arguments) { return null; } - public static class Factory implements TemplateArgumentFactory { + private static class Factory implements TemplateArgumentFactory { @Override public TemplateArgument create(Map arguments) { diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ObjectTemplateArgument.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ObjectTemplateArgument.java index 980eadef6..da36cfaa9 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ObjectTemplateArgument.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ObjectTemplateArgument.java @@ -4,24 +4,28 @@ import net.momirealms.craftengine.core.util.Key; import java.util.Map; -public class ObjectTemplateArgument implements TemplateArgument { +public final class ObjectTemplateArgument implements TemplateArgument { + public static final Key ID = Key.of("craftengine:object"); + public static final TemplateArgumentFactory FACTORY = new Factory(); private final Object value; - public ObjectTemplateArgument(Object value) { + private ObjectTemplateArgument(Object value) { this.value = value; } - public static ObjectTemplateArgument of(Object value) { + public static ObjectTemplateArgument object(Object value) { return new ObjectTemplateArgument(value); } - @Override - public Key type() { - return TemplateArguments.OBJECT; - } - @Override public Object get(Map arguments) { return this.value; } + + private static class Factory implements TemplateArgumentFactory { + @Override + public TemplateArgument create(Map arguments) { + return new ObjectTemplateArgument(arguments.get("value")); + } + } } diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/PlainStringTemplateArgument.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/PlainStringTemplateArgument.java index 3305ac5c5..814a2be8c 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/PlainStringTemplateArgument.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/PlainStringTemplateArgument.java @@ -4,29 +4,29 @@ import net.momirealms.craftengine.core.util.Key; import java.util.Map; -public class PlainStringTemplateArgument implements TemplateArgument { - public static final Factory FACTORY = new Factory(); +public final class PlainStringTemplateArgument implements TemplateArgument { + public static final Key ID = Key.of("craftengine:plain"); + public static final TemplateArgumentFactory FACTORY = new Factory(); private final String value; - public PlainStringTemplateArgument(String value) { + private PlainStringTemplateArgument(String value) { this.value = value; } + public String value() { + return this.value; + } + public static PlainStringTemplateArgument plain(final String value) { return new PlainStringTemplateArgument(value); } @Override public String get(Map arguments) { - return value; + return this.value; } - @Override - public Key type() { - return TemplateArguments.PLAIN; - } - - public static class Factory implements TemplateArgumentFactory { + private static class Factory implements TemplateArgumentFactory { @Override public TemplateArgument create(Map arguments) { return new PlainStringTemplateArgument(arguments.getOrDefault("value", "").toString()); diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/SelfIncreaseIntTemplateArgument.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/SelfIncreaseIntTemplateArgument.java index b117622f4..325d00369 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/SelfIncreaseIntTemplateArgument.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/SelfIncreaseIntTemplateArgument.java @@ -6,8 +6,9 @@ import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; -public class SelfIncreaseIntTemplateArgument implements TemplateArgument { - public static final Factory FACTORY = new Factory(); +public final class SelfIncreaseIntTemplateArgument implements TemplateArgument { + public static final Key ID = Key.of("craftengine:self_increase_int"); + public static final TemplateArgumentFactory FACTORY = new Factory(); private final int min; private final int max; private int current; @@ -38,15 +39,6 @@ public class SelfIncreaseIntTemplateArgument implements TemplateArgument { return value; } - @Override - public Key type() { - return TemplateArguments.SELF_INCREASE_INT; - } - - public int current() { - return this.current; - } - public int min() { return this.min; } @@ -55,6 +47,10 @@ public class SelfIncreaseIntTemplateArgument implements TemplateArgument { return this.max; } + public int current() { + return this.current; + } + public int step() { return this.step; } @@ -67,7 +63,8 @@ public class SelfIncreaseIntTemplateArgument implements TemplateArgument { return this.callCount; } - public static class Factory implements TemplateArgumentFactory { + private static class Factory implements TemplateArgumentFactory { + @Override public TemplateArgument create(Map arguments) { int from = ResourceConfigUtils.getAsInt(arguments.get("from"), "from"); diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/TemplateArgument.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/TemplateArgument.java index 6e029e88c..71c6f0c23 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/TemplateArgument.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/TemplateArgument.java @@ -1,12 +1,8 @@ package net.momirealms.craftengine.core.plugin.config.template.argument; -import net.momirealms.craftengine.core.util.Key; - import java.util.Map; public interface TemplateArgument { - Key type(); - Object get(Map arguments); } diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/TemplateArgumentType.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/TemplateArgumentType.java new file mode 100644 index 000000000..047e662d3 --- /dev/null +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/TemplateArgumentType.java @@ -0,0 +1,6 @@ +package net.momirealms.craftengine.core.plugin.config.template.argument; + +import net.momirealms.craftengine.core.util.Key; + +public record TemplateArgumentType(Key id, TemplateArgumentFactory factory) { +} 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 9b1a8ef91..6e7e24dcb 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 @@ -9,58 +9,49 @@ import net.momirealms.craftengine.core.util.ResourceKey; import java.util.List; import java.util.Map; -public class TemplateArguments { - public static final Key PLAIN = Key.of("craftengine:plain"); - public static final Key SELF_INCREASE_INT = Key.of("craftengine:self_increase_int"); - public static final Key MAP = Key.of("craftengine:map"); - public static final Key LIST = Key.of("craftengine:list"); - public static final Key NULL = Key.of("craftengine:null"); - public static final Key CONDITION = Key.of("craftengine:condition"); - public static final Key EXPRESSION = Key.of("craftengine:expression"); - public static final Key OBJECT = Key.of("craftengine:object"); // No Factory, internal use - public static final Key TO_UPPER_CASE = Key.of("craftengine:to_upper_case"); - public static final Key TO_LOWER_CASE = Key.of("craftengine:to_lower_case"); - public static final Key WHEN = Key.of("craftengine:when"); +public final class TemplateArguments { + public static final TemplateArgumentType PLAIN = register(PlainStringTemplateArgument.ID, PlainStringTemplateArgument.FACTORY); + public static final TemplateArgumentType SELF_INCREASE_INT = register(SelfIncreaseIntTemplateArgument.ID, SelfIncreaseIntTemplateArgument.FACTORY); + public static final TemplateArgumentType MAP = register(MapTemplateArgument.ID, MapTemplateArgument.FACTORY); + public static final TemplateArgumentType LIST = register(ListTemplateArgument.ID, ListTemplateArgument.FACTORY); + public static final TemplateArgumentType NULL = register(NullTemplateArgument.ID, NullTemplateArgument.FACTORY); + public static final TemplateArgumentType EXPRESSION = register(ExpressionTemplateArgument.ID, ExpressionTemplateArgument.FACTORY); + public static final TemplateArgumentType CONDITION = register(ConditionTemplateArgument.ID, ConditionTemplateArgument.FACTORY); + public static final TemplateArgumentType TO_UPPER_CASE = register(ToUpperCaseTemplateArgument.ID, ToUpperCaseTemplateArgument.FACTORY); + public static final TemplateArgumentType TO_LOWER_CASE = register(ToLowerCaseTemplateArgument.ID, ToLowerCaseTemplateArgument.FACTORY); + public static final TemplateArgumentType OBJECT = register(ObjectTemplateArgument.ID, ObjectTemplateArgument.FACTORY); + public static final TemplateArgumentType WHEN = register(WhenTemplateArgument.ID, WhenTemplateArgument.FACTORY); - public static void register(Key key, TemplateArgumentFactory factory) { - ((WritableRegistry) BuiltInRegistries.TEMPLATE_ARGUMENT_FACTORY) - .register(ResourceKey.create(Registries.TEMPLATE_ARGUMENT_FACTORY.location(), key), factory); - } + private TemplateArguments() {} - static { - register(PLAIN, PlainStringTemplateArgument.FACTORY); - register(SELF_INCREASE_INT, SelfIncreaseIntTemplateArgument.FACTORY); - register(MAP, MapTemplateArgument.FACTORY); - register(LIST, ListTemplateArgument.FACTORY); - register(NULL, NullTemplateArgument.FACTORY); - register(EXPRESSION, ExpressionTemplateArgument.FACTORY); - register(CONDITION, ConditionTemplateArgument.FACTORY); - register(TO_UPPER_CASE, ToUpperCaseTemplateArgument.FACTORY); - register(TO_LOWER_CASE, ToLowerCaseTemplateArgument.FACTORY); - register(WHEN, WhenTemplateArgument.FACTORY); + public static TemplateArgumentType register(Key key, TemplateArgumentFactory factory) { + TemplateArgumentType type = new TemplateArgumentType(key, factory); + ((WritableRegistry) BuiltInRegistries.TEMPLATE_ARGUMENT_TYPE) + .register(ResourceKey.create(Registries.TEMPLATE_ARGUMENT_TYPE.location(), key), type); + return type; } @SuppressWarnings("unchecked") public static TemplateArgument fromObject(Object object) { return switch (object) { case null -> NullTemplateArgument.INSTANCE; - case List list -> new ListTemplateArgument((List) list); + case List list -> ListTemplateArgument.list((List) list); case Map map -> fromMap((Map) map); - default -> new ObjectTemplateArgument(object); + default -> ObjectTemplateArgument.object(object); }; } public static TemplateArgument fromMap(Map map) { Object type = map.get("type"); if (!(type instanceof String type0) || map.containsKey("__skip_template_argument__")) { - return new MapTemplateArgument(map); + return MapTemplateArgument.map(map); } else { Key key = Key.withDefaultNamespace(type0, Key.DEFAULT_NAMESPACE); - TemplateArgumentFactory factory = BuiltInRegistries.TEMPLATE_ARGUMENT_FACTORY.getValue(key); - if (factory == null) { + TemplateArgumentType argumentType = BuiltInRegistries.TEMPLATE_ARGUMENT_TYPE.getValue(key); + if (argumentType == null) { throw new IllegalArgumentException("Unknown argument type: " + type); } - return factory.create(map); + return argumentType.factory().create(map); } } } diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ToLowerCaseTemplateArgument.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ToLowerCaseTemplateArgument.java index 83e2c8dae..60c99d430 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ToLowerCaseTemplateArgument.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ToLowerCaseTemplateArgument.java @@ -8,17 +8,21 @@ import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Locale; import java.util.Map; -public class ToLowerCaseTemplateArgument implements TemplateArgument { - public static final Factory FACTORY = new Factory(); +public final class ToLowerCaseTemplateArgument implements TemplateArgument { + public static final Key ID = Key.of("craftengine:to_lower_case"); + public static final TemplateArgumentFactory FACTORY = new Factory(); private final String result; private ToLowerCaseTemplateArgument(String result) { this.result = result; } - @Override - public Key type() { - return TemplateArguments.TO_LOWER_CASE; + public static ToLowerCaseTemplateArgument toLowerCase(String result) { + return new ToLowerCaseTemplateArgument(result.toLowerCase(Locale.ROOT)); + } + + public String result() { + return this.result; } @Override @@ -26,7 +30,7 @@ public class ToLowerCaseTemplateArgument implements TemplateArgument { return this.result; } - public static class Factory implements TemplateArgumentFactory { + private static class Factory implements TemplateArgumentFactory { @Override public TemplateArgument create(Map arguments) { diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ToUpperCaseTemplateArgument.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ToUpperCaseTemplateArgument.java index d3600a5eb..0f4f8dd91 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ToUpperCaseTemplateArgument.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ToUpperCaseTemplateArgument.java @@ -8,17 +8,21 @@ import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Locale; import java.util.Map; -public class ToUpperCaseTemplateArgument implements TemplateArgument { - public static final Factory FACTORY = new Factory(); +public final class ToUpperCaseTemplateArgument implements TemplateArgument { + public static final Key ID = Key.of("craftengine:to_upper_case"); + public static final TemplateArgumentFactory FACTORY = new Factory(); private final String result; private ToUpperCaseTemplateArgument(String result) { this.result = result; } - @Override - public Key type() { - return TemplateArguments.TO_UPPER_CASE; + public static ToUpperCaseTemplateArgument toUpperCase(String result) { + return new ToUpperCaseTemplateArgument(result.toUpperCase(Locale.ROOT)); + } + + public String result() { + return this.result; } @Override @@ -26,7 +30,7 @@ public class ToUpperCaseTemplateArgument implements TemplateArgument { return this.result; } - public static class Factory implements TemplateArgumentFactory { + private static class Factory implements TemplateArgumentFactory { @Override public TemplateArgument create(Map arguments) { diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/WhenTemplateArgument.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/WhenTemplateArgument.java index 98dfcb7a0..22af726ea 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/WhenTemplateArgument.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/WhenTemplateArgument.java @@ -5,17 +5,21 @@ import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; -public class WhenTemplateArgument implements TemplateArgument { - public static final Factory FACTORY = new Factory(); +public final class WhenTemplateArgument implements TemplateArgument { + public static final Key ID = Key.of("craftengine:when"); + public static final TemplateArgumentFactory FACTORY = new Factory(); private final TemplateArgument result; private WhenTemplateArgument(TemplateArgument result) { this.result = result; } - @Override - public Key type() { - return TemplateArguments.WHEN; + public static WhenTemplateArgument when(TemplateArgument result) { + return new WhenTemplateArgument(result); + } + + public TemplateArgument result() { + return this.result; } @Override @@ -23,7 +27,7 @@ public class WhenTemplateArgument implements TemplateArgument { return this.result.get(arguments); } - public static class Factory implements TemplateArgumentFactory { + private static class Factory implements TemplateArgumentFactory { @Override public TemplateArgument create(Map arguments) { 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 e5a533f8b..3cb656687 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 @@ -32,11 +32,10 @@ import net.momirealms.craftengine.core.pack.model.definition.rangedisptach.Range import net.momirealms.craftengine.core.pack.model.definition.select.SelectPropertyType; import net.momirealms.craftengine.core.pack.model.definition.special.SpecialModelType; import net.momirealms.craftengine.core.pack.model.definition.tint.TintType; -import net.momirealms.craftengine.core.plugin.config.template.argument.TemplateArgumentFactory; +import net.momirealms.craftengine.core.plugin.config.template.argument.TemplateArgumentType; import net.momirealms.craftengine.core.plugin.context.Context; import net.momirealms.craftengine.core.plugin.context.condition.ConditionFactory; import net.momirealms.craftengine.core.plugin.context.function.FunctionFactory; -import net.momirealms.craftengine.core.plugin.context.number.NumberProviderFactory; import net.momirealms.craftengine.core.plugin.context.number.NumberProviderType; import net.momirealms.craftengine.core.plugin.context.selector.PlayerSelectorFactory; import net.momirealms.craftengine.core.plugin.network.ModPacket; @@ -53,7 +52,7 @@ public final class BuiltInRegistries { public static final Registry> LOOT_FUNCTION_TYPE = createConstantBoundRegistry(Registries.LOOT_FUNCTION_TYPE, 32); public static final Registry> LOOT_ENTRY_CONTAINER_TYPE = createConstantBoundRegistry(Registries.LOOT_ENTRY_CONTAINER_TYPE, 16); public static final Registry NUMBER_PROVIDER_TYPE = createConstantBoundRegistry(Registries.NUMBER_PROVIDER_TYPE, 16); - public static final Registry TEMPLATE_ARGUMENT_FACTORY = createConstantBoundRegistry(Registries.TEMPLATE_ARGUMENT_FACTORY, 16); + public static final Registry TEMPLATE_ARGUMENT_TYPE = createConstantBoundRegistry(Registries.TEMPLATE_ARGUMENT_TYPE, 16); public static final Registry ITEM_MODEL_TYPE = createConstantBoundRegistry(Registries.ITEM_MODEL_TYPE, 16); public static final Registry TINT_TYPE = createConstantBoundRegistry(Registries.TINT_TYPE, 16); public static final Registry SPECIAL_MODEL_TYPE = createConstantBoundRegistry(Registries.SPECIAL_MODEL_TYPE, 16); 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 3b19136cd..100f732b4 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 @@ -32,11 +32,10 @@ import net.momirealms.craftengine.core.pack.model.definition.rangedisptach.Range import net.momirealms.craftengine.core.pack.model.definition.select.SelectPropertyType; import net.momirealms.craftengine.core.pack.model.definition.special.SpecialModelType; import net.momirealms.craftengine.core.pack.model.definition.tint.TintType; -import net.momirealms.craftengine.core.plugin.config.template.argument.TemplateArgumentFactory; +import net.momirealms.craftengine.core.plugin.config.template.argument.TemplateArgumentType; import net.momirealms.craftengine.core.plugin.context.Context; import net.momirealms.craftengine.core.plugin.context.condition.ConditionFactory; import net.momirealms.craftengine.core.plugin.context.function.FunctionFactory; -import net.momirealms.craftengine.core.plugin.context.number.NumberProviderFactory; import net.momirealms.craftengine.core.plugin.context.number.NumberProviderType; import net.momirealms.craftengine.core.plugin.context.selector.PlayerSelectorFactory; import net.momirealms.craftengine.core.plugin.network.ModPacket; @@ -57,7 +56,7 @@ public final class Registries { public static final ResourceKey>> LOOT_FUNCTION_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("loot_function_type")); public static final ResourceKey>> LOOT_ENTRY_CONTAINER_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("loot_entry_container_type")); public static final ResourceKey> NUMBER_PROVIDER_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("number_provider_type")); - public static final ResourceKey> TEMPLATE_ARGUMENT_FACTORY = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("template_argument_factory")); + public static final ResourceKey> TEMPLATE_ARGUMENT_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("template_argument_type")); public static final ResourceKey> ITEM_MODEL_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("item_model_type")); public static final ResourceKey> TINT_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("tint_type")); public static final ResourceKey> SPECIAL_MODEL_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("special_model_type")); From c90fad69f1a21a36b8835fe7eba041dbcd79ec12 Mon Sep 17 00:00:00 2001 From: XiaoMoMi Date: Sat, 27 Dec 2025 23:21:52 +0800 Subject: [PATCH 5/8] =?UTF-8?q?=E9=87=8D=E6=9E=84=E6=96=B9=E5=9D=97?= =?UTF-8?q?=E5=AE=9E=E4=BD=93=E6=98=BE=E7=A4=BA=E6=B3=A8=E5=86=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BukkitBlockEntityElementConfigs.java | 15 ++++---- .../render/ConstantBlockEntityRenderer.java | 2 +- .../element/BlockEntityElementConfigType.java | 6 +++ .../element/BlockEntityElementConfigs.java | 37 ++++++++++--------- .../item/processor/ItemModelProcessor.java | 3 +- .../core/registry/BuiltInRegistries.java | 3 +- .../craftengine/core/registry/Registries.java | 3 +- .../momirealms/craftengine/core/util/Key.java | 11 ++++-- 8 files changed, 47 insertions(+), 33 deletions(-) create mode 100644 core/src/main/java/net/momirealms/craftengine/core/block/entity/render/element/BlockEntityElementConfigType.java diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/entity/renderer/element/BukkitBlockEntityElementConfigs.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/entity/renderer/element/BukkitBlockEntityElementConfigs.java index 7d7ad348a..aef524967 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/entity/renderer/element/BukkitBlockEntityElementConfigs.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/entity/renderer/element/BukkitBlockEntityElementConfigs.java @@ -1,15 +1,14 @@ package net.momirealms.craftengine.bukkit.block.entity.renderer.element; +import net.momirealms.craftengine.core.block.entity.render.element.BlockEntityElementConfigType; import net.momirealms.craftengine.core.block.entity.render.element.BlockEntityElementConfigs; +import net.momirealms.craftengine.core.util.Key; -public class BukkitBlockEntityElementConfigs extends BlockEntityElementConfigs { - - static { - register(ITEM_DISPLAY, ItemDisplayBlockEntityElementConfig.FACTORY); - register(TEXT_DISPLAY, TextDisplayBlockEntityElementConfig.FACTORY); - register(ITEM, ItemBlockEntityElementConfig.FACTORY); - register(ARMOR_STAND, ArmorStandBlockEntityElementConfig.FACTORY); - } +public final class BukkitBlockEntityElementConfigs extends BlockEntityElementConfigs { + public static final BlockEntityElementConfigType ITEM_DISPLAY = register(Key.ce("item_display"), ItemDisplayBlockEntityElementConfig.FACTORY); + public static final BlockEntityElementConfigType TEXT_DISPLAY = register(Key.ce("text_display"), TextDisplayBlockEntityElementConfig.FACTORY); + public static final BlockEntityElementConfigType ITEM = register(Key.ce("item"), ItemBlockEntityElementConfig.FACTORY); + public static final BlockEntityElementConfigType ARMOR_STAND = register(Key.ce("armor_stand"), ArmorStandBlockEntityElementConfig.FACTORY); private BukkitBlockEntityElementConfigs() {} diff --git a/core/src/main/java/net/momirealms/craftengine/core/block/entity/render/ConstantBlockEntityRenderer.java b/core/src/main/java/net/momirealms/craftengine/core/block/entity/render/ConstantBlockEntityRenderer.java index 2c0ad0c4c..0e19ba0a6 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/block/entity/render/ConstantBlockEntityRenderer.java +++ b/core/src/main/java/net/momirealms/craftengine/core/block/entity/render/ConstantBlockEntityRenderer.java @@ -6,7 +6,7 @@ import net.momirealms.craftengine.core.entity.player.Player; import net.momirealms.craftengine.core.plugin.entityculling.CullingData; import org.jetbrains.annotations.Nullable; -public class ConstantBlockEntityRenderer implements Cullable { +public final class ConstantBlockEntityRenderer implements Cullable { private final BlockEntityElement[] elements; public final CullingData cullingData; diff --git a/core/src/main/java/net/momirealms/craftengine/core/block/entity/render/element/BlockEntityElementConfigType.java b/core/src/main/java/net/momirealms/craftengine/core/block/entity/render/element/BlockEntityElementConfigType.java new file mode 100644 index 000000000..a0ee38dc1 --- /dev/null +++ b/core/src/main/java/net/momirealms/craftengine/core/block/entity/render/element/BlockEntityElementConfigType.java @@ -0,0 +1,6 @@ +package net.momirealms.craftengine.core.block.entity.render.element; + +import net.momirealms.craftengine.core.util.Key; + +public record BlockEntityElementConfigType(Key id, BlockEntityElementConfigFactory factory) { +} 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 380ece537..11527d4ca 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 @@ -11,30 +11,33 @@ import java.util.Map; import java.util.Optional; public abstract class BlockEntityElementConfigs { - public static final Key ITEM_DISPLAY = Key.of("craftengine:item_display"); - public static final Key TEXT_DISPLAY = Key.of("craftengine:text_display"); - public static final Key ITEM = Key.of("craftengine:item"); - public static final Key ARMOR_STAND = Key.of("craftengine:armor_stand"); - public static void register(Key key, BlockEntityElementConfigFactory type) { - ((WritableRegistry>) BuiltInRegistries.BLOCK_ENTITY_ELEMENT_TYPE) + protected BlockEntityElementConfigs() {} + + public static BlockEntityElementConfigType register(Key key, BlockEntityElementConfigFactory factory) { + BlockEntityElementConfigType type = new BlockEntityElementConfigType<>(key, factory); + ((WritableRegistry>) BuiltInRegistries.BLOCK_ENTITY_ELEMENT_TYPE) .register(ResourceKey.create(Registries.BLOCK_ENTITY_ELEMENT_TYPE.location(), key), type); + return type; } public static BlockEntityElementConfig fromMap(Map arguments) { - Key type = Optional.ofNullable(arguments.get("type")).map(String::valueOf).map(it -> Key.withDefaultNamespace(it, "craftengine")).orElse(null); - if (type == null) { - if (arguments.containsKey("text")) { - type = TEXT_DISPLAY; - } else { - type = ITEM_DISPLAY; - } - } + Key type = guessType(arguments); @SuppressWarnings("unchecked") - BlockEntityElementConfigFactory factory = (BlockEntityElementConfigFactory) BuiltInRegistries.BLOCK_ENTITY_ELEMENT_TYPE.getValue(type); - if (factory == null) { + BlockEntityElementConfigType configType = (BlockEntityElementConfigType) BuiltInRegistries.BLOCK_ENTITY_ELEMENT_TYPE.getValue(type); + if (configType == null) { throw new LocalizedResourceConfigException("warning.config.block.state.entity_renderer.invalid_type", type.toString()); } - return factory.create(arguments); + return configType.factory().create(arguments); + } + + private static Key guessType(Map arguments) { + return Key.ce(Optional.ofNullable(arguments.get("type")).map(String::valueOf).orElseGet(() -> { + if (arguments.containsKey("text")) { + return "text_display"; + } else { + return "item_display"; + } + })); } } diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/processor/ItemModelProcessor.java b/core/src/main/java/net/momirealms/craftengine/core/item/processor/ItemModelProcessor.java index bb35287bd..3bbaa026b 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/processor/ItemModelProcessor.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/processor/ItemModelProcessor.java @@ -18,12 +18,11 @@ public class ItemModelProcessor implements SimpleNetworkItemProcessor { } public Key data() { - return data; + return this.data; } @Override public Item apply(Item item, ItemBuildContext context) { - if (!VersionHelper.isOrAbove1_21_2()) return item; return item.itemModel(this.data.asString()); } 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 3cb656687..67b263860 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 @@ -4,6 +4,7 @@ import net.momirealms.craftengine.core.block.CustomBlock; import net.momirealms.craftengine.core.block.behavior.BlockBehaviorType; import net.momirealms.craftengine.core.block.entity.BlockEntityType; import net.momirealms.craftengine.core.block.entity.render.element.BlockEntityElementConfigFactory; +import net.momirealms.craftengine.core.block.entity.render.element.BlockEntityElementConfigType; import net.momirealms.craftengine.core.block.properties.PropertyType; import net.momirealms.craftengine.core.entity.furniture.behavior.FurnitureBehaviorType; import net.momirealms.craftengine.core.entity.furniture.element.FurnitureElementConfigFactory; @@ -76,7 +77,7 @@ public final 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); 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 100f732b4..414adc24d 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 @@ -4,6 +4,7 @@ import net.momirealms.craftengine.core.block.CustomBlock; import net.momirealms.craftengine.core.block.behavior.BlockBehaviorType; import net.momirealms.craftengine.core.block.entity.BlockEntityType; import net.momirealms.craftengine.core.block.entity.render.element.BlockEntityElementConfigFactory; +import net.momirealms.craftengine.core.block.entity.render.element.BlockEntityElementConfigType; import net.momirealms.craftengine.core.block.properties.PropertyType; import net.momirealms.craftengine.core.entity.furniture.behavior.FurnitureBehaviorType; import net.momirealms.craftengine.core.entity.furniture.element.FurnitureElementConfigFactory; @@ -80,7 +81,7 @@ public final 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")); diff --git a/core/src/main/java/net/momirealms/craftengine/core/util/Key.java b/core/src/main/java/net/momirealms/craftengine/core/util/Key.java index f580210ac..e6c980ab4 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/util/Key.java +++ b/core/src/main/java/net/momirealms/craftengine/core/util/Key.java @@ -4,6 +4,7 @@ import org.jetbrains.annotations.NotNull; public record Key(String namespace, String value) { public static final String DEFAULT_NAMESPACE = "craftengine"; + public static final String MINECRAFT_NAMESPACE = "minecraft"; public static Key withDefaultNamespace(String value) { return new Key(DEFAULT_NAMESPACE, value); @@ -22,11 +23,15 @@ public record Key(String namespace, String value) { } public static Key of(String namespacedId) { - return of(decompose(namespacedId, "minecraft")); + return of(decompose(namespacedId, MINECRAFT_NAMESPACE)); + } + + public static Key ce(String namespacedId) { + return of(decompose(namespacedId, DEFAULT_NAMESPACE)); } public static Key from(String namespacedId) { - return of(decompose(namespacedId, "minecraft")); + return of(decompose(namespacedId, MINECRAFT_NAMESPACE)); } public static Key fromNamespaceAndPath(String namespace, String path) { @@ -65,7 +70,7 @@ public record Key(String namespace, String value) { } public String asMinimalString() { - if (this.namespace.equals("minecraft")) { + if (this.namespace.equals(MINECRAFT_NAMESPACE)) { return this.value; } return asString(); From 57ee501c5cd379012d933401c9ecf2a8ded44480 Mon Sep 17 00:00:00 2001 From: XiaoMoMi Date: Sun, 28 Dec 2025 03:03:28 +0800 Subject: [PATCH 6/8] =?UTF-8?q?=E9=87=8D=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BukkitCompatibilityManager.java | 4 +- .../behavior/AttachedStemBlockBehavior.java | 1 - .../block/behavior/BouncingBlockBehavior.java | 1 - .../block/behavior/BuddingBlockBehavior.java | 1 - .../block/behavior/BukkitBlockBehaviors.java | 90 +++++++++--------- .../block/behavior/BushBlockBehavior.java | 1 - .../block/behavior/ButtonBlockBehavior.java | 6 +- .../behavior/ChangeOverTimeBlockBehavior.java | 1 - .../block/behavior/ChimeBlockBehavior.java | 2 - .../behavior/ConcretePowderBlockBehavior.java | 1 - .../block/behavior/CropBlockBehavior.java | 2 - .../DirectionalAttachedBlockBehavior.java | 1 - .../block/behavior/DoorBlockBehavior.java | 6 +- .../behavior/DoubleHighBlockBehavior.java | 1 - .../behavior/DropExperienceBlockBehavior.java | 1 - ...hedHorizontalDirectionalBlockBehavior.java | 1 - .../block/behavior/FallingBlockBehavior.java | 1 - .../block/behavior/FenceBlockBehavior.java | 1 - .../behavior/FenceGateBlockBehavior.java | 1 - .../block/behavior/GrassBlockBehavior.java | 1 - .../block/behavior/HangableBlockBehavior.java | 1 - .../block/behavior/HangingBlockBehavior.java | 1 - .../block/behavior/LampBlockBehavior.java | 2 - .../block/behavior/LeavesBlockBehavior.java | 1 - .../behavior/LiquidFlowableBlockBehavior.java | 1 - .../behavior/MultiHighBlockBehavior.java | 1 - .../behavior/NearLiquidBlockBehavior.java | 1 - .../block/behavior/OnLiquidBlockBehavior.java | 1 - .../behavior/PressurePlateBlockBehavior.java | 1 - .../block/behavior/SaplingBlockBehavior.java | 1 - .../block/behavior/SeatBlockBehavior.java | 2 - .../behavior/SimpleParticleBlockBehavior.java | 1 - .../behavior/SimpleStorageBlockBehavior.java | 1 - .../block/behavior/SlabBlockBehavior.java | 1 - .../block/behavior/SnowyBlockBehavior.java | 2 - .../block/behavior/SofaBlockBehavior.java | 6 +- .../behavior/StackableBlockBehavior.java | 1 - .../block/behavior/StairsBlockBehavior.java | 1 - .../block/behavior/StemBlockBehavior.java | 1 - .../behavior/StrippableBlockBehavior.java | 1 - .../behavior/SturdyBaseBlockBehavior.java | 1 - .../SurfaceSpreadingBlockBehavior.java | 1 - .../behavior/ToggleableLampBlockBehavior.java | 1 - .../block/behavior/TrapDoorBlockBehavior.java | 1 - .../behavior/VerticalCropBlockBehavior.java | 1 - .../WallTorchParticleBlockBehavior.java | 1 - .../element/ArmorStandFurnitureElement.java | 4 +- .../ArmorStandFurnitureElementConfig.java | 8 +- .../BukkitFurnitureElementConfigs.java | 15 ++- .../element/ItemDisplayFurnitureElement.java | 4 +- .../ItemDisplayFurnitureElementConfig.java | 8 +- .../element/ItemFurnitureElement.java | 4 +- .../element/ItemFurnitureElementConfig.java | 8 +- .../element/TextDisplayFurnitureElement.java | 4 +- .../TextDisplayFurnitureElementConfig.java | 8 +- .../hitbox/BukkitFurnitureHitboxTypes.java | 19 ++-- .../hitbox/CustomFurnitureHitbox.java | 4 +- .../hitbox/CustomFurnitureHitboxConfig.java | 4 +- .../hitbox/HappyGhastFurnitureHitbox.java | 4 +- .../HappyGhastFurnitureHitboxConfig.java | 4 +- .../hitbox/InteractionFurnitureHitbox.java | 4 +- .../InteractionFurnitureHitboxConfig.java | 4 +- .../hitbox/ShulkerFurnitureHitbox.java | 4 +- .../hitbox/ShulkerFurnitureHitboxConfig.java | 4 +- .../bukkit/item/behavior/AxeItemBehavior.java | 1 - .../item/behavior/BlockItemBehavior.java | 1 - .../item/behavior/BukkitItemBehaviors.java | 25 ++--- .../behavior/CeilingBlockItemBehavior.java | 1 - .../behavior/CompostableItemBehavior.java | 1 - .../behavior/DoubleHighBlockItemBehavior.java | 1 - .../behavior/FlintAndSteelItemBehavior.java | 1 - .../item/behavior/FurnitureItemBehavior.java | 1 - .../behavior/GroundBlockItemBehavior.java | 1 - .../LiquidCollisionBlockItemBehavior.java | 1 - .../LiquidCollisionFurnitureItemBehavior.java | 1 - .../behavior/MultiHighBlockItemBehavior.java | 1 - .../item/behavior/WallBlockItemBehavior.java | 1 - .../command/feature/UploadPackCommand.java | 2 +- .../injector/BlockStateProviderInjector.java | 8 +- .../plugin/injector/FeatureInjector.java | 2 +- .../plugin/injector/LootEntryInjector.java | 2 +- .../plugin/user/BukkitServerPlayer.java | 10 +- .../core/block/behavior/BlockBehaviors.java | 2 +- .../block/entity/BlockEntityTypeKeys.java | 12 +-- .../block/properties/BooleanProperty.java | 2 - .../block/properties/IntegerProperty.java | 2 - .../core/block/properties/Properties.java | 30 +++--- .../core/block/properties/StringProperty.java | 2 - .../furniture/AbstractFurnitureManager.java | 8 +- .../entity/furniture/FurnitureManager.java | 6 +- .../behavior/FurnitureBehaviorFactory.java | 3 - .../behavior/FurnitureBehaviorType.java | 2 - ...viorTypes.java => FurnitureBehaviors.java} | 4 +- .../element/FurnitureElementConfigType.java | 6 ++ .../element/FurnitureElementConfigs.java | 38 ++++---- .../hitbox/FurnitureHitBoxTypes.java | 33 ------- .../furniture/hitbox/FurnitureHitBoxes.java | 33 +++++++ .../hitbox/FurnitureHitboxConfigType.java | 6 ++ .../core/entity/seat/SeatManager.java | 4 +- .../craftengine/core/item/ItemSettings.java | 3 +- .../equipment/ComponentBasedEquipment.java | 11 +-- .../core/item/equipment/Equipment.java | 2 - .../core/item/equipment/EquipmentFactory.java | 4 +- .../core/item/equipment/EquipmentType.java | 6 ++ .../core/item/equipment/Equipments.java | 30 +++--- .../item/equipment/TrimBasedEquipment.java | 17 ++-- .../item/processor/ArgumentsProcessor.java | 2 - .../AttributeModifiersProcessor.java | 1 - .../item/processor/BlockStateProcessor.java | 1 - .../item/processor/ComponentsProcessor.java | 1 - .../item/processor/ConditionalProcessor.java | 2 - .../processor/CustomModelDataProcessor.java | 1 - .../item/processor/CustomNameProcessor.java | 1 - .../item/processor/DyedColorProcessor.java | 1 - .../item/processor/EnchantmentsProcessor.java | 1 - .../processor/EquippableAssetIdProcessor.java | 1 - .../item/processor/EquippableProcessor.java | 1 - .../processor/ExternalSourceProcessor.java | 2 - .../core/item/processor/FoodProcessor.java | 1 - .../item/processor/HideTooltipProcessor.java | 1 - .../core/item/processor/IdProcessor.java | 1 - .../item/processor/ItemModelProcessor.java | 2 - .../item/processor/ItemNameProcessor.java | 1 - .../core/item/processor/ItemProcessors.java | 76 +++++++-------- .../item/processor/JukeboxSongProcessor.java | 2 - .../item/processor/MaxDamageProcessor.java | 1 - .../OverwritableCustomModelDataProcessor.java | 1 - .../OverwritableItemModelProcessor.java | 1 - .../OverwritableItemNameProcessor.java | 1 - .../core/item/processor/PDCProcessor.java | 2 - .../processor/RemoveComponentProcessor.java | 2 - .../core/item/processor/TagsProcessor.java | 6 +- .../item/processor/TooltipStyleProcessor.java | 1 - .../core/item/processor/TrimProcessor.java | 1 - .../item/processor/UnbreakableProcessor.java | 1 - .../processor/lore/DynamicLoreProcessor.java | 1 - .../item/processor/lore/LoreProcessor.java | 1 - .../lore/OverwritableLoreProcessor.java | 1 - .../recipe/CustomSmithingTransformRecipe.java | 8 +- .../remainder/CompositeCraftRemainder.java | 2 +- .../recipe/remainder/CraftRemainderType.java | 6 ++ .../recipe/remainder/CraftRemainders.java | 28 +++--- .../recipe/remainder/FixedCraftRemainder.java | 6 +- .../remainder/HurtAndBreakRemainder.java | 6 +- .../remainder/RecipeBasedCraftRemainder.java | 6 +- .../result/ApplyItemDataPostProcessor.java | 19 ++++ .../item/recipe/result/PostProcessor.java | 7 -- .../recipe/result/PostProcessorFactory.java | 8 ++ .../item/recipe/result/PostProcessorType.java | 6 ++ .../item/recipe/result/PostProcessors.java | 31 +++--- .../core/item/updater/ItemUpdateConfig.java | 2 +- .../core/item/updater/ItemUpdaterFactory.java | 10 ++ .../core/item/updater/ItemUpdaterType.java | 6 +- .../core/item/updater/ItemUpdaters.java | 30 +++--- .../item/updater/impl/ApplyDataOperation.java | 8 +- .../item/updater/impl/ResetOperation.java | 8 +- .../item/updater/impl/TransmuteOperation.java | 8 +- .../entry/AlternativesLootEntryContainer.java | 2 - .../loot/entry/EmptyLoopEntryContainer.java | 2 - .../loot/entry/ExpLootEntryContainer.java | 2 - .../core/loot/entry/LootEntryContainers.java | 12 +-- .../entry/SingleItemLootEntryContainer.java | 1 - .../function/ApplyBonusCountFunction.java | 5 +- .../core/loot/function/ApplyDataFunction.java | 2 - .../core/loot/function/DropExpFunction.java | 2 - .../loot/function/ExplosionDecayFunction.java | 2 - .../loot/function/LimitCountFunction.java | 2 - .../core/loot/function/LootFunctions.java | 12 +-- .../core/loot/function/SetCountFunction.java | 2 - .../conflict/matcher/ContainsPathMatcher.java | 2 - .../conflict/matcher/ExactPathMatcher.java | 2 - .../conflict/matcher/FilenamePathMatcher.java | 2 - .../matcher/ParentPrefixPathMatcher.java | 2 - .../matcher/ParentSuffixPathMatcher.java | 2 - .../pack/conflict/matcher/PathMatchers.java | 18 ++-- .../conflict/matcher/PatternPathMatcher.java | 2 - .../resolution/ConditionalResolution.java | 2 - .../resolution/MergeAltasResolution.java | 2 - .../resolution/MergeFontResolution.java | 2 - .../resolution/MergeJsonResolution.java | 2 - .../MergeLegacyModelResolution.java | 2 - .../resolution/MergePackMcMetaResolution.java | 2 - .../pack/conflict/resolution/Resolutions.java | 14 +-- .../resolution/RetainMatchingResolution.java | 2 - .../core/pack/host/ResourcePackHost.java | 4 +- .../core/pack/host/ResourcePackHostType.java | 6 ++ .../core/pack/host/ResourcePackHosts.java | 46 ++++----- .../core/pack/host/impl/AlistHost.java | 7 +- .../core/pack/host/impl/DropboxHost.java | 12 +-- .../core/pack/host/impl/ExternalHost.java | 8 +- .../core/pack/host/impl/GitLabHost.java | 20 ++-- .../core/pack/host/impl/LobFileHost.java | 8 +- .../core/pack/host/impl/NoneHost.java | 14 +-- .../core/pack/host/impl/OneDriveHost.java | 7 +- .../core/pack/host/impl/SelfHost.java | 8 +- .../pack/model/definition/BaseItemModel.java | 3 +- .../definition/BundleSelectedItemModel.java | 4 +- .../model/definition/CompositeItemModel.java | 4 +- .../model/definition/ConditionItemModel.java | 4 +- .../pack/model/definition/EmptyItemModel.java | 4 +- .../pack/model/definition/ItemModels.java | 16 ++-- .../definition/RangeDispatchItemModel.java | 4 +- .../model/definition/SelectItemModel.java | 4 +- .../model/definition/SpecialItemModel.java | 3 +- .../condition/BrokenConditionProperty.java | 3 +- .../condition/ComponentConditionProperty.java | 4 +- .../condition/ConditionProperties.java | 26 ++--- .../CustomModelDataConditionProperty.java | 4 +- .../condition/DamagedConditionProperty.java | 3 +- .../HasComponentConditionProperty.java | 4 +- .../KeyBindDownConditionProperty.java | 4 +- .../condition/RodCastConditionProperty.java | 3 +- .../condition/UsingItemConditionProperty.java | 3 +- .../CompassRangeDispatchProperty.java | 4 +- .../CrossBowPullingRangeDispatchProperty.java | 3 +- .../CustomModelDataRangeDispatchProperty.java | 3 +- .../DamageRangeDispatchProperty.java | 3 +- .../RangeDispatchProperties.java | 20 ++-- .../TimeRangeDispatchProperty.java | 4 +- .../UseCycleRangeDispatchProperty.java | 4 +- .../UseDurationRangeDispatchProperty.java | 3 +- .../select/BlockStateSelectProperty.java | 4 +- .../select/ChargeTypeSelectProperty.java | 3 +- .../select/ComponentSelectProperty.java | 4 +- .../select/CustomModelDataSelectProperty.java | 4 +- .../select/DisplayContextSelectProperty.java | 4 +- .../select/LocalTimeSelectProperty.java | 4 +- .../select/MainHandSelectProperty.java | 3 +- .../definition/select/SelectProperties.java | 20 ++-- .../select/TrimMaterialSelectProperty.java | 3 +- .../special/BannerSpecialModel.java | 4 +- .../definition/special/BedSpecialModel.java | 4 +- .../definition/special/ChestSpecialModel.java | 4 +- .../CopperGolemStatueSpecialModel.java | 4 +- .../definition/special/HeadSpecialModel.java | 4 +- .../special/PlayerHeadSpecialModel.java | 6 +- .../special/ShulkerBoxSpecialModel.java | 12 +-- .../definition/special/SpecialModels.java | 26 ++--- .../model/definition/tint/ConstantTint.java | 4 +- .../definition/tint/CustomModelDataTint.java | 4 +- .../pack/model/definition/tint/GrassTint.java | 4 +- .../pack/model/definition/tint/Tints.java | 16 ++-- .../argument/ConditionTemplateArgument.java | 2 - .../argument/ExpressionTemplateArgument.java | 2 - .../argument/ListTemplateArgument.java | 2 - .../argument/MapTemplateArgument.java | 2 - .../argument/NullTemplateArgument.java | 3 - .../argument/ObjectTemplateArgument.java | 3 - .../argument/PlainStringTemplateArgument.java | 3 - .../SelfIncreaseIntTemplateArgument.java | 2 - .../template/argument/TemplateArguments.java | 22 ++--- .../argument/ToLowerCaseTemplateArgument.java | 2 - .../argument/ToUpperCaseTemplateArgument.java | 2 - .../argument/WhenTemplateArgument.java | 2 - .../core/plugin/context/CooldownData.java | 2 +- .../context/condition/CommonConditions.java | 56 +++++------ .../context/function/CommonFunctions.java | 94 +++++++++---------- .../number/BinomialNumberProvider.java | 2 - .../number/ExpressionNumberProvider.java | 2 - .../context/number/FixedNumberProvider.java | 2 - .../number/GaussianNumberProvider.java | 2 - .../context/number/NumberProviders.java | 12 +-- .../context/number/UniformNumberProvider.java | 2 - .../context/selector/AllPlayerSelector.java | 28 +++--- .../context/selector/PlayerSelector.java | 3 - .../context/selector/PlayerSelectorType.java | 7 ++ .../context/selector/PlayerSelectors.java | 52 +++++----- .../context/selector/SelfPlayerSelector.java | 13 ++- .../plugin/context/text/TextProviders.java | 4 +- .../plugin/network/PayloadChannelKeys.java | 2 +- .../core/registry/BuiltInRegistries.java | 29 +++--- .../craftengine/core/registry/Registries.java | 29 +++--- 272 files changed, 808 insertions(+), 1032 deletions(-) rename core/src/main/java/net/momirealms/craftengine/core/entity/furniture/behavior/{FurnitureBehaviorTypes.java => FurnitureBehaviors.java} (96%) create mode 100644 core/src/main/java/net/momirealms/craftengine/core/entity/furniture/element/FurnitureElementConfigType.java delete mode 100644 core/src/main/java/net/momirealms/craftengine/core/entity/furniture/hitbox/FurnitureHitBoxTypes.java create mode 100644 core/src/main/java/net/momirealms/craftengine/core/entity/furniture/hitbox/FurnitureHitBoxes.java create mode 100644 core/src/main/java/net/momirealms/craftengine/core/entity/furniture/hitbox/FurnitureHitboxConfigType.java create mode 100644 core/src/main/java/net/momirealms/craftengine/core/item/equipment/EquipmentType.java create mode 100644 core/src/main/java/net/momirealms/craftengine/core/item/recipe/remainder/CraftRemainderType.java create mode 100644 core/src/main/java/net/momirealms/craftengine/core/item/recipe/result/PostProcessorFactory.java create mode 100644 core/src/main/java/net/momirealms/craftengine/core/item/recipe/result/PostProcessorType.java create mode 100644 core/src/main/java/net/momirealms/craftengine/core/item/updater/ItemUpdaterFactory.java create mode 100644 core/src/main/java/net/momirealms/craftengine/core/pack/host/ResourcePackHostType.java create mode 100644 core/src/main/java/net/momirealms/craftengine/core/plugin/context/selector/PlayerSelectorType.java diff --git a/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/BukkitCompatibilityManager.java b/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/BukkitCompatibilityManager.java index 5e93476d4..3f296c2ff 100644 --- a/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/BukkitCompatibilityManager.java +++ b/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/BukkitCompatibilityManager.java @@ -108,10 +108,10 @@ public class BukkitCompatibilityManager implements CompatibilityManager { runCatchingHook(this::initWorldEditHook, "WorldEdit"); } if (this.hasPlugin("BetterModel")) { - runCatchingHook(() -> BukkitBlockEntityElementConfigs.register(Key.of("craftengine:better_model"), new BetterModelBlockEntityElementConfig.Factory()), "BetterModel"); + runCatchingHook(() -> BukkitBlockEntityElementConfigs.register(Key.ce("better_model"), new BetterModelBlockEntityElementConfig.Factory()), "BetterModel"); } if (this.hasPlugin("ModelEngine")) { - runCatchingHook(() -> BukkitBlockEntityElementConfigs.register(Key.of("craftengine:model_engine"), new ModelEngineBlockEntityElementConfig.Factory()), "ModelEngine"); + runCatchingHook(() -> BukkitBlockEntityElementConfigs.register(Key.ce("model_engine"), new ModelEngineBlockEntityElementConfig.Factory()), "ModelEngine"); } if (this.hasPlugin("CustomNameplates")) { runCatchingHook(() -> { diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/AttachedStemBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/AttachedStemBlockBehavior.java index 20cd4378a..9329336ef 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/AttachedStemBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/AttachedStemBlockBehavior.java @@ -22,7 +22,6 @@ import java.util.Optional; import java.util.concurrent.Callable; public class AttachedStemBlockBehavior extends BukkitBlockBehavior implements IsPathFindableBlockBehavior { - public static final Key ID = Key.from("craftengine:attached_stem_block"); public static final BlockBehaviorFactory FACTORY = new Factory(); private final Property facingProperty; private final Key fruit; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/BouncingBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/BouncingBlockBehavior.java index 9adc53b3f..26432f814 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/BouncingBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/BouncingBlockBehavior.java @@ -19,7 +19,6 @@ import java.util.Map; import java.util.concurrent.Callable; public class BouncingBlockBehavior extends BukkitBlockBehavior implements FallOnBlockBehavior { - public static final Key ID = Key.from("craftengine:bouncing_block"); public static final BlockBehaviorFactory FACTORY = new Factory(); private final double bounceHeight; private final boolean syncPlayerPosition; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/BuddingBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/BuddingBlockBehavior.java index 32617dee7..44fa19a7c 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/BuddingBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/BuddingBlockBehavior.java @@ -19,7 +19,6 @@ import java.util.Map; import java.util.concurrent.Callable; public class BuddingBlockBehavior extends BukkitBlockBehavior { - public static final Key ID = Key.from("craftengine:budding_block"); public static final BlockBehaviorFactory FACTORY = new Factory(); private final float growthChance; private final List blocks; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/BukkitBlockBehaviors.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/BukkitBlockBehaviors.java index 500e8219b..d96ab07ef 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/BukkitBlockBehaviors.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/BukkitBlockBehaviors.java @@ -7,51 +7,51 @@ import net.momirealms.craftengine.core.util.Key; public class BukkitBlockBehaviors extends BlockBehaviors { private BukkitBlockBehaviors() {} - public static final BlockBehaviorType BUSH_BLOCK = register(BushBlockBehavior.ID, BushBlockBehavior.FACTORY); - public static final BlockBehaviorType HANGING_BLOCK = register(HangingBlockBehavior.ID, HangingBlockBehavior.FACTORY); - public static final BlockBehaviorType FALLING_BLOCK = register(FallingBlockBehavior.ID, FallingBlockBehavior.FACTORY); - public static final BlockBehaviorType LEAVES_BLOCK = register(LeavesBlockBehavior.ID, LeavesBlockBehavior.FACTORY); - public static final BlockBehaviorType STRIPPABLE_BLOCK = register(StrippableBlockBehavior.ID, StrippableBlockBehavior.FACTORY); - public static final BlockBehaviorType SAPLING_BLOCK = register(SaplingBlockBehavior.ID, SaplingBlockBehavior.FACTORY); - public static final BlockBehaviorType ON_LIQUID_BLOCK = register(OnLiquidBlockBehavior.ID, OnLiquidBlockBehavior.FACTORY); - public static final BlockBehaviorType NEAR_LIQUID_BLOCK = register(NearLiquidBlockBehavior.ID, NearLiquidBlockBehavior.FACTORY); - public static final BlockBehaviorType CONCRETE_POWDER_BLOCK = register(ConcretePowderBlockBehavior.ID, ConcretePowderBlockBehavior.FACTORY); - public static final BlockBehaviorType VERTICAL_CROP_BLOCK = register(VerticalCropBlockBehavior.ID, VerticalCropBlockBehavior.FACTORY); - public static final BlockBehaviorType CROP_BLOCK = register(CropBlockBehavior.ID, CropBlockBehavior.FACTORY); - public static final BlockBehaviorType GRASS_BLOCK = register(GrassBlockBehavior.ID, GrassBlockBehavior.FACTORY); - public static final BlockBehaviorType LAMP_BLOCK = register(LampBlockBehavior.ID, LampBlockBehavior.FACTORY); - public static final BlockBehaviorType TRAPDOOR_BLOCK = register(TrapDoorBlockBehavior.ID, TrapDoorBlockBehavior.FACTORY); - public static final BlockBehaviorType DOOR_BLOCK = register(DoorBlockBehavior.ID, DoorBlockBehavior.FACTORY); - public static final BlockBehaviorType STACKABLE_BLOCK = register(StackableBlockBehavior.ID, StackableBlockBehavior.FACTORY); - public static final BlockBehaviorType STURDY_BASE_BLOCK = register(SturdyBaseBlockBehavior.ID, SturdyBaseBlockBehavior.FACTORY); - public static final BlockBehaviorType FENCE_GATE_BLOCK = register(FenceGateBlockBehavior.ID, FenceGateBlockBehavior.FACTORY); - public static final BlockBehaviorType SLAB_BLOCK = register(SlabBlockBehavior.ID, SlabBlockBehavior.FACTORY); - public static final BlockBehaviorType STAIRS_BLOCK = register(StairsBlockBehavior.ID, StairsBlockBehavior.FACTORY); - public static final BlockBehaviorType PRESSURE_PLATE_BLOCK = register(PressurePlateBlockBehavior.ID, PressurePlateBlockBehavior.FACTORY); - public static final BlockBehaviorType DOUBLE_HIGH_BLOCK = register(DoubleHighBlockBehavior.ID, DoubleHighBlockBehavior.FACTORY); - public static final BlockBehaviorType CHANGE_OVER_TIME_BLOCK = register(ChangeOverTimeBlockBehavior.ID, ChangeOverTimeBlockBehavior.FACTORY); - public static final BlockBehaviorType SIMPLE_STORAGE_BLOCK = register(SimpleStorageBlockBehavior.ID, SimpleStorageBlockBehavior.FACTORY); - public static final BlockBehaviorType TOGGLEABLE_LAMP_BLOCK = register(ToggleableLampBlockBehavior.ID, ToggleableLampBlockBehavior.FACTORY); - public static final BlockBehaviorType SOFA_BLOCK = register(SofaBlockBehavior.ID, SofaBlockBehavior.FACTORY); - public static final BlockBehaviorType BOUNCING_BLOCK = register(BouncingBlockBehavior.ID, BouncingBlockBehavior.FACTORY); - public static final BlockBehaviorType DIRECTIONAL_ATTACHED_BLOCK = register(DirectionalAttachedBlockBehavior.ID, DirectionalAttachedBlockBehavior.FACTORY); - public static final BlockBehaviorType LIQUID_FLOWABLE_BLOCK = register(LiquidFlowableBlockBehavior.ID, LiquidFlowableBlockBehavior.FACTORY); - public static final BlockBehaviorType SIMPLE_PARTICLE_BLOCK = register(SimpleParticleBlockBehavior.ID, SimpleParticleBlockBehavior.FACTORY); - public static final BlockBehaviorType WALL_TORCH_PARTICLE_BLOCK = register(WallTorchParticleBlockBehavior.ID, WallTorchParticleBlockBehavior.FACTORY); - public static final BlockBehaviorType FENCE_BLOCK = register(FenceBlockBehavior.ID, FenceBlockBehavior.FACTORY); - public static final BlockBehaviorType BUTTON_BLOCK = register(ButtonBlockBehavior.ID, ButtonBlockBehavior.FACTORY); - public static final BlockBehaviorType FACE_ATTACHED_HORIZONTAL_DIRECTIONAL_BLOCK = register(FaceAttachedHorizontalDirectionalBlockBehavior.ID, FaceAttachedHorizontalDirectionalBlockBehavior.FACTORY); - public static final BlockBehaviorType STEM_BLOCK = register(StemBlockBehavior.ID, StemBlockBehavior.FACTORY); - public static final BlockBehaviorType ATTACHED_STEM_BLOCK = register(AttachedStemBlockBehavior.ID, AttachedStemBlockBehavior.FACTORY); - public static final BlockBehaviorType CHIME_BLOCK = register(ChimeBlockBehavior.ID, ChimeBlockBehavior.FACTORY); - public static final BlockBehaviorType BUDDING_BLOCK = register(BuddingBlockBehavior.ID, BuddingBlockBehavior.FACTORY); - public static final BlockBehaviorType SEAT_BLOCK = register(SeatBlockBehavior.ID, SeatBlockBehavior.FACTORY); - public static final BlockBehaviorType SURFACE_SPREADING_BLOCK = register(SurfaceSpreadingBlockBehavior.ID, SurfaceSpreadingBlockBehavior.FACTORY); - public static final BlockBehaviorType SNOWY_BLOCK = register(SnowyBlockBehavior.ID, SnowyBlockBehavior.FACTORY); - public static final BlockBehaviorType HANGABLE_BLOCK = register(HangableBlockBehavior.ID, HangableBlockBehavior.FACTORY); - public static final BlockBehaviorType DROP_EXPERIENCE_BLOCK = register(DropExperienceBlockBehavior.ID, DropExperienceBlockBehavior.FACTORY); - public static final BlockBehaviorType DROP_EXP_BLOCK = register(Key.from("craftengine:drop_exp_block"), DropExperienceBlockBehavior.FACTORY); - public static final BlockBehaviorType MULTI_HIGH_BLOCK = register(MultiHighBlockBehavior.ID, MultiHighBlockBehavior.FACTORY); + public static final BlockBehaviorType BUSH_BLOCK = register(Key.ce("bush_block"), BushBlockBehavior.FACTORY); + public static final BlockBehaviorType HANGING_BLOCK = register(Key.ce("hanging_block"), HangingBlockBehavior.FACTORY); + public static final BlockBehaviorType FALLING_BLOCK = register(Key.ce("falling_block"), FallingBlockBehavior.FACTORY); + public static final BlockBehaviorType LEAVES_BLOCK = register(Key.ce("leaves_block"), LeavesBlockBehavior.FACTORY); + public static final BlockBehaviorType STRIPPABLE_BLOCK = register(Key.ce("strippable_block"), StrippableBlockBehavior.FACTORY); + public static final BlockBehaviorType SAPLING_BLOCK = register(Key.ce("sapling_block"), SaplingBlockBehavior.FACTORY); + public static final BlockBehaviorType ON_LIQUID_BLOCK = register(Key.ce("on_liquid_block"), OnLiquidBlockBehavior.FACTORY); + public static final BlockBehaviorType NEAR_LIQUID_BLOCK = register(Key.ce("near_liquid_block"), NearLiquidBlockBehavior.FACTORY); + public static final BlockBehaviorType CONCRETE_POWDER_BLOCK = register(Key.ce("concrete_powder_block"), ConcretePowderBlockBehavior.FACTORY); + public static final BlockBehaviorType VERTICAL_CROP_BLOCK = register(Key.ce("vertical_crop_block"), VerticalCropBlockBehavior.FACTORY); + public static final BlockBehaviorType CROP_BLOCK = register(Key.ce("crop_block"), CropBlockBehavior.FACTORY); + public static final BlockBehaviorType GRASS_BLOCK = register(Key.ce("grass_block"), GrassBlockBehavior.FACTORY); + public static final BlockBehaviorType LAMP_BLOCK = register(Key.ce("lamp_block"), LampBlockBehavior.FACTORY); + public static final BlockBehaviorType TRAPDOOR_BLOCK = register(Key.ce("trapdoor_block"), TrapDoorBlockBehavior.FACTORY); + public static final BlockBehaviorType DOOR_BLOCK = register(Key.ce("door_block"), DoorBlockBehavior.FACTORY); + public static final BlockBehaviorType STACKABLE_BLOCK = register(Key.ce("stackable_block"), StackableBlockBehavior.FACTORY); + public static final BlockBehaviorType STURDY_BASE_BLOCK = register(Key.ce("sturdy_base_block"), SturdyBaseBlockBehavior.FACTORY); + public static final BlockBehaviorType FENCE_GATE_BLOCK = register(Key.ce("fence_gate_block"), FenceGateBlockBehavior.FACTORY); + public static final BlockBehaviorType SLAB_BLOCK = register(Key.ce("slab_block"), SlabBlockBehavior.FACTORY); + public static final BlockBehaviorType STAIRS_BLOCK = register(Key.ce("stairs_block"), StairsBlockBehavior.FACTORY); + public static final BlockBehaviorType PRESSURE_PLATE_BLOCK = register(Key.ce("pressure_plate_block"), PressurePlateBlockBehavior.FACTORY); + public static final BlockBehaviorType DOUBLE_HIGH_BLOCK = register(Key.ce("double_high_block"), DoubleHighBlockBehavior.FACTORY); + public static final BlockBehaviorType CHANGE_OVER_TIME_BLOCK = register(Key.ce("change_over_time_block"), ChangeOverTimeBlockBehavior.FACTORY); + public static final BlockBehaviorType SIMPLE_STORAGE_BLOCK = register(Key.ce("simple_storage_block"), SimpleStorageBlockBehavior.FACTORY); + public static final BlockBehaviorType TOGGLEABLE_LAMP_BLOCK = register(Key.ce("toggleable_lamp_block"), ToggleableLampBlockBehavior.FACTORY); + public static final BlockBehaviorType SOFA_BLOCK = register(Key.ce("sofa_block"), SofaBlockBehavior.FACTORY); + public static final BlockBehaviorType BOUNCING_BLOCK = register(Key.ce("bouncing_block"), BouncingBlockBehavior.FACTORY); + public static final BlockBehaviorType DIRECTIONAL_ATTACHED_BLOCK = register(Key.ce("directional_attached_block"), DirectionalAttachedBlockBehavior.FACTORY); + public static final BlockBehaviorType LIQUID_FLOWABLE_BLOCK = register(Key.ce("liquid_flowable_block"), LiquidFlowableBlockBehavior.FACTORY); + public static final BlockBehaviorType SIMPLE_PARTICLE_BLOCK = register(Key.ce("simple_particle_block"), SimpleParticleBlockBehavior.FACTORY); + public static final BlockBehaviorType WALL_TORCH_PARTICLE_BLOCK = register(Key.ce("wall_torch_particle_block"), WallTorchParticleBlockBehavior.FACTORY); + public static final BlockBehaviorType FENCE_BLOCK = register(Key.ce("fence_block"), FenceBlockBehavior.FACTORY); + public static final BlockBehaviorType BUTTON_BLOCK = register(Key.ce("button_block"), ButtonBlockBehavior.FACTORY); + public static final BlockBehaviorType FACE_ATTACHED_HORIZONTAL_DIRECTIONAL_BLOCK = register(Key.ce("face_attached_horizontal_directional_block"), FaceAttachedHorizontalDirectionalBlockBehavior.FACTORY); + public static final BlockBehaviorType STEM_BLOCK = register(Key.ce("stem_block"), StemBlockBehavior.FACTORY); + public static final BlockBehaviorType ATTACHED_STEM_BLOCK = register(Key.ce("attached_stem_block"), AttachedStemBlockBehavior.FACTORY); + public static final BlockBehaviorType CHIME_BLOCK = register(Key.ce("chime_block"), ChimeBlockBehavior.FACTORY); + public static final BlockBehaviorType BUDDING_BLOCK = register(Key.ce("budding_block"), BuddingBlockBehavior.FACTORY); + public static final BlockBehaviorType SEAT_BLOCK = register(Key.ce("seat_block"), SeatBlockBehavior.FACTORY); + public static final BlockBehaviorType SURFACE_SPREADING_BLOCK = register(Key.ce("surface_spreading_block"), SurfaceSpreadingBlockBehavior.FACTORY); + public static final BlockBehaviorType SNOWY_BLOCK = register(Key.ce("snowy_block"), SnowyBlockBehavior.FACTORY); + public static final BlockBehaviorType HANGABLE_BLOCK = register(Key.ce("hangable_block"), HangableBlockBehavior.FACTORY); + public static final BlockBehaviorType DROP_EXPERIENCE_BLOCK = register(Key.ce("drop_experience_block"), DropExperienceBlockBehavior.FACTORY); + public static final BlockBehaviorType DROP_EXP_BLOCK = register(Key.ce("drop_exp_block"), DropExperienceBlockBehavior.FACTORY); + public static final BlockBehaviorType MULTI_HIGH_BLOCK = register(Key.ce("multi_high_block"), MultiHighBlockBehavior.FACTORY); public static void init() { } diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/BushBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/BushBlockBehavior.java index 19abeb591..a8e469c10 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/BushBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/BushBlockBehavior.java @@ -20,7 +20,6 @@ import org.bukkit.Registry; import java.util.*; public class BushBlockBehavior extends AbstractCanSurviveBlockBehavior { - public static final Key ID = Key.from("craftengine:bush_block"); public static final BlockBehaviorFactory FACTORY = new Factory(); protected final List tagsCanSurviveOn; protected final Set blockStatesCanSurviveOn; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/ButtonBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/ButtonBlockBehavior.java index 15231cceb..49a6dd260 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/ButtonBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/ButtonBlockBehavior.java @@ -17,7 +17,10 @@ import net.momirealms.craftengine.core.block.properties.BooleanProperty; import net.momirealms.craftengine.core.block.properties.Property; import net.momirealms.craftengine.core.entity.player.InteractionResult; import net.momirealms.craftengine.core.sound.SoundData; -import net.momirealms.craftengine.core.util.*; +import net.momirealms.craftengine.core.util.Direction; +import net.momirealms.craftengine.core.util.HorizontalDirection; +import net.momirealms.craftengine.core.util.ResourceConfigUtils; +import net.momirealms.craftengine.core.util.VersionHelper; import net.momirealms.craftengine.core.world.context.UseOnContext; import javax.annotation.Nullable; @@ -26,7 +29,6 @@ import java.util.Optional; import java.util.concurrent.Callable; public class ButtonBlockBehavior extends BukkitBlockBehavior { - public static final Key ID = Key.from("craftengine:button_block"); public static final BlockBehaviorFactory FACTORY = new Factory(); private final BooleanProperty poweredProperty; private final int ticksToStayPressed; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/ChangeOverTimeBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/ChangeOverTimeBlockBehavior.java index a1bd707a4..b5c198378 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/ChangeOverTimeBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/ChangeOverTimeBlockBehavior.java @@ -16,7 +16,6 @@ import java.util.Map; import java.util.concurrent.Callable; public class ChangeOverTimeBlockBehavior extends BukkitBlockBehavior { - public static final Key ID = Key.from("craftengine:change_over_time_block"); public static final BlockBehaviorFactory FACTORY = new Factory(); private final float changeSpeed; private final String nextBlock; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/ChimeBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/ChimeBlockBehavior.java index 894197c46..815e1f7e1 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/ChimeBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/ChimeBlockBehavior.java @@ -7,7 +7,6 @@ import net.momirealms.craftengine.core.block.CustomBlock; import net.momirealms.craftengine.core.block.behavior.BlockBehavior; import net.momirealms.craftengine.core.block.behavior.BlockBehaviorFactory; import net.momirealms.craftengine.core.sound.SoundData; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; @@ -15,7 +14,6 @@ import java.util.Optional; import java.util.concurrent.Callable; public class ChimeBlockBehavior extends BukkitBlockBehavior { - public static final Key ID = Key.from("craftengine:chime_block"); public static final BlockBehaviorFactory FACTORY = new Factory(); private final SoundData hitSound; 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 77a00b6cc..d3b285d48 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 @@ -28,7 +28,6 @@ import java.util.Map; import java.util.concurrent.Callable; public class ConcretePowderBlockBehavior extends BukkitBlockBehavior { - public static final Key ID = Key.from("craftengine:concrete_powder_block"); public static final BlockBehaviorFactory FACTORY = new Factory(); private final LazyReference<@Nullable ImmutableBlockState> targetBlock; 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 010c2d65e..a021f86c6 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 @@ -23,7 +23,6 @@ import net.momirealms.craftengine.core.plugin.context.number.NumberProvider; import net.momirealms.craftengine.core.plugin.context.number.NumberProviders; import net.momirealms.craftengine.core.plugin.context.parameter.DirectContextParameters; import net.momirealms.craftengine.core.util.ItemUtils; -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.world.Vec3d; @@ -39,7 +38,6 @@ import java.util.concurrent.Callable; @SuppressWarnings("DuplicatedCode") public class CropBlockBehavior extends BukkitBlockBehavior { - public static final Key ID = Key.from("craftengine:crop_block"); public static final BlockBehaviorFactory FACTORY = new Factory(); private final IntegerProperty ageProperty; private final float growSpeed; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/DirectionalAttachedBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/DirectionalAttachedBlockBehavior.java index 08f917e01..bc47220d8 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/DirectionalAttachedBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/DirectionalAttachedBlockBehavior.java @@ -26,7 +26,6 @@ import java.util.*; import java.util.concurrent.Callable; public class DirectionalAttachedBlockBehavior extends BukkitBlockBehavior { - public static final Key ID = Key.from("craftengine:directional_attached_block"); public static final BlockBehaviorFactory FACTORY = new Factory(); private final Property facingProperty; private final boolean isSixDirection; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/DoorBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/DoorBlockBehavior.java index 22695968e..4d59f1e41 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/DoorBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/DoorBlockBehavior.java @@ -24,7 +24,10 @@ import net.momirealms.craftengine.core.entity.player.InteractionResult; import net.momirealms.craftengine.core.entity.player.Player; import net.momirealms.craftengine.core.item.Item; import net.momirealms.craftengine.core.sound.SoundData; -import net.momirealms.craftengine.core.util.*; +import net.momirealms.craftengine.core.util.Direction; +import net.momirealms.craftengine.core.util.HorizontalDirection; +import net.momirealms.craftengine.core.util.ResourceConfigUtils; +import net.momirealms.craftengine.core.util.VersionHelper; import net.momirealms.craftengine.core.world.*; import net.momirealms.craftengine.core.world.context.BlockPlaceContext; import net.momirealms.craftengine.core.world.context.UseOnContext; @@ -45,7 +48,6 @@ import java.util.concurrent.Callable; @SuppressWarnings("DuplicatedCode") public class DoorBlockBehavior extends AbstractCanSurviveBlockBehavior implements IsPathFindableBlockBehavior { - public static final Key ID = Key.from("craftengine:door_block"); public static final BlockBehaviorFactory FACTORY = new Factory(); private final Property halfProperty; private final Property facingProperty; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/DoubleHighBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/DoubleHighBlockBehavior.java index 098d097de..616ab0c10 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/DoubleHighBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/DoubleHighBlockBehavior.java @@ -28,7 +28,6 @@ import java.util.Optional; import java.util.concurrent.Callable; public class DoubleHighBlockBehavior extends AbstractCanSurviveBlockBehavior { - public static final Key ID = Key.from("craftengine:double_high_block"); public static final BlockBehaviorFactory FACTORY = new Factory(); private final Property halfProperty; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/DropExperienceBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/DropExperienceBlockBehavior.java index 03119f033..3f93dce96 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/DropExperienceBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/DropExperienceBlockBehavior.java @@ -34,7 +34,6 @@ import java.util.concurrent.Callable; import java.util.function.Predicate; public class DropExperienceBlockBehavior extends BukkitBlockBehavior { - public static final Key ID = Key.from("craftengine:drop_experience_block"); public static final BlockBehaviorFactory FACTORY = new Factory(); private final NumberProvider amount; private final Predicate condition; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/FaceAttachedHorizontalDirectionalBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/FaceAttachedHorizontalDirectionalBlockBehavior.java index 9fd8a3438..ac56abaea 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/FaceAttachedHorizontalDirectionalBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/FaceAttachedHorizontalDirectionalBlockBehavior.java @@ -23,7 +23,6 @@ import java.util.Set; import java.util.concurrent.Callable; public class FaceAttachedHorizontalDirectionalBlockBehavior extends BukkitBlockBehavior { - public static final Key ID = Key.from("craftengine:face_attached_horizontal_directional_block"); public static final BlockBehaviorFactory FACTORY = new Factory(); private final Property anchorTypeProperty; private final Property facingProperty; 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 ed61e2d81..2c4ff1507 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 @@ -23,7 +23,6 @@ import java.util.Optional; import java.util.concurrent.Callable; public class FallingBlockBehavior extends BukkitBlockBehavior { - public static final Key ID = Key.from("craftengine:falling_block"); public static final BlockBehaviorFactory FACTORY = new Factory(); private final float hurtAmount; private final int maxHurt; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/FenceBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/FenceBlockBehavior.java index bd80df922..a11450c89 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/FenceBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/FenceBlockBehavior.java @@ -32,7 +32,6 @@ import java.util.Optional; import java.util.concurrent.Callable; public class FenceBlockBehavior extends BukkitBlockBehavior implements IsPathFindableBlockBehavior { - public static final Key ID = Key.from("craftengine:fence_block"); public static final BlockBehaviorFactory FACTORY = new Factory(); private final BooleanProperty northProperty; private final BooleanProperty eastProperty; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/FenceGateBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/FenceGateBlockBehavior.java index a942d9023..3421c97ab 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/FenceGateBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/FenceGateBlockBehavior.java @@ -43,7 +43,6 @@ import java.util.concurrent.Callable; @SuppressWarnings("DuplicatedCode") public class FenceGateBlockBehavior extends BukkitBlockBehavior implements IsPathFindableBlockBehavior { - public static final Key ID = Key.from("craftengine:fence_gate_block"); public static final BlockBehaviorFactory FACTORY = new Factory(); private final Property facingProperty; private final Property inWallProperty; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/GrassBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/GrassBlockBehavior.java index 32cef5a93..1c1322b81 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/GrassBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/GrassBlockBehavior.java @@ -29,7 +29,6 @@ import java.util.Optional; @SuppressWarnings("DuplicatedCode") public class GrassBlockBehavior extends BukkitBlockBehavior { - public static final Key ID = Key.from("craftengine:grass_block"); public static final BlockBehaviorFactory FACTORY = new Factory(); private final Key feature; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/HangableBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/HangableBlockBehavior.java index 47df39a7b..5b1fffc9f 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/HangableBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/HangableBlockBehavior.java @@ -21,7 +21,6 @@ import java.util.Map; import java.util.concurrent.Callable; public class HangableBlockBehavior extends BukkitBlockBehavior implements IsPathFindableBlockBehavior { - public static final Key ID = Key.from("craftengine:hangable_block"); public static final BlockBehaviorFactory FACTORY = new Factory(); private final BooleanProperty hangingProperty; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/HangingBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/HangingBlockBehavior.java index d2531dae1..da39c5243 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/HangingBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/HangingBlockBehavior.java @@ -15,7 +15,6 @@ import java.util.Set; public class HangingBlockBehavior extends BushBlockBehavior { public static final BlockBehaviorFactory FACTORY = new Factory(); - public static final Key ID = Key.from("craftengine:hanging_block"); public HangingBlockBehavior(CustomBlock block, int delay, boolean blacklist, boolean stackable, List tagsCanSurviveOn, Set blocksCansSurviveOn, Set customBlocksCansSurviveOn) { super(block, delay, blacklist, stackable, -1, tagsCanSurviveOn, blocksCansSurviveOn, customBlocksCansSurviveOn); diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/LampBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/LampBlockBehavior.java index c3326993f..4e193b597 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/LampBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/LampBlockBehavior.java @@ -8,7 +8,6 @@ import net.momirealms.craftengine.core.block.ImmutableBlockState; import net.momirealms.craftengine.core.block.behavior.BlockBehavior; import net.momirealms.craftengine.core.block.behavior.BlockBehaviorFactory; import net.momirealms.craftengine.core.block.properties.Property; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import net.momirealms.craftengine.core.world.context.BlockPlaceContext; @@ -18,7 +17,6 @@ import java.util.concurrent.Callable; @SuppressWarnings("DuplicatedCode") public class LampBlockBehavior extends BukkitBlockBehavior { - public static final Key ID = Key.from("craftengine:lamp_block"); public static final BlockBehaviorFactory FACTORY = new Factory(); private final Property litProperty; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/LeavesBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/LeavesBlockBehavior.java index 2bb1e629b..c8ad1a0d6 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/LeavesBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/LeavesBlockBehavior.java @@ -24,7 +24,6 @@ import java.util.Optional; import java.util.concurrent.Callable; public class LeavesBlockBehavior extends BukkitBlockBehavior { - public static final Key ID = Key.from("craftengine:leaves_block"); public static final BlockBehaviorFactory FACTORY = new Factory(); private static final Object LOG_TAG = BlockTags.getOrCreate(Key.of("minecraft", "logs")); private final int maxDistance; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/LiquidFlowableBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/LiquidFlowableBlockBehavior.java index b8520ae64..465bc0ecf 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/LiquidFlowableBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/LiquidFlowableBlockBehavior.java @@ -14,7 +14,6 @@ import java.util.Map; import java.util.concurrent.Callable; public class LiquidFlowableBlockBehavior extends BukkitBlockBehavior implements PlaceLiquidBlockBehavior { - public static final Key ID = Key.from("craftengine:liquid_flowable_block"); public static final BlockBehaviorFactory FACTORY = new Factory(); public LiquidFlowableBlockBehavior(CustomBlock customBlock) { diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/MultiHighBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/MultiHighBlockBehavior.java index d58ea5cdd..1874af875 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/MultiHighBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/MultiHighBlockBehavior.java @@ -29,7 +29,6 @@ import java.util.Optional; import java.util.concurrent.Callable; public class MultiHighBlockBehavior extends BukkitBlockBehavior { - public static final Key ID = Key.from("craftengine:multi_high_block"); public static final BlockBehaviorFactory FACTORY = new Factory(); public final IntegerProperty highProperty; 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 8f4b6f74f..b348b485c 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 @@ -19,7 +19,6 @@ import java.util.Map; import java.util.Optional; public class NearLiquidBlockBehavior extends AbstractCanSurviveBlockBehavior { - public static final Key ID = Key.from("craftengine:near_liquid_block"); private static final List WATER = List.of(MFluids.WATER, MFluids.FLOWING_WATER); private static final List LAVA = List.of(MFluids.LAVA, MFluids.FLOWING_LAVA); public static final BlockBehaviorFactory FACTORY = new Factory(); 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 3ed2d1e29..abcc5d6c9 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 @@ -18,7 +18,6 @@ import java.util.Map; import java.util.Optional; public class OnLiquidBlockBehavior extends AbstractCanSurviveBlockBehavior { - public static final Key ID = Key.from("craftengine:on_liquid_block"); public static final BlockBehaviorFactory FACTORY = new Factory(); private final boolean onWater; private final boolean onLava; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/PressurePlateBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/PressurePlateBlockBehavior.java index 1d0fa2242..c2bd9c754 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/PressurePlateBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/PressurePlateBlockBehavior.java @@ -28,7 +28,6 @@ import java.util.Optional; import java.util.concurrent.Callable; public class PressurePlateBlockBehavior extends BukkitBlockBehavior { - public static final Key ID = Key.from("craftengine:pressure_plate_block"); public static final BlockBehaviorFactory FACTORY = new Factory(); private final Property poweredProperty; private final SoundData onSound; 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 4807c5e7b..789537189 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 @@ -34,7 +34,6 @@ import java.util.concurrent.Callable; @SuppressWarnings("DuplicatedCode") public class SaplingBlockBehavior extends BukkitBlockBehavior { - public static final Key ID = Key.from("craftengine:sapling_block"); public static final BlockBehaviorFactory FACTORY = new Factory(); private final Key feature; private final IntegerProperty stageProperty; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SeatBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SeatBlockBehavior.java index 6873bdc27..1908496b7 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SeatBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SeatBlockBehavior.java @@ -14,7 +14,6 @@ import net.momirealms.craftengine.core.block.properties.Property; import net.momirealms.craftengine.core.entity.player.InteractionResult; import net.momirealms.craftengine.core.entity.seat.SeatConfig; import net.momirealms.craftengine.core.util.HorizontalDirection; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.world.BlockPos; import net.momirealms.craftengine.core.world.CEWorld; import net.momirealms.craftengine.core.world.context.UseOnContext; @@ -22,7 +21,6 @@ import net.momirealms.craftengine.core.world.context.UseOnContext; import java.util.Map; public class SeatBlockBehavior extends BukkitBlockBehavior implements EntityBlockBehavior { - public static final Key ID = Key.from("craftengine:seat_block"); public static final BlockBehaviorFactory FACTORY = new Factory(); private final Property directionProperty; private final SeatConfig[] seats; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SimpleParticleBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SimpleParticleBlockBehavior.java index 36991eb50..57640bb86 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SimpleParticleBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SimpleParticleBlockBehavior.java @@ -20,7 +20,6 @@ import java.util.List; import java.util.Map; public class SimpleParticleBlockBehavior extends BukkitBlockBehavior implements EntityBlockBehavior { - public static final Key ID = Key.from("craftengine:simple_particle_block"); public static final BlockBehaviorFactory FACTORY = new Factory(); public final ParticleConfig[] particles; public final int tickInterval; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SimpleStorageBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SimpleStorageBlockBehavior.java index 5d60cd182..758e96ac0 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SimpleStorageBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SimpleStorageBlockBehavior.java @@ -39,7 +39,6 @@ import java.util.Optional; import java.util.concurrent.Callable; public class SimpleStorageBlockBehavior extends BukkitBlockBehavior implements EntityBlockBehavior { - public static final Key ID = Key.from("craftengine:simple_storage_block"); public static final BlockBehaviorFactory FACTORY = new Factory(); private final String containerTitle; private final int rows; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SlabBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SlabBlockBehavior.java index ce90b4836..a38520c1e 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SlabBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SlabBlockBehavior.java @@ -27,7 +27,6 @@ import java.util.Optional; import java.util.concurrent.Callable; public class SlabBlockBehavior extends BukkitBlockBehavior implements IsPathFindableBlockBehavior, CanBeReplacedBlockBehavior { - public static final Key ID = Key.from("craftengine:slab_block"); public static final BlockBehaviorFactory FACTORY = new Factory(); private final Property typeProperty; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SnowyBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SnowyBlockBehavior.java index 1b244e886..62f4b2292 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SnowyBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SnowyBlockBehavior.java @@ -10,7 +10,6 @@ import net.momirealms.craftengine.core.block.ImmutableBlockState; import net.momirealms.craftengine.core.block.behavior.BlockBehavior; import net.momirealms.craftengine.core.block.behavior.BlockBehaviorFactory; import net.momirealms.craftengine.core.block.properties.BooleanProperty; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import net.momirealms.craftengine.core.world.context.BlockPlaceContext; @@ -18,7 +17,6 @@ import java.util.Map; import java.util.concurrent.Callable; public class SnowyBlockBehavior extends BukkitBlockBehavior { - public static final Key ID = Key.from("craftengine:snowy_block"); public static final BlockBehaviorFactory FACTORY = new Factory(); private final BooleanProperty snowyProperty; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SofaBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SofaBlockBehavior.java index 6208c259a..f94c40c32 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SofaBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SofaBlockBehavior.java @@ -11,7 +11,10 @@ import net.momirealms.craftengine.core.block.behavior.BlockBehavior; import net.momirealms.craftengine.core.block.behavior.BlockBehaviorFactory; import net.momirealms.craftengine.core.block.properties.Property; import net.momirealms.craftengine.core.block.properties.type.SofaShape; -import net.momirealms.craftengine.core.util.*; +import net.momirealms.craftengine.core.util.Direction; +import net.momirealms.craftengine.core.util.HorizontalDirection; +import net.momirealms.craftengine.core.util.ResourceConfigUtils; +import net.momirealms.craftengine.core.util.VersionHelper; import net.momirealms.craftengine.core.world.BlockPos; import net.momirealms.craftengine.core.world.context.BlockPlaceContext; @@ -20,7 +23,6 @@ import java.util.Optional; import java.util.concurrent.Callable; public class SofaBlockBehavior extends BukkitBlockBehavior { - public static final Key ID = Key.from("craftengine:sofa_block"); public static final BlockBehaviorFactory FACTORY = new Factory(); private final Property facingProperty; private final Property shapeProperty; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/StackableBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/StackableBlockBehavior.java index e6d764f50..5868d516d 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/StackableBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/StackableBlockBehavior.java @@ -22,7 +22,6 @@ import java.util.List; import java.util.Map; public class StackableBlockBehavior extends BukkitBlockBehavior implements CanBeReplacedBlockBehavior { - public static final Key ID = Key.from("craftengine:stackable_block"); public static final BlockBehaviorFactory FACTORY = new Factory(); private final IntegerProperty amountProperty; private final List items; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/StairsBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/StairsBlockBehavior.java index 6ee392f5d..58dbcf11e 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/StairsBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/StairsBlockBehavior.java @@ -22,7 +22,6 @@ import java.util.concurrent.Callable; @SuppressWarnings("DuplicatedCode") public class StairsBlockBehavior extends BukkitBlockBehavior { - public static final Key ID = Key.from("craftengine:stairs_block"); public static final BlockBehaviorFactory FACTORY = new Factory(); private final Property facingProperty; private final Property halfProperty; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/StemBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/StemBlockBehavior.java index 564ef3718..b3b59d365 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/StemBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/StemBlockBehavior.java @@ -23,7 +23,6 @@ import java.util.Optional; import java.util.concurrent.Callable; public class StemBlockBehavior extends BukkitBlockBehavior implements IsPathFindableBlockBehavior { - public static final Key ID = Key.from("craftengine:stem_block"); public static final BlockBehaviorFactory FACTORY = new Factory(); private final IntegerProperty ageProperty; private final Key fruit; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/StrippableBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/StrippableBlockBehavior.java index 9ac576802..d7cf461e1 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/StrippableBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/StrippableBlockBehavior.java @@ -15,7 +15,6 @@ import java.util.List; import java.util.Map; public class StrippableBlockBehavior extends BukkitBlockBehavior { - public static final Key ID = Key.from("craftengine:strippable_block"); public static final BlockBehaviorFactory FACTORY = new Factory(); private final String stripped; private final LazyReference lazyState; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SturdyBaseBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SturdyBaseBlockBehavior.java index 56a58778e..4c3a23a3c 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SturdyBaseBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SturdyBaseBlockBehavior.java @@ -19,7 +19,6 @@ import java.util.Map; import java.util.Optional; public class SturdyBaseBlockBehavior extends AbstractCanSurviveBlockBehavior { - public static final Key ID = Key.from("craftengine:sturdy_base_block"); public static final BlockBehaviorFactory FACTORY = new Factory(); private final Direction direction; private final boolean stackable; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SurfaceSpreadingBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SurfaceSpreadingBlockBehavior.java index 17efd6058..7965e89a6 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SurfaceSpreadingBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SurfaceSpreadingBlockBehavior.java @@ -19,7 +19,6 @@ import java.util.Objects; import java.util.concurrent.Callable; public class SurfaceSpreadingBlockBehavior extends BukkitBlockBehavior { - public static final Key ID = Key.from("craftengine:surface_spreading_block"); public static final BlockBehaviorFactory FACTORY = new Factory(); private final int requiredLight; private final LazyReference baseBlock; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/ToggleableLampBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/ToggleableLampBlockBehavior.java index 07a4a597f..d950ca442 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/ToggleableLampBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/ToggleableLampBlockBehavior.java @@ -19,7 +19,6 @@ import java.util.Optional; import java.util.concurrent.Callable; public class ToggleableLampBlockBehavior extends BukkitBlockBehavior { - public static final Key ID = Key.from("craftengine:toggleable_lamp_block"); public static final BlockBehaviorFactory FACTORY = new Factory(); private final Property litProperty; private final Property poweredProperty; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/TrapDoorBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/TrapDoorBlockBehavior.java index 3da423d57..acad70824 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/TrapDoorBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/TrapDoorBlockBehavior.java @@ -42,7 +42,6 @@ import java.util.concurrent.Callable; @SuppressWarnings("DuplicatedCode") public class TrapDoorBlockBehavior extends BukkitBlockBehavior implements IsPathFindableBlockBehavior { - public static final Key ID = Key.from("craftengine:trapdoor_block"); public static final BlockBehaviorFactory FACTORY = new Factory(); private final Property halfProperty; private final Property facingProperty; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/VerticalCropBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/VerticalCropBlockBehavior.java index 603a87110..fadc5f6f1 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/VerticalCropBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/VerticalCropBlockBehavior.java @@ -23,7 +23,6 @@ import java.util.Optional; import java.util.concurrent.Callable; public class VerticalCropBlockBehavior extends BukkitBlockBehavior { - public static final Key ID = Key.from("craftengine:vertical_crop_block"); public static final BlockBehaviorFactory FACTORY = new Factory(); private final int maxHeight; private final IntegerProperty ageProperty; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/WallTorchParticleBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/WallTorchParticleBlockBehavior.java index 168fca9f3..1edba71fa 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/WallTorchParticleBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/WallTorchParticleBlockBehavior.java @@ -23,7 +23,6 @@ import java.util.List; import java.util.Map; public class WallTorchParticleBlockBehavior extends BukkitBlockBehavior implements EntityBlockBehavior { - public static final Key ID = Key.from("craftengine:wall_torch_particle_block"); public static final BlockBehaviorFactory FACTORY = new Factory(); public final ParticleConfig[] particles; public final int tickInterval; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/element/ArmorStandFurnitureElement.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/element/ArmorStandFurnitureElement.java index 842644c53..cb96c7a0b 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/element/ArmorStandFurnitureElement.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/element/ArmorStandFurnitureElement.java @@ -19,7 +19,7 @@ import java.util.List; import java.util.UUID; import java.util.function.Consumer; -public class ArmorStandFurnitureElement extends AbstractFurnitureElement { +public final class ArmorStandFurnitureElement extends AbstractFurnitureElement { private final ArmorStandFurnitureElementConfig config; private final Furniture furniture; private final Object cachedSpawnPacket; @@ -34,7 +34,7 @@ public class ArmorStandFurnitureElement extends AbstractFurnitureElement { return this.furniture; } - public ArmorStandFurnitureElement(Furniture furniture, ArmorStandFurnitureElementConfig config) { + ArmorStandFurnitureElement(Furniture furniture, ArmorStandFurnitureElementConfig config) { super(config.predicate, config.hasCondition); this.config = config; this.furniture = furniture; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/element/ArmorStandFurnitureElementConfig.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/element/ArmorStandFurnitureElementConfig.java index dc6b12114..39af4c6f5 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/element/ArmorStandFurnitureElementConfig.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/element/ArmorStandFurnitureElementConfig.java @@ -30,8 +30,8 @@ import java.util.Optional; import java.util.function.Function; import java.util.function.Predicate; -public class ArmorStandFurnitureElementConfig implements FurnitureElementConfig { - public static final Factory FACTORY = new Factory(); +public final class ArmorStandFurnitureElementConfig implements FurnitureElementConfig { + public static final FurnitureElementConfigFactory FACTORY = new Factory(); public final Function> metadata; public final Key itemId; public final float scale; @@ -42,7 +42,7 @@ public class ArmorStandFurnitureElementConfig implements FurnitureElementConfig< public final Predicate predicate; public final boolean hasCondition; - public ArmorStandFurnitureElementConfig(Key itemId, + private ArmorStandFurnitureElementConfig(Key itemId, float scale, Vector3f position, boolean applyDyedColor, @@ -92,7 +92,7 @@ public class ArmorStandFurnitureElementConfig implements FurnitureElementConfig< return new ArmorStandFurnitureElement(furniture, this); } - public static class Factory implements FurnitureElementConfigFactory { + private static class Factory implements FurnitureElementConfigFactory { @Override public ArmorStandFurnitureElementConfig create(Map arguments) { diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/element/BukkitFurnitureElementConfigs.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/element/BukkitFurnitureElementConfigs.java index fc328fa1d..b1cddc1e7 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/element/BukkitFurnitureElementConfigs.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/element/BukkitFurnitureElementConfigs.java @@ -1,15 +1,14 @@ package net.momirealms.craftengine.bukkit.entity.furniture.element; +import net.momirealms.craftengine.core.entity.furniture.element.FurnitureElementConfigType; import net.momirealms.craftengine.core.entity.furniture.element.FurnitureElementConfigs; +import net.momirealms.craftengine.core.util.Key; -public class BukkitFurnitureElementConfigs extends FurnitureElementConfigs { - - static { - register(ITEM_DISPLAY, ItemDisplayFurnitureElementConfig.FACTORY); - register(TEXT_DISPLAY, TextDisplayFurnitureElementConfig.FACTORY); - register(ITEM, ItemFurnitureElementConfig.FACTORY); - register(ARMOR_STAND, ArmorStandFurnitureElementConfig.FACTORY); - } +public final class BukkitFurnitureElementConfigs extends FurnitureElementConfigs { + public static final FurnitureElementConfigType ITEM_DISPLAY = register(Key.ce("item_display"), ItemDisplayFurnitureElementConfig.FACTORY); + public static final FurnitureElementConfigType TEXT_DISPLAY = register(Key.ce("text_display"), TextDisplayFurnitureElementConfig.FACTORY); + public static final FurnitureElementConfigType ITEM = register(Key.ce("item"), ItemFurnitureElementConfig.FACTORY); + public static final FurnitureElementConfigType ARMOR_STAND = register(Key.ce("armor_stand"), ArmorStandFurnitureElementConfig.FACTORY); private BukkitFurnitureElementConfigs() {} diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/element/ItemDisplayFurnitureElement.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/element/ItemDisplayFurnitureElement.java index 6aca1f728..e7d58f3a6 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/element/ItemDisplayFurnitureElement.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/element/ItemDisplayFurnitureElement.java @@ -15,7 +15,7 @@ import java.util.List; import java.util.UUID; import java.util.function.Consumer; -public class ItemDisplayFurnitureElement extends AbstractFurnitureElement { +public final class ItemDisplayFurnitureElement extends AbstractFurnitureElement { private final ItemDisplayFurnitureElementConfig config; private final Furniture furniture; private final WorldPosition position; @@ -23,7 +23,7 @@ public class ItemDisplayFurnitureElement extends AbstractFurnitureElement { private final Object despawnPacket; private final UUID uuid = UUID.randomUUID(); - public ItemDisplayFurnitureElement(Furniture furniture, ItemDisplayFurnitureElementConfig config) { + ItemDisplayFurnitureElement(Furniture furniture, ItemDisplayFurnitureElementConfig config) { super(config.predicate, config.hasCondition); this.config = config; this.furniture = furniture; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/element/ItemDisplayFurnitureElementConfig.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/element/ItemDisplayFurnitureElementConfig.java index 3eb940aca..6afb64dc4 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/element/ItemDisplayFurnitureElementConfig.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/element/ItemDisplayFurnitureElementConfig.java @@ -33,8 +33,8 @@ import java.util.Optional; import java.util.function.BiFunction; import java.util.function.Predicate; -public class ItemDisplayFurnitureElementConfig implements FurnitureElementConfig { - public static final Factory FACTORY = new Factory(); +public final class ItemDisplayFurnitureElementConfig implements FurnitureElementConfig { + public static final FurnitureElementConfigFactory FACTORY = new Factory(); public final BiFunction> metadata; public final Key itemId; public final Vector3f scale; @@ -55,7 +55,7 @@ public class ItemDisplayFurnitureElementConfig implements FurnitureElementConfig public final Predicate predicate; public final boolean hasCondition; - public ItemDisplayFurnitureElementConfig(Key itemId, + private ItemDisplayFurnitureElementConfig(Key itemId, Vector3f scale, Vector3f position, Vector3f translation, @@ -132,7 +132,7 @@ public class ItemDisplayFurnitureElementConfig implements FurnitureElementConfig return new ItemDisplayFurnitureElement(furniture, this); } - public static class Factory implements FurnitureElementConfigFactory { + private static class Factory implements FurnitureElementConfigFactory { @Override public ItemDisplayFurnitureElementConfig create(Map arguments) { diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/element/ItemFurnitureElement.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/element/ItemFurnitureElement.java index 2937905ec..23bf3f8fb 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/element/ItemFurnitureElement.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/element/ItemFurnitureElement.java @@ -15,7 +15,7 @@ import java.util.List; import java.util.UUID; import java.util.function.Consumer; -public class ItemFurnitureElement extends AbstractFurnitureElement { +public final class ItemFurnitureElement extends AbstractFurnitureElement { private final ItemFurnitureElementConfig config; private final Furniture furniture; private final int entityId1; @@ -25,7 +25,7 @@ public class ItemFurnitureElement extends AbstractFurnitureElement { private final Object cachedSpawnPacket2; private final Object cachedRidePacket; - public ItemFurnitureElement(Furniture furniture, ItemFurnitureElementConfig config) { + ItemFurnitureElement(Furniture furniture, ItemFurnitureElementConfig config) { super(config.predicate, config.hasCondition); this.furniture = furniture; this.config = config; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/element/ItemFurnitureElementConfig.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/element/ItemFurnitureElementConfig.java index 346332221..5e1baaaee 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/element/ItemFurnitureElementConfig.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/element/ItemFurnitureElementConfig.java @@ -28,8 +28,8 @@ import java.util.Optional; import java.util.function.BiFunction; import java.util.function.Predicate; -public class ItemFurnitureElementConfig implements FurnitureElementConfig { - public static final Factory FACTORY = new Factory(); +public final class ItemFurnitureElementConfig implements FurnitureElementConfig { + public static final FurnitureElementConfigFactory FACTORY = new Factory(); public final BiFunction> metadata; public final Key itemId; public final boolean applyDyedColor; @@ -37,7 +37,7 @@ public class ItemFurnitureElementConfig implements FurnitureElementConfig predicate; public final boolean hasCondition; - public ItemFurnitureElementConfig(Key itemId, + private ItemFurnitureElementConfig(Key itemId, Vector3f position, boolean applyDyedColor, Predicate predicate, @@ -74,7 +74,7 @@ public class ItemFurnitureElementConfig implements FurnitureElementConfig { + private static class Factory implements FurnitureElementConfigFactory { @Override public ItemFurnitureElementConfig create(Map arguments) { diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/element/TextDisplayFurnitureElement.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/element/TextDisplayFurnitureElement.java index d142e9b32..6e7102d02 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/element/TextDisplayFurnitureElement.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/element/TextDisplayFurnitureElement.java @@ -15,7 +15,7 @@ import java.util.List; import java.util.UUID; import java.util.function.Consumer; -public class TextDisplayFurnitureElement extends AbstractFurnitureElement { +public final class TextDisplayFurnitureElement extends AbstractFurnitureElement { private final TextDisplayFurnitureElementConfig config; private final Furniture furniture; private final WorldPosition position; @@ -23,7 +23,7 @@ public class TextDisplayFurnitureElement extends AbstractFurnitureElement { private final Object despawnPacket; private final UUID uuid = UUID.randomUUID(); - public TextDisplayFurnitureElement(Furniture furniture, TextDisplayFurnitureElementConfig config) { + TextDisplayFurnitureElement(Furniture furniture, TextDisplayFurnitureElementConfig config) { super(config.predicate, config.hasCondition); this.furniture = furniture; this.config = config; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/element/TextDisplayFurnitureElementConfig.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/element/TextDisplayFurnitureElementConfig.java index 61b36f6b5..259701038 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/element/TextDisplayFurnitureElementConfig.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/element/TextDisplayFurnitureElementConfig.java @@ -29,8 +29,8 @@ import java.util.Optional; import java.util.function.Function; import java.util.function.Predicate; -public class TextDisplayFurnitureElementConfig implements FurnitureElementConfig { - public static final Factory FACTORY = new Factory(); +public final class TextDisplayFurnitureElementConfig implements FurnitureElementConfig { + public static final FurnitureElementConfigFactory FACTORY = new Factory(); public final Function> metadata; public final String text; public final Vector3f scale; @@ -57,7 +57,7 @@ public class TextDisplayFurnitureElementConfig implements FurnitureElementConfig public final Predicate predicate; public final boolean hasCondition; - public TextDisplayFurnitureElementConfig(String text, + private TextDisplayFurnitureElementConfig(String text, Vector3f scale, Vector3f position, Vector3f translation, @@ -135,7 +135,7 @@ public class TextDisplayFurnitureElementConfig implements FurnitureElementConfig return new TextDisplayFurnitureElement(furniture, this); } - public static class Factory implements FurnitureElementConfigFactory { + private static class Factory implements FurnitureElementConfigFactory { @Override public TextDisplayFurnitureElementConfig create(Map arguments) { 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 f7fa5e2e1..70bd774d2 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,18 +1,15 @@ package net.momirealms.craftengine.bukkit.entity.furniture.hitbox; -import net.momirealms.craftengine.core.entity.furniture.hitbox.FurnitureHitBoxTypes; +import net.momirealms.craftengine.core.entity.furniture.hitbox.FurnitureHitBoxes; +import net.momirealms.craftengine.core.entity.furniture.hitbox.FurnitureHitboxConfigType; +import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.VersionHelper; -public class BukkitFurnitureHitboxTypes extends FurnitureHitBoxTypes { +public final class BukkitFurnitureHitboxTypes extends FurnitureHitBoxes { + public static final FurnitureHitboxConfigType INTERACTION = register(Key.ce("interaction"), InteractionFurnitureHitboxConfig.FACTORY); + public static final FurnitureHitboxConfigType SHULKER = register(Key.ce("shulker"), ShulkerFurnitureHitboxConfig.FACTORY); + public static final FurnitureHitboxConfigType HAPPY_GHAST = register(Key.ce("happy_ghast"), HappyGhastFurnitureHitboxConfig.FACTORY); + public static final FurnitureHitboxConfigType CUSTOM = register(Key.ce("custom"), CustomFurnitureHitboxConfig.FACTORY); public static void init() {} - - static { - register(INTERACTION, InteractionFurnitureHitboxConfig.FACTORY); - register(SHULKER, ShulkerFurnitureHitboxConfig.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/CustomFurnitureHitbox.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/hitbox/CustomFurnitureHitbox.java index 7e2caafed..b9ab1b9ad 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/hitbox/CustomFurnitureHitbox.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/hitbox/CustomFurnitureHitbox.java @@ -20,7 +20,7 @@ import java.util.List; import java.util.UUID; import java.util.function.Consumer; -public class CustomFurnitureHitbox extends AbstractFurnitureHitBox { +public final class CustomFurnitureHitbox extends AbstractFurnitureHitBox { private final CustomFurnitureHitboxConfig config; private final Collider collider; private final Object spawnPacket; @@ -28,7 +28,7 @@ public class CustomFurnitureHitbox extends AbstractFurnitureHitBox { private final FurnitureHitboxPart part; private final int entityId; - public CustomFurnitureHitbox(Furniture furniture, CustomFurnitureHitboxConfig config) { + CustomFurnitureHitbox(Furniture furniture, CustomFurnitureHitboxConfig config) { super(furniture, config); this.config = config; WorldPosition position = furniture.position(); diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/hitbox/CustomFurnitureHitboxConfig.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/hitbox/CustomFurnitureHitboxConfig.java index bd53f0015..3ec66bd3d 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/hitbox/CustomFurnitureHitboxConfig.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/hitbox/CustomFurnitureHitboxConfig.java @@ -22,7 +22,7 @@ import java.util.List; import java.util.Map; import java.util.function.Consumer; -public class CustomFurnitureHitboxConfig extends AbstractFurnitureHitBoxConfig { +public final class CustomFurnitureHitboxConfig extends AbstractFurnitureHitBoxConfig { public static final Factory FACTORY = new Factory(); private final float scale; private final Object entityType; @@ -30,7 +30,7 @@ public class CustomFurnitureHitboxConfig extends AbstractFurnitureHitBoxConfig { +public final 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, + private HappyGhastFurnitureHitboxConfig(SeatConfig[] seats, Vector3f position, boolean canUseItemOn, boolean blocksBuilding, 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 454b2eb59..edda3fc38 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 @@ -17,7 +17,7 @@ import java.util.List; import java.util.UUID; import java.util.function.Consumer; -public class InteractionFurnitureHitbox extends AbstractFurnitureHitBox { +public final class InteractionFurnitureHitbox extends AbstractFurnitureHitBox { private final InteractionFurnitureHitboxConfig config; private final Collider collider; private final Object spawnPacket; @@ -25,7 +25,7 @@ public class InteractionFurnitureHitbox extends AbstractFurnitureHitBox { private final FurnitureHitboxPart part; private final int entityId; - public InteractionFurnitureHitbox(Furniture furniture, InteractionFurnitureHitboxConfig config) { + InteractionFurnitureHitbox(Furniture furniture, InteractionFurnitureHitboxConfig config) { super(furniture, config); this.config = config; WorldPosition position = furniture.position(); 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 40caaf1ee..a63d4dab1 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 @@ -17,7 +17,7 @@ import java.util.List; import java.util.Map; import java.util.function.Consumer; -public class InteractionFurnitureHitboxConfig extends AbstractFurnitureHitBoxConfig { +public final class InteractionFurnitureHitboxConfig extends AbstractFurnitureHitBoxConfig { public static final Factory FACTORY = new Factory(); public static final InteractionFurnitureHitboxConfig DEFAULT = new InteractionFurnitureHitboxConfig(); @@ -26,7 +26,7 @@ public class InteractionFurnitureHitboxConfig extends AbstractFurnitureHitBoxCon private final boolean invisible; private final List cachedValues = new ArrayList<>(4); - public InteractionFurnitureHitboxConfig(SeatConfig[] seats, + private InteractionFurnitureHitboxConfig(SeatConfig[] seats, Vector3f position, boolean canUseItemOn, boolean 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 b55a65872..9349563da 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 @@ -24,7 +24,7 @@ import java.util.UUID; import java.util.function.Consumer; import java.util.function.Supplier; -public class ShulkerFurnitureHitbox extends AbstractFurnitureHitBox { +public final class ShulkerFurnitureHitbox extends AbstractFurnitureHitBox { private final ShulkerFurnitureHitboxConfig config; private final List parts; private final List colliders; @@ -32,7 +32,7 @@ public class ShulkerFurnitureHitbox extends AbstractFurnitureHitBox { private final Object despawnPacket; private final int[] entityIds; - public ShulkerFurnitureHitbox(Furniture furniture, ShulkerFurnitureHitboxConfig config) { + ShulkerFurnitureHitbox(Furniture furniture, ShulkerFurnitureHitboxConfig config) { super(furniture, config); this.config = config; this.entityIds = acquireEntityIds(CoreReflections.instance$Entity$ENTITY_COUNTER::incrementAndGet); 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 bb6d2c067..9b9d1e41d 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 @@ -30,7 +30,7 @@ import java.util.Map; import java.util.UUID; import java.util.function.Consumer; -public class ShulkerFurnitureHitboxConfig extends AbstractFurnitureHitBoxConfig { +public final class ShulkerFurnitureHitboxConfig extends AbstractFurnitureHitBoxConfig { public static final Factory FACTORY = new Factory(); private final float scale; private final byte peek; @@ -41,7 +41,7 @@ public class ShulkerFurnitureHitboxConfig extends AbstractFurnitureHitBoxConfig< private final List cachedShulkerValues = new ArrayList<>(6); private final AABBCreator aabbCreator; - public ShulkerFurnitureHitboxConfig(SeatConfig[] seats, + private ShulkerFurnitureHitboxConfig(SeatConfig[] seats, Vector3f position, boolean canUseItemOn, boolean blocksBuilding, diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/AxeItemBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/AxeItemBehavior.java index e6afda60d..f6374d7a6 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/AxeItemBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/AxeItemBehavior.java @@ -36,7 +36,6 @@ import java.util.Map; import java.util.Optional; public class AxeItemBehavior extends ItemBehavior { - public static final Key ID = Key.from("craftengine:axe_item"); public static final ItemBehaviorFactory FACTORY = new Factory(); public static final AxeItemBehavior INSTANCE = new AxeItemBehavior(); private static final Key AXE_STRIP_SOUND = Key.of("minecraft:item.axe.strip"); diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/BlockItemBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/BlockItemBehavior.java index 7a68fc8bc..49f668a81 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/BlockItemBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/BlockItemBehavior.java @@ -54,7 +54,6 @@ import java.util.Map; import java.util.Optional; public class BlockItemBehavior extends BlockBoundItemBehavior { - public static final Key ID = Key.from("craftengine:block_item"); public static final ItemBehaviorFactory FACTORY = new Factory(); private final Key blockId; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/BukkitItemBehaviors.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/BukkitItemBehaviors.java index 903365141..a3dcde3ea 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/BukkitItemBehaviors.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/BukkitItemBehaviors.java @@ -2,22 +2,23 @@ package net.momirealms.craftengine.bukkit.item.behavior; import net.momirealms.craftengine.core.item.behavior.ItemBehaviorType; import net.momirealms.craftengine.core.item.behavior.ItemBehaviors; +import net.momirealms.craftengine.core.util.Key; public final class BukkitItemBehaviors extends ItemBehaviors { private BukkitItemBehaviors() {} - public static final ItemBehaviorType BLOCK_ITEM = register(BlockItemBehavior.ID, BlockItemBehavior.FACTORY); - public static final ItemBehaviorType ON_LIQUID_BLOCK_ITEM = register(LiquidCollisionBlockItemBehavior.ID, LiquidCollisionBlockItemBehavior.FACTORY); - public static final ItemBehaviorType FURNITURE_ITEM = register(FurnitureItemBehavior.ID, FurnitureItemBehavior.FACTORY); - public static final ItemBehaviorType ON_LIQUID_FURNITURE_ITEM = register(LiquidCollisionFurnitureItemBehavior.ID, LiquidCollisionFurnitureItemBehavior.FACTORY); - public static final ItemBehaviorType FLINT_AND_STEEL_ITEM = register(FlintAndSteelItemBehavior.ID, FlintAndSteelItemBehavior.FACTORY); - public static final ItemBehaviorType COMPOSTABLE_ITEM = register(CompostableItemBehavior.ID, CompostableItemBehavior.FACTORY); - public static final ItemBehaviorType AXE_ITEM = register(AxeItemBehavior.ID, AxeItemBehavior.FACTORY); - public static final ItemBehaviorType DOUBLE_HIGH_BLOCK_ITEM = register(DoubleHighBlockItemBehavior.ID, DoubleHighBlockItemBehavior.FACTORY); - public static final ItemBehaviorType WALL_BLOCK_ITEM = register(WallBlockItemBehavior.ID, WallBlockItemBehavior.FACTORY); - public static final ItemBehaviorType CEILING_BLOCK_ITEM = register(CeilingBlockItemBehavior.ID, CeilingBlockItemBehavior.FACTORY); - public static final ItemBehaviorType GROUND_BLOCK_ITEM = register(GroundBlockItemBehavior.ID, GroundBlockItemBehavior.FACTORY); - public static final ItemBehaviorType MULTI_HIGH_BLOCK_ITEM = register(MultiHighBlockItemBehavior.ID, MultiHighBlockItemBehavior.FACTORY); + public static final ItemBehaviorType BLOCK_ITEM = register(Key.ce("block_item"), BlockItemBehavior.FACTORY); + public static final ItemBehaviorType ON_LIQUID_BLOCK_ITEM = register(Key.ce("liquid_collision_block_item"), LiquidCollisionBlockItemBehavior.FACTORY); + public static final ItemBehaviorType FURNITURE_ITEM = register(Key.ce("furniture_item"), FurnitureItemBehavior.FACTORY); + public static final ItemBehaviorType ON_LIQUID_FURNITURE_ITEM = register(Key.ce("liquid_collision_furniture_item"), LiquidCollisionFurnitureItemBehavior.FACTORY); + public static final ItemBehaviorType FLINT_AND_STEEL_ITEM = register(Key.ce("flint_and_steel_item"), FlintAndSteelItemBehavior.FACTORY); + public static final ItemBehaviorType COMPOSTABLE_ITEM = register(Key.ce("compostable_item"), CompostableItemBehavior.FACTORY); + public static final ItemBehaviorType AXE_ITEM = register(Key.ce("axe_item"), AxeItemBehavior.FACTORY); + public static final ItemBehaviorType DOUBLE_HIGH_BLOCK_ITEM = register(Key.ce("double_high_block_item"), DoubleHighBlockItemBehavior.FACTORY); + public static final ItemBehaviorType WALL_BLOCK_ITEM = register(Key.ce("wall_block_item"), WallBlockItemBehavior.FACTORY); + public static final ItemBehaviorType CEILING_BLOCK_ITEM = register(Key.ce("ceiling_block_item"), CeilingBlockItemBehavior.FACTORY); + public static final ItemBehaviorType GROUND_BLOCK_ITEM = register(Key.ce("ground_block_item"), GroundBlockItemBehavior.FACTORY); + public static final ItemBehaviorType MULTI_HIGH_BLOCK_ITEM = register(Key.ce("multi_high_block_item"), MultiHighBlockItemBehavior.FACTORY); public static void init() { } diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/CeilingBlockItemBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/CeilingBlockItemBehavior.java index d4797cc95..b8a29e951 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/CeilingBlockItemBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/CeilingBlockItemBehavior.java @@ -14,7 +14,6 @@ import java.nio.file.Path; import java.util.Map; public class CeilingBlockItemBehavior extends BlockItemBehavior { - public static final Key ID = Key.from("craftengine:ceiling_block_item"); public static final ItemBehaviorFactory FACTORY = new Factory(); public CeilingBlockItemBehavior(Key ceilingBlockId) { diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/CompostableItemBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/CompostableItemBehavior.java index 8c88dd2e2..7a2c1e1bd 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/CompostableItemBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/CompostableItemBehavior.java @@ -28,7 +28,6 @@ import java.nio.file.Path; import java.util.Map; public class CompostableItemBehavior extends ItemBehavior { - public static final Key ID = Key.from("craftengine:compostable_item"); public static final ItemBehaviorFactory FACTORY = new Factory(); private final double chance; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/DoubleHighBlockItemBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/DoubleHighBlockItemBehavior.java index b5cd8881e..acd956a77 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/DoubleHighBlockItemBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/DoubleHighBlockItemBehavior.java @@ -18,7 +18,6 @@ import java.util.List; import java.util.Map; public class DoubleHighBlockItemBehavior extends BlockItemBehavior { - public static final Key ID = Key.from("craftengine:double_high_block_item"); public static final ItemBehaviorFactory FACTORY = new Factory(); public DoubleHighBlockItemBehavior(Key blockId) { diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/FlintAndSteelItemBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/FlintAndSteelItemBehavior.java index 0ed257b61..b41510fe8 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/FlintAndSteelItemBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/FlintAndSteelItemBehavior.java @@ -30,7 +30,6 @@ import java.util.Map; public class FlintAndSteelItemBehavior extends ItemBehavior { public static final FlintAndSteelItemBehavior INSTANCE = new FlintAndSteelItemBehavior(); - public static final Key ID = Key.from("craftengine:flint_and_steel_item"); public static final ItemBehaviorFactory FACTORY = new Factory(); private static final Key FLINT_SOUND = Key.of("item.flintandsteel.use"); diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/FurnitureItemBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/FurnitureItemBehavior.java index eb2034ba2..e3363e195 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/FurnitureItemBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/FurnitureItemBehavior.java @@ -38,7 +38,6 @@ import java.util.*; import java.util.function.Predicate; public class FurnitureItemBehavior extends ItemBehavior { - public static final Key ID = Key.from("craftengine:furniture_item"); public static final ItemBehaviorFactory FACTORY = new Factory(); protected static final Set ALLOWED_ANCHOR_TYPES = Set.of("wall", "ceiling", "ground"); private final Key id; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/GroundBlockItemBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/GroundBlockItemBehavior.java index fa012259b..1b4430039 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/GroundBlockItemBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/GroundBlockItemBehavior.java @@ -14,7 +14,6 @@ import java.nio.file.Path; import java.util.Map; public class GroundBlockItemBehavior extends BlockItemBehavior { - public static final Key ID = Key.from("craftengine:ground_block_item"); public static final ItemBehaviorFactory FACTORY = new Factory(); public GroundBlockItemBehavior(Key ceilingBlockId) { diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/LiquidCollisionBlockItemBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/LiquidCollisionBlockItemBehavior.java index c6d46efdd..467ed9e69 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/LiquidCollisionBlockItemBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/LiquidCollisionBlockItemBehavior.java @@ -27,7 +27,6 @@ import java.nio.file.Path; import java.util.Map; public class LiquidCollisionBlockItemBehavior extends BlockItemBehavior { - public static final Key ID = Key.from("craftengine:liquid_collision_block_item"); public static final ItemBehaviorFactory FACTORY = new Factory(); private final int offsetY; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/LiquidCollisionFurnitureItemBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/LiquidCollisionFurnitureItemBehavior.java index 83dd07c40..13d38af4a 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/LiquidCollisionFurnitureItemBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/LiquidCollisionFurnitureItemBehavior.java @@ -34,7 +34,6 @@ import java.nio.file.Path; import java.util.*; public class LiquidCollisionFurnitureItemBehavior extends FurnitureItemBehavior { - public static final Key ID = Key.from("craftengine:liquid_collision_furniture_item"); public static final ItemBehaviorFactory FACTORY = new Factory(); private final List liquidTypes; private final boolean sourceOnly; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/MultiHighBlockItemBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/MultiHighBlockItemBehavior.java index 818e45590..44515024c 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/MultiHighBlockItemBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/MultiHighBlockItemBehavior.java @@ -34,7 +34,6 @@ import java.util.List; import java.util.Map; public class MultiHighBlockItemBehavior extends BlockItemBehavior { - public static final Key ID = Key.from("craftengine:multi_high_block_item"); public static final ItemBehaviorFactory FACTORY = new Factory(); public MultiHighBlockItemBehavior(Key blockId) { diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/WallBlockItemBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/WallBlockItemBehavior.java index 5d608fd62..ee6bdff97 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/WallBlockItemBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/WallBlockItemBehavior.java @@ -13,7 +13,6 @@ import java.nio.file.Path; import java.util.Map; public class WallBlockItemBehavior extends BlockItemBehavior { - public static final Key ID = Key.from("craftengine:wall_block_item"); public static final ItemBehaviorFactory FACTORY = new Factory(); public WallBlockItemBehavior(Key wallBlockId) { diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/command/feature/UploadPackCommand.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/command/feature/UploadPackCommand.java index 1450b37e9..64ad98338 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/command/feature/UploadPackCommand.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/command/feature/UploadPackCommand.java @@ -24,7 +24,7 @@ public class UploadPackCommand extends BukkitCommandFeature { handleFeedback(context, MessageConstants.COMMAND_UPLOAD_ON_PROGRESS); plugin().packManager().uploadResourcePack(); } else { - handleFeedback(context, MessageConstants.COMMAND_UPLOAD_FAILURE_NOT_SUPPORTED, Component.text(host.type().value())); + handleFeedback(context, MessageConstants.COMMAND_UPLOAD_FAILURE_NOT_SUPPORTED, Component.text(host.type().id().value())); } }); } diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/injector/BlockStateProviderInjector.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/injector/BlockStateProviderInjector.java index aace908c9..d2b3aec81 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/injector/BlockStateProviderInjector.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/injector/BlockStateProviderInjector.java @@ -15,10 +15,10 @@ public final class BlockStateProviderInjector { public static void init() throws ReflectiveOperationException { CoreReflections.field$MappedRegistry$frozen.set(MBuiltInRegistries.BLOCKSTATE_PROVIDER_TYPE, false); - register(Key.of("craftengine:simple_state_provider"), FastNMS.INSTANCE.getCraftEngineCustomSimpleStateProviderType()); - register(Key.of("craftengine:weighted_state_provider"), FastNMS.INSTANCE.getCraftEngineCustomWeightedStateProviderType()); - register(Key.of("craftengine:rotated_block_provider"), FastNMS.INSTANCE.getCraftEngineCustomRotatedBlockProviderType()); - register(Key.of("craftengine:randomized_int_state_provider"), FastNMS.INSTANCE.getCraftEngineCustomRandomizedIntStateProviderType()); + register(Key.ce("simple_state_provider"), FastNMS.INSTANCE.getCraftEngineCustomSimpleStateProviderType()); + register(Key.ce("weighted_state_provider"), FastNMS.INSTANCE.getCraftEngineCustomWeightedStateProviderType()); + register(Key.ce("rotated_block_provider"), FastNMS.INSTANCE.getCraftEngineCustomRotatedBlockProviderType()); + register(Key.ce("randomized_int_state_provider"), FastNMS.INSTANCE.getCraftEngineCustomRandomizedIntStateProviderType()); CoreReflections.field$MappedRegistry$frozen.set(MBuiltInRegistries.BLOCKSTATE_PROVIDER_TYPE, true); } diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/injector/FeatureInjector.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/injector/FeatureInjector.java index 9c7ff2cb7..bcdabb853 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/injector/FeatureInjector.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/injector/FeatureInjector.java @@ -15,7 +15,7 @@ public final class FeatureInjector { public static void init() throws ReflectiveOperationException { Object registry = MBuiltInRegistries.FEATURE; CoreReflections.field$MappedRegistry$frozen.set(registry, false); - Object resourceLocation = KeyUtils.toResourceLocation(Key.of("craftengine:simple_block")); + Object resourceLocation = KeyUtils.toResourceLocation(Key.ce("simple_block")); Object type = FastNMS.INSTANCE.getCraftEngineCustomSimpleBlockFeature(); Object holder = CoreReflections.method$Registry$registerForHolder.invoke(null, registry, resourceLocation, type); CoreReflections.method$Holder$Reference$bindValue.invoke(holder, type); diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/injector/LootEntryInjector.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/injector/LootEntryInjector.java index 7002c9084..3a6fbe7a7 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/injector/LootEntryInjector.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/injector/LootEntryInjector.java @@ -15,7 +15,7 @@ public final class LootEntryInjector { public static void init() throws ReflectiveOperationException { Object registry = MBuiltInRegistries.LOOT_POOL_ENTRY_TYPE; CoreReflections.field$MappedRegistry$frozen.set(registry, false); - Object resourceLocation = KeyUtils.toResourceLocation(Key.of("craftengine:item")); + Object resourceLocation = KeyUtils.toResourceLocation(Key.ce("item")); Object type = FastNMS.INSTANCE.getCraftEngineLootItemType(); Object holder = CoreReflections.method$Registry$registerForHolder.invoke(null, registry, resourceLocation, type); CoreReflections.method$Holder$Reference$bindValue.invoke(holder, type); diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/user/BukkitServerPlayer.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/user/BukkitServerPlayer.java index 5acb4bd2b..8348b311d 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/user/BukkitServerPlayer.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/user/BukkitServerPlayer.java @@ -80,11 +80,11 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.function.Predicate; public class BukkitServerPlayer extends Player { - public static final Key SELECTED_LOCALE_KEY = Key.of("craftengine:locale"); - public static final Key ENTITY_CULLING_DISTANCE_SCALE = Key.of("craftengine:entity_culling_distance_scale"); - public static final Key DISPLAY_ENTITY_VIEW_DISTANCE_SCALE = Key.of("craftengine:display_entity_view_distance_scale"); - public static final Key ENABLE_ENTITY_CULLING = Key.of("craftengine:enable_entity_culling"); - public static final Key ENABLE_FURNITURE_DEBUG = Key.of("craftengine:enable_furniture_debug"); + public static final Key SELECTED_LOCALE_KEY = Key.ce("locale"); + public static final Key ENTITY_CULLING_DISTANCE_SCALE = Key.ce("entity_culling_distance_scale"); + public static final Key DISPLAY_ENTITY_VIEW_DISTANCE_SCALE = Key.ce("display_entity_view_distance_scale"); + public static final Key ENABLE_ENTITY_CULLING = Key.ce("enable_entity_culling"); + public static final Key ENABLE_FURNITURE_DEBUG = Key.ce("enable_furniture_debug"); private final BukkitCraftEngine plugin; // connection state 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 703cb12bd..518a7ce08 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 @@ -13,7 +13,7 @@ import org.jetbrains.annotations.Nullable; import java.util.Map; public class BlockBehaviors { - public static final BlockBehaviorType EMPTY = register(Key.from("craftengine:empty"), (block, args) -> EmptyBlockBehavior.INSTANCE); + public static final BlockBehaviorType EMPTY = register(Key.ce("empty"), (block, args) -> EmptyBlockBehavior.INSTANCE); protected BlockBehaviors() { } diff --git a/core/src/main/java/net/momirealms/craftengine/core/block/entity/BlockEntityTypeKeys.java b/core/src/main/java/net/momirealms/craftengine/core/block/entity/BlockEntityTypeKeys.java index 9c5f1d2e3..c56d97b4f 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/block/entity/BlockEntityTypeKeys.java +++ b/core/src/main/java/net/momirealms/craftengine/core/block/entity/BlockEntityTypeKeys.java @@ -5,10 +5,10 @@ import net.momirealms.craftengine.core.util.Key; public final class BlockEntityTypeKeys { private BlockEntityTypeKeys() {} - public static final Key INACTIVE = Key.of("craftengine:inactive"); - public static final Key UNSAFE_COMPOSITE = Key.of("craftengine:unsafe_composite"); - public static final Key SIMPLE_STORAGE = Key.of("craftengine:simple_storage"); - public static final Key SIMPLE_PARTICLE = Key.of("craftengine:simple_particle"); - public static final Key WALL_TORCH_PARTICLE = Key.of("craftengine:wall_torch_particle"); - public static final Key SEAT = Key.of("craftengine:seat"); + public static final Key INACTIVE = Key.ce("inactive"); + public static final Key UNSAFE_COMPOSITE = Key.ce("unsafe_composite"); + public static final Key SIMPLE_STORAGE = Key.ce("simple_storage"); + public static final Key SIMPLE_PARTICLE = Key.ce("simple_particle"); + public static final Key WALL_TORCH_PARTICLE = Key.ce("wall_torch_particle"); + public static final Key SEAT = Key.ce("seat"); } diff --git a/core/src/main/java/net/momirealms/craftengine/core/block/properties/BooleanProperty.java b/core/src/main/java/net/momirealms/craftengine/core/block/properties/BooleanProperty.java index eebff84c8..e988b22e4 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/block/properties/BooleanProperty.java +++ b/core/src/main/java/net/momirealms/craftengine/core/block/properties/BooleanProperty.java @@ -1,6 +1,5 @@ package net.momirealms.craftengine.core.block.properties; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import net.momirealms.sparrow.nbt.ByteTag; import net.momirealms.sparrow.nbt.Tag; @@ -10,7 +9,6 @@ import java.util.Map; import java.util.Optional; public final class BooleanProperty extends Property { - public static final Key ID = Key.of("craftengine:boolean"); public static final PropertyFactory FACTORY = new Factory(); private static final List VALUES = List.of(true, false); private static final Boolean[] BY_ID = new Boolean[]{ Boolean.FALSE, Boolean.TRUE }; 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 46000a5d5..eac61ada9 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.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import net.momirealms.sparrow.nbt.IntTag; import net.momirealms.sparrow.nbt.NumericTag; @@ -14,7 +13,6 @@ import java.util.Optional; import java.util.stream.IntStream; public final class IntegerProperty extends Property { - public static final Key ID = Key.of("craftengine:int"); public static final PropertyFactory FACTORY = new Factory(); private final IntImmutableList values; public final int min; diff --git a/core/src/main/java/net/momirealms/craftengine/core/block/properties/Properties.java b/core/src/main/java/net/momirealms/craftengine/core/block/properties/Properties.java index f8b7fa68e..15fb0d5f9 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/block/properties/Properties.java +++ b/core/src/main/java/net/momirealms/craftengine/core/block/properties/Properties.java @@ -10,21 +10,21 @@ import net.momirealms.craftengine.core.util.*; import java.util.Map; public final class Properties { - public static final PropertyType BOOLEAN = register(BooleanProperty.ID, BooleanProperty.FACTORY); - public static final PropertyType INT = register(IntegerProperty.ID, IntegerProperty.FACTORY); - public static final PropertyType STRING = register(StringProperty.ID, StringProperty.FACTORY); - public static final PropertyType AXIS = register(Key.of("craftengine:axis"), EnumProperty.factory(Direction.Axis.class)); - public static final PropertyType HORIZONTAL_DIRECTION = register(Key.of("craftengine:horizontal_direction"), EnumProperty.factory(HorizontalDirection.class)); - public static final PropertyType FOUR_DIRECTION = register(Key.of("craftengine:4-direction"), EnumProperty.factory(HorizontalDirection.class)); - public static final PropertyType DIRECTION = register(Key.of("craftengine:direction"), EnumProperty.factory(Direction.class)); - public static final PropertyType SIX_DIRECTION = register(Key.of("craftengine:6-direction"), EnumProperty.factory(Direction.class)); - public static final PropertyType SINGLE_BLOCK_HALF = register(Key.of("craftengine:single_block_half"), EnumProperty.factory(SingleBlockHalf.class)); - public static final PropertyType DOUBLE_BLOCK_HALF = register(Key.of("craftengine:double_block_half"), EnumProperty.factory(DoubleBlockHalf.class)); - public static final PropertyType HINGE = register(Key.of("craftengine:hinge"), EnumProperty.factory(DoorHinge.class)); - public static final PropertyType STAIRS_SHAPE = register(Key.of("craftengine:stairs_shape"), EnumProperty.factory(StairsShape.class)); - public static final PropertyType SLAB_TYPE = register(Key.of("craftengine:slab_type"), EnumProperty.factory(SlabType.class)); - public static final PropertyType SOFA_SHAPE = register(Key.of("craftengine:sofa_shape"), EnumProperty.factory(SofaShape.class)); - public static final PropertyType ANCHOR_TYPE = register(Key.of("craftengine:anchor_type"), EnumProperty.factory(AnchorType.class)); + public static final PropertyType BOOLEAN = register(Key.ce("boolean"), BooleanProperty.FACTORY); + public static final PropertyType INT = register(Key.ce("int"), IntegerProperty.FACTORY); + public static final PropertyType STRING = register(Key.ce("string"), StringProperty.FACTORY); + public static final PropertyType AXIS = register(Key.ce("axis"), EnumProperty.factory(Direction.Axis.class)); + public static final PropertyType HORIZONTAL_DIRECTION = register(Key.ce("horizontal_direction"), EnumProperty.factory(HorizontalDirection.class)); + public static final PropertyType FOUR_DIRECTION = register(Key.ce("4-direction"), EnumProperty.factory(HorizontalDirection.class)); + public static final PropertyType DIRECTION = register(Key.ce("direction"), EnumProperty.factory(Direction.class)); + public static final PropertyType SIX_DIRECTION = register(Key.ce("6-direction"), EnumProperty.factory(Direction.class)); + public static final PropertyType SINGLE_BLOCK_HALF = register(Key.ce("single_block_half"), EnumProperty.factory(SingleBlockHalf.class)); + public static final PropertyType DOUBLE_BLOCK_HALF = register(Key.ce("double_block_half"), EnumProperty.factory(DoubleBlockHalf.class)); + public static final PropertyType HINGE = register(Key.ce("hinge"), EnumProperty.factory(DoorHinge.class)); + public static final PropertyType STAIRS_SHAPE = register(Key.ce("stairs_shape"), EnumProperty.factory(StairsShape.class)); + public static final PropertyType SLAB_TYPE = register(Key.ce("slab_type"), EnumProperty.factory(SlabType.class)); + public static final PropertyType SOFA_SHAPE = register(Key.ce("sofa_shape"), EnumProperty.factory(SofaShape.class)); + public static final PropertyType ANCHOR_TYPE = register(Key.ce("anchor_type"), EnumProperty.factory(AnchorType.class)); private Properties() {} 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 5be437023..f14effde9 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.util.Key; import net.momirealms.craftengine.core.util.MiscUtils; import net.momirealms.sparrow.nbt.StringTag; import net.momirealms.sparrow.nbt.Tag; @@ -11,7 +10,6 @@ import java.util.Map; import java.util.Optional; public final class StringProperty extends Property { - public static final Key ID = Key.of("craftengine:string"); public static final PropertyFactory FACTORY = new Factory(); private final List values; private final ImmutableMap names; diff --git a/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/AbstractFurnitureManager.java b/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/AbstractFurnitureManager.java index 59e8107dc..3acd61221 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/AbstractFurnitureManager.java +++ b/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/AbstractFurnitureManager.java @@ -1,11 +1,11 @@ package net.momirealms.craftengine.core.entity.furniture; import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; -import net.momirealms.craftengine.core.entity.furniture.behavior.FurnitureBehaviorTypes; +import net.momirealms.craftengine.core.entity.furniture.behavior.FurnitureBehaviors; import net.momirealms.craftengine.core.entity.furniture.element.FurnitureElementConfig; import net.momirealms.craftengine.core.entity.furniture.element.FurnitureElementConfigs; import net.momirealms.craftengine.core.entity.furniture.hitbox.FurnitureHitBoxConfig; -import net.momirealms.craftengine.core.entity.furniture.hitbox.FurnitureHitBoxTypes; +import net.momirealms.craftengine.core.entity.furniture.hitbox.FurnitureHitBoxes; import net.momirealms.craftengine.core.entity.furniture.tick.TickingFurniture; import net.momirealms.craftengine.core.loot.LootTable; import net.momirealms.craftengine.core.pack.LoadingSequence; @@ -230,7 +230,7 @@ public abstract class AbstractFurnitureManager implements FurnitureManager { } // 碰撞箱配置 - List> hitboxes = ResourceConfigUtils.parseConfigAsList(variantArguments.get("hitboxes"), FurnitureHitBoxTypes::fromMap); + List> hitboxes = ResourceConfigUtils.parseConfigAsList(variantArguments.get("hitboxes"), FurnitureHitBoxes::fromMap); if (hitboxes.isEmpty() && externalModel.isEmpty()) { hitboxes = List.of(defaultHitBox()); } @@ -251,7 +251,7 @@ public abstract class AbstractFurnitureManager implements FurnitureManager { .variants(variants) .events(CommonFunctions.parseEvents(ResourceConfigUtils.get(section, "events", "event"))) .lootTable(LootTable.fromMap(MiscUtils.castToMap(section.get("loot"), true))) - .behavior(FurnitureBehaviorTypes.fromMap(ResourceConfigUtils.getAsMapOrNull(ResourceConfigUtils.get(section, "behaviors", "behavior"), "behavior"))) + .behavior(FurnitureBehaviors.fromMap(ResourceConfigUtils.getAsMapOrNull(ResourceConfigUtils.get(section, "behaviors", "behavior"), "behavior"))) .build(); AbstractFurnitureManager.this.byId.put(id, furniture); } diff --git a/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/FurnitureManager.java b/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/FurnitureManager.java index e36080e4c..a2b326c9d 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/FurnitureManager.java +++ b/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/FurnitureManager.java @@ -12,9 +12,9 @@ import java.util.Map; import java.util.Optional; public interface FurnitureManager extends Manageable { - Key FURNITURE_KEY = Key.of("craftengine:furniture_id"); - Key FURNITURE_EXTRA_DATA_KEY = Key.of("craftengine:furniture_extra_data"); - Key FURNITURE_COLLISION = Key.of("craftengine:collision"); + Key FURNITURE_KEY = Key.ce("furniture_id"); + Key FURNITURE_EXTRA_DATA_KEY = Key.ce("furniture_extra_data"); + Key FURNITURE_COLLISION = Key.ce("collision"); ConfigParser parser(); diff --git a/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/behavior/FurnitureBehaviorFactory.java b/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/behavior/FurnitureBehaviorFactory.java index 1585fc9a9..99e3eaa3c 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/behavior/FurnitureBehaviorFactory.java +++ b/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/behavior/FurnitureBehaviorFactory.java @@ -1,10 +1,7 @@ package net.momirealms.craftengine.core.entity.furniture.behavior; -import org.jetbrains.annotations.ApiStatus; - import java.util.Map; -@ApiStatus.Experimental public interface FurnitureBehaviorFactory { T create(Map properties); diff --git a/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/behavior/FurnitureBehaviorType.java b/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/behavior/FurnitureBehaviorType.java index 0bf1ebc1d..08d006d02 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/behavior/FurnitureBehaviorType.java +++ b/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/behavior/FurnitureBehaviorType.java @@ -1,8 +1,6 @@ package net.momirealms.craftengine.core.entity.furniture.behavior; import net.momirealms.craftengine.core.util.Key; -import org.jetbrains.annotations.ApiStatus; -@ApiStatus.Experimental public record FurnitureBehaviorType(Key id, FurnitureBehaviorFactory factory) { } diff --git a/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/behavior/FurnitureBehaviorTypes.java b/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/behavior/FurnitureBehaviors.java similarity index 96% rename from core/src/main/java/net/momirealms/craftengine/core/entity/furniture/behavior/FurnitureBehaviorTypes.java rename to core/src/main/java/net/momirealms/craftengine/core/entity/furniture/behavior/FurnitureBehaviors.java index f7dc3b075..7a692d891 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/behavior/FurnitureBehaviorTypes.java +++ b/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/behavior/FurnitureBehaviors.java @@ -13,7 +13,9 @@ import org.jetbrains.annotations.Nullable; import java.util.Map; @ApiStatus.Experimental -public class FurnitureBehaviorTypes { +public class FurnitureBehaviors { + + protected FurnitureBehaviors() {} public static FurnitureBehavior fromMap(@Nullable Map map) { if (map == null || map.isEmpty()) return EmptyFurnitureBehavior.INSTANCE; diff --git a/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/element/FurnitureElementConfigType.java b/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/element/FurnitureElementConfigType.java new file mode 100644 index 000000000..38bc0ba8d --- /dev/null +++ b/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/element/FurnitureElementConfigType.java @@ -0,0 +1,6 @@ +package net.momirealms.craftengine.core.entity.furniture.element; + +import net.momirealms.craftengine.core.util.Key; + +public record FurnitureElementConfigType(Key id, FurnitureElementConfigFactory factory) { +} 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 10a7b4d09..2c39b95eb 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 @@ -11,30 +11,32 @@ import java.util.Map; import java.util.Optional; public class FurnitureElementConfigs { - public static final Key ITEM_DISPLAY = Key.of("craftengine:item_display"); - public static final Key TEXT_DISPLAY = Key.of("craftengine:text_display"); - public static final Key ITEM = Key.of("craftengine:item"); - public static final Key ARMOR_STAND = Key.of("craftengine:armor_stand"); + protected FurnitureElementConfigs() {} - public static void register(Key key, FurnitureElementConfigFactory type) { - ((WritableRegistry>) BuiltInRegistries.FURNITURE_ELEMENT_TYPE) + public static FurnitureElementConfigType register(Key key, FurnitureElementConfigFactory factory) { + FurnitureElementConfigType type = new FurnitureElementConfigType<>(key, factory); + ((WritableRegistry>) BuiltInRegistries.FURNITURE_ELEMENT_TYPE) .register(ResourceKey.create(Registries.FURNITURE_ELEMENT_TYPE.location(), key), type); + return type; } + @SuppressWarnings("unchecked") public static FurnitureElementConfig fromMap(Map arguments) { - Key type = Optional.ofNullable(arguments.get("type")).map(String::valueOf).map(it -> Key.withDefaultNamespace(it, "craftengine")).orElse(null); - if (type == null) { - if (arguments.containsKey("text")) { - type = TEXT_DISPLAY; - } else { - type = ITEM_DISPLAY; - } - } - @SuppressWarnings("unchecked") - FurnitureElementConfigFactory factory = (FurnitureElementConfigFactory) BuiltInRegistries.FURNITURE_ELEMENT_TYPE.getValue(type); - if (factory == null) { + Key type = guessType(arguments); + FurnitureElementConfigType configType = (FurnitureElementConfigType) BuiltInRegistries.FURNITURE_ELEMENT_TYPE.getValue(type); + if (configType == null) { throw new LocalizedResourceConfigException("warning.config.furniture.element.invalid_type", type.toString()); } - return factory.create(arguments); + return configType.factory().create(arguments); + } + + private static Key guessType(Map arguments) { + return Key.ce(Optional.ofNullable(arguments.get("type")).map(String::valueOf).orElseGet(() -> { + if (arguments.containsKey("text")) { + return "text_display"; + } else { + return "item_display"; + } + })); } } 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 deleted file mode 100644 index a6ea6c23b..000000000 --- a/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/hitbox/FurnitureHitBoxTypes.java +++ /dev/null @@ -1,33 +0,0 @@ -package net.momirealms.craftengine.core.entity.furniture.hitbox; - -import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigException; -import net.momirealms.craftengine.core.registry.BuiltInRegistries; -import net.momirealms.craftengine.core.registry.Registries; -import net.momirealms.craftengine.core.registry.WritableRegistry; -import net.momirealms.craftengine.core.util.Key; -import net.momirealms.craftengine.core.util.ResourceKey; - -import java.util.Map; -import java.util.Optional; - -public class FurnitureHitBoxTypes { - public static final Key INTERACTION = Key.of("minecraft:interaction"); - public static final Key SHULKER = Key.of("minecraft:shulker"); - public static final Key HAPPY_GHAST = Key.of("minecraft:happy_ghast"); - public static final Key CUSTOM = Key.of("minecraft:custom"); - - 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); - @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()); - } - return factory.create(arguments); - } -} \ No newline at end of file diff --git a/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/hitbox/FurnitureHitBoxes.java b/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/hitbox/FurnitureHitBoxes.java new file mode 100644 index 000000000..918232165 --- /dev/null +++ b/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/hitbox/FurnitureHitBoxes.java @@ -0,0 +1,33 @@ +package net.momirealms.craftengine.core.entity.furniture.hitbox; + +import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigException; +import net.momirealms.craftengine.core.registry.BuiltInRegistries; +import net.momirealms.craftengine.core.registry.Registries; +import net.momirealms.craftengine.core.registry.WritableRegistry; +import net.momirealms.craftengine.core.util.Key; +import net.momirealms.craftengine.core.util.ResourceKey; + +import java.util.Map; +import java.util.Optional; + +public class FurnitureHitBoxes { + protected FurnitureHitBoxes() {} + + public static FurnitureHitboxConfigType register(Key key, FurnitureHitBoxConfigFactory factory) { + FurnitureHitboxConfigType type = new FurnitureHitboxConfigType<>(key, factory); + ((WritableRegistry>) BuiltInRegistries.FURNITURE_HITBOX_TYPE) + .register(ResourceKey.create(Registries.FURNITURE_HITBOX_TYPE.location(), key), type); + return type; + } + + @SuppressWarnings("unchecked") + public static FurnitureHitBoxConfig fromMap(Map arguments) { + String typeString = Optional.ofNullable(arguments.get("type")).map(String::valueOf).orElse("interaction"); + Key type = Key.ce(typeString); + FurnitureHitboxConfigType configType = (FurnitureHitboxConfigType) BuiltInRegistries.FURNITURE_HITBOX_TYPE.getValue(type); + if (configType == null) { + throw new LocalizedResourceConfigException("warning.config.furniture.hitbox.invalid_type", typeString); + } + return configType.factory().create(arguments); + } +} \ No newline at end of file diff --git a/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/hitbox/FurnitureHitboxConfigType.java b/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/hitbox/FurnitureHitboxConfigType.java new file mode 100644 index 000000000..feb49c95f --- /dev/null +++ b/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/hitbox/FurnitureHitboxConfigType.java @@ -0,0 +1,6 @@ +package net.momirealms.craftengine.core.entity.furniture.hitbox; + +import net.momirealms.craftengine.core.util.Key; + +public record FurnitureHitboxConfigType(Key id, FurnitureHitBoxConfigFactory factory) { +} diff --git a/core/src/main/java/net/momirealms/craftengine/core/entity/seat/SeatManager.java b/core/src/main/java/net/momirealms/craftengine/core/entity/seat/SeatManager.java index a121b11a2..8c0ebd01c 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/entity/seat/SeatManager.java +++ b/core/src/main/java/net/momirealms/craftengine/core/entity/seat/SeatManager.java @@ -4,6 +4,6 @@ import net.momirealms.craftengine.core.plugin.Manageable; import net.momirealms.craftengine.core.util.Key; public interface SeatManager extends Manageable { - Key SEAT_KEY = Key.of("craftengine:seat"); - Key SEAT_EXTRA_DATA_KEY = Key.of("craftengine:seat_extra_data"); + Key SEAT_KEY = Key.ce("seat"); + Key SEAT_EXTRA_DATA_KEY = Key.ce("seat_extra_data"); } 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 50bf02632..e3c8f9c50 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 @@ -5,6 +5,7 @@ import net.momirealms.craftengine.core.entity.display.ItemDisplayContext; import net.momirealms.craftengine.core.entity.projectile.ProjectileMeta; import net.momirealms.craftengine.core.item.equipment.ComponentBasedEquipment; import net.momirealms.craftengine.core.item.equipment.Equipment; +import net.momirealms.craftengine.core.item.equipment.Equipments; import net.momirealms.craftengine.core.item.processor.EquippableProcessor; import net.momirealms.craftengine.core.item.processor.FoodProcessor; import net.momirealms.craftengine.core.item.processor.ItemProcessor; @@ -473,7 +474,7 @@ public class ItemSettings { if (data.assetId() == null) { throw new IllegalArgumentException("Please move 'equippable' option to 'data' section."); } - ComponentBasedEquipment componentBasedEquipment = ComponentBasedEquipment.FACTORY.create(data.assetId(), args); + ComponentBasedEquipment componentBasedEquipment = Equipments.COMPONENT.factory().create(data.assetId(), args); ((AbstractItemManager) CraftEngine.instance().itemManager()).addOrMergeEquipment(componentBasedEquipment); ItemEquipment itemEquipment = new ItemEquipment(Tristate.FALSE, data, componentBasedEquipment); return settings -> settings.equipment(itemEquipment); diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/equipment/ComponentBasedEquipment.java b/core/src/main/java/net/momirealms/craftengine/core/item/equipment/ComponentBasedEquipment.java index 696b526f6..67cbe79ba 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/equipment/ComponentBasedEquipment.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/equipment/ComponentBasedEquipment.java @@ -16,8 +16,8 @@ import java.util.List; import java.util.Map; import java.util.function.Supplier; -public class ComponentBasedEquipment extends AbstractEquipment implements Supplier { - public static final Factory FACTORY = new Factory(); +public final class ComponentBasedEquipment extends AbstractEquipment implements Supplier { + public static final EquipmentFactory FACTORY = new Factory(); private final EnumMap> layers; public ComponentBasedEquipment(Key assetId) { @@ -25,11 +25,6 @@ public class ComponentBasedEquipment extends AbstractEquipment implements Suppli this.layers = new EnumMap<>(EquipmentLayerType.class); } - @Override - public Key type() { - return Equipments.COMPONENT; - } - @Override public List> modifiers() { return List.of(new EquippableAssetIdProcessor<>(this.assetId)); @@ -65,7 +60,7 @@ public class ComponentBasedEquipment extends AbstractEquipment implements Suppli layersJson.add(key, layersArray); } - public static class Factory implements EquipmentFactory { + private static class Factory implements EquipmentFactory { @Override public ComponentBasedEquipment create(Key id, Map args) { diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/equipment/Equipment.java b/core/src/main/java/net/momirealms/craftengine/core/item/equipment/Equipment.java index 24e9ce98a..36f9ed8df 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/equipment/Equipment.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/equipment/Equipment.java @@ -9,7 +9,5 @@ public interface Equipment { Key assetId(); - Key type(); - List> modifiers(); } diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/equipment/EquipmentFactory.java b/core/src/main/java/net/momirealms/craftengine/core/item/equipment/EquipmentFactory.java index 16fe7f862..a8793e91e 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/equipment/EquipmentFactory.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/equipment/EquipmentFactory.java @@ -4,7 +4,7 @@ import net.momirealms.craftengine.core.util.Key; import java.util.Map; -public interface EquipmentFactory { +public interface EquipmentFactory { - Equipment create(Key id, Map args); + E create(Key id, Map args); } diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/equipment/EquipmentType.java b/core/src/main/java/net/momirealms/craftengine/core/item/equipment/EquipmentType.java new file mode 100644 index 000000000..c00669f0f --- /dev/null +++ b/core/src/main/java/net/momirealms/craftengine/core/item/equipment/EquipmentType.java @@ -0,0 +1,6 @@ +package net.momirealms.craftengine.core.item.equipment; + +import net.momirealms.craftengine.core.util.Key; + +public record EquipmentType(Key id, EquipmentFactory factory) { +} diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/equipment/Equipments.java b/core/src/main/java/net/momirealms/craftengine/core/item/equipment/Equipments.java index 9456b80db..b3f4ce36b 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/equipment/Equipments.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/equipment/Equipments.java @@ -11,26 +11,26 @@ import net.momirealms.craftengine.core.util.ResourceKey; import java.util.Map; public final class Equipments { - public static final Key TRIM = Key.of("craftengine:trim"); - public static final Key COMPONENT = Key.of("craftengine:component"); + public static final EquipmentType TRIM = register(Key.ce("trim"), TrimBasedEquipment.FACTORY); + public static final EquipmentType COMPONENT = register(Key.ce("component"), ComponentBasedEquipment.FACTORY); - static { - register(TRIM, TrimBasedEquipment.FACTORY); - register(COMPONENT, ComponentBasedEquipment.FACTORY); + private Equipments() {} + + public static EquipmentType register(Key key, EquipmentFactory factory) { + EquipmentType type = new EquipmentType<>(key, factory); + ((WritableRegistry>) BuiltInRegistries.EQUIPMENT_TYPE) + .register(ResourceKey.create(Registries.EQUIPMENT_TYPE.location(), key), type); + return type; } - public static void register(Key key, EquipmentFactory factory) { - ((WritableRegistry) BuiltInRegistries.EQUIPMENT_FACTORY) - .register(ResourceKey.create(Registries.EQUIPMENT_FACTORY.location(), key), factory); - } - - public static Equipment fromMap(Key id, Map map) { + @SuppressWarnings("unchecked") + public static E fromMap(Key id, Map map) { String type = ResourceConfigUtils.requireNonEmptyStringOrThrow(map.get("type"), "warning.config.equipment.missing_type"); - Key key = Key.withDefaultNamespace(type, Key.DEFAULT_NAMESPACE); - EquipmentFactory factory = BuiltInRegistries.EQUIPMENT_FACTORY.getValue(key); - if (factory == null) { + Key key = Key.ce(type); + EquipmentType equipmentType = (EquipmentType) BuiltInRegistries.EQUIPMENT_TYPE.getValue(key); + if (equipmentType == null) { throw new LocalizedResourceConfigException("warning.config.equipment.invalid_type", type); } - return factory.create(id, map); + return equipmentType.factory().create(id, map); } } diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/equipment/TrimBasedEquipment.java b/core/src/main/java/net/momirealms/craftengine/core/item/equipment/TrimBasedEquipment.java index 723e38614..93afd0287 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/equipment/TrimBasedEquipment.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/equipment/TrimBasedEquipment.java @@ -12,8 +12,8 @@ import java.util.List; import java.util.Map; import java.util.Optional; -public class TrimBasedEquipment extends AbstractEquipment { - public static final Factory FACTORY = new Factory(); +public final class TrimBasedEquipment extends AbstractEquipment { + public static final EquipmentFactory FACTORY = new Factory(); private final Key humanoid; private final Key humanoidLeggings; @@ -23,19 +23,14 @@ public class TrimBasedEquipment extends AbstractEquipment { this.humanoidLeggings = humanoidLeggings; } - @Override - public Key type() { - return Equipments.TRIM; - } - @Nullable public Key humanoid() { - return humanoid; + return this.humanoid; } @Nullable public Key humanoidLeggings() { - return humanoidLeggings; + return this.humanoidLeggings; } @Override @@ -46,10 +41,10 @@ public class TrimBasedEquipment extends AbstractEquipment { ); } - public static class Factory implements EquipmentFactory { + private static class Factory implements EquipmentFactory { @Override - public Equipment create(Key id, Map args) { + public TrimBasedEquipment create(Key id, Map args) { Key humanoidId = Optional.ofNullable((String) args.get("humanoid")).map(Key::of).orElse(null); Key humanoidLeggingsId = Optional.ofNullable((String) args.get("humanoid-leggings")).map(Key::of).orElse(null); return new TrimBasedEquipment(id, humanoidId, humanoidLeggingsId); diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/processor/ArgumentsProcessor.java b/core/src/main/java/net/momirealms/craftengine/core/item/processor/ArgumentsProcessor.java index 084cd938e..17af73946 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/processor/ArgumentsProcessor.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/processor/ArgumentsProcessor.java @@ -6,7 +6,6 @@ import net.momirealms.craftengine.core.item.ItemBuildContext; import net.momirealms.craftengine.core.item.ItemProcessorFactory; import net.momirealms.craftengine.core.plugin.context.text.TextProvider; import net.momirealms.craftengine.core.plugin.context.text.TextProviders; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import net.momirealms.craftengine.core.util.VersionHelper; import net.momirealms.sparrow.nbt.CompoundTag; @@ -17,7 +16,6 @@ import java.util.Map; import java.util.Optional; public class ArgumentsProcessor implements ItemProcessor { - public static final Key ID = Key.of("craftengine:arguments"); public static final ItemProcessorFactory FACTORY = new Factory<>(); public static final String ARGUMENTS_TAG = "craftengine:arguments"; private final Map arguments; diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/processor/AttributeModifiersProcessor.java b/core/src/main/java/net/momirealms/craftengine/core/item/processor/AttributeModifiersProcessor.java index 2240ee5c4..49a28c4f9 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/processor/AttributeModifiersProcessor.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/processor/AttributeModifiersProcessor.java @@ -15,7 +15,6 @@ import org.jetbrains.annotations.Nullable; import java.util.*; public class AttributeModifiersProcessor implements SimpleNetworkItemProcessor { - public static final Key ID = Key.of("craftengine:attribute_modifiers"); public static final ItemProcessorFactory FACTORY = new Factory<>(); public static final Map CONVERTOR = new HashMap<>(); private static final Object[] NBT_PATH = new Object[]{"AttributeModifiers"}; diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/processor/BlockStateProcessor.java b/core/src/main/java/net/momirealms/craftengine/core/item/processor/BlockStateProcessor.java index e245d3a70..df0f249aa 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/processor/BlockStateProcessor.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/processor/BlockStateProcessor.java @@ -17,7 +17,6 @@ import java.util.Locale; import java.util.Map; public class BlockStateProcessor implements SimpleNetworkItemProcessor { - public static final Key ID = Key.of("craftengine:blockstate"); public static final ItemProcessorFactory FACTORY = new Factory<>(); private static final Object[] NBT_PATH = new Object[]{"BlockStateTag"}; private final LazyReference> wrapper; diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/processor/ComponentsProcessor.java b/core/src/main/java/net/momirealms/craftengine/core/item/processor/ComponentsProcessor.java index 4fb19915e..a4ee18698 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/processor/ComponentsProcessor.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/processor/ComponentsProcessor.java @@ -13,7 +13,6 @@ import java.util.List; import java.util.Map; public class ComponentsProcessor implements ItemProcessor { - public static final Key ID = Key.of("craftengine:components"); public static final ItemProcessorFactory FACTORY = new Factory<>(); private final List> arguments; private CompoundTag customData = null; diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/processor/ConditionalProcessor.java b/core/src/main/java/net/momirealms/craftengine/core/item/processor/ConditionalProcessor.java index 6aee65b15..5bc8e3f9b 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/processor/ConditionalProcessor.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/processor/ConditionalProcessor.java @@ -6,7 +6,6 @@ import net.momirealms.craftengine.core.item.ItemProcessorFactory; import net.momirealms.craftengine.core.plugin.context.CommonConditions; import net.momirealms.craftengine.core.plugin.context.Condition; import net.momirealms.craftengine.core.plugin.context.Context; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.MiscUtils; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import net.momirealms.sparrow.nbt.CompoundTag; @@ -17,7 +16,6 @@ import java.util.Map; import java.util.function.Predicate; public class ConditionalProcessor implements ItemProcessor { - public static final Key ID = Key.of("craftengine:conditional"); public static final ItemProcessorFactory FACTORY = new Factory<>(); private final Predicate condition; private final ItemProcessor[] modifiers; diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/processor/CustomModelDataProcessor.java b/core/src/main/java/net/momirealms/craftengine/core/item/processor/CustomModelDataProcessor.java index 9f65024b0..d088c85eb 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/processor/CustomModelDataProcessor.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/processor/CustomModelDataProcessor.java @@ -9,7 +9,6 @@ import net.momirealms.craftengine.core.util.ResourceConfigUtils; import org.jetbrains.annotations.Nullable; public class CustomModelDataProcessor implements SimpleNetworkItemProcessor { - public static final Key ID = Key.of("craftengine:custom_model_data"); public static final ItemProcessorFactory FACTORY = new Factory<>(); private final int argument; diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/processor/CustomNameProcessor.java b/core/src/main/java/net/momirealms/craftengine/core/item/processor/CustomNameProcessor.java index 9ef536574..df7cc1e8f 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/processor/CustomNameProcessor.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/processor/CustomNameProcessor.java @@ -10,7 +10,6 @@ import net.momirealms.craftengine.core.util.Key; import org.jetbrains.annotations.Nullable; public class CustomNameProcessor implements SimpleNetworkItemProcessor { - public static final Key ID = Key.of("craftengine:custom_name"); public static final ItemProcessorFactory FACTORY = new Factory<>(); private static final Object[] NBT_PATH = new Object[]{"display", "Name"}; private final String argument; diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/processor/DyedColorProcessor.java b/core/src/main/java/net/momirealms/craftengine/core/item/processor/DyedColorProcessor.java index bf4d4eaf9..7455455b2 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/processor/DyedColorProcessor.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/processor/DyedColorProcessor.java @@ -11,7 +11,6 @@ import org.jetbrains.annotations.Nullable; import org.joml.Vector3f; public class DyedColorProcessor implements SimpleNetworkItemProcessor { - public static final Key ID = Key.of("craftengine:dyed_color"); public static final ItemProcessorFactory FACTORY = new Factory<>(); private static final Object[] NBT_PATH = new Object[]{"display", "color"}; private final Color color; diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/processor/EnchantmentsProcessor.java b/core/src/main/java/net/momirealms/craftengine/core/item/processor/EnchantmentsProcessor.java index 740191d9f..1a665ae07 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/processor/EnchantmentsProcessor.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/processor/EnchantmentsProcessor.java @@ -14,7 +14,6 @@ import java.util.stream.Collectors; import java.util.stream.Stream; public class EnchantmentsProcessor implements SimpleNetworkItemProcessor { - public static final Key ID = Key.of("craftengine:enchantments"); public static final ItemProcessorFactory FACTORY = new Factory<>(); private static final Object[] STORED_ENCHANTMENTS = new Object[] {"StoredEnchantments"}; private static final Object[] ENCHANTMENTS = new Object[] {"Enchantments"}; diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/processor/EquippableAssetIdProcessor.java b/core/src/main/java/net/momirealms/craftengine/core/item/processor/EquippableAssetIdProcessor.java index a6990b273..9924e3033 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/processor/EquippableAssetIdProcessor.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/processor/EquippableAssetIdProcessor.java @@ -11,7 +11,6 @@ import org.jetbrains.annotations.Nullable; import java.util.Optional; public class EquippableAssetIdProcessor implements SimpleNetworkItemProcessor { - public static final Key ID = Key.of("craftengine:equippable_asset_id"); public static final ItemProcessorFactory FACTORY = new Factory<>(); private final Key assetId; diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/processor/EquippableProcessor.java b/core/src/main/java/net/momirealms/craftengine/core/item/processor/EquippableProcessor.java index 450184f84..bc8686bcc 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/processor/EquippableProcessor.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/processor/EquippableProcessor.java @@ -12,7 +12,6 @@ import org.jetbrains.annotations.Nullable; import java.util.Map; public class EquippableProcessor implements SimpleNetworkItemProcessor { - public static final Key ID = Key.of("craftengine:equippable"); public static final ItemProcessorFactory FACTORY = new Factory<>(); private final EquipmentData data; diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/processor/ExternalSourceProcessor.java b/core/src/main/java/net/momirealms/craftengine/core/item/processor/ExternalSourceProcessor.java index 45c6be01c..711e2c4d6 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/processor/ExternalSourceProcessor.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/processor/ExternalSourceProcessor.java @@ -5,7 +5,6 @@ import net.momirealms.craftengine.core.item.ItemBuildContext; import net.momirealms.craftengine.core.item.ItemProcessorFactory; import net.momirealms.craftengine.core.plugin.CraftEngine; import net.momirealms.craftengine.core.plugin.compatibility.ItemSource; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.LazyReference; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import org.jetbrains.annotations.NotNull; @@ -13,7 +12,6 @@ import org.jetbrains.annotations.NotNull; import java.util.*; public class ExternalSourceProcessor implements ItemProcessor { - public static final Key ID = Key.of("craftengine:external"); public static final ItemProcessorFactory FACTORY = new Factory<>(); private static final ThreadLocal> BUILD_STACK = ThreadLocal.withInitial(LinkedHashSet::new); private final String id; diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/processor/FoodProcessor.java b/core/src/main/java/net/momirealms/craftengine/core/item/processor/FoodProcessor.java index fb5379e9b..6eed073f8 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/processor/FoodProcessor.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/processor/FoodProcessor.java @@ -11,7 +11,6 @@ import org.jetbrains.annotations.Nullable; import java.util.Map; public class FoodProcessor implements SimpleNetworkItemProcessor { - public static final Key ID = Key.of("craftengine:food"); public static final ItemProcessorFactory FACTORY = new Factory<>(); private final int nutrition; private final float saturation; diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/processor/HideTooltipProcessor.java b/core/src/main/java/net/momirealms/craftengine/core/item/processor/HideTooltipProcessor.java index 825452fca..4cd9e8f09 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/processor/HideTooltipProcessor.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/processor/HideTooltipProcessor.java @@ -16,7 +16,6 @@ import java.util.stream.Collectors; import java.util.stream.Stream; public class HideTooltipProcessor implements ItemProcessor { - public static final Key ID = Key.of("craftengine:hide_tooltip"); public static final ItemProcessorFactory FACTORY = new Factory<>(); public static final Map TO_LEGACY; public static final List COMPONENTS = List.of( diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/processor/IdProcessor.java b/core/src/main/java/net/momirealms/craftengine/core/item/processor/IdProcessor.java index 0ec169b85..ac42c108b 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/processor/IdProcessor.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/processor/IdProcessor.java @@ -6,7 +6,6 @@ import net.momirealms.craftengine.core.item.ItemProcessorFactory; import net.momirealms.craftengine.core.util.Key; public class IdProcessor implements ItemProcessor { - public static final Key ID = Key.of("craftengine:id"); public static final String CRAFT_ENGINE_ID = "craftengine:id"; public static final ItemProcessorFactory FACTORY = new Factory<>(); private final Key argument; diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/processor/ItemModelProcessor.java b/core/src/main/java/net/momirealms/craftengine/core/item/processor/ItemModelProcessor.java index 3bbaa026b..a213e679c 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/processor/ItemModelProcessor.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/processor/ItemModelProcessor.java @@ -5,11 +5,9 @@ import net.momirealms.craftengine.core.item.Item; import net.momirealms.craftengine.core.item.ItemBuildContext; import net.momirealms.craftengine.core.item.ItemProcessorFactory; import net.momirealms.craftengine.core.util.Key; -import net.momirealms.craftengine.core.util.VersionHelper; import org.jetbrains.annotations.Nullable; public class ItemModelProcessor implements SimpleNetworkItemProcessor { - public static final Key ID = Key.of("craftengine:item_model"); public static final ItemProcessorFactory FACTORY = new Factory<>(); private final Key data; diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/processor/ItemNameProcessor.java b/core/src/main/java/net/momirealms/craftengine/core/item/processor/ItemNameProcessor.java index d7c150b87..6092770b6 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/processor/ItemNameProcessor.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/processor/ItemNameProcessor.java @@ -9,7 +9,6 @@ import net.momirealms.craftengine.core.util.Key; import org.jetbrains.annotations.Nullable; public class ItemNameProcessor implements SimpleNetworkItemProcessor { - public static final Key ID = Key.of("craftengine:item_name");; public static final ItemProcessorFactory FACTORY = new Factory<>(); private static final Object[] NBT_PATH = new Object[]{"display", "Name"}; private final String argument; diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/processor/ItemProcessors.java b/core/src/main/java/net/momirealms/craftengine/core/item/processor/ItemProcessors.java index 2ab347708..7c493b85b 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/processor/ItemProcessors.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/processor/ItemProcessors.java @@ -20,44 +20,44 @@ import java.util.function.Consumer; public final class ItemProcessors { private ItemProcessors() {} - public static final ItemProcessorType ITEM_MODEL = register(ItemModelProcessor.ID, ItemModelProcessor.FACTORY, VersionHelper.isOrAbove1_21_2()); - public static final ItemProcessorType ARGUMENTS = register(ArgumentsProcessor.ID, ArgumentsProcessor.FACTORY); - public static final ItemProcessorType OVERWRITABLE_ITEM_MODEL = register(OverwritableItemModelProcessor.ID, OverwritableItemModelProcessor.FACTORY, VersionHelper.isOrAbove1_21_2()); - public static final ItemProcessorType ID = register(IdProcessor.ID, IdProcessor.FACTORY); - public static final ItemProcessorType HIDE_TOOLTIP = register(HideTooltipProcessor.ID, HideTooltipProcessor.FACTORY); - public static final ItemProcessorType FOOD = register(FoodProcessor.ID, FoodProcessor.FACTORY, VersionHelper.isOrAbove1_20_5()); - public static final ItemProcessorType EXTERNAL = register(ExternalSourceProcessor.ID, ExternalSourceProcessor.FACTORY); - public static final ItemProcessorType EQUIPPABLE = register(EquippableProcessor.ID, EquippableProcessor.FACTORY, VersionHelper.isOrAbove1_21_2()); - public static final ItemProcessorType EQUIPPABLE_ASSET_ID = register(EquippableAssetIdProcessor.ID, EquippableAssetIdProcessor.FACTORY, VersionHelper.isOrAbove1_21_2()); - public static final ItemProcessorType ENCHANTMENTS = register(EnchantmentsProcessor.ID, EnchantmentsProcessor.FACTORY); - public static final ItemProcessorType ENCHANTMENT = register(Key.of("craftengine:enchantment"), EnchantmentsProcessor.FACTORY); - public static final ItemProcessorType DYED_COLOR = register(DyedColorProcessor.ID, DyedColorProcessor.FACTORY); - public static final ItemProcessorType DISPLAY_NAME = register(Key.of("craftengine:display_name"), ItemNameProcessor.FACTORY); - public static final ItemProcessorType ITEM_NAME = register(ItemNameProcessor.ID, ItemNameProcessor.FACTORY); - public static final ItemProcessorType CUSTOM_NAME = register(CustomNameProcessor.ID, CustomNameProcessor.FACTORY); - public static final ItemProcessorType CUSTOM_MODEL_DATA = register(CustomModelDataProcessor.ID, CustomModelDataProcessor.FACTORY); - public static final ItemProcessorType OVERWRITABLE_CUSTOM_MODEL_DATA = register(OverwritableCustomModelDataProcessor.ID, OverwritableCustomModelDataProcessor.FACTORY); - public static final ItemProcessorType COMPONENTS = register(ComponentsProcessor.ID, ComponentsProcessor.FACTORY, VersionHelper.isOrAbove1_20_5()); - public static final ItemProcessorType COMPONENT = register(Key.of("craftengine:component"), ComponentsProcessor.FACTORY, VersionHelper.isOrAbove1_20_5()); - public static final ItemProcessorType ATTRIBUTE_MODIFIERS = register(AttributeModifiersProcessor.ID, AttributeModifiersProcessor.FACTORY); - public static final ItemProcessorType ATTRIBUTES = register(Key.of("craftengine:attributes"), AttributeModifiersProcessor.FACTORY); - public static final ItemProcessorType PDC = register(PDCProcessor.ID, PDCProcessor.FACTORY); - public static final ItemProcessorType OVERWRITABLE_ITEM_NAME = register(OverwritableItemNameProcessor.ID, OverwritableItemNameProcessor.FACTORY); - public static final ItemProcessorType JUKEBOX_PLAYABLE = register(JukeboxSongProcessor.ID, JukeboxSongProcessor.FACTORY, VersionHelper.isOrAbove1_21()); - public static final ItemProcessorType REMOVE_COMPONENTS = register(RemoveComponentProcessor.ID, RemoveComponentProcessor.FACTORY, VersionHelper.isOrAbove1_20_5()); - public static final ItemProcessorType REMOVE_COMPONENT = register(Key.of("craftengine:remove_component"), RemoveComponentProcessor.FACTORY, VersionHelper.isOrAbove1_20_5()); - public static final ItemProcessorType TAGS = register(TagsProcessor.ID, TagsProcessor.FACTORY); - public static final ItemProcessorType NBT = register(Key.of("craftengine:nbt"), TagsProcessor.FACTORY); - public static final ItemProcessorType TOOLTIP_STYLE = register(TooltipStyleProcessor.ID, TooltipStyleProcessor.FACTORY, VersionHelper.isOrAbove1_21_2()); - public static final ItemProcessorType TRIM = register(TrimProcessor.ID, TrimProcessor.FACTORY); - public static final ItemProcessorType LORE = register(LoreProcessor.ID, LoreProcessor.FACTORY); - public static final ItemProcessorType UNBREAKABLE = register(UnbreakableProcessor.ID, UnbreakableProcessor.FACTORY); - public static final ItemProcessorType DYNAMIC_LORE = register(DynamicLoreProcessor.ID, DynamicLoreProcessor.FACTORY); - public static final ItemProcessorType OVERWRITABLE_LORE = register(OverwritableLoreProcessor.ID, OverwritableLoreProcessor.FACTORY); - public static final ItemProcessorType MAX_DAMAGE = register(MaxDamageProcessor.ID, MaxDamageProcessor.FACTORY, VersionHelper.isOrAbove1_20_5()); - public static final ItemProcessorType BLOCK_STATE = register(BlockStateProcessor.ID, BlockStateProcessor.FACTORY); - public static final ItemProcessorType CONDITIONAL = register(ConditionalProcessor.ID, ConditionalProcessor.FACTORY, VersionHelper.PREMIUM); - public static final ItemProcessorType CONDITION = register(Key.of("craftengine:condition"), ConditionalProcessor.FACTORY, VersionHelper.PREMIUM); + public static final ItemProcessorType ITEM_MODEL = register(Key.ce("item_model"), ItemModelProcessor.FACTORY, VersionHelper.isOrAbove1_21_2()); + public static final ItemProcessorType ARGUMENTS = register(Key.ce("arguments"), ArgumentsProcessor.FACTORY); + public static final ItemProcessorType OVERWRITABLE_ITEM_MODEL = register(Key.ce("overwritable_item_model"), OverwritableItemModelProcessor.FACTORY, VersionHelper.isOrAbove1_21_2()); + public static final ItemProcessorType ID = register(Key.ce("id"), IdProcessor.FACTORY); + public static final ItemProcessorType HIDE_TOOLTIP = register(Key.ce("hide_tooltip"), HideTooltipProcessor.FACTORY); + public static final ItemProcessorType FOOD = register(Key.ce("food"), FoodProcessor.FACTORY, VersionHelper.isOrAbove1_20_5()); + public static final ItemProcessorType EXTERNAL = register(Key.ce("external"), ExternalSourceProcessor.FACTORY); + public static final ItemProcessorType EQUIPPABLE = register(Key.ce("equippable"), EquippableProcessor.FACTORY, VersionHelper.isOrAbove1_21_2()); + public static final ItemProcessorType EQUIPPABLE_ASSET_ID = register(Key.ce("equippable_asset_id"), EquippableAssetIdProcessor.FACTORY, VersionHelper.isOrAbove1_21_2()); + public static final ItemProcessorType ENCHANTMENTS = register(Key.ce("enchantments"), EnchantmentsProcessor.FACTORY); + public static final ItemProcessorType ENCHANTMENT = register(Key.ce("enchantment"), EnchantmentsProcessor.FACTORY); + public static final ItemProcessorType DYED_COLOR = register(Key.ce("dyed_color"), DyedColorProcessor.FACTORY); + public static final ItemProcessorType DISPLAY_NAME = register(Key.ce("display_name"), ItemNameProcessor.FACTORY); + public static final ItemProcessorType ITEM_NAME = register(Key.ce("item_name"), ItemNameProcessor.FACTORY); + public static final ItemProcessorType CUSTOM_NAME = register(Key.ce("custom_name"), CustomNameProcessor.FACTORY); + public static final ItemProcessorType CUSTOM_MODEL_DATA = register(Key.ce("custom_model_data"), CustomModelDataProcessor.FACTORY); + public static final ItemProcessorType OVERWRITABLE_CUSTOM_MODEL_DATA = register(Key.ce("overwritable_custom_model_data"), OverwritableCustomModelDataProcessor.FACTORY); + public static final ItemProcessorType COMPONENTS = register(Key.ce("components"), ComponentsProcessor.FACTORY, VersionHelper.isOrAbove1_20_5()); + public static final ItemProcessorType COMPONENT = register(Key.ce("component"), ComponentsProcessor.FACTORY, VersionHelper.isOrAbove1_20_5()); + public static final ItemProcessorType ATTRIBUTE_MODIFIERS = register(Key.ce("attribute_modifiers"), AttributeModifiersProcessor.FACTORY); + public static final ItemProcessorType ATTRIBUTES = register(Key.ce("attributes"), AttributeModifiersProcessor.FACTORY); + public static final ItemProcessorType PDC = register(Key.ce("pdc"), PDCProcessor.FACTORY); + public static final ItemProcessorType OVERWRITABLE_ITEM_NAME = register(Key.ce("overwritable_item_name"), OverwritableItemNameProcessor.FACTORY); + public static final ItemProcessorType JUKEBOX_PLAYABLE = register(Key.ce("jukebox_playable"), JukeboxSongProcessor.FACTORY, VersionHelper.isOrAbove1_21()); + public static final ItemProcessorType REMOVE_COMPONENTS = register(Key.ce("remove_components"), RemoveComponentProcessor.FACTORY, VersionHelper.isOrAbove1_20_5()); + public static final ItemProcessorType REMOVE_COMPONENT = register(Key.ce("remove_component"), RemoveComponentProcessor.FACTORY, VersionHelper.isOrAbove1_20_5()); + public static final ItemProcessorType TAGS = register(Key.ce("tags"), TagsProcessor.FACTORY); + public static final ItemProcessorType NBT = register(Key.ce("nbt"), TagsProcessor.FACTORY); + public static final ItemProcessorType TOOLTIP_STYLE = register(Key.ce("tooltip_style"), TooltipStyleProcessor.FACTORY, VersionHelper.isOrAbove1_21_2()); + public static final ItemProcessorType TRIM = register(Key.ce("trim"), TrimProcessor.FACTORY); + public static final ItemProcessorType LORE = register(Key.ce("lore"), LoreProcessor.FACTORY); + public static final ItemProcessorType UNBREAKABLE = register(Key.ce("unbreakable"), UnbreakableProcessor.FACTORY); + public static final ItemProcessorType DYNAMIC_LORE = register(Key.ce("dynamic_lore"), DynamicLoreProcessor.FACTORY); + public static final ItemProcessorType OVERWRITABLE_LORE = register(Key.ce("overwritable_lore"), OverwritableLoreProcessor.FACTORY); + public static final ItemProcessorType MAX_DAMAGE = register(Key.ce("max_damage"), MaxDamageProcessor.FACTORY, VersionHelper.isOrAbove1_20_5()); + public static final ItemProcessorType BLOCK_STATE = register(Key.ce("blockstate"), BlockStateProcessor.FACTORY); + public static final ItemProcessorType CONDITIONAL = register(Key.ce("conditional"), ConditionalProcessor.FACTORY, VersionHelper.PREMIUM); + public static final ItemProcessorType CONDITION = register(Key.ce("condition"), ConditionalProcessor.FACTORY, VersionHelper.PREMIUM); public static ItemProcessorType register(Key key, ItemProcessorFactory factory) { ItemProcessorType type = new ItemProcessorType<>(key, factory); diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/processor/JukeboxSongProcessor.java b/core/src/main/java/net/momirealms/craftengine/core/item/processor/JukeboxSongProcessor.java index 6a10492b2..9c3666d6e 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/processor/JukeboxSongProcessor.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/processor/JukeboxSongProcessor.java @@ -4,10 +4,8 @@ import net.momirealms.craftengine.core.item.Item; import net.momirealms.craftengine.core.item.ItemBuildContext; import net.momirealms.craftengine.core.item.ItemProcessorFactory; import net.momirealms.craftengine.core.item.data.JukeboxPlayable; -import net.momirealms.craftengine.core.util.Key; public class JukeboxSongProcessor implements ItemProcessor { - public static final Key ID = Key.of("craftengine:jukebox_playable"); public static final ItemProcessorFactory FACTORY = new Factory<>(); private final JukeboxPlayable song; diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/processor/MaxDamageProcessor.java b/core/src/main/java/net/momirealms/craftengine/core/item/processor/MaxDamageProcessor.java index f44733001..9490346e9 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/processor/MaxDamageProcessor.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/processor/MaxDamageProcessor.java @@ -10,7 +10,6 @@ import net.momirealms.craftengine.core.util.Key; import org.jetbrains.annotations.Nullable; public class MaxDamageProcessor implements SimpleNetworkItemProcessor { - public static final Key ID = Key.of("craftengine:max_damage"); public static final ItemProcessorFactory FACTORY = new Factory<>(); private final NumberProvider argument; diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/processor/OverwritableCustomModelDataProcessor.java b/core/src/main/java/net/momirealms/craftengine/core/item/processor/OverwritableCustomModelDataProcessor.java index d93cd513e..23b0dd9f6 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/processor/OverwritableCustomModelDataProcessor.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/processor/OverwritableCustomModelDataProcessor.java @@ -9,7 +9,6 @@ import net.momirealms.craftengine.core.util.ResourceConfigUtils; import org.jetbrains.annotations.Nullable; public class OverwritableCustomModelDataProcessor implements SimpleNetworkItemProcessor { - public static final Key ID = Key.of("craftengine:overwritable_custom_model_data"); public static final ItemProcessorFactory FACTORY = new Factory<>(); private final int argument; diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/processor/OverwritableItemModelProcessor.java b/core/src/main/java/net/momirealms/craftengine/core/item/processor/OverwritableItemModelProcessor.java index 48c1cd595..d2a00b927 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/processor/OverwritableItemModelProcessor.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/processor/OverwritableItemModelProcessor.java @@ -8,7 +8,6 @@ import net.momirealms.craftengine.core.util.Key; import org.jetbrains.annotations.Nullable; public class OverwritableItemModelProcessor implements SimpleNetworkItemProcessor { - public static final Key ID = Key.of("craftengine:overwritable_item_model"); public static final ItemProcessorFactory FACTORY = new Factory<>(); private final Key data; diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/processor/OverwritableItemNameProcessor.java b/core/src/main/java/net/momirealms/craftengine/core/item/processor/OverwritableItemNameProcessor.java index 0eb0ebd37..11af0d1ce 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/processor/OverwritableItemNameProcessor.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/processor/OverwritableItemNameProcessor.java @@ -9,7 +9,6 @@ import net.momirealms.craftengine.core.util.VersionHelper; import org.jetbrains.annotations.Nullable; public class OverwritableItemNameProcessor implements SimpleNetworkItemProcessor { - public static final Key ID = Key.of("craftengine:overwritable_item_name"); public static final ItemProcessorFactory FACTORY = new Factory<>(); private final ItemNameProcessor modifier; diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/processor/PDCProcessor.java b/core/src/main/java/net/momirealms/craftengine/core/item/processor/PDCProcessor.java index 1cfabbe42..8e544bedd 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/processor/PDCProcessor.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/processor/PDCProcessor.java @@ -5,7 +5,6 @@ import net.momirealms.craftengine.core.item.Item; import net.momirealms.craftengine.core.item.ItemBuildContext; import net.momirealms.craftengine.core.item.ItemProcessorFactory; import net.momirealms.craftengine.core.plugin.CraftEngine; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import net.momirealms.craftengine.core.util.VersionHelper; import net.momirealms.sparrow.nbt.CompoundTag; @@ -14,7 +13,6 @@ import java.util.Map; import java.util.Optional; public class PDCProcessor implements ItemProcessor { - public static final Key ID = Key.of("craftengine:pdc"); public static final String BUKKIT_PDC = "PublicBukkitValues"; public static final ItemProcessorFactory FACTORY = new Factory<>(); private final CompoundTag data; diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/processor/RemoveComponentProcessor.java b/core/src/main/java/net/momirealms/craftengine/core/item/processor/RemoveComponentProcessor.java index 1f43fa0e2..4f4e67e32 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/processor/RemoveComponentProcessor.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/processor/RemoveComponentProcessor.java @@ -4,7 +4,6 @@ import net.momirealms.craftengine.core.item.Item; import net.momirealms.craftengine.core.item.ItemBuildContext; import net.momirealms.craftengine.core.item.ItemProcessorFactory; import net.momirealms.craftengine.core.item.NetworkItemHandler; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.MiscUtils; import net.momirealms.sparrow.nbt.CompoundTag; import net.momirealms.sparrow.nbt.Tag; @@ -13,7 +12,6 @@ import java.util.Collections; import java.util.List; public class RemoveComponentProcessor implements ItemProcessor { - public static final Key ID = Key.of("craftengine:remove_components"); public static final ItemProcessorFactory FACTORY = new Factory<>(); private final List arguments; diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/processor/TagsProcessor.java b/core/src/main/java/net/momirealms/craftengine/core/item/processor/TagsProcessor.java index a26f4b62c..0975e4cd5 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/processor/TagsProcessor.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/processor/TagsProcessor.java @@ -1,7 +1,10 @@ package net.momirealms.craftengine.core.item.processor; import net.momirealms.craftengine.core.item.*; -import net.momirealms.craftengine.core.util.*; +import net.momirealms.craftengine.core.util.MiscUtils; +import net.momirealms.craftengine.core.util.ResourceConfigUtils; +import net.momirealms.craftengine.core.util.TypeUtils; +import net.momirealms.craftengine.core.util.VersionHelper; import net.momirealms.sparrow.nbt.CompoundTag; import net.momirealms.sparrow.nbt.Tag; @@ -9,7 +12,6 @@ import java.util.LinkedHashMap; import java.util.Map; public class TagsProcessor implements ItemProcessor { - public static final Key ID = Key.of("craftengine:tags"); public static final ItemProcessorFactory FACTORY = new Factory<>(); private final Map arguments; diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/processor/TooltipStyleProcessor.java b/core/src/main/java/net/momirealms/craftengine/core/item/processor/TooltipStyleProcessor.java index 736594b54..586b8b955 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/processor/TooltipStyleProcessor.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/processor/TooltipStyleProcessor.java @@ -8,7 +8,6 @@ import net.momirealms.craftengine.core.util.Key; import org.jetbrains.annotations.Nullable; public class TooltipStyleProcessor implements SimpleNetworkItemProcessor { - public static final Key ID = Key.of("craftengine:tooltip_style"); public static final ItemProcessorFactory FACTORY = new Factory<>(); private final Key argument; diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/processor/TrimProcessor.java b/core/src/main/java/net/momirealms/craftengine/core/item/processor/TrimProcessor.java index 3fc93939f..df2469563 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/processor/TrimProcessor.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/processor/TrimProcessor.java @@ -13,7 +13,6 @@ import java.util.Locale; import java.util.Map; public class TrimProcessor implements SimpleNetworkItemProcessor { - public static final Key ID = Key.of("craftengine:trim"); public static final ItemProcessorFactory FACTORY = new Factory<>(); private static final Object[] NBT_PATH = new Object[] {"Trim"}; private final Key material; diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/processor/UnbreakableProcessor.java b/core/src/main/java/net/momirealms/craftengine/core/item/processor/UnbreakableProcessor.java index 8329ddab1..abc1265a2 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/processor/UnbreakableProcessor.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/processor/UnbreakableProcessor.java @@ -9,7 +9,6 @@ import net.momirealms.craftengine.core.util.ResourceConfigUtils; import org.jetbrains.annotations.Nullable; public class UnbreakableProcessor implements SimpleNetworkItemProcessor { - public static final Key ID = Key.of("craftengine:unbreakable"); public static final ItemProcessorFactory FACTORY = new Factory<>(); private static final Object[] NBT_PATH = new Object[]{"Unbreakable"}; private final boolean argument; diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/processor/lore/DynamicLoreProcessor.java b/core/src/main/java/net/momirealms/craftengine/core/item/processor/lore/DynamicLoreProcessor.java index 0aa78e6fa..636d7725c 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/processor/lore/DynamicLoreProcessor.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/processor/lore/DynamicLoreProcessor.java @@ -13,7 +13,6 @@ import java.util.Map; import java.util.Optional; public final class DynamicLoreProcessor implements SimpleNetworkItemProcessor { - public static final Key ID = Key.of("craftengine:dynamic_lore"); public static final Factory FACTORY = new Factory<>(); public static final String CONTEXT_TAG_KEY = "craftengine:display_context"; private final Map> displayContexts; diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/processor/lore/LoreProcessor.java b/core/src/main/java/net/momirealms/craftengine/core/item/processor/lore/LoreProcessor.java index bf6b5b5d4..edca4feda 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/processor/lore/LoreProcessor.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/processor/lore/LoreProcessor.java @@ -22,7 +22,6 @@ import java.util.stream.Stream; public sealed interface LoreProcessor extends SimpleNetworkItemProcessor permits LoreProcessor.EmptyLoreProcessor, LoreProcessor.CompositeLoreProcessor, LoreProcessor.DoubleLoreProcessor, LoreProcessor.SingleLoreProcessor { ItemProcessorFactory FACTORY = new Factory<>(); - Key ID = Key.of("craftengine:lore"); @Override @Nullable diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/processor/lore/OverwritableLoreProcessor.java b/core/src/main/java/net/momirealms/craftengine/core/item/processor/lore/OverwritableLoreProcessor.java index 7717a9252..1e1dd5473 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/processor/lore/OverwritableLoreProcessor.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/processor/lore/OverwritableLoreProcessor.java @@ -11,7 +11,6 @@ import net.momirealms.craftengine.core.util.VersionHelper; import net.momirealms.sparrow.nbt.CompoundTag; public final class OverwritableLoreProcessor implements SimpleNetworkItemProcessor { - public static final Key ID = Key.of("craftengine:overwritable_lore"); public static final Factory FACTORY = new Factory<>(); private final LoreProcessor loreProcessor; 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 965772071..d2fba5f10 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 @@ -229,10 +229,10 @@ public class CustomSmithingTransformRecipe extends AbstractedFixedResultRecip } public static class ItemDataProcessors { - public static final Key KEEP_COMPONENTS = Key.of("craftengine:keep_components"); - public static final Key KEEP_TAGS = Key.of("craftengine:keep_tags"); - public static final Key MERGE_ENCHANTMENTS = Key.of("craftengine:merge_enchantments"); - public static final Key KEEP_CUSTOM_DATA = Key.of("craftengine:keep_custom_data"); + public static final Key KEEP_COMPONENTS = Key.ce("keep_components"); + public static final Key KEEP_TAGS = Key.ce("keep_tags"); + public static final Key MERGE_ENCHANTMENTS = Key.ce("merge_enchantments"); + public static final Key KEEP_CUSTOM_DATA = Key.ce("keep_custom_data"); static { if (VersionHelper.isOrAbove1_20_5()) { diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/recipe/remainder/CompositeCraftRemainder.java b/core/src/main/java/net/momirealms/craftengine/core/item/recipe/remainder/CompositeCraftRemainder.java index a19ccbc90..1d8d81f81 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/recipe/remainder/CompositeCraftRemainder.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/recipe/remainder/CompositeCraftRemainder.java @@ -3,7 +3,7 @@ package net.momirealms.craftengine.core.item.recipe.remainder; import net.momirealms.craftengine.core.item.Item; import net.momirealms.craftengine.core.util.Key; -public class CompositeCraftRemainder implements CraftRemainder { +public final class CompositeCraftRemainder implements CraftRemainder { private final CraftRemainder[] remainders; public CompositeCraftRemainder(CraftRemainder[] remainders) { diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/recipe/remainder/CraftRemainderType.java b/core/src/main/java/net/momirealms/craftengine/core/item/recipe/remainder/CraftRemainderType.java new file mode 100644 index 000000000..a757b0ce4 --- /dev/null +++ b/core/src/main/java/net/momirealms/craftengine/core/item/recipe/remainder/CraftRemainderType.java @@ -0,0 +1,6 @@ +package net.momirealms.craftengine.core.item.recipe.remainder; + +import net.momirealms.craftengine.core.util.Key; + +public record CraftRemainderType(Key id, CraftRemainderFactory factory) { +} diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/recipe/remainder/CraftRemainders.java b/core/src/main/java/net/momirealms/craftengine/core/item/recipe/remainder/CraftRemainders.java index 8bb4a868f..59e0dda83 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/recipe/remainder/CraftRemainders.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/recipe/remainder/CraftRemainders.java @@ -12,30 +12,28 @@ import net.momirealms.craftengine.core.util.ResourceKey; import java.util.List; import java.util.Map; -public class CraftRemainders { - public static final Key FIXED = Key.of("craftengine:fixed"); - public static final Key RECIPE_BASED = Key.of("craftengine:recipe_based"); - public static final Key HURT_AND_BREAK = Key.of("craftengine:hurt_and_break"); +public final class CraftRemainders { + public static final CraftRemainderType FIXED = register(Key.ce("fixed"), FixedCraftRemainder.FACTORY); + public static final CraftRemainderType RECIPE_BASED = register(Key.ce("recipe_based"), RecipeBasedCraftRemainder.FACTORY); + public static final CraftRemainderType HURT_AND_BREAK = register(Key.ce("hurt_and_break"), HurtAndBreakRemainder.FACTORY); - static { - register(FIXED, FixedCraftRemainder.FACTORY); - register(RECIPE_BASED, RecipeBasedCraftRemainder.FACTORY); - register(HURT_AND_BREAK, HurtAndBreakRemainder.FACTORY); - } + private CraftRemainders() {} - public static void register(Key key, CraftRemainderFactory factory) { - ((WritableRegistry>) BuiltInRegistries.CRAFT_REMAINDER_FACTORY) - .register(ResourceKey.create(Registries.CRAFT_REMAINDER_FACTORY.location(), key), factory); + public static CraftRemainderType register(Key key, CraftRemainderFactory factory) { + CraftRemainderType type = new CraftRemainderType<>(key, factory); + ((WritableRegistry>) BuiltInRegistries.CRAFT_REMAINDER_TYPE) + .register(ResourceKey.create(Registries.CRAFT_REMAINDER_TYPE.location(), key), type); + return type; } public static CraftRemainder fromMap(Map map) { String type = ResourceConfigUtils.requireNonEmptyStringOrThrow(map.get("type"), "warning.config.item.settings.craft_remainder.missing_type"); Key key = Key.withDefaultNamespace(type, Key.DEFAULT_NAMESPACE); - CraftRemainderFactory factory = BuiltInRegistries.CRAFT_REMAINDER_FACTORY.getValue(key); - if (factory == null) { + CraftRemainderType craftRemainderType = BuiltInRegistries.CRAFT_REMAINDER_TYPE.getValue(key); + if (craftRemainderType == null) { throw new LocalizedResourceConfigException("warning.config.item.settings.craft_remainder.invalid_type", type); } - return factory.create(map); + return craftRemainderType.factory().create(map); } public static CraftRemainder fromObject(Object obj) { diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/recipe/remainder/FixedCraftRemainder.java b/core/src/main/java/net/momirealms/craftengine/core/item/recipe/remainder/FixedCraftRemainder.java index 1275e7339..e2c12a99e 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/recipe/remainder/FixedCraftRemainder.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/recipe/remainder/FixedCraftRemainder.java @@ -7,8 +7,8 @@ import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; -public class FixedCraftRemainder implements CraftRemainder { - public static final Factory FACTORY = new Factory(); +public final class FixedCraftRemainder implements CraftRemainder { + public static final CraftRemainderFactory FACTORY = new Factory(); private final Key item; public FixedCraftRemainder(Key item) { @@ -21,7 +21,7 @@ public class FixedCraftRemainder implements CraftRemainder { return (Item) CraftEngine.instance().itemManager().createWrappedItem(this.item, null); } - public static class Factory implements CraftRemainderFactory { + private static class Factory implements CraftRemainderFactory { @Override public FixedCraftRemainder create(Map args) { diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/recipe/remainder/HurtAndBreakRemainder.java b/core/src/main/java/net/momirealms/craftengine/core/item/recipe/remainder/HurtAndBreakRemainder.java index 8ca7bc1b4..4355fe963 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/recipe/remainder/HurtAndBreakRemainder.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/recipe/remainder/HurtAndBreakRemainder.java @@ -6,8 +6,8 @@ import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; -public class HurtAndBreakRemainder implements CraftRemainder { - public static final Factory FACTORY = new Factory(); +public final class HurtAndBreakRemainder implements CraftRemainder { + public static final CraftRemainderFactory FACTORY = new Factory(); private final int amount; public HurtAndBreakRemainder(int amount) { @@ -28,7 +28,7 @@ public class HurtAndBreakRemainder implements CraftRemainder { } } - public static class Factory implements CraftRemainderFactory { + private static class Factory implements CraftRemainderFactory { @Override public HurtAndBreakRemainder create(Map args) { diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/recipe/remainder/RecipeBasedCraftRemainder.java b/core/src/main/java/net/momirealms/craftengine/core/item/recipe/remainder/RecipeBasedCraftRemainder.java index 5cf66566e..4eb53ca7b 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/recipe/remainder/RecipeBasedCraftRemainder.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/recipe/remainder/RecipeBasedCraftRemainder.java @@ -10,8 +10,8 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -public class RecipeBasedCraftRemainder implements CraftRemainder { - public static final Factory FACTORY = new Factory(); +public final class RecipeBasedCraftRemainder implements CraftRemainder { + public static final CraftRemainderFactory FACTORY = new Factory(); private final Map remainders; @Nullable private final CraftRemainder fallback; @@ -30,7 +30,7 @@ public class RecipeBasedCraftRemainder implements CraftRemainder { return this.fallback != null ? this.fallback.remainder(recipeId, item) : null; } - public static class Factory implements CraftRemainderFactory { + private static class Factory implements CraftRemainderFactory { @Override public RecipeBasedCraftRemainder create(Map args) { diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/recipe/result/ApplyItemDataPostProcessor.java b/core/src/main/java/net/momirealms/craftengine/core/item/recipe/result/ApplyItemDataPostProcessor.java index b124e7693..39c9354b8 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/recipe/result/ApplyItemDataPostProcessor.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/recipe/result/ApplyItemDataPostProcessor.java @@ -3,8 +3,15 @@ package net.momirealms.craftengine.core.item.recipe.result; import net.momirealms.craftengine.core.item.Item; import net.momirealms.craftengine.core.item.ItemBuildContext; import net.momirealms.craftengine.core.item.processor.ItemProcessor; +import net.momirealms.craftengine.core.item.processor.ItemProcessors; +import net.momirealms.craftengine.core.util.ResourceConfigUtils; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; public class ApplyItemDataPostProcessor implements PostProcessor { + public static final PostProcessorFactory FACTORY = new Factory<>(); private final ItemProcessor[] modifiers; public ApplyItemDataPostProcessor(ItemProcessor[] modifiers) { @@ -18,4 +25,16 @@ public class ApplyItemDataPostProcessor implements PostProcessor { } return item; } + + private static class Factory implements PostProcessorFactory { + + @SuppressWarnings("unchecked") + @Override + public PostProcessor create(Map args) { + List> modifiers = new ArrayList<>(); + Map data = ResourceConfigUtils.getAsMap(args.get("data"), "data"); + ItemProcessors.applyDataModifiers(data, modifiers::add); + return new ApplyItemDataPostProcessor<>(modifiers.toArray(new ItemProcessor[0])); + } + } } \ No newline at end of file diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/recipe/result/PostProcessor.java b/core/src/main/java/net/momirealms/craftengine/core/item/recipe/result/PostProcessor.java index 7e8eb5c2f..5b7a85f5b 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/recipe/result/PostProcessor.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/recipe/result/PostProcessor.java @@ -3,14 +3,7 @@ package net.momirealms.craftengine.core.item.recipe.result; import net.momirealms.craftengine.core.item.Item; import net.momirealms.craftengine.core.item.ItemBuildContext; -import java.util.Map; - public interface PostProcessor { Item process(Item item, ItemBuildContext context); - - interface Type { - - PostProcessor create(Map args); - } } diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/recipe/result/PostProcessorFactory.java b/core/src/main/java/net/momirealms/craftengine/core/item/recipe/result/PostProcessorFactory.java new file mode 100644 index 000000000..b2d126a7a --- /dev/null +++ b/core/src/main/java/net/momirealms/craftengine/core/item/recipe/result/PostProcessorFactory.java @@ -0,0 +1,8 @@ +package net.momirealms.craftengine.core.item.recipe.result; + +import java.util.Map; + +public interface PostProcessorFactory { + + PostProcessor create(Map args); +} diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/recipe/result/PostProcessorType.java b/core/src/main/java/net/momirealms/craftengine/core/item/recipe/result/PostProcessorType.java new file mode 100644 index 000000000..d55a65e41 --- /dev/null +++ b/core/src/main/java/net/momirealms/craftengine/core/item/recipe/result/PostProcessorType.java @@ -0,0 +1,6 @@ +package net.momirealms.craftengine.core.item.recipe.result; + +import net.momirealms.craftengine.core.util.Key; + +public record PostProcessorType(Key id, PostProcessorFactory factory) { +} diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/recipe/result/PostProcessors.java b/core/src/main/java/net/momirealms/craftengine/core/item/recipe/result/PostProcessors.java index d3f7d8be5..491ecce7d 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/recipe/result/PostProcessors.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/recipe/result/PostProcessors.java @@ -1,7 +1,5 @@ package net.momirealms.craftengine.core.item.recipe.result; -import net.momirealms.craftengine.core.item.processor.ItemProcessor; -import net.momirealms.craftengine.core.item.processor.ItemProcessors; import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigException; import net.momirealms.craftengine.core.registry.BuiltInRegistries; import net.momirealms.craftengine.core.registry.Registries; @@ -10,35 +8,28 @@ import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import net.momirealms.craftengine.core.util.ResourceKey; -import java.util.ArrayList; -import java.util.List; import java.util.Map; -@SuppressWarnings("unchecked") -public class PostProcessors { - public static final Key APPLY_DATA = Key.of("craftengine:apply_data"); +public final class PostProcessors { + public static final PostProcessorType APPLY_DATA = register(Key.ce("apply_data"), ApplyItemDataPostProcessor.FACTORY); - static { - registerPostProcessorType(APPLY_DATA, args -> { - List> modifiers = new ArrayList<>(); - Map data = ResourceConfigUtils.getAsMap(args.get("data"), "data"); - ItemProcessors.applyDataModifiers(data, modifiers::add); - return new ApplyItemDataPostProcessor<>(modifiers.toArray(new ItemProcessor[0])); - }); - } + private PostProcessors() {} + @SuppressWarnings("unchecked") public static PostProcessor fromMap(Map map) { String type = ResourceConfigUtils.requireNonEmptyStringOrThrow(map.get("type"), "warning.config.recipe.result.post_processor.missing_type"); Key key = Key.withDefaultNamespace(type, Key.DEFAULT_NAMESPACE); - PostProcessor.Type processor = (PostProcessor.Type) BuiltInRegistries.RECIPE_POST_PROCESSOR_TYPE.getValue(key); - if (processor == null) { + PostProcessorType processorType = (PostProcessorType) BuiltInRegistries.RECIPE_POST_PROCESSOR_TYPE.getValue(key); + if (processorType == null) { throw new LocalizedResourceConfigException("warning.config.recipe.result.post_processor.invalid_type", type); } - return processor.create(map); + return processorType.factory().create(map); } - public static void registerPostProcessorType(Key id, PostProcessor.Type type) { - ((WritableRegistry>) BuiltInRegistries.RECIPE_POST_PROCESSOR_TYPE) + public static PostProcessorType register(Key id, PostProcessorFactory factory) { + PostProcessorType type = new PostProcessorType<>(id, factory); + ((WritableRegistry>) BuiltInRegistries.RECIPE_POST_PROCESSOR_TYPE) .register(ResourceKey.create(Registries.RECIPE_POST_PROCESSOR_TYPE.location(), id), type); + return type; } } diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/updater/ItemUpdateConfig.java b/core/src/main/java/net/momirealms/craftengine/core/item/updater/ItemUpdateConfig.java index 911cf2b7d..feeda2757 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/updater/ItemUpdateConfig.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/updater/ItemUpdateConfig.java @@ -11,7 +11,7 @@ import java.util.ArrayList; import java.util.List; import java.util.function.Supplier; -public class ItemUpdateConfig { +public final class ItemUpdateConfig { private final List versions; private final int maxVersion; diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/updater/ItemUpdaterFactory.java b/core/src/main/java/net/momirealms/craftengine/core/item/updater/ItemUpdaterFactory.java new file mode 100644 index 000000000..9ae4dd9f4 --- /dev/null +++ b/core/src/main/java/net/momirealms/craftengine/core/item/updater/ItemUpdaterFactory.java @@ -0,0 +1,10 @@ +package net.momirealms.craftengine.core.item.updater; + +import net.momirealms.craftengine.core.util.Key; + +import java.util.Map; + +public interface ItemUpdaterFactory { + + ItemUpdater create(Key item, Map args); +} diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/updater/ItemUpdaterType.java b/core/src/main/java/net/momirealms/craftengine/core/item/updater/ItemUpdaterType.java index 2b81e9a29..3379094ae 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/updater/ItemUpdaterType.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/updater/ItemUpdaterType.java @@ -2,9 +2,5 @@ package net.momirealms.craftengine.core.item.updater; import net.momirealms.craftengine.core.util.Key; -import java.util.Map; - -public interface ItemUpdaterType { - - ItemUpdater create(Key item, Map args); +public record ItemUpdaterType(Key id, ItemUpdaterFactory factory) { } diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/updater/ItemUpdaters.java b/core/src/main/java/net/momirealms/craftengine/core/item/updater/ItemUpdaters.java index 9740c9fd9..1b7ec72ce 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/updater/ItemUpdaters.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/updater/ItemUpdaters.java @@ -13,30 +13,28 @@ import net.momirealms.craftengine.core.util.ResourceKey; import java.util.Map; -@SuppressWarnings("unchecked") -public class ItemUpdaters { - public static final Key APPLY_DATA = Key.of("craftengine:apply_data"); - public static final Key TRANSMUTE = Key.of("craftengine:transmute"); - public static final Key RESET = Key.of("craftengine:reset"); +public final class ItemUpdaters { + public static final ItemUpdaterType APPLY_DATA = register(Key.ce("apply_data"), ApplyDataOperation.FACTORY); + public static final ItemUpdaterType TRANSMUTE = register(Key.ce("transmute"), TransmuteOperation.FACTORY); + public static final ItemUpdaterType RESET = register(Key.ce("reset"), ResetOperation.FACTORY); - static { - register(APPLY_DATA, ApplyDataOperation.TYPE); - register(TRANSMUTE, TransmuteOperation.TYPE); - register(RESET, ResetOperation.TYPE); - } - - public static void register(Key id, ItemUpdaterType type) { - WritableRegistry> registry = (WritableRegistry>) BuiltInRegistries.ITEM_UPDATER_TYPE; - registry.register(ResourceKey.create(Registries.ITEM_UPDATER_TYPE.location(), id), type); + private ItemUpdaters() {} + + public static ItemUpdaterType register(Key id, ItemUpdaterFactory factory) { + ItemUpdaterType type = new ItemUpdaterType<>(id, factory); + ((WritableRegistry>) BuiltInRegistries.ITEM_UPDATER_TYPE) + .register(ResourceKey.create(Registries.ITEM_UPDATER_TYPE.location(), id), type); + return type; } + @SuppressWarnings("unchecked") public static ItemUpdater fromMap(Key item, Map map) { String type = ResourceConfigUtils.requireNonEmptyStringOrThrow(map.get("type"), "warning.config.item.updater.missing_type"); - Key key = Key.withDefaultNamespace(type, Key.DEFAULT_NAMESPACE); + Key key = Key.ce(type); ItemUpdaterType updaterType = (ItemUpdaterType) BuiltInRegistries.ITEM_UPDATER_TYPE.getValue(key); if (updaterType == null) { throw new LocalizedResourceConfigException("warning.config.item.updater.invalid_type", type); } - return updaterType.create(item, map); + return updaterType.factory().create(item, map); } } diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/updater/impl/ApplyDataOperation.java b/core/src/main/java/net/momirealms/craftengine/core/item/updater/impl/ApplyDataOperation.java index 5b2b6e872..a046161d8 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/updater/impl/ApplyDataOperation.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/updater/impl/ApplyDataOperation.java @@ -5,7 +5,7 @@ import net.momirealms.craftengine.core.item.ItemBuildContext; import net.momirealms.craftengine.core.item.processor.ItemProcessor; import net.momirealms.craftengine.core.item.processor.ItemProcessors; import net.momirealms.craftengine.core.item.updater.ItemUpdater; -import net.momirealms.craftengine.core.item.updater.ItemUpdaterType; +import net.momirealms.craftengine.core.item.updater.ItemUpdaterFactory; import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; @@ -13,8 +13,8 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; -public class ApplyDataOperation implements ItemUpdater { - public static final Type TYPE = new Type<>(); +public final class ApplyDataOperation implements ItemUpdater { + public static final ItemUpdaterFactory FACTORY = new Factory<>(); private final List> modifiers; public ApplyDataOperation(List> modifiers) { @@ -31,7 +31,7 @@ public class ApplyDataOperation implements ItemUpdater { return item; } - public static class Type implements ItemUpdaterType { + private static class Factory implements ItemUpdaterFactory { @SuppressWarnings("unchecked") @Override diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/updater/impl/ResetOperation.java b/core/src/main/java/net/momirealms/craftengine/core/item/updater/impl/ResetOperation.java index f0d7d2d5d..91f988eb0 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/updater/impl/ResetOperation.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/updater/impl/ResetOperation.java @@ -5,7 +5,7 @@ import net.momirealms.craftengine.core.item.Item; import net.momirealms.craftengine.core.item.ItemBuildContext; import net.momirealms.craftengine.core.item.ItemManager; import net.momirealms.craftengine.core.item.updater.ItemUpdater; -import net.momirealms.craftengine.core.item.updater.ItemUpdaterType; +import net.momirealms.craftengine.core.item.updater.ItemUpdaterFactory; import net.momirealms.craftengine.core.plugin.CraftEngine; import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.LazyReference; @@ -15,8 +15,8 @@ import net.momirealms.craftengine.core.util.VersionHelper; import java.util.List; import java.util.Map; -public class ResetOperation implements ItemUpdater { - public static final Type TYPE = new Type<>(); +public final class ResetOperation implements ItemUpdater { + public static final ItemUpdaterFactory FACTORY = new Factory<>(); private final LazyReference> item; private final List componentsToKeep; private final List tagsToKeep; @@ -46,7 +46,7 @@ public class ResetOperation implements ItemUpdater { return newItem; } - public static class Type implements ItemUpdaterType { + private static class Factory implements ItemUpdaterFactory { @Override public ItemUpdater create(Key item, Map args) { diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/updater/impl/TransmuteOperation.java b/core/src/main/java/net/momirealms/craftengine/core/item/updater/impl/TransmuteOperation.java index fe046191f..609a199c1 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/updater/impl/TransmuteOperation.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/updater/impl/TransmuteOperation.java @@ -3,14 +3,14 @@ package net.momirealms.craftengine.core.item.updater.impl; import net.momirealms.craftengine.core.item.Item; import net.momirealms.craftengine.core.item.ItemBuildContext; import net.momirealms.craftengine.core.item.updater.ItemUpdater; -import net.momirealms.craftengine.core.item.updater.ItemUpdaterType; +import net.momirealms.craftengine.core.item.updater.ItemUpdaterFactory; import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; -public class TransmuteOperation implements ItemUpdater { - public static final Type TYPE = new Type<>(); +public final class TransmuteOperation implements ItemUpdater { + public static final ItemUpdaterFactory FACTORY = new Factory<>(); private final Key newMaterial; public TransmuteOperation(Key newMaterial) { @@ -22,7 +22,7 @@ public class TransmuteOperation implements ItemUpdater { return item.transmuteCopy(this.newMaterial, item.count()); } - public static class Type implements ItemUpdaterType { + private static class Factory implements ItemUpdaterFactory { @Override public ItemUpdater create(Key item, Map args) { diff --git a/core/src/main/java/net/momirealms/craftengine/core/loot/entry/AlternativesLootEntryContainer.java b/core/src/main/java/net/momirealms/craftengine/core/loot/entry/AlternativesLootEntryContainer.java index 0eff3f033..f0b3e2703 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/loot/entry/AlternativesLootEntryContainer.java +++ b/core/src/main/java/net/momirealms/craftengine/core/loot/entry/AlternativesLootEntryContainer.java @@ -3,14 +3,12 @@ package net.momirealms.craftengine.core.loot.entry; import net.momirealms.craftengine.core.loot.LootContext; import net.momirealms.craftengine.core.plugin.context.CommonConditions; import net.momirealms.craftengine.core.plugin.context.Condition; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.List; import java.util.Map; public final class AlternativesLootEntryContainer extends AbstractCompositeLootEntryContainer { - public static final Key ID = Key.from("craftengine:alternatives"); public static final LootEntryContainerFactory FACTORY = new Factory<>(); private AlternativesLootEntryContainer(List> conditions, List> children) { diff --git a/core/src/main/java/net/momirealms/craftengine/core/loot/entry/EmptyLoopEntryContainer.java b/core/src/main/java/net/momirealms/craftengine/core/loot/entry/EmptyLoopEntryContainer.java index 764f7c140..eef0a8ba6 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/loot/entry/EmptyLoopEntryContainer.java +++ b/core/src/main/java/net/momirealms/craftengine/core/loot/entry/EmptyLoopEntryContainer.java @@ -4,7 +4,6 @@ import net.momirealms.craftengine.core.item.Item; import net.momirealms.craftengine.core.loot.LootContext; import net.momirealms.craftengine.core.plugin.context.CommonConditions; import net.momirealms.craftengine.core.plugin.context.Condition; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.List; @@ -12,7 +11,6 @@ import java.util.Map; import java.util.function.Consumer; public final class EmptyLoopEntryContainer extends AbstractSingleLootEntryContainer { - public static final Key ID = Key.from("craftengine:empty"); public static final LootEntryContainerFactory FACTORY = new Factory<>(); private EmptyLoopEntryContainer(List> conditions, int weight, int quality) { diff --git a/core/src/main/java/net/momirealms/craftengine/core/loot/entry/ExpLootEntryContainer.java b/core/src/main/java/net/momirealms/craftengine/core/loot/entry/ExpLootEntryContainer.java index 1a69b1fc9..58cef15f1 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/loot/entry/ExpLootEntryContainer.java +++ b/core/src/main/java/net/momirealms/craftengine/core/loot/entry/ExpLootEntryContainer.java @@ -6,7 +6,6 @@ import net.momirealms.craftengine.core.plugin.context.Condition; import net.momirealms.craftengine.core.plugin.context.number.NumberProvider; import net.momirealms.craftengine.core.plugin.context.number.NumberProviders; import net.momirealms.craftengine.core.plugin.context.parameter.DirectContextParameters; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.List; @@ -14,7 +13,6 @@ import java.util.Map; import java.util.function.Consumer; public final class ExpLootEntryContainer extends AbstractLootEntryContainer { - public static final Key ID = Key.from("craftengine:exp"); public static final Factory FACTORY = new Factory<>(); private final NumberProvider value; diff --git a/core/src/main/java/net/momirealms/craftengine/core/loot/entry/LootEntryContainers.java b/core/src/main/java/net/momirealms/craftengine/core/loot/entry/LootEntryContainers.java index a8a495640..3d2d5f14d 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/loot/entry/LootEntryContainers.java +++ b/core/src/main/java/net/momirealms/craftengine/core/loot/entry/LootEntryContainers.java @@ -11,12 +11,12 @@ import net.momirealms.craftengine.core.util.ResourceKey; import java.util.Map; public class LootEntryContainers { - public static final LootEntryContainerType ALTERNATIVES = register(AlternativesLootEntryContainer.ID, AlternativesLootEntryContainer.FACTORY); - public static final LootEntryContainerType IF_ELSE = register(Key.from("craftengine:if_else"), AlternativesLootEntryContainer.FACTORY); - public static final LootEntryContainerType ITEM = register(SingleItemLootEntryContainer.ID, SingleItemLootEntryContainer.FACTORY); - public static final LootEntryContainerType EXP = register(ExpLootEntryContainer.ID, ExpLootEntryContainer.FACTORY); - public static final LootEntryContainerType FURNITURE_ITEM = register(FurnitureItemLootEntryContainer.ID, FurnitureItemLootEntryContainer.FACTORY); - public static final LootEntryContainerType EMPTY = register(EmptyLoopEntryContainer.ID, EmptyLoopEntryContainer.FACTORY); + public static final LootEntryContainerType ALTERNATIVES = register(Key.ce("alternatives"), AlternativesLootEntryContainer.FACTORY); + public static final LootEntryContainerType IF_ELSE = register(Key.ce("if_else"), AlternativesLootEntryContainer.FACTORY); + public static final LootEntryContainerType ITEM = register(Key.ce("item"), SingleItemLootEntryContainer.FACTORY); + public static final LootEntryContainerType EXP = register(Key.ce("exp"), ExpLootEntryContainer.FACTORY); + public static final LootEntryContainerType FURNITURE_ITEM = register(Key.ce("furniture_item"), FurnitureItemLootEntryContainer.FACTORY); + public static final LootEntryContainerType EMPTY = register(Key.ce("empty"), EmptyLoopEntryContainer.FACTORY); protected LootEntryContainers() {} diff --git a/core/src/main/java/net/momirealms/craftengine/core/loot/entry/SingleItemLootEntryContainer.java b/core/src/main/java/net/momirealms/craftengine/core/loot/entry/SingleItemLootEntryContainer.java index 38ff7b277..a51d14064 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/loot/entry/SingleItemLootEntryContainer.java +++ b/core/src/main/java/net/momirealms/craftengine/core/loot/entry/SingleItemLootEntryContainer.java @@ -16,7 +16,6 @@ import java.util.Map; import java.util.function.Consumer; public class SingleItemLootEntryContainer extends AbstractSingleLootEntryContainer { - public static final Key ID = Key.from("craftengine:item"); public static final LootEntryContainerFactory FACTORY = new Factory<>(); private final Key item; 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 d909da11a..63a675058 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 @@ -17,7 +17,6 @@ import java.util.Map; import java.util.Optional; public final class ApplyBonusCountFunction extends AbstractLootConditionalFunction { - public static final Key ID = Key.from("craftengine:apply_bonus"); public static final LootFunctionFactory FACTORY = new Factory<>(); private final Key enchantment; private final Formula formula; @@ -63,8 +62,8 @@ public final class ApplyBonusCountFunction extends AbstractLootConditionalFun } public static class Formulas { - public static final Key ORE_DROPS = Key.of("craftengine:ore_drops"); - public static final Key CROP_DROPS = Key.of("craftengine:binomial_with_bonus_count"); + public static final Key ORE_DROPS = Key.ce("ore_drops"); + public static final Key CROP_DROPS = Key.ce("binomial_with_bonus_count"); static { register(ORE_DROPS, OreDrops.FACTORY); diff --git a/core/src/main/java/net/momirealms/craftengine/core/loot/function/ApplyDataFunction.java b/core/src/main/java/net/momirealms/craftengine/core/loot/function/ApplyDataFunction.java index 11fd30a2a..7f837a69f 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/loot/function/ApplyDataFunction.java +++ b/core/src/main/java/net/momirealms/craftengine/core/loot/function/ApplyDataFunction.java @@ -7,7 +7,6 @@ import net.momirealms.craftengine.core.item.processor.ItemProcessors; import net.momirealms.craftengine.core.loot.LootContext; import net.momirealms.craftengine.core.plugin.context.CommonConditions; import net.momirealms.craftengine.core.plugin.context.Condition; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.ArrayList; @@ -15,7 +14,6 @@ import java.util.List; import java.util.Map; public final class ApplyDataFunction extends AbstractLootConditionalFunction { - public static final Key ID = Key.from("craftengine:apply_data"); public static final LootFunctionFactory FACTORY = new Factory<>(); private final ItemProcessor[] modifiers; diff --git a/core/src/main/java/net/momirealms/craftengine/core/loot/function/DropExpFunction.java b/core/src/main/java/net/momirealms/craftengine/core/loot/function/DropExpFunction.java index bf290b7a9..f936faa5e 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/loot/function/DropExpFunction.java +++ b/core/src/main/java/net/momirealms/craftengine/core/loot/function/DropExpFunction.java @@ -7,14 +7,12 @@ import net.momirealms.craftengine.core.plugin.context.Condition; import net.momirealms.craftengine.core.plugin.context.number.NumberProvider; import net.momirealms.craftengine.core.plugin.context.number.NumberProviders; import net.momirealms.craftengine.core.plugin.context.parameter.DirectContextParameters; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.List; import java.util.Map; public final class DropExpFunction extends AbstractLootConditionalFunction { - public static final Key ID = Key.from("craftengine:drop_exp"); public static final LootFunctionFactory FACTORY = new Factory<>(); private final NumberProvider value; diff --git a/core/src/main/java/net/momirealms/craftengine/core/loot/function/ExplosionDecayFunction.java b/core/src/main/java/net/momirealms/craftengine/core/loot/function/ExplosionDecayFunction.java index 77fa1cd4d..148516eae 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/loot/function/ExplosionDecayFunction.java +++ b/core/src/main/java/net/momirealms/craftengine/core/loot/function/ExplosionDecayFunction.java @@ -5,7 +5,6 @@ import net.momirealms.craftengine.core.loot.LootContext; import net.momirealms.craftengine.core.plugin.context.CommonConditions; import net.momirealms.craftengine.core.plugin.context.Condition; import net.momirealms.craftengine.core.plugin.context.parameter.DirectContextParameters; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.RandomUtils; import net.momirealms.craftengine.core.util.ResourceConfigUtils; @@ -14,7 +13,6 @@ import java.util.Map; import java.util.Optional; public final class ExplosionDecayFunction extends AbstractLootConditionalFunction { - public static final Key ID = Key.from("craftengine:explosion_decay"); public static final LootFunctionFactory FACTORY = new Factory<>(); public ExplosionDecayFunction(List> predicates) { diff --git a/core/src/main/java/net/momirealms/craftengine/core/loot/function/LimitCountFunction.java b/core/src/main/java/net/momirealms/craftengine/core/loot/function/LimitCountFunction.java index 83bdda386..7058e1d51 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/loot/function/LimitCountFunction.java +++ b/core/src/main/java/net/momirealms/craftengine/core/loot/function/LimitCountFunction.java @@ -6,7 +6,6 @@ import net.momirealms.craftengine.core.plugin.context.CommonConditions; import net.momirealms.craftengine.core.plugin.context.Condition; import net.momirealms.craftengine.core.plugin.context.number.NumberProvider; import net.momirealms.craftengine.core.plugin.context.number.NumberProviders; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import org.jetbrains.annotations.Nullable; @@ -14,7 +13,6 @@ import java.util.List; import java.util.Map; public final class LimitCountFunction extends AbstractLootConditionalFunction { - public static final Key ID = Key.from("craftengine:limit_count"); public static final LootFunctionFactory FACTORY = new Factory<>(); @Nullable private final NumberProvider min; diff --git a/core/src/main/java/net/momirealms/craftengine/core/loot/function/LootFunctions.java b/core/src/main/java/net/momirealms/craftengine/core/loot/function/LootFunctions.java index 2389a2a85..67b6ff1e1 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/loot/function/LootFunctions.java +++ b/core/src/main/java/net/momirealms/craftengine/core/loot/function/LootFunctions.java @@ -15,12 +15,12 @@ import java.util.Map; import java.util.function.BiFunction; public final class LootFunctions { - public static final LootFunctionType APPLY_BONUS = register(ApplyBonusCountFunction.ID, ApplyBonusCountFunction.FACTORY); - public static final LootFunctionType APPLY_DATA = register(ApplyDataFunction.ID, ApplyDataFunction.FACTORY); - public static final LootFunctionType SET_COUNT = register(SetCountFunction.ID, SetCountFunction.FACTORY); - public static final LootFunctionType EXPLOSION_DECAY = register(ExplosionDecayFunction.ID, ExplosionDecayFunction.FACTORY); - public static final LootFunctionType DROP_EXP = register(DropExpFunction.ID, DropExpFunction.FACTORY); - public static final LootFunctionType LIMIT_COUNT = register(LimitCountFunction.ID, LimitCountFunction.FACTORY); + public static final LootFunctionType APPLY_BONUS = register(Key.ce("apply_bonus"), ApplyBonusCountFunction.FACTORY); + public static final LootFunctionType APPLY_DATA = register(Key.ce("apply_data"), ApplyDataFunction.FACTORY); + public static final LootFunctionType SET_COUNT = register(Key.ce("set_count"), SetCountFunction.FACTORY); + public static final LootFunctionType EXPLOSION_DECAY = register(Key.ce("explosion_decay"), ExplosionDecayFunction.FACTORY); + public static final LootFunctionType DROP_EXP = register(Key.ce("drop_exp"), DropExpFunction.FACTORY); + public static final LootFunctionType LIMIT_COUNT = register(Key.ce("limit_count"), LimitCountFunction.FACTORY); private LootFunctions() {} diff --git a/core/src/main/java/net/momirealms/craftengine/core/loot/function/SetCountFunction.java b/core/src/main/java/net/momirealms/craftengine/core/loot/function/SetCountFunction.java index b2b47e67c..4126dec1e 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/loot/function/SetCountFunction.java +++ b/core/src/main/java/net/momirealms/craftengine/core/loot/function/SetCountFunction.java @@ -6,14 +6,12 @@ import net.momirealms.craftengine.core.plugin.context.CommonConditions; import net.momirealms.craftengine.core.plugin.context.Condition; import net.momirealms.craftengine.core.plugin.context.number.NumberProvider; import net.momirealms.craftengine.core.plugin.context.number.NumberProviders; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.List; import java.util.Map; public final class SetCountFunction extends AbstractLootConditionalFunction { - public static final Key ID = Key.from("craftengine:set_count"); public static final LootFunctionFactory FACTORY = new Factory<>(); private final NumberProvider value; private final boolean add; diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/matcher/ContainsPathMatcher.java b/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/matcher/ContainsPathMatcher.java index 821e3691f..0a963a6a1 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/matcher/ContainsPathMatcher.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/matcher/ContainsPathMatcher.java @@ -5,13 +5,11 @@ import net.momirealms.craftengine.core.plugin.context.Condition; import net.momirealms.craftengine.core.plugin.context.condition.ConditionFactory; import net.momirealms.craftengine.core.plugin.locale.LocalizedException; import net.momirealms.craftengine.core.util.CharacterUtils; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; public record ContainsPathMatcher(String path) implements Condition { - public static final Key ID = Key.of("craftengine:contains"); public static final ConditionFactory FACTORY = new Factory(); @Override diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/matcher/ExactPathMatcher.java b/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/matcher/ExactPathMatcher.java index b60e64e6d..16a6fa41e 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/matcher/ExactPathMatcher.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/matcher/ExactPathMatcher.java @@ -5,14 +5,12 @@ import net.momirealms.craftengine.core.plugin.context.Condition; import net.momirealms.craftengine.core.plugin.context.condition.ConditionFactory; import net.momirealms.craftengine.core.plugin.locale.LocalizedException; import net.momirealms.craftengine.core.util.CharacterUtils; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; public record ExactPathMatcher(String path) implements Condition { public static final ConditionFactory FACTORY = new Factory(); - public static final Key ID = Key.of("craftengine:exact"); @Override public boolean test(PathContext path) { diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/matcher/FilenamePathMatcher.java b/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/matcher/FilenamePathMatcher.java index 93282184e..370b4ab75 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/matcher/FilenamePathMatcher.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/matcher/FilenamePathMatcher.java @@ -4,14 +4,12 @@ import net.momirealms.craftengine.core.pack.conflict.PathContext; import net.momirealms.craftengine.core.plugin.context.Condition; import net.momirealms.craftengine.core.plugin.context.condition.ConditionFactory; import net.momirealms.craftengine.core.plugin.locale.LocalizedException; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; public record FilenamePathMatcher(String name) implements Condition { public static final ConditionFactory FACTORY = new Factory(); - public static final Key ID = Key.of("craftengine:filename"); @Override public boolean test(PathContext path) { diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/matcher/ParentPrefixPathMatcher.java b/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/matcher/ParentPrefixPathMatcher.java index 731927ec5..596c44c71 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/matcher/ParentPrefixPathMatcher.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/matcher/ParentPrefixPathMatcher.java @@ -5,7 +5,6 @@ import net.momirealms.craftengine.core.plugin.context.Condition; import net.momirealms.craftengine.core.plugin.context.condition.ConditionFactory; import net.momirealms.craftengine.core.plugin.locale.LocalizedException; import net.momirealms.craftengine.core.util.CharacterUtils; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.nio.file.Path; @@ -13,7 +12,6 @@ import java.util.Map; public record ParentPrefixPathMatcher(String prefix) implements Condition { public static final ConditionFactory FACTORY = new Factory(); - public static final Key ID = Key.of("craftengine:parent_path_prefix"); @Override public boolean test(PathContext path) { diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/matcher/ParentSuffixPathMatcher.java b/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/matcher/ParentSuffixPathMatcher.java index c61f08004..aeb580a00 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/matcher/ParentSuffixPathMatcher.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/matcher/ParentSuffixPathMatcher.java @@ -5,7 +5,6 @@ import net.momirealms.craftengine.core.plugin.context.Condition; import net.momirealms.craftengine.core.plugin.context.condition.ConditionFactory; import net.momirealms.craftengine.core.plugin.locale.LocalizedException; import net.momirealms.craftengine.core.util.CharacterUtils; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.nio.file.Path; @@ -13,7 +12,6 @@ import java.util.Map; public record ParentSuffixPathMatcher(String suffix) implements Condition { public static final ConditionFactory FACTORY = new Factory(); - public static final Key ID = Key.of("craftengine:parent_path_suffix"); @Override public boolean test(PathContext path) { diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/matcher/PathMatchers.java b/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/matcher/PathMatchers.java index 7110d4596..aa1c3a8e9 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/matcher/PathMatchers.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/matcher/PathMatchers.java @@ -19,15 +19,15 @@ import java.util.List; import java.util.Map; public final class PathMatchers { - public static final PathMatcherType ANY_OF = register(Key.of("craftengine:any_of"), AnyOfCondition.factory(PathMatchers::fromMap)); - public static final PathMatcherType ALL_OF = register(Key.of("craftengine:all_of"), AllOfCondition.factory(PathMatchers::fromMap)); - public static final PathMatcherType INVERTED = register(Key.of("craftengine:inverted"), InvertedCondition.factory(PathMatchers::fromMap)); - public static final PathMatcherType CONTAINS = register(ContainsPathMatcher.ID, ContainsPathMatcher.FACTORY); - public static final PathMatcherType EXACT = register(ExactPathMatcher.ID, ExactPathMatcher.FACTORY); - public static final PathMatcherType FILENAME = register(FilenamePathMatcher.ID, FilenamePathMatcher.FACTORY); - public static final PathMatcherType PATTERN = register(PatternPathMatcher.ID, PatternPathMatcher.FACTORY); - public static final PathMatcherType PARENT_PATH_SUFFIX = register(ParentSuffixPathMatcher.ID, ParentSuffixPathMatcher.FACTORY); - public static final PathMatcherType PARENT_PATH_PREFIX = register(ParentPrefixPathMatcher.ID, ParentPrefixPathMatcher.FACTORY); + public static final PathMatcherType ANY_OF = register(Key.ce("any_of"), AnyOfCondition.factory(PathMatchers::fromMap)); + public static final PathMatcherType ALL_OF = register(Key.ce("all_of"), AllOfCondition.factory(PathMatchers::fromMap)); + public static final PathMatcherType INVERTED = register(Key.ce("inverted"), InvertedCondition.factory(PathMatchers::fromMap)); + public static final PathMatcherType CONTAINS = register(Key.ce("contains"), ContainsPathMatcher.FACTORY); + public static final PathMatcherType EXACT = register(Key.ce("exact"), ExactPathMatcher.FACTORY); + public static final PathMatcherType FILENAME = register(Key.ce("filename"), FilenamePathMatcher.FACTORY); + public static final PathMatcherType PATTERN = register(Key.ce("pattern"), PatternPathMatcher.FACTORY); + public static final PathMatcherType PARENT_PATH_SUFFIX = register(Key.ce("parent_path_suffix"), ParentSuffixPathMatcher.FACTORY); + public static final PathMatcherType PARENT_PATH_PREFIX = register(Key.ce("parent_path_prefix"), ParentPrefixPathMatcher.FACTORY); private PathMatchers() {} diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/matcher/PatternPathMatcher.java b/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/matcher/PatternPathMatcher.java index cc00a461b..36f665deb 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/matcher/PatternPathMatcher.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/matcher/PatternPathMatcher.java @@ -5,7 +5,6 @@ import net.momirealms.craftengine.core.plugin.context.Condition; import net.momirealms.craftengine.core.plugin.context.condition.ConditionFactory; import net.momirealms.craftengine.core.plugin.locale.LocalizedException; import net.momirealms.craftengine.core.util.CharacterUtils; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; @@ -13,7 +12,6 @@ import java.util.regex.Pattern; public final class PatternPathMatcher implements Condition { public static final ConditionFactory FACTORY = new Factory(); - public static final Key ID = Key.of("craftengine:pattern"); private final Pattern pattern; public PatternPathMatcher(String pattern) { diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/resolution/ConditionalResolution.java b/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/resolution/ConditionalResolution.java index d9bc03df5..a52b41570 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/resolution/ConditionalResolution.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/resolution/ConditionalResolution.java @@ -3,13 +3,11 @@ package net.momirealms.craftengine.core.pack.conflict.resolution; import net.momirealms.craftengine.core.pack.conflict.PathContext; import net.momirealms.craftengine.core.pack.conflict.matcher.PathMatchers; import net.momirealms.craftengine.core.plugin.context.Condition; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.MiscUtils; import java.util.Map; public record ConditionalResolution(Condition matcher, Resolution resolution) implements Resolution { - public static final Key ID = Key.of("craftengine:conditional"); public static final ResolutionFactory FACTORY = new Factory(); @Override diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/resolution/MergeAltasResolution.java b/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/resolution/MergeAltasResolution.java index 26aa58c7c..d41da4c86 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/resolution/MergeAltasResolution.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/resolution/MergeAltasResolution.java @@ -6,13 +6,11 @@ import com.google.gson.JsonObject; import net.momirealms.craftengine.core.pack.conflict.PathContext; import net.momirealms.craftengine.core.plugin.CraftEngine; import net.momirealms.craftengine.core.util.GsonHelper; -import net.momirealms.craftengine.core.util.Key; import java.util.HashSet; import java.util.Map; public final class MergeAltasResolution implements Resolution { - public static final Key ID = Key.of("craftengine:merge_atlas"); public static final ResolutionFactory FACTORY = new Factory(); public static final MergeAltasResolution INSTANCE = new MergeAltasResolution(); diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/resolution/MergeFontResolution.java b/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/resolution/MergeFontResolution.java index a6028acb5..e414a4a8e 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/resolution/MergeFontResolution.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/resolution/MergeFontResolution.java @@ -6,13 +6,11 @@ import com.google.gson.JsonObject; import net.momirealms.craftengine.core.pack.conflict.PathContext; import net.momirealms.craftengine.core.plugin.CraftEngine; import net.momirealms.craftengine.core.util.GsonHelper; -import net.momirealms.craftengine.core.util.Key; import java.util.HashSet; import java.util.Map; public final class MergeFontResolution implements Resolution { - public static final Key ID = Key.of("craftengine:merge_font"); public static final ResolutionFactory FACTORY = new Factory(); public static final MergeFontResolution INSTANCE = new MergeFontResolution(); diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/resolution/MergeJsonResolution.java b/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/resolution/MergeJsonResolution.java index f360b2a31..067856ea5 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/resolution/MergeJsonResolution.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/resolution/MergeJsonResolution.java @@ -4,14 +4,12 @@ import com.google.gson.JsonObject; import net.momirealms.craftengine.core.pack.conflict.PathContext; import net.momirealms.craftengine.core.plugin.CraftEngine; import net.momirealms.craftengine.core.util.GsonHelper; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.io.IOException; import java.util.Map; public record MergeJsonResolution(boolean deeply) implements Resolution { - public static final Key ID = Key.of("craftengine:merge_json"); public static final ResolutionFactory FACTORY = new Factory(); @Override diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/resolution/MergeLegacyModelResolution.java b/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/resolution/MergeLegacyModelResolution.java index c27917794..a65fdf6fd 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/resolution/MergeLegacyModelResolution.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/resolution/MergeLegacyModelResolution.java @@ -7,14 +7,12 @@ import net.momirealms.craftengine.core.pack.conflict.PathContext; import net.momirealms.craftengine.core.pack.model.legacy.LegacyOverridesModel; import net.momirealms.craftengine.core.plugin.CraftEngine; import net.momirealms.craftengine.core.util.GsonHelper; -import net.momirealms.craftengine.core.util.Key; import java.io.IOException; import java.util.Map; import java.util.TreeSet; public final class MergeLegacyModelResolution implements Resolution { - public static final Key ID = Key.of("craftengine:merge_legacy_model"); public static final ResolutionFactory FACTORY = new Factory(); public static final MergeLegacyModelResolution INSTANCE = new MergeLegacyModelResolution(); diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/resolution/MergePackMcMetaResolution.java b/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/resolution/MergePackMcMetaResolution.java index ba2ad9324..8259a2ab8 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/resolution/MergePackMcMetaResolution.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/resolution/MergePackMcMetaResolution.java @@ -9,7 +9,6 @@ import net.momirealms.craftengine.core.pack.conflict.PathContext; import net.momirealms.craftengine.core.pack.mcmeta.PackVersion; import net.momirealms.craftengine.core.plugin.CraftEngine; import net.momirealms.craftengine.core.util.GsonHelper; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.Pair; import java.io.IOException; @@ -18,7 +17,6 @@ import java.util.*; import java.util.function.Consumer; public final class MergePackMcMetaResolution implements Resolution { - public static final Key ID = Key.of("craftengine:merge_pack_mcmeta"); public static final ResolutionFactory FACTORY = new Factory(); public static final Set STANDARD_PACK_KEYS = ImmutableSet.of("pack", "features", "filter", "overlays", "language"); public static final MergePackMcMetaResolution INSTANCE = new MergePackMcMetaResolution(); diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/resolution/Resolutions.java b/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/resolution/Resolutions.java index 31acf6ea6..233c3d6ff 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/resolution/Resolutions.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/resolution/Resolutions.java @@ -11,13 +11,13 @@ import net.momirealms.craftengine.core.util.ResourceKey; import java.util.Map; public final class Resolutions { - public static final ResolutionType RETAIN_MATCHING = register(RetainMatchingResolution.ID, RetainMatchingResolution.FACTORY); - public static final ResolutionType MERGE_JSON = register(MergeJsonResolution.ID, MergeJsonResolution.FACTORY); - public static final ResolutionType MERGE_ATLAS = register(MergeAltasResolution.ID, MergeAltasResolution.FACTORY); - public static final ResolutionType MERGE_FONT = register(MergeFontResolution.ID, MergeFontResolution.FACTORY); - public static final ResolutionType CONDITIONAL = register(ConditionalResolution.ID, ConditionalResolution.FACTORY); - public static final ResolutionType MERGE_PACK_MCMETA = register(MergePackMcMetaResolution.ID, MergePackMcMetaResolution.FACTORY); - public static final ResolutionType MERGE_LEGACY_MODEL = register(MergeLegacyModelResolution.ID, MergeLegacyModelResolution.FACTORY); + public static final ResolutionType RETAIN_MATCHING = register(Key.ce("retain_matching"), RetainMatchingResolution.FACTORY); + public static final ResolutionType MERGE_JSON = register(Key.ce("merge_json"), MergeJsonResolution.FACTORY); + public static final ResolutionType MERGE_ATLAS = register(Key.ce("merge_atlas"), MergeAltasResolution.FACTORY); + public static final ResolutionType MERGE_FONT = register(Key.ce("merge_font"), MergeFontResolution.FACTORY); + public static final ResolutionType CONDITIONAL = register(Key.ce("conditional"), ConditionalResolution.FACTORY); + public static final ResolutionType MERGE_PACK_MCMETA = register(Key.ce("merge_pack_mcmeta"), MergePackMcMetaResolution.FACTORY); + public static final ResolutionType MERGE_LEGACY_MODEL = register(Key.ce("merge_legacy_model"), MergeLegacyModelResolution.FACTORY); private Resolutions() {} diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/resolution/RetainMatchingResolution.java b/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/resolution/RetainMatchingResolution.java index 750c51d67..11ad2340a 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/resolution/RetainMatchingResolution.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/resolution/RetainMatchingResolution.java @@ -4,7 +4,6 @@ import net.momirealms.craftengine.core.pack.conflict.PathContext; import net.momirealms.craftengine.core.pack.conflict.matcher.PathMatchers; import net.momirealms.craftengine.core.plugin.CraftEngine; import net.momirealms.craftengine.core.plugin.context.Condition; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.MiscUtils; import java.io.IOException; @@ -13,7 +12,6 @@ import java.nio.file.StandardCopyOption; import java.util.Map; public record RetainMatchingResolution(Condition matcher) implements Resolution { - public static final Key ID = Key.of("craftengine:retain_matching"); public static final ResolutionFactory FACTORY = new Factory(); @Override diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/host/ResourcePackHost.java b/core/src/main/java/net/momirealms/craftengine/core/pack/host/ResourcePackHost.java index 0b42f0bd3..6c5bc6140 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/host/ResourcePackHost.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/host/ResourcePackHost.java @@ -1,7 +1,5 @@ package net.momirealms.craftengine.core.pack.host; -import net.momirealms.craftengine.core.util.Key; - import java.nio.file.Path; import java.util.List; import java.util.UUID; @@ -15,5 +13,5 @@ public interface ResourcePackHost { boolean canUpload(); - Key type(); + ResourcePackHostType type(); } diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/host/ResourcePackHostType.java b/core/src/main/java/net/momirealms/craftengine/core/pack/host/ResourcePackHostType.java new file mode 100644 index 000000000..6501fd14f --- /dev/null +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/host/ResourcePackHostType.java @@ -0,0 +1,6 @@ +package net.momirealms.craftengine.core.pack.host; + +import net.momirealms.craftengine.core.util.Key; + +public record ResourcePackHostType(Key id, ResourcePackHostFactory factory) { +} diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/host/ResourcePackHosts.java b/core/src/main/java/net/momirealms/craftengine/core/pack/host/ResourcePackHosts.java index 8d754cd62..28186f380 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/host/ResourcePackHosts.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/host/ResourcePackHosts.java @@ -10,32 +10,24 @@ import net.momirealms.craftengine.core.util.ResourceKey; import java.util.Map; -public class ResourcePackHosts { - public static final Key NONE = Key.of("craftengine:none"); - public static final Key SELF = Key.of("craftengine:self"); - public static final Key EXTERNAL = Key.of("craftengine:external"); - public static final Key LOBFILE = Key.of("craftengine:lobfile"); - public static final Key S3 = Key.of("craftengine:s3"); - public static final Key ALIST = Key.of("craftengine:alist"); - public static final Key DROPBOX = Key.of("craftengine:dropbox"); - public static final Key ONEDRIVE = Key.of("craftengine:onedrive"); - public static final Key GITLAB = Key.of("craftengine:gitlab"); +public final class ResourcePackHosts { + public static final ResourcePackHostType NONE = register(Key.ce("none"), NoneHost.FACTORY); + public static final ResourcePackHostType SELF = register(Key.ce("self"), SelfHost.FACTORY); + public static final ResourcePackHostType EXTERNAL = register(Key.ce("external"), ExternalHost.FACTORY); + public static final ResourcePackHostType LOBFILE = register(Key.ce("lobfile"), LobFileHost.FACTORY); + public static final ResourcePackHostType S3 = register(Key.ce("s3"), S3HostFactory.INSTANCE); + public static final ResourcePackHostType ALIST = register(Key.ce("alist"), AlistHost.FACTORY); + public static final ResourcePackHostType DROPBOX = register(Key.ce("dropbox"), DropboxHost.FACTORY); + public static final ResourcePackHostType ONEDRIVE = register(Key.ce("onedrive"), OneDriveHost.FACTORY); + public static final ResourcePackHostType GITLAB = register(Key.ce("gitlab"), GitLabHost.FACTORY); - static { - register(NONE, NoneHost.FACTORY); - register(SELF, SelfHost.FACTORY); - register(EXTERNAL, ExternalHost.FACTORY); - register(LOBFILE, LobFileHost.FACTORY); - register(S3, S3HostFactory.INSTANCE); - register(ALIST, AlistHost.FACTORY); - register(DROPBOX, DropboxHost.FACTORY); - register(ONEDRIVE, OneDriveHost.FACTORY); - register(GITLAB, GitLabHost.FACTORY); - } + private ResourcePackHosts() {} - public static void register(Key key, ResourcePackHostFactory factory) { - ((WritableRegistry) BuiltInRegistries.RESOURCE_PACK_HOST_FACTORY) - .register(ResourceKey.create(Registries.RESOURCE_PACK_HOST_FACTORY.location(), key), factory); + public static ResourcePackHostType register(Key key, ResourcePackHostFactory factory) { + ResourcePackHostType type = new ResourcePackHostType(key, factory); + ((WritableRegistry) BuiltInRegistries.RESOURCE_PACK_HOST_FACTORY) + .register(ResourceKey.create(Registries.RESOURCE_PACK_HOST_FACTORY.location(), key), type); + return type; } public static ResourcePackHost fromMap(Map map) { @@ -44,10 +36,10 @@ public class ResourcePackHosts { throw new LocalizedException("warning.config.host.missing_type"); } Key key = Key.withDefaultNamespace(type, Key.DEFAULT_NAMESPACE); - ResourcePackHostFactory factory = BuiltInRegistries.RESOURCE_PACK_HOST_FACTORY.getValue(key); - if (factory == null) { + ResourcePackHostType hostType = BuiltInRegistries.RESOURCE_PACK_HOST_FACTORY.getValue(key); + if (hostType == null) { throw new LocalizedException("warning.config.host.invalid_type", type); } - return factory.create(map); + return hostType.factory().create(map); } } diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/host/impl/AlistHost.java b/core/src/main/java/net/momirealms/craftengine/core/pack/host/impl/AlistHost.java index 24ef56766..0ed4bee58 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/host/impl/AlistHost.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/host/impl/AlistHost.java @@ -3,10 +3,7 @@ package net.momirealms.craftengine.core.pack.host.impl; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.reflect.TypeToken; -import net.momirealms.craftengine.core.pack.host.ResourcePackDownloadData; -import net.momirealms.craftengine.core.pack.host.ResourcePackHost; -import net.momirealms.craftengine.core.pack.host.ResourcePackHostFactory; -import net.momirealms.craftengine.core.pack.host.ResourcePackHosts; +import net.momirealms.craftengine.core.pack.host.*; import net.momirealms.craftengine.core.plugin.CraftEngine; import net.momirealms.craftengine.core.plugin.locale.LocalizedException; import net.momirealms.craftengine.core.plugin.locale.TranslationManager; @@ -73,7 +70,7 @@ public final class AlistHost implements ResourcePackHost { } @Override - public Key type() { + public ResourcePackHostType type() { return ResourcePackHosts.ALIST; } diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/host/impl/DropboxHost.java b/core/src/main/java/net/momirealms/craftengine/core/pack/host/impl/DropboxHost.java index 45137b4ba..3c47b9f0e 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/host/impl/DropboxHost.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/host/impl/DropboxHost.java @@ -2,14 +2,14 @@ package net.momirealms.craftengine.core.pack.host.impl; import com.google.gson.JsonArray; import com.google.gson.JsonObject; -import net.momirealms.craftengine.core.pack.host.ResourcePackDownloadData; -import net.momirealms.craftengine.core.pack.host.ResourcePackHost; -import net.momirealms.craftengine.core.pack.host.ResourcePackHostFactory; -import net.momirealms.craftengine.core.pack.host.ResourcePackHosts; +import net.momirealms.craftengine.core.pack.host.*; import net.momirealms.craftengine.core.plugin.CraftEngine; import net.momirealms.craftengine.core.plugin.locale.LocalizedException; import net.momirealms.craftengine.core.plugin.locale.TranslationManager; -import net.momirealms.craftengine.core.util.*; +import net.momirealms.craftengine.core.util.GsonHelper; +import net.momirealms.craftengine.core.util.HashUtils; +import net.momirealms.craftengine.core.util.MiscUtils; +import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.io.IOException; import java.io.InputStream; @@ -92,7 +92,7 @@ public final class DropboxHost implements ResourcePackHost { } @Override - public Key type() { + public ResourcePackHostType type() { return ResourcePackHosts.DROPBOX; } diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/host/impl/ExternalHost.java b/core/src/main/java/net/momirealms/craftengine/core/pack/host/impl/ExternalHost.java index b65e009f2..071d118ae 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/host/impl/ExternalHost.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/host/impl/ExternalHost.java @@ -1,11 +1,7 @@ package net.momirealms.craftengine.core.pack.host.impl; -import net.momirealms.craftengine.core.pack.host.ResourcePackDownloadData; -import net.momirealms.craftengine.core.pack.host.ResourcePackHost; -import net.momirealms.craftengine.core.pack.host.ResourcePackHostFactory; -import net.momirealms.craftengine.core.pack.host.ResourcePackHosts; +import net.momirealms.craftengine.core.pack.host.*; import net.momirealms.craftengine.core.plugin.locale.LocalizedException; -import net.momirealms.craftengine.core.util.Key; import java.nio.charset.StandardCharsets; import java.nio.file.Path; @@ -39,7 +35,7 @@ public final class ExternalHost implements ResourcePackHost { } @Override - public Key type() { + public ResourcePackHostType type() { return ResourcePackHosts.EXTERNAL; } diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/host/impl/GitLabHost.java b/core/src/main/java/net/momirealms/craftengine/core/pack/host/impl/GitLabHost.java index 65e95446e..b133560e3 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/host/impl/GitLabHost.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/host/impl/GitLabHost.java @@ -1,14 +1,14 @@ package net.momirealms.craftengine.core.pack.host.impl; import com.google.gson.reflect.TypeToken; -import net.momirealms.craftengine.core.pack.host.ResourcePackDownloadData; -import net.momirealms.craftengine.core.pack.host.ResourcePackHost; -import net.momirealms.craftengine.core.pack.host.ResourcePackHostFactory; -import net.momirealms.craftengine.core.pack.host.ResourcePackHosts; +import net.momirealms.craftengine.core.pack.host.*; import net.momirealms.craftengine.core.plugin.CraftEngine; import net.momirealms.craftengine.core.plugin.locale.LocalizedException; import net.momirealms.craftengine.core.plugin.locale.TranslationManager; -import net.momirealms.craftengine.core.util.*; +import net.momirealms.craftengine.core.util.GsonHelper; +import net.momirealms.craftengine.core.util.HashUtils; +import net.momirealms.craftengine.core.util.MiscUtils; +import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.io.IOException; import java.io.InputStream; @@ -91,11 +91,6 @@ public final class GitLabHost implements ResourcePackHost { return true; } - @Override - public Key type() { - return ResourcePackHosts.GITLAB; - } - @Override public CompletableFuture> requestResourcePackDownloadLink(UUID player) { if (url == null) return CompletableFuture.completedFuture(Collections.emptyList()); @@ -166,6 +161,11 @@ public final class GitLabHost implements ResourcePackHost { return HttpRequest.BodyPublishers.ofByteArrays(parts); } + @Override + public ResourcePackHostType type() { + return ResourcePackHosts.GITLAB; + } + private static class Factory implements ResourcePackHostFactory { @Override diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/host/impl/LobFileHost.java b/core/src/main/java/net/momirealms/craftengine/core/pack/host/impl/LobFileHost.java index 3accf1231..4a0de50f2 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/host/impl/LobFileHost.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/host/impl/LobFileHost.java @@ -2,15 +2,11 @@ package net.momirealms.craftengine.core.pack.host.impl; import com.google.gson.annotations.SerializedName; import com.google.gson.reflect.TypeToken; -import net.momirealms.craftengine.core.pack.host.ResourcePackDownloadData; -import net.momirealms.craftengine.core.pack.host.ResourcePackHost; -import net.momirealms.craftengine.core.pack.host.ResourcePackHostFactory; -import net.momirealms.craftengine.core.pack.host.ResourcePackHosts; +import net.momirealms.craftengine.core.pack.host.*; import net.momirealms.craftengine.core.plugin.CraftEngine; import net.momirealms.craftengine.core.plugin.locale.LocalizedException; 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; @@ -54,7 +50,7 @@ public final class LobFileHost implements ResourcePackHost { } @Override - public Key type() { + public ResourcePackHostType type() { return ResourcePackHosts.LOBFILE; } diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/host/impl/NoneHost.java b/core/src/main/java/net/momirealms/craftengine/core/pack/host/impl/NoneHost.java index 0830f59ee..c667a3e7f 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/host/impl/NoneHost.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/host/impl/NoneHost.java @@ -1,10 +1,6 @@ package net.momirealms.craftengine.core.pack.host.impl; -import net.momirealms.craftengine.core.pack.host.ResourcePackDownloadData; -import net.momirealms.craftengine.core.pack.host.ResourcePackHost; -import net.momirealms.craftengine.core.pack.host.ResourcePackHostFactory; -import net.momirealms.craftengine.core.pack.host.ResourcePackHosts; -import net.momirealms.craftengine.core.util.Key; +import net.momirealms.craftengine.core.pack.host.*; import java.nio.file.Path; import java.util.List; @@ -29,13 +25,13 @@ public final class NoneHost implements ResourcePackHost { } @Override - public boolean canUpload() { - return false; + public ResourcePackHostType type() { + return ResourcePackHosts.NONE; } @Override - public Key type() { - return ResourcePackHosts.NONE; + public boolean canUpload() { + return false; } private static class Factory implements ResourcePackHostFactory { diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/host/impl/OneDriveHost.java b/core/src/main/java/net/momirealms/craftengine/core/pack/host/impl/OneDriveHost.java index 389392ee2..fa291fb13 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/host/impl/OneDriveHost.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/host/impl/OneDriveHost.java @@ -2,10 +2,7 @@ package net.momirealms.craftengine.core.pack.host.impl; import com.google.gson.JsonObject; import com.google.gson.reflect.TypeToken; -import net.momirealms.craftengine.core.pack.host.ResourcePackDownloadData; -import net.momirealms.craftengine.core.pack.host.ResourcePackHost; -import net.momirealms.craftengine.core.pack.host.ResourcePackHostFactory; -import net.momirealms.craftengine.core.pack.host.ResourcePackHosts; +import net.momirealms.craftengine.core.pack.host.*; import net.momirealms.craftengine.core.plugin.CraftEngine; import net.momirealms.craftengine.core.plugin.locale.LocalizedException; import net.momirealms.craftengine.core.plugin.locale.TranslationManager; @@ -58,7 +55,7 @@ public final class OneDriveHost implements ResourcePackHost { } @Override - public Key type() { + public ResourcePackHostType type() { return ResourcePackHosts.ONEDRIVE; } diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/host/impl/SelfHost.java b/core/src/main/java/net/momirealms/craftengine/core/pack/host/impl/SelfHost.java index a74bc5c92..f26469933 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/host/impl/SelfHost.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/host/impl/SelfHost.java @@ -1,14 +1,10 @@ package net.momirealms.craftengine.core.pack.host.impl; import io.github.bucket4j.Bandwidth; -import net.momirealms.craftengine.core.pack.host.ResourcePackDownloadData; -import net.momirealms.craftengine.core.pack.host.ResourcePackHost; -import net.momirealms.craftengine.core.pack.host.ResourcePackHostFactory; -import net.momirealms.craftengine.core.pack.host.ResourcePackHosts; +import net.momirealms.craftengine.core.pack.host.*; import net.momirealms.craftengine.core.plugin.CraftEngine; import net.momirealms.craftengine.core.plugin.config.Config; import net.momirealms.craftengine.core.plugin.locale.LocalizedException; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.nio.file.Path; @@ -53,7 +49,7 @@ public final class SelfHost implements ResourcePackHost { } @Override - public Key type() { + public ResourcePackHostType type() { return ResourcePackHosts.SELF; } diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/BaseItemModel.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/BaseItemModel.java index f3a3e3b12..886b314eb 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/BaseItemModel.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/BaseItemModel.java @@ -21,7 +21,6 @@ import java.util.List; import java.util.Map; public final class BaseItemModel implements ItemModel { - public static final Key ID = Key.of("minecraft:model"); public static final ItemModelFactory FACTORY = new Factory(); public static final ItemModelReader READER = new Reader(); private final String path; @@ -53,7 +52,7 @@ public final class BaseItemModel implements ItemModel { @Override public JsonObject apply(MinecraftVersion version) { JsonObject json = new JsonObject(); - json.addProperty("type", ID.asMinimalString()); + json.addProperty("type", "model"); json.addProperty("model", this.path); if (!this.tints.isEmpty()) { JsonArray array = new JsonArray(); diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/BundleSelectedItemModel.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/BundleSelectedItemModel.java index fff424572..f1fddaebd 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/BundleSelectedItemModel.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/BundleSelectedItemModel.java @@ -3,14 +3,12 @@ package net.momirealms.craftengine.core.pack.model.definition; import com.google.gson.JsonObject; import net.momirealms.craftengine.core.pack.model.generation.ModelGeneration; import net.momirealms.craftengine.core.pack.revision.Revision; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.MinecraftVersion; import java.util.List; import java.util.Map; public final class BundleSelectedItemModel implements ItemModel { - public static final Key ID = Key.of("minecraft:bundle/selected_item"); public static final BundleSelectedItemModel INSTANCE = new BundleSelectedItemModel(); public static final ItemModelFactory FACTORY = new Factory(); public static final ItemModelReader READER = new Reader(); @@ -30,7 +28,7 @@ public final class BundleSelectedItemModel implements ItemModel { @Override public JsonObject apply(MinecraftVersion version) { JsonObject json = new JsonObject(); - json.addProperty("type", ID.asMinimalString()); + json.addProperty("type", "bundle/selected_item"); return json; } diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/CompositeItemModel.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/CompositeItemModel.java index dc59f58a2..6388373fa 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/CompositeItemModel.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/CompositeItemModel.java @@ -6,7 +6,6 @@ import com.google.gson.JsonObject; import net.momirealms.craftengine.core.pack.model.generation.ModelGeneration; import net.momirealms.craftengine.core.pack.revision.Revision; import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigException; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.MinecraftVersion; import org.jetbrains.annotations.NotNull; @@ -15,7 +14,6 @@ import java.util.List; import java.util.Map; public final class CompositeItemModel implements ItemModel { - public static final Key ID = Key.of("minecraft:composite"); public static final ItemModelFactory FACTORY = new Factory(); public static final ItemModelReader READER = new Reader(); private final List models; @@ -32,7 +30,7 @@ public final class CompositeItemModel implements ItemModel { @Override public JsonObject apply(MinecraftVersion version) { JsonObject json = new JsonObject(); - json.addProperty("type", ID.asMinimalString()); + json.addProperty("type", "composite"); JsonArray array = new JsonArray(); for (ItemModel model : this.models) { array.add(model.apply(version)); diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/ConditionItemModel.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/ConditionItemModel.java index cba5e1851..8aa055094 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/ConditionItemModel.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/ConditionItemModel.java @@ -6,7 +6,6 @@ import net.momirealms.craftengine.core.pack.model.definition.condition.Condition import net.momirealms.craftengine.core.pack.model.generation.ModelGeneration; import net.momirealms.craftengine.core.pack.revision.Revision; import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigException; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.MinecraftVersion; import net.momirealms.craftengine.core.util.ResourceConfigUtils; @@ -15,7 +14,6 @@ import java.util.List; import java.util.Map; public final class ConditionItemModel implements ItemModel { - public static final Key ID = Key.of("minecraft:condition"); public static final ItemModelFactory FACTORY = new Factory(); public static final ItemModelReader READER = new Reader(); private final ConditionProperty property; @@ -65,7 +63,7 @@ public final class ConditionItemModel implements ItemModel { @Override public JsonObject apply(MinecraftVersion version) { JsonObject json = new JsonObject(); - json.addProperty("type", ID.asMinimalString()); + json.addProperty("type", "condition"); json.add("on_true", this.onTrue.apply(version)); json.add("on_false", this.onFalse.apply(version)); this.property.accept(json); diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/EmptyItemModel.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/EmptyItemModel.java index 11cffb374..451af629e 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/EmptyItemModel.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/EmptyItemModel.java @@ -3,14 +3,12 @@ package net.momirealms.craftengine.core.pack.model.definition; import com.google.gson.JsonObject; import net.momirealms.craftengine.core.pack.model.generation.ModelGeneration; import net.momirealms.craftengine.core.pack.revision.Revision; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.MinecraftVersion; import java.util.List; import java.util.Map; public final class EmptyItemModel implements ItemModel { - public static final Key ID = Key.of("minecraft:empty"); public static final ItemModelFactory FACTORY = new Factory(); public static final ItemModelReader READER = new Reader(); private static final EmptyItemModel INSTANCE = new EmptyItemModel(); @@ -20,7 +18,7 @@ public final class EmptyItemModel implements ItemModel { @Override public JsonObject apply(MinecraftVersion version) { JsonObject json = new JsonObject(); - json.addProperty("type", ID.asMinimalString()); + json.addProperty("type", "empty"); return json; } diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/ItemModels.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/ItemModels.java index afe01736b..2fdd04e14 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/ItemModels.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/ItemModels.java @@ -13,14 +13,14 @@ import java.util.List; import java.util.Map; public final class ItemModels { - public static final ItemModelType EMPTY = register(EmptyItemModel.ID, EmptyItemModel.FACTORY, EmptyItemModel.READER); - public static final ItemModelType MODEL = register(BaseItemModel.ID, BaseItemModel.FACTORY, BaseItemModel.READER); - public static final ItemModelType COMPOSITE = register(CompositeItemModel.ID, CompositeItemModel.FACTORY, CompositeItemModel.READER); - public static final ItemModelType CONDITION = register(ConditionItemModel.ID, ConditionItemModel.FACTORY, ConditionItemModel.READER); - public static final ItemModelType RANGE_DISPATCH = register(RangeDispatchItemModel.ID, RangeDispatchItemModel.FACTORY, RangeDispatchItemModel.READER); - public static final ItemModelType SELECT = register(SelectItemModel.ID, SelectItemModel.FACTORY, SelectItemModel.READER); - public static final ItemModelType SPECIAL = register(SpecialItemModel.ID, SpecialItemModel.FACTORY, SpecialItemModel.READER); - public static final ItemModelType BUNDLE_SELECTED_ITEM = register(BundleSelectedItemModel.ID, BundleSelectedItemModel.FACTORY, BundleSelectedItemModel.READER); + public static final ItemModelType EMPTY = register(Key.of("empty"), EmptyItemModel.FACTORY, EmptyItemModel.READER); + public static final ItemModelType MODEL = register(Key.of("model"), BaseItemModel.FACTORY, BaseItemModel.READER); + public static final ItemModelType COMPOSITE = register(Key.of("composite"), CompositeItemModel.FACTORY, CompositeItemModel.READER); + public static final ItemModelType CONDITION = register(Key.of("condition"), ConditionItemModel.FACTORY, ConditionItemModel.READER); + public static final ItemModelType RANGE_DISPATCH = register(Key.of("range_dispatch"), RangeDispatchItemModel.FACTORY, RangeDispatchItemModel.READER); + public static final ItemModelType SELECT = register(Key.of("select"), SelectItemModel.FACTORY, SelectItemModel.READER); + public static final ItemModelType SPECIAL = register(Key.of("special"), SpecialItemModel.FACTORY, SpecialItemModel.READER); + public static final ItemModelType BUNDLE_SELECTED_ITEM = register(Key.of("bundle/selected_item"), BundleSelectedItemModel.FACTORY, BundleSelectedItemModel.READER); private ItemModels() {} diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/RangeDispatchItemModel.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/RangeDispatchItemModel.java index 27b8bd43d..74d15e869 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/RangeDispatchItemModel.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/RangeDispatchItemModel.java @@ -8,7 +8,6 @@ import net.momirealms.craftengine.core.pack.model.definition.rangedisptach.Range import net.momirealms.craftengine.core.pack.model.generation.ModelGeneration; import net.momirealms.craftengine.core.pack.revision.Revision; import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigException; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.MinecraftVersion; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import org.jetbrains.annotations.NotNull; @@ -20,7 +19,6 @@ import java.util.Map; import java.util.TreeMap; public final class RangeDispatchItemModel implements ItemModel { - public static final Key ID = Key.of("minecraft:range_dispatch"); public static final ItemModelFactory FACTORY = new Factory(); public static final ItemModelReader READER = new Reader(); private final RangeDispatchProperty property; @@ -58,7 +56,7 @@ public final class RangeDispatchItemModel implements ItemModel { @Override public JsonObject apply(MinecraftVersion version) { JsonObject json = new JsonObject(); - json.addProperty("type", ID.asMinimalString()); + json.addProperty("type", "range_dispatch"); this.property.accept(json); JsonArray array = new JsonArray(); for (Map.Entry entry : this.entries.entrySet()) { diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/SelectItemModel.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/SelectItemModel.java index 5d84983d3..af1a50147 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/SelectItemModel.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/SelectItemModel.java @@ -9,7 +9,6 @@ import net.momirealms.craftengine.core.pack.model.generation.ModelGeneration; import net.momirealms.craftengine.core.pack.revision.Revision; import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigException; import net.momirealms.craftengine.core.util.GsonHelper; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.MinecraftVersion; import org.incendo.cloud.type.Either; import org.jetbrains.annotations.NotNull; @@ -21,7 +20,6 @@ import java.util.List; import java.util.Map; public final class SelectItemModel implements ItemModel { - public static final Key ID = Key.of("minecraft:select"); public static final ItemModelFactory FACTORY = new Factory(); public static final ItemModelReader READER = new Reader(); private final SelectProperty property; @@ -51,7 +49,7 @@ public final class SelectItemModel implements ItemModel { @Override public JsonObject apply(MinecraftVersion version) { JsonObject json = new JsonObject(); - json.addProperty("type", ID.asMinimalString()); + json.addProperty("type", "select"); this.property.accept(json); JsonArray array = new JsonArray(); json.add("cases", array); diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/SpecialItemModel.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/SpecialItemModel.java index f6649f789..dc4634518 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/SpecialItemModel.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/SpecialItemModel.java @@ -17,7 +17,6 @@ import java.util.List; import java.util.Map; public final class SpecialItemModel implements ItemModel { - public static final Key ID = Key.of("minecraft:special"); public static final ItemModelFactory FACTORY = new Factory(); public static final ItemModelReader READER = new Reader(); private final SpecialModel specialModel; @@ -46,7 +45,7 @@ public final class SpecialItemModel implements ItemModel { @Override public JsonObject apply(MinecraftVersion version) { JsonObject json = new JsonObject(); - json.addProperty("type", ID.asMinimalString()); + json.addProperty("type", "special"); json.add("model", this.specialModel.apply(version)); json.addProperty("base", this.base); return json; diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/condition/BrokenConditionProperty.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/condition/BrokenConditionProperty.java index 714478419..7fce40339 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/condition/BrokenConditionProperty.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/condition/BrokenConditionProperty.java @@ -8,7 +8,6 @@ import net.momirealms.craftengine.core.util.Key; import java.util.Map; public final class BrokenConditionProperty implements ConditionProperty, LegacyModelPredicate { - public static final Key ID = Key.of("minecraft:broken"); public static final ConditionPropertyFactory FACTORY = new Factory(); public static final ConditionPropertyReader READER = new Reader(); public static final BrokenConditionProperty INSTANCE = new BrokenConditionProperty(); @@ -17,7 +16,7 @@ public final class BrokenConditionProperty implements ConditionProperty, LegacyM @Override public void accept(JsonObject jsonObject) { - jsonObject.addProperty("property", ID.asMinimalString()); + jsonObject.addProperty("property", "broken"); } @Override diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/condition/ComponentConditionProperty.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/condition/ComponentConditionProperty.java index 3049616c0..692c35152 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/condition/ComponentConditionProperty.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/condition/ComponentConditionProperty.java @@ -3,13 +3,11 @@ package net.momirealms.craftengine.core.pack.model.definition.condition; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import net.momirealms.craftengine.core.util.GsonHelper; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; public final class ComponentConditionProperty implements ConditionProperty { - public static final Key ID = Key.of("minecraft:component"); public static final ConditionPropertyFactory FACTORY = new Factory(); public static final ConditionPropertyReader READER = new Reader(); private final String predicate; @@ -30,7 +28,7 @@ public final class ComponentConditionProperty implements ConditionProperty { @Override public void accept(JsonObject jsonObject) { - jsonObject.addProperty("property", ID.asMinimalString()); + jsonObject.addProperty("property", "component"); jsonObject.addProperty("predicate", this.predicate); jsonObject.add("value", this.value); } diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/condition/ConditionProperties.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/condition/ConditionProperties.java index 638d7f78a..ca2038345 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/condition/ConditionProperties.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/condition/ConditionProperties.java @@ -12,19 +12,19 @@ import net.momirealms.craftengine.core.util.ResourceKey; import java.util.Map; public final class ConditionProperties { - public static final ConditionPropertyType BROKEN = register(BrokenConditionProperty.ID, BrokenConditionProperty.FACTORY, BrokenConditionProperty.READER); - public static final ConditionPropertyType BUNDLE_HAS_SELECTED_ITEM = register(Key.of("minecraft:bundle/has_selected_item"), SimpleConditionProperty.FACTORY, SimpleConditionProperty.READER); - public static final ConditionPropertyType CARRIED = register(Key.of("minecraft:carried"), SimpleConditionProperty.FACTORY, SimpleConditionProperty.READER); - public static final ConditionPropertyType COMPONENT = register(ComponentConditionProperty.ID, ComponentConditionProperty.FACTORY, ComponentConditionProperty.READER); - public static final ConditionPropertyType DAMAGED = register(DamagedConditionProperty.ID, DamagedConditionProperty.FACTORY, DamagedConditionProperty.READER); - public static final ConditionPropertyType EXTENDED_VIEW = register(Key.of("minecraft:extended_view"), SimpleConditionProperty.FACTORY, SimpleConditionProperty.READER); - public static final ConditionPropertyType FISHING_ROD_CAST = register(RodCastConditionProperty.ID, RodCastConditionProperty.FACTORY, RodCastConditionProperty.READER); - public static final ConditionPropertyType HAS_COMPONENT = register(HasComponentConditionProperty.ID, HasComponentConditionProperty.FACTORY, HasComponentConditionProperty.READER); - public static final ConditionPropertyType KEYBIND_DOWN = register(KeyBindDownConditionProperty.ID, KeyBindDownConditionProperty.FACTORY, KeyBindDownConditionProperty.READER); - public static final ConditionPropertyType SELECTED = register(Key.of("minecraft:selected"), SimpleConditionProperty.FACTORY, SimpleConditionProperty.READER); - public static final ConditionPropertyType USING_ITEM = register(UsingItemConditionProperty.ID, UsingItemConditionProperty.FACTORY, UsingItemConditionProperty.READER); - public static final ConditionPropertyType VIEW_ENTITY = register(Key.of("minecraft:view_entity"), SimpleConditionProperty.FACTORY, SimpleConditionProperty.READER); - public static final ConditionPropertyType CUSTOM_MODEL_DATA = register(CustomModelDataConditionProperty.ID, CustomModelDataConditionProperty.FACTORY, CustomModelDataConditionProperty.READER); + public static final ConditionPropertyType BROKEN = register(Key.of("broken"), BrokenConditionProperty.FACTORY, BrokenConditionProperty.READER); + public static final ConditionPropertyType BUNDLE_HAS_SELECTED_ITEM = register(Key.of("bundle/has_selected_item"), SimpleConditionProperty.FACTORY, SimpleConditionProperty.READER); + public static final ConditionPropertyType CARRIED = register(Key.of("carried"), SimpleConditionProperty.FACTORY, SimpleConditionProperty.READER); + public static final ConditionPropertyType COMPONENT = register(Key.of("component"), ComponentConditionProperty.FACTORY, ComponentConditionProperty.READER); + public static final ConditionPropertyType DAMAGED = register(Key.of("damaged"), DamagedConditionProperty.FACTORY, DamagedConditionProperty.READER); + public static final ConditionPropertyType EXTENDED_VIEW = register(Key.of("extended_view"), SimpleConditionProperty.FACTORY, SimpleConditionProperty.READER); + public static final ConditionPropertyType FISHING_ROD_CAST = register(Key.of("fishing_rod/cast"), RodCastConditionProperty.FACTORY, RodCastConditionProperty.READER); + public static final ConditionPropertyType HAS_COMPONENT = register(Key.of("has_component"), HasComponentConditionProperty.FACTORY, HasComponentConditionProperty.READER); + public static final ConditionPropertyType KEYBIND_DOWN = register(Key.of("keybind_down"), KeyBindDownConditionProperty.FACTORY, KeyBindDownConditionProperty.READER); + public static final ConditionPropertyType SELECTED = register(Key.of("selected"), SimpleConditionProperty.FACTORY, SimpleConditionProperty.READER); + public static final ConditionPropertyType USING_ITEM = register(Key.of("using_item"), UsingItemConditionProperty.FACTORY, UsingItemConditionProperty.READER); + public static final ConditionPropertyType VIEW_ENTITY = register(Key.of("view_entity"), SimpleConditionProperty.FACTORY, SimpleConditionProperty.READER); + public static final ConditionPropertyType CUSTOM_MODEL_DATA = register(Key.of("custom_model_data"), CustomModelDataConditionProperty.FACTORY, CustomModelDataConditionProperty.READER); private ConditionProperties() {} diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/condition/CustomModelDataConditionProperty.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/condition/CustomModelDataConditionProperty.java index e7fc2e276..adf73bd4f 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/condition/CustomModelDataConditionProperty.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/condition/CustomModelDataConditionProperty.java @@ -1,13 +1,11 @@ package net.momirealms.craftengine.core.pack.model.definition.condition; import com.google.gson.JsonObject; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; public final class CustomModelDataConditionProperty implements ConditionProperty { - public static final Key ID = Key.of("minecraft:custom_model_data"); public static final ConditionPropertyFactory FACTORY = new Factory(); public static final ConditionPropertyReader READER = new Reader(); private final int index; @@ -22,7 +20,7 @@ public final class CustomModelDataConditionProperty implements ConditionProperty @Override public void accept(JsonObject jsonObject) { - jsonObject.addProperty("property", ID.asMinimalString()); + jsonObject.addProperty("property", "custom_model_data"); if (this.index != 0) jsonObject.addProperty("index", this.index); } diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/condition/DamagedConditionProperty.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/condition/DamagedConditionProperty.java index 8caf6a400..98f9e277c 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/condition/DamagedConditionProperty.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/condition/DamagedConditionProperty.java @@ -7,7 +7,6 @@ import net.momirealms.craftengine.core.util.Key; import java.util.Map; public final class DamagedConditionProperty implements ConditionProperty, LegacyModelPredicate { - public static final Key ID = Key.of("minecraft:damaged"); public static final ConditionPropertyFactory FACTORY = new Factory(); public static final ConditionPropertyReader READER = new Reader(); public static final DamagedConditionProperty INSTANCE = new DamagedConditionProperty(); @@ -16,7 +15,7 @@ public final class DamagedConditionProperty implements ConditionProperty, Legacy @Override public void accept(JsonObject jsonObject) { - jsonObject.addProperty("property", ID.asMinimalString()); + jsonObject.addProperty("property", "damaged"); } @Override diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/condition/HasComponentConditionProperty.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/condition/HasComponentConditionProperty.java index 7d4895e75..7793373e6 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/condition/HasComponentConditionProperty.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/condition/HasComponentConditionProperty.java @@ -1,13 +1,11 @@ package net.momirealms.craftengine.core.pack.model.definition.condition; import com.google.gson.JsonObject; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; public final class HasComponentConditionProperty implements ConditionProperty { - public static final Key ID = Key.of("minecraft:has_component"); public static final ConditionPropertyFactory FACTORY = new Factory(); public static final ConditionPropertyReader READER = new Reader(); private final String component; @@ -28,7 +26,7 @@ public final class HasComponentConditionProperty implements ConditionProperty { @Override public void accept(JsonObject jsonObject) { - jsonObject.addProperty("property", ID.asMinimalString()); + jsonObject.addProperty("property", "has_component"); jsonObject.addProperty("component", this.component); if (this.ignoreDefault) { jsonObject.addProperty("ignore_default", true); diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/condition/KeyBindDownConditionProperty.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/condition/KeyBindDownConditionProperty.java index fcc596a17..16f6a070e 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/condition/KeyBindDownConditionProperty.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/condition/KeyBindDownConditionProperty.java @@ -1,13 +1,11 @@ package net.momirealms.craftengine.core.pack.model.definition.condition; import com.google.gson.JsonObject; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; public final class KeyBindDownConditionProperty implements ConditionProperty { - public static final Key ID = Key.of("minecraft:keybind_down"); public static final ConditionPropertyFactory FACTORY = new Factory(); public static final ConditionPropertyReader READER = new Reader(); private final String keybind; @@ -22,7 +20,7 @@ public final class KeyBindDownConditionProperty implements ConditionProperty { @Override public void accept(JsonObject jsonObject) { - jsonObject.addProperty("property", ID.asMinimalString()); + jsonObject.addProperty("property", "keybind_down"); jsonObject.addProperty("keybind", this.keybind); } diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/condition/RodCastConditionProperty.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/condition/RodCastConditionProperty.java index efdad4a72..38fdb4955 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/condition/RodCastConditionProperty.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/condition/RodCastConditionProperty.java @@ -8,7 +8,6 @@ import net.momirealms.craftengine.core.util.Key; import java.util.Map; public final class RodCastConditionProperty implements ConditionProperty, LegacyModelPredicate { - public static final Key ID = Key.of("minecraft:fishing_rod/cast"); public static final ConditionPropertyFactory FACTORY = new Factory(); public static final ConditionPropertyReader READER = new Reader(); public static final RodCastConditionProperty INSTANCE = new RodCastConditionProperty(); @@ -17,7 +16,7 @@ public final class RodCastConditionProperty implements ConditionProperty, Legacy @Override public void accept(JsonObject jsonObject) { - jsonObject.addProperty("property", ID.asMinimalString()); + jsonObject.addProperty("property", "fishing_rod/cast"); } @Override diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/condition/UsingItemConditionProperty.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/condition/UsingItemConditionProperty.java index bf83e6942..457f98719 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/condition/UsingItemConditionProperty.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/condition/UsingItemConditionProperty.java @@ -8,7 +8,6 @@ import net.momirealms.craftengine.core.util.Key; import java.util.Map; public final class UsingItemConditionProperty implements ConditionProperty, LegacyModelPredicate { - public static final Key ID = Key.of("minecraft:using_item"); public static final ConditionPropertyFactory FACTORY = new Factory(); public static final ConditionPropertyReader READER = new Reader(); public static final UsingItemConditionProperty INSTANCE = new UsingItemConditionProperty(); @@ -17,7 +16,7 @@ public final class UsingItemConditionProperty implements ConditionProperty, Lega @Override public void accept(JsonObject jsonObject) { - jsonObject.addProperty("property", ID.asMinimalString()); + jsonObject.addProperty("property", "using_item"); } @Override diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/rangedisptach/CompassRangeDispatchProperty.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/rangedisptach/CompassRangeDispatchProperty.java index c8d3e657a..80bae18bc 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/rangedisptach/CompassRangeDispatchProperty.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/rangedisptach/CompassRangeDispatchProperty.java @@ -1,13 +1,11 @@ package net.momirealms.craftengine.core.pack.model.definition.rangedisptach; import com.google.gson.JsonObject; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; public final class CompassRangeDispatchProperty implements RangeDispatchProperty { - public static final Key ID = Key.of("minecraft:compass"); public static final RangeDispatchPropertyFactory FACTORY = new Factory(); public static final RangeDispatchPropertyReader READER = new Reader(); private final String target; @@ -28,7 +26,7 @@ public final class CompassRangeDispatchProperty implements RangeDispatchProperty @Override public void accept(JsonObject jsonObject) { - jsonObject.addProperty("property", ID.asMinimalString()); + jsonObject.addProperty("property", "compass"); jsonObject.addProperty("target", this.target); if (!this.wobble) { jsonObject.addProperty("wobble", false); diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/rangedisptach/CrossBowPullingRangeDispatchProperty.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/rangedisptach/CrossBowPullingRangeDispatchProperty.java index 2379f58a1..58d76974d 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/rangedisptach/CrossBowPullingRangeDispatchProperty.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/rangedisptach/CrossBowPullingRangeDispatchProperty.java @@ -8,7 +8,6 @@ import net.momirealms.craftengine.core.util.Key; import java.util.Map; public final class CrossBowPullingRangeDispatchProperty implements RangeDispatchProperty, LegacyModelPredicate { - public static final Key ID = Key.of("minecraft:crossbow/pull"); public static final RangeDispatchPropertyFactory FACTORY = new Factory(); public static final RangeDispatchPropertyReader READER = new Reader(); public static final CrossBowPullingRangeDispatchProperty INSTANCE = new CrossBowPullingRangeDispatchProperty(); @@ -17,7 +16,7 @@ public final class CrossBowPullingRangeDispatchProperty implements RangeDispatch @Override public void accept(JsonObject jsonObject) { - jsonObject.addProperty("property", ID.asMinimalString()); + jsonObject.addProperty("property", "crossbow/pull"); } @Override diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/rangedisptach/CustomModelDataRangeDispatchProperty.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/rangedisptach/CustomModelDataRangeDispatchProperty.java index ee685e790..96ae2120d 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/rangedisptach/CustomModelDataRangeDispatchProperty.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/rangedisptach/CustomModelDataRangeDispatchProperty.java @@ -8,7 +8,6 @@ import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; public final class CustomModelDataRangeDispatchProperty implements RangeDispatchProperty, LegacyModelPredicate { - public static final Key ID = Key.of("minecraft:custom_model_data"); public static final RangeDispatchPropertyFactory FACTORY = new Factory(); public static final RangeDispatchPropertyReader READER = new Reader(); private final int index; @@ -23,7 +22,7 @@ public final class CustomModelDataRangeDispatchProperty implements RangeDispatch @Override public void accept(JsonObject jsonObject) { - jsonObject.addProperty("property", ID.asMinimalString()); + jsonObject.addProperty("property", "custom_model_data"); jsonObject.addProperty("index", this.index); } diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/rangedisptach/DamageRangeDispatchProperty.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/rangedisptach/DamageRangeDispatchProperty.java index 9fea67ef9..2f2eba36c 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/rangedisptach/DamageRangeDispatchProperty.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/rangedisptach/DamageRangeDispatchProperty.java @@ -8,7 +8,6 @@ import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; public final class DamageRangeDispatchProperty implements RangeDispatchProperty, LegacyModelPredicate { - public static final Key ID = Key.of("minecraft:damage"); public static final RangeDispatchPropertyFactory FACTORY = new Factory(); public static final RangeDispatchPropertyReader READER = new Reader(); private final boolean normalize; @@ -23,7 +22,7 @@ public final class DamageRangeDispatchProperty implements RangeDispatchProperty, @Override public void accept(JsonObject jsonObject) { - jsonObject.addProperty("property", ID.asMinimalString()); + jsonObject.addProperty("property", "damage"); if (!normalize) { jsonObject.addProperty("normalize", false); } diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/rangedisptach/RangeDispatchProperties.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/rangedisptach/RangeDispatchProperties.java index 11da1b5b9..c449952e9 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/rangedisptach/RangeDispatchProperties.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/rangedisptach/RangeDispatchProperties.java @@ -12,16 +12,16 @@ import net.momirealms.craftengine.core.util.ResourceKey; import java.util.Map; public final class RangeDispatchProperties { - public static final RangeDispatchPropertyType BUNDLE_FULLNESS = register(Key.of("minecraft:bundle/fullness"), SimpleRangeDispatchProperty.FACTORY, SimpleRangeDispatchProperty.READER); - public static final RangeDispatchPropertyType COMPASS = register(CompassRangeDispatchProperty.ID, CompassRangeDispatchProperty.FACTORY, CompassRangeDispatchProperty.READER); - public static final RangeDispatchPropertyType COOLDOWN = register(Key.of("minecraft:cooldown"), SimpleRangeDispatchProperty.FACTORY, SimpleRangeDispatchProperty.READER); - public static final RangeDispatchPropertyType COUNT = register(Key.of("minecraft:count"), NormalizeRangeDispatchProperty.FACTORY, NormalizeRangeDispatchProperty.READER); - public static final RangeDispatchPropertyType CROSSBOW_PULL = register(CrossBowPullingRangeDispatchProperty.ID, CrossBowPullingRangeDispatchProperty.FACTORY, CrossBowPullingRangeDispatchProperty.READER); - public static final RangeDispatchPropertyType DAMAGE = register(DamageRangeDispatchProperty.ID, DamageRangeDispatchProperty.FACTORY, DamageRangeDispatchProperty.READER); - public static final RangeDispatchPropertyType TIME = register(TimeRangeDispatchProperty.ID, TimeRangeDispatchProperty.FACTORY, TimeRangeDispatchProperty.READER); - public static final RangeDispatchPropertyType USE_CYCLE = register(UseCycleRangeDispatchProperty.ID, UseCycleRangeDispatchProperty.FACTORY, UseCycleRangeDispatchProperty.READER); - public static final RangeDispatchPropertyType USE_DURATION = register(UseDurationRangeDispatchProperty.ID, UseDurationRangeDispatchProperty.FACTORY, UseDurationRangeDispatchProperty.READER); - public static final RangeDispatchPropertyType CUSTOM_MODEL_DATA = register(CustomModelDataRangeDispatchProperty.ID, CustomModelDataRangeDispatchProperty.FACTORY, CustomModelDataRangeDispatchProperty.READER); + public static final RangeDispatchPropertyType BUNDLE_FULLNESS = register(Key.of("bundle/fullness"), SimpleRangeDispatchProperty.FACTORY, SimpleRangeDispatchProperty.READER); + public static final RangeDispatchPropertyType COMPASS = register(Key.of("compass"), CompassRangeDispatchProperty.FACTORY, CompassRangeDispatchProperty.READER); + public static final RangeDispatchPropertyType COOLDOWN = register(Key.of("cooldown"), SimpleRangeDispatchProperty.FACTORY, SimpleRangeDispatchProperty.READER); + public static final RangeDispatchPropertyType COUNT = register(Key.of("count"), NormalizeRangeDispatchProperty.FACTORY, NormalizeRangeDispatchProperty.READER); + public static final RangeDispatchPropertyType CROSSBOW_PULL = register(Key.of("crossbow/pull"), CrossBowPullingRangeDispatchProperty.FACTORY, CrossBowPullingRangeDispatchProperty.READER); + public static final RangeDispatchPropertyType DAMAGE = register(Key.of("damage"), DamageRangeDispatchProperty.FACTORY, DamageRangeDispatchProperty.READER); + public static final RangeDispatchPropertyType TIME = register(Key.of("time"), TimeRangeDispatchProperty.FACTORY, TimeRangeDispatchProperty.READER); + public static final RangeDispatchPropertyType USE_CYCLE = register(Key.of("use_cycle"), UseCycleRangeDispatchProperty.FACTORY, UseCycleRangeDispatchProperty.READER); + public static final RangeDispatchPropertyType USE_DURATION = register(Key.of("use_duration"), UseDurationRangeDispatchProperty.FACTORY, UseDurationRangeDispatchProperty.READER); + public static final RangeDispatchPropertyType CUSTOM_MODEL_DATA = register(Key.of("custom_model_data"), CustomModelDataRangeDispatchProperty.FACTORY, CustomModelDataRangeDispatchProperty.READER); private RangeDispatchProperties() {} diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/rangedisptach/TimeRangeDispatchProperty.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/rangedisptach/TimeRangeDispatchProperty.java index f9281a88c..72f611945 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/rangedisptach/TimeRangeDispatchProperty.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/rangedisptach/TimeRangeDispatchProperty.java @@ -1,13 +1,11 @@ package net.momirealms.craftengine.core.pack.model.definition.rangedisptach; import com.google.gson.JsonObject; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; public final class TimeRangeDispatchProperty implements RangeDispatchProperty { - public static final Key ID = Key.of("minecraft:time"); public static final RangeDispatchPropertyFactory FACTORY = new Factory(); public static final RangeDispatchPropertyReader READER = new Reader(); private final String source; @@ -28,7 +26,7 @@ public final class TimeRangeDispatchProperty implements RangeDispatchProperty { @Override public void accept(JsonObject jsonObject) { - jsonObject.addProperty("property", ID.asMinimalString()); + jsonObject.addProperty("property", "time"); jsonObject.addProperty("source", this.source); if (!this.wobble) { jsonObject.addProperty("wobble", false); diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/rangedisptach/UseCycleRangeDispatchProperty.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/rangedisptach/UseCycleRangeDispatchProperty.java index c9ed02851..02991e257 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/rangedisptach/UseCycleRangeDispatchProperty.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/rangedisptach/UseCycleRangeDispatchProperty.java @@ -1,13 +1,11 @@ package net.momirealms.craftengine.core.pack.model.definition.rangedisptach; import com.google.gson.JsonObject; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; public final class UseCycleRangeDispatchProperty implements RangeDispatchProperty { - public static final Key ID = Key.of("minecraft:use_cycle"); public static final RangeDispatchPropertyFactory FACTORY = new Factory(); public static final RangeDispatchPropertyReader READER = new Reader(); private final float period; @@ -22,7 +20,7 @@ public final class UseCycleRangeDispatchProperty implements RangeDispatchPropert @Override public void accept(JsonObject jsonObject) { - jsonObject.addProperty("property", ID.asMinimalString()); + jsonObject.addProperty("property", "use_cycle"); jsonObject.addProperty("period", this.period); } diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/rangedisptach/UseDurationRangeDispatchProperty.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/rangedisptach/UseDurationRangeDispatchProperty.java index e9de76da2..9dee305ec 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/rangedisptach/UseDurationRangeDispatchProperty.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/rangedisptach/UseDurationRangeDispatchProperty.java @@ -9,7 +9,6 @@ import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; public final class UseDurationRangeDispatchProperty implements RangeDispatchProperty, LegacyModelPredicate { - public static final Key ID = Key.of("minecraft:use_duration"); public static final RangeDispatchPropertyFactory FACTORY = new Factory(); public static final RangeDispatchPropertyReader READER = new Reader(); private final boolean remaining; @@ -24,7 +23,7 @@ public final class UseDurationRangeDispatchProperty implements RangeDispatchProp @Override public void accept(JsonObject jsonObject) { - jsonObject.addProperty("property", ID.asMinimalString()); + jsonObject.addProperty("property", "use_duration"); if (this.remaining) { jsonObject.addProperty("remaining", true); } diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/select/BlockStateSelectProperty.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/select/BlockStateSelectProperty.java index c8280dd72..0cff935ff 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/select/BlockStateSelectProperty.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/select/BlockStateSelectProperty.java @@ -1,13 +1,11 @@ package net.momirealms.craftengine.core.pack.model.definition.select; import com.google.gson.JsonObject; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; public final class BlockStateSelectProperty implements SelectProperty { - public static final Key ID = Key.of("minecraft:block_state"); public static final SelectPropertyFactory FACTORY = new Factory(); public static final SelectPropertyReader READER = new Reader(); private final String blockStateProperty; @@ -22,7 +20,7 @@ public final class BlockStateSelectProperty implements SelectProperty { @Override public void accept(JsonObject jsonObject) { - jsonObject.addProperty("property", ID.asMinimalString()); + jsonObject.addProperty("property", "block_state"); jsonObject.addProperty("block_state_property", this.blockStateProperty); } diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/select/ChargeTypeSelectProperty.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/select/ChargeTypeSelectProperty.java index eb22a408b..b0f59a816 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/select/ChargeTypeSelectProperty.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/select/ChargeTypeSelectProperty.java @@ -8,7 +8,6 @@ import net.momirealms.craftengine.core.util.Key; import java.util.Map; public final class ChargeTypeSelectProperty implements SelectProperty, LegacyModelPredicate { - public static final Key ID = Key.of("minecraft:charge_type"); public static final SelectPropertyFactory FACTORY = new Factory(); public static final SelectPropertyReader READER = new Reader(); public static final ChargeTypeSelectProperty INSTANCE = new ChargeTypeSelectProperty(); @@ -17,7 +16,7 @@ public final class ChargeTypeSelectProperty implements SelectProperty, LegacyMod @Override public void accept(JsonObject jsonObject) { - jsonObject.addProperty("property", ID.asMinimalString()); + jsonObject.addProperty("property", "charge_type"); } @Override diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/select/ComponentSelectProperty.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/select/ComponentSelectProperty.java index 0a39106a4..2eed90610 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/select/ComponentSelectProperty.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/select/ComponentSelectProperty.java @@ -1,13 +1,11 @@ package net.momirealms.craftengine.core.pack.model.definition.select; import com.google.gson.JsonObject; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; public final class ComponentSelectProperty implements SelectProperty { - public static final Key ID = Key.of("minecraft:component"); public static final SelectPropertyFactory FACTORY = new Factory(); public static final SelectPropertyReader READER = new Reader(); private final String component; @@ -22,7 +20,7 @@ public final class ComponentSelectProperty implements SelectProperty { @Override public void accept(JsonObject jsonObject) { - jsonObject.addProperty("property", ID.asMinimalString()); + jsonObject.addProperty("property", "component"); jsonObject.addProperty("component", this.component); } diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/select/CustomModelDataSelectProperty.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/select/CustomModelDataSelectProperty.java index 60bfeaf39..0d0cfbc88 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/select/CustomModelDataSelectProperty.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/select/CustomModelDataSelectProperty.java @@ -1,13 +1,11 @@ package net.momirealms.craftengine.core.pack.model.definition.select; import com.google.gson.JsonObject; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; public final class CustomModelDataSelectProperty implements SelectProperty { - public static final Key ID = Key.of("minecraft:custom_model_data"); public static final SelectPropertyFactory FACTORY = new Factory(); public static final SelectPropertyReader READER = new Reader(); private final int index; @@ -22,7 +20,7 @@ public final class CustomModelDataSelectProperty implements SelectProperty { @Override public void accept(JsonObject jsonObject) { - jsonObject.addProperty("property", ID.asMinimalString()); + jsonObject.addProperty("property", "custom_model_data"); jsonObject.addProperty("index", this.index); } diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/select/DisplayContextSelectProperty.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/select/DisplayContextSelectProperty.java index 82fbf64d9..010418802 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/select/DisplayContextSelectProperty.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/select/DisplayContextSelectProperty.java @@ -5,7 +5,6 @@ import com.google.gson.JsonObject; import com.google.gson.JsonPrimitive; import net.momirealms.craftengine.core.pack.revision.Revision; import net.momirealms.craftengine.core.pack.revision.Revisions; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.MinecraftVersion; import org.jetbrains.annotations.Nullable; @@ -13,7 +12,6 @@ import java.util.List; import java.util.Map; public final class DisplayContextSelectProperty implements SelectProperty { - public static final Key ID = Key.of("minecraft:display_context"); public static final DisplayContextSelectProperty INSTANCE = new DisplayContextSelectProperty(); public static final SelectPropertyFactory FACTORY = new Factory(); public static final SelectPropertyReader READER = new Reader(); @@ -22,7 +20,7 @@ public final class DisplayContextSelectProperty implements SelectProperty { @Override public void accept(JsonObject jsonObject) { - jsonObject.addProperty("property", ID.asMinimalString()); + jsonObject.addProperty("property", "display_context"); } @Override diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/select/LocalTimeSelectProperty.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/select/LocalTimeSelectProperty.java index e16616781..f81b1f570 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/select/LocalTimeSelectProperty.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/select/LocalTimeSelectProperty.java @@ -1,7 +1,6 @@ package net.momirealms.craftengine.core.pack.model.definition.select; import com.google.gson.JsonObject; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -9,7 +8,6 @@ import org.jetbrains.annotations.Nullable; import java.util.Map; public final class LocalTimeSelectProperty implements SelectProperty { - public static final Key ID = Key.of("minecraft:local_time"); public static final SelectPropertyFactory FACTORY = new Factory(); public static final SelectPropertyReader READER = new Reader(); private final String pattern; @@ -38,7 +36,7 @@ public final class LocalTimeSelectProperty implements SelectProperty { @Override public void accept(JsonObject jsonObject) { - jsonObject.addProperty("property", ID.asMinimalString()); + jsonObject.addProperty("property", "local_time"); jsonObject.addProperty("pattern", this.pattern); if (this.locale != null) { jsonObject.addProperty("locale", this.locale); diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/select/MainHandSelectProperty.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/select/MainHandSelectProperty.java index e7e8128c1..d416e32da 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/select/MainHandSelectProperty.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/select/MainHandSelectProperty.java @@ -7,7 +7,6 @@ import net.momirealms.craftengine.core.util.Key; import java.util.Map; public final class MainHandSelectProperty implements SelectProperty, LegacyModelPredicate { - public static final Key ID = Key.of("minecraft:main_hand"); public static final SelectPropertyFactory FACTORY = new Factory(); public static final SelectPropertyReader READER = new Reader(); public static final MainHandSelectProperty INSTANCE = new MainHandSelectProperty(); @@ -16,7 +15,7 @@ public final class MainHandSelectProperty implements SelectProperty, LegacyModel @Override public void accept(JsonObject jsonObject) { - jsonObject.addProperty("property", ID.asMinimalString()); + jsonObject.addProperty("property", "main_hand"); } @Override diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/select/SelectProperties.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/select/SelectProperties.java index d1a69e592..f7c91f1e3 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/select/SelectProperties.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/select/SelectProperties.java @@ -12,16 +12,16 @@ import net.momirealms.craftengine.core.util.ResourceKey; import java.util.Map; public final class SelectProperties { - public static final SelectPropertyType BLOCK_STATE = register(BlockStateSelectProperty.ID, BlockStateSelectProperty.FACTORY, BlockStateSelectProperty.READER); - public static final SelectPropertyType CHARGE_TYPE = register(ChargeTypeSelectProperty.ID, ChargeTypeSelectProperty.FACTORY, ChargeTypeSelectProperty.READER); - public static final SelectPropertyType COMPONENT = register(ComponentSelectProperty.ID, ComponentSelectProperty.FACTORY, ComponentSelectProperty.READER); - public static final SelectPropertyType CONTEXT_DIMENSION = register(Key.of("minecraft:context_dimension"), SimpleSelectProperty.FACTORY, SimpleSelectProperty.READER); - public static final SelectPropertyType CONTEXT_ENTITY_TYPE = register(Key.of("minecraft:context_entity_type"), SimpleSelectProperty.FACTORY, SimpleSelectProperty.READER); - public static final SelectPropertyType DISPLAY_CONTEXT = register(DisplayContextSelectProperty.ID, DisplayContextSelectProperty.FACTORY, DisplayContextSelectProperty.READER); - public static final SelectPropertyType LOCAL_TIME = register(LocalTimeSelectProperty.ID, LocalTimeSelectProperty.FACTORY, LocalTimeSelectProperty.READER); - public static final SelectPropertyType MAIN_HAND = register(MainHandSelectProperty.ID, MainHandSelectProperty.FACTORY, MainHandSelectProperty.READER); - public static final SelectPropertyType TRIM_MATERIAL = register(TrimMaterialSelectProperty.ID, TrimMaterialSelectProperty.FACTORY, TrimMaterialSelectProperty.READER); - public static final SelectPropertyType CUSTOM_MODEL_DATA = register(CustomModelDataSelectProperty.ID, CustomModelDataSelectProperty.FACTORY, CustomModelDataSelectProperty.READER); + public static final SelectPropertyType BLOCK_STATE = register(Key.of("block_state"), BlockStateSelectProperty.FACTORY, BlockStateSelectProperty.READER); + public static final SelectPropertyType CHARGE_TYPE = register(Key.of("charge_type"), ChargeTypeSelectProperty.FACTORY, ChargeTypeSelectProperty.READER); + public static final SelectPropertyType COMPONENT = register(Key.of("component"), ComponentSelectProperty.FACTORY, ComponentSelectProperty.READER); + public static final SelectPropertyType CONTEXT_DIMENSION = register(Key.of("context_dimension"), SimpleSelectProperty.FACTORY, SimpleSelectProperty.READER); + public static final SelectPropertyType CONTEXT_ENTITY_TYPE = register(Key.of("context_entity_type"), SimpleSelectProperty.FACTORY, SimpleSelectProperty.READER); + public static final SelectPropertyType DISPLAY_CONTEXT = register(Key.of("display_context"), DisplayContextSelectProperty.FACTORY, DisplayContextSelectProperty.READER); + public static final SelectPropertyType LOCAL_TIME = register(Key.of("local_time"), LocalTimeSelectProperty.FACTORY, LocalTimeSelectProperty.READER); + public static final SelectPropertyType MAIN_HAND = register(Key.of("main_hand"), MainHandSelectProperty.FACTORY, MainHandSelectProperty.READER); + public static final SelectPropertyType TRIM_MATERIAL = register(Key.of("trim_material"), TrimMaterialSelectProperty.FACTORY, TrimMaterialSelectProperty.READER); + public static final SelectPropertyType CUSTOM_MODEL_DATA = register(Key.of("custom_model_data"), CustomModelDataSelectProperty.FACTORY, CustomModelDataSelectProperty.READER); private SelectProperties() {} diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/select/TrimMaterialSelectProperty.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/select/TrimMaterialSelectProperty.java index ccab1ec30..1b513625e 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/select/TrimMaterialSelectProperty.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/select/TrimMaterialSelectProperty.java @@ -9,7 +9,6 @@ import java.util.HashMap; import java.util.Map; public final class TrimMaterialSelectProperty implements SelectProperty, LegacyModelPredicate { - public static final Key ID = Key.of("minecraft:trim_material"); public static final SelectPropertyFactory FACTORY = new Factory(); public static final SelectPropertyReader READER = new Reader(); public static final TrimMaterialSelectProperty INSTANCE = new TrimMaterialSelectProperty(); @@ -32,7 +31,7 @@ public final class TrimMaterialSelectProperty implements SelectProperty, LegacyM @Override public void accept(JsonObject jsonObject) { - jsonObject.addProperty("property", ID.asMinimalString()); + jsonObject.addProperty("property", "trim_material"); } @Override diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/special/BannerSpecialModel.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/special/BannerSpecialModel.java index 40762cebd..674efe7d9 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/special/BannerSpecialModel.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/special/BannerSpecialModel.java @@ -2,7 +2,6 @@ package net.momirealms.craftengine.core.pack.model.definition.special; import com.google.gson.JsonObject; import net.momirealms.craftengine.core.pack.revision.Revision; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.MinecraftVersion; import net.momirealms.craftengine.core.util.ResourceConfigUtils; @@ -10,7 +9,6 @@ import java.util.List; import java.util.Map; public final class BannerSpecialModel implements SpecialModel { - public static final Key ID = Key.of("minecraft:banner"); public static final SpecialModelFactory FACTORY = new Factory(); public static final SpecialModelReader READER = new Reader(); private final String color; @@ -31,7 +29,7 @@ public final class BannerSpecialModel implements SpecialModel { @Override public JsonObject apply(MinecraftVersion version) { JsonObject json = new JsonObject(); - json.addProperty("type", ID.asMinimalString()); + json.addProperty("type", "banner"); json.addProperty("color", this.color); return json; } diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/special/BedSpecialModel.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/special/BedSpecialModel.java index 273d483da..49171e708 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/special/BedSpecialModel.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/special/BedSpecialModel.java @@ -2,7 +2,6 @@ package net.momirealms.craftengine.core.pack.model.definition.special; import com.google.gson.JsonObject; import net.momirealms.craftengine.core.pack.revision.Revision; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.MinecraftVersion; import net.momirealms.craftengine.core.util.ResourceConfigUtils; @@ -10,7 +9,6 @@ import java.util.List; import java.util.Map; public final class BedSpecialModel implements SpecialModel { - public static final Key ID = Key.of("minecraft:bed"); public static final SpecialModelFactory FACTORY = new Factory(); public static final SpecialModelReader READER = new Reader(); private final String texture; @@ -26,7 +24,7 @@ public final class BedSpecialModel implements SpecialModel { @Override public JsonObject apply(MinecraftVersion version) { JsonObject json = new JsonObject(); - json.addProperty("type", ID.asMinimalString()); + json.addProperty("type", "bed"); json.addProperty("texture", this.texture); return json; } diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/special/ChestSpecialModel.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/special/ChestSpecialModel.java index ca0ef193d..27897f05a 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/special/ChestSpecialModel.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/special/ChestSpecialModel.java @@ -3,7 +3,6 @@ package net.momirealms.craftengine.core.pack.model.definition.special; import com.google.gson.JsonObject; import net.momirealms.craftengine.core.pack.revision.Revision; import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigException; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.MinecraftVersion; import net.momirealms.craftengine.core.util.ResourceConfigUtils; @@ -11,7 +10,6 @@ import java.util.List; import java.util.Map; public final class ChestSpecialModel implements SpecialModel { - public static final Key ID = Key.of("minecraft:chest"); public static final SpecialModelFactory FACTORY = new Factory(); public static final SpecialModelReader READER = new Reader(); private final String texture; @@ -38,7 +36,7 @@ public final class ChestSpecialModel implements SpecialModel { @Override public JsonObject apply(MinecraftVersion version) { JsonObject json = new JsonObject(); - json.addProperty("type", ID.asMinimalString()); + json.addProperty("type", "chest"); json.addProperty("texture", this.texture); if (this.openness > 0) { json.addProperty("openness", this.openness); diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/special/CopperGolemStatueSpecialModel.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/special/CopperGolemStatueSpecialModel.java index aaa032b05..ab151078a 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/special/CopperGolemStatueSpecialModel.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/special/CopperGolemStatueSpecialModel.java @@ -2,7 +2,6 @@ package net.momirealms.craftengine.core.pack.model.definition.special; import com.google.gson.JsonObject; import net.momirealms.craftengine.core.pack.revision.Revision; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.MinecraftVersion; import net.momirealms.craftengine.core.util.ResourceConfigUtils; @@ -10,7 +9,6 @@ import java.util.List; import java.util.Map; public final class CopperGolemStatueSpecialModel implements SpecialModel { - public static final Key ID = Key.of("minecraft:copper_golem_statue"); public static final SpecialModelFactory FACTORY = new Factory(); public static final SpecialModelReader READER = new Reader(); private final String pose; @@ -37,7 +35,7 @@ public final class CopperGolemStatueSpecialModel implements SpecialModel { @Override public JsonObject apply(MinecraftVersion version) { JsonObject json = new JsonObject(); - json.addProperty("type", ID.asMinimalString()); + json.addProperty("type", "copper_golem_statue"); json.addProperty("pose", this.pose); json.addProperty("texture", this.texture); return json; diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/special/HeadSpecialModel.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/special/HeadSpecialModel.java index 2983c3455..f0e338243 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/special/HeadSpecialModel.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/special/HeadSpecialModel.java @@ -2,7 +2,6 @@ package net.momirealms.craftengine.core.pack.model.definition.special; import com.google.gson.JsonObject; import net.momirealms.craftengine.core.pack.revision.Revision; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.MinecraftVersion; import net.momirealms.craftengine.core.util.ResourceConfigUtils; @@ -11,7 +10,6 @@ import java.util.Map; import java.util.Optional; public final class HeadSpecialModel implements SpecialModel { - public static final Key ID = Key.of("minecraft:head"); public static final SpecialModelFactory FACTORY = new Factory(); public static final SpecialModelReader READER = new Reader(); private final String kind; @@ -44,7 +42,7 @@ public final class HeadSpecialModel implements SpecialModel { @Override public JsonObject apply(MinecraftVersion version) { JsonObject json = new JsonObject(); - json.addProperty("type", ID.asMinimalString()); + json.addProperty("type", "head"); json.addProperty("kind", this.kind); if (this.texture != null) { json.addProperty("texture", this.texture); diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/special/PlayerHeadSpecialModel.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/special/PlayerHeadSpecialModel.java index 087751181..d543441ff 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/special/PlayerHeadSpecialModel.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/special/PlayerHeadSpecialModel.java @@ -3,14 +3,12 @@ package net.momirealms.craftengine.core.pack.model.definition.special; import com.google.gson.JsonObject; import net.momirealms.craftengine.core.pack.revision.Revision; import net.momirealms.craftengine.core.pack.revision.Revisions; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.MinecraftVersion; import java.util.List; import java.util.Map; public final class PlayerHeadSpecialModel implements SpecialModel { - public static final Key ID = Key.of("minecraft:player_head"); public static final SpecialModelFactory FACTORY = new Factory(); public static final SpecialModelReader READER = new Reader(); public static final PlayerHeadSpecialModel INSTANCE = new PlayerHeadSpecialModel(); @@ -26,9 +24,9 @@ public final class PlayerHeadSpecialModel implements SpecialModel { public JsonObject apply(MinecraftVersion version) { JsonObject json = new JsonObject(); if (version.isAtOrAbove(MinecraftVersion.V1_21_6)) { - json.addProperty("type", ID.asMinimalString()); + json.addProperty("type", "player_head"); } else { - json.addProperty("type", HeadSpecialModel.ID.asString()); + json.addProperty("type", "head"); json.addProperty("kind", "player"); } return json; diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/special/ShulkerBoxSpecialModel.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/special/ShulkerBoxSpecialModel.java index 955130a21..645dea798 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/special/ShulkerBoxSpecialModel.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/special/ShulkerBoxSpecialModel.java @@ -4,7 +4,6 @@ import com.google.gson.JsonObject; import net.momirealms.craftengine.core.pack.revision.Revision; import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigException; import net.momirealms.craftengine.core.util.Direction; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.MinecraftVersion; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import org.jetbrains.annotations.Nullable; @@ -15,7 +14,6 @@ import java.util.Map; import java.util.Optional; public final class ShulkerBoxSpecialModel implements SpecialModel { - public static final Key ID = Key.of("minecraft:shulker_box"); public static final SpecialModelFactory FACTORY = new Factory(); public static final SpecialModelReader READER = new Reader(); private final String texture; @@ -48,12 +46,12 @@ public final class ShulkerBoxSpecialModel implements SpecialModel { @Override public JsonObject apply(MinecraftVersion version) { JsonObject json = new JsonObject(); - json.addProperty("type", ID.asMinimalString()); - json.addProperty("texture", texture); - if (orientation != null) { - json.addProperty("orientation", orientation.name().toLowerCase(Locale.ENGLISH)); + json.addProperty("type", "shulker_box"); + json.addProperty("texture", this.texture); + if (this.orientation != null) { + json.addProperty("orientation", this.orientation.name().toLowerCase(Locale.ENGLISH)); } - json.addProperty("openness", openness); + json.addProperty("openness", this.openness); return json; } diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/special/SpecialModels.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/special/SpecialModels.java index 73aabd592..bbb5b97ff 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/special/SpecialModels.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/special/SpecialModels.java @@ -12,19 +12,19 @@ import net.momirealms.craftengine.core.util.ResourceKey; import java.util.Map; public final class SpecialModels { - public static final SpecialModelType BANNER = register(BannerSpecialModel.ID, BannerSpecialModel.FACTORY, BannerSpecialModel.READER); - public static final SpecialModelType BED = register(BedSpecialModel.ID, BedSpecialModel.FACTORY, BedSpecialModel.READER); - public static final SpecialModelType CHEST = register(ChestSpecialModel.ID, ChestSpecialModel.FACTORY, ChestSpecialModel.READER); - public static final SpecialModelType CONDUIT = register(Key.of("minecraft:conduit"), SimpleSpecialModel.FACTORY, SimpleSpecialModel.READER); - public static final SpecialModelType COPPER_GOLEM_STATUE = register(CopperGolemStatueSpecialModel.ID, CopperGolemStatueSpecialModel.FACTORY, CopperGolemStatueSpecialModel.READER); - public static final SpecialModelType DECORATED_POT = register(Key.of("minecraft:decorated_pot"), SimpleSpecialModel.FACTORY, SimpleSpecialModel.READER); - public static final SpecialModelType HEAD = register(HeadSpecialModel.ID, HeadSpecialModel.FACTORY, HeadSpecialModel.READER); - public static final SpecialModelType PLAYER_HEAD = register(PlayerHeadSpecialModel.ID, PlayerHeadSpecialModel.FACTORY, PlayerHeadSpecialModel.READER); - public static final SpecialModelType SHIELD = register(Key.of("minecraft:shield"), SimpleSpecialModel.FACTORY, SimpleSpecialModel.READER); - public static final SpecialModelType SHULKER_BOX = register(ShulkerBoxSpecialModel.ID, ShulkerBoxSpecialModel.FACTORY, ShulkerBoxSpecialModel.READER); - public static final SpecialModelType STANDING_SIGN = register(Key.of("minecraft:standing_sign"), SignSpecialModel.FACTORY, SignSpecialModel.READER); - public static final SpecialModelType HANGING_SIGN = register(Key.of("minecraft:hanging_sign"), SignSpecialModel.FACTORY, SignSpecialModel.READER); - public static final SpecialModelType TRIDENT = register(Key.of("minecraft:trident"), SimpleSpecialModel.FACTORY, SimpleSpecialModel.READER); + public static final SpecialModelType BANNER = register(Key.of("banner"), BannerSpecialModel.FACTORY, BannerSpecialModel.READER); + public static final SpecialModelType BED = register(Key.of("bed"), BedSpecialModel.FACTORY, BedSpecialModel.READER); + public static final SpecialModelType CHEST = register(Key.of("chest"), ChestSpecialModel.FACTORY, ChestSpecialModel.READER); + public static final SpecialModelType CONDUIT = register(Key.of("conduit"), SimpleSpecialModel.FACTORY, SimpleSpecialModel.READER); + public static final SpecialModelType COPPER_GOLEM_STATUE = register(Key.of("copper_golem_statue"), CopperGolemStatueSpecialModel.FACTORY, CopperGolemStatueSpecialModel.READER); + public static final SpecialModelType DECORATED_POT = register(Key.of("decorated_pot"), SimpleSpecialModel.FACTORY, SimpleSpecialModel.READER); + public static final SpecialModelType HEAD = register(Key.of("head"), HeadSpecialModel.FACTORY, HeadSpecialModel.READER); + public static final SpecialModelType PLAYER_HEAD = register(Key.of("player_head"), PlayerHeadSpecialModel.FACTORY, PlayerHeadSpecialModel.READER); + public static final SpecialModelType SHIELD = register(Key.of("shield"), SimpleSpecialModel.FACTORY, SimpleSpecialModel.READER); + public static final SpecialModelType SHULKER_BOX = register(Key.of("shulker_box"), ShulkerBoxSpecialModel.FACTORY, ShulkerBoxSpecialModel.READER); + public static final SpecialModelType STANDING_SIGN = register(Key.of("standing_sign"), SignSpecialModel.FACTORY, SignSpecialModel.READER); + public static final SpecialModelType HANGING_SIGN = register(Key.of("hanging_sign"), SignSpecialModel.FACTORY, SignSpecialModel.READER); + public static final SpecialModelType TRIDENT = register(Key.of("trident"), SimpleSpecialModel.FACTORY, SimpleSpecialModel.READER); private SpecialModels() {} diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/tint/ConstantTint.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/tint/ConstantTint.java index 8e234c02f..fb64d50ef 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/tint/ConstantTint.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/tint/ConstantTint.java @@ -1,7 +1,6 @@ package net.momirealms.craftengine.core.pack.model.definition.tint; import com.google.gson.JsonObject; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import org.incendo.cloud.type.Either; @@ -9,7 +8,6 @@ import java.util.List; import java.util.Map; public final class ConstantTint implements Tint { - public static final Key ID = Key.of("minecraft:constant"); public static final TintFactory FACTORY = new Factory(); public static final TintReader READER = new Reader(); private final Either> value; @@ -25,7 +23,7 @@ public final class ConstantTint implements Tint { @Override public JsonObject get() { JsonObject json = new JsonObject(); - json.addProperty("type", ID.asMinimalString()); + json.addProperty("type", "constant"); applyAnyTint(json, this.value, "value"); return json; } diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/tint/CustomModelDataTint.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/tint/CustomModelDataTint.java index 499a4d421..f855edf33 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/tint/CustomModelDataTint.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/tint/CustomModelDataTint.java @@ -1,7 +1,6 @@ package net.momirealms.craftengine.core.pack.model.definition.tint; import com.google.gson.JsonObject; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import org.incendo.cloud.type.Either; @@ -9,7 +8,6 @@ import java.util.List; import java.util.Map; public final class CustomModelDataTint implements Tint { - public static final Key ID = Key.of("minecraft:custom_model_data"); public static final TintFactory FACTORY = new Factory(); public static final TintReader READER = new Reader(); private final Either> value; @@ -31,7 +29,7 @@ public final class CustomModelDataTint implements Tint { @Override public JsonObject get() { JsonObject json = new JsonObject(); - json.addProperty("type", ID.asMinimalString()); + json.addProperty("type", "custom_model_data"); if (this.index != 0) json.addProperty("index", this.index); applyAnyTint(json, this.value, "default"); diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/tint/GrassTint.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/tint/GrassTint.java index 675322b9e..2e639edd3 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/tint/GrassTint.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/tint/GrassTint.java @@ -2,13 +2,11 @@ package net.momirealms.craftengine.core.pack.model.definition.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.ResourceConfigUtils; import java.util.Map; public final class GrassTint implements Tint { - public static final Key ID = Key.of("minecraft:grass"); public static final Factory FACTORY = new Factory(); public static final Reader READER = new Reader(); private final float temperature; @@ -30,7 +28,7 @@ public final class GrassTint implements Tint { @Override public JsonObject get() { JsonObject json = new JsonObject(); - json.addProperty("type", ID.asMinimalString()); + json.addProperty("type", "grass"); json.addProperty("temperature", this.temperature); json.addProperty("downfall", this.downfall); return json; diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/tint/Tints.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/tint/Tints.java index 5e96608cc..1446a697f 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/tint/Tints.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/tint/Tints.java @@ -12,14 +12,14 @@ import net.momirealms.craftengine.core.util.ResourceKey; import java.util.Map; public final class Tints { - public static final TintType CONSTANT = register(ConstantTint.ID, ConstantTint.FACTORY, ConstantTint.READER); - public static final TintType CUSTOM_MODEL_DATA = register(CustomModelDataTint.ID, CustomModelDataTint.FACTORY, CustomModelDataTint.READER); - public static final TintType DYE = register(Key.of("minecraft:dye"), SimpleDefaultTint.FACTORY, SimpleDefaultTint.READER); - public static final TintType FIREWORK = register(Key.of("minecraft:firework"), SimpleDefaultTint.FACTORY, SimpleDefaultTint.READER); - public static final TintType MAP_COLOR = register(Key.of("minecraft:map_color"), SimpleDefaultTint.FACTORY, SimpleDefaultTint.READER); - public static final TintType POTION = register(Key.of("minecraft:potion"), SimpleDefaultTint.FACTORY, SimpleDefaultTint.READER); - public static final TintType TEAM = register(Key.of("minecraft:team"), SimpleDefaultTint.FACTORY, SimpleDefaultTint.READER); - public static final TintType GRASS = register(GrassTint.ID, GrassTint.FACTORY, GrassTint.READER); + public static final TintType CONSTANT = register(Key.of("constant"), ConstantTint.FACTORY, ConstantTint.READER); + public static final TintType CUSTOM_MODEL_DATA = register(Key.of("custom_model_data"), CustomModelDataTint.FACTORY, CustomModelDataTint.READER); + public static final TintType DYE = register(Key.of("dye"), SimpleDefaultTint.FACTORY, SimpleDefaultTint.READER); + public static final TintType FIREWORK = register(Key.of("firework"), SimpleDefaultTint.FACTORY, SimpleDefaultTint.READER); + public static final TintType MAP_COLOR = register(Key.of("map_color"), SimpleDefaultTint.FACTORY, SimpleDefaultTint.READER); + public static final TintType POTION = register(Key.of("potion"), SimpleDefaultTint.FACTORY, SimpleDefaultTint.READER); + public static final TintType TEAM = register(Key.of("team"), SimpleDefaultTint.FACTORY, SimpleDefaultTint.READER); + public static final TintType GRASS = register(Key.of("grass"), GrassTint.FACTORY, GrassTint.READER); private Tints() {} diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ConditionTemplateArgument.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ConditionTemplateArgument.java index d58c1b8de..2b1c538ad 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ConditionTemplateArgument.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ConditionTemplateArgument.java @@ -1,12 +1,10 @@ package net.momirealms.craftengine.core.plugin.config.template.argument; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; public final class ConditionTemplateArgument implements TemplateArgument { - public static final Key ID = Key.of("craftengine:condition"); public static final TemplateArgumentFactory FACTORY = new Factory(); private final TemplateArgument result; 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 92d56c5d9..bb0f47271 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 @@ -3,7 +3,6 @@ package net.momirealms.craftengine.core.plugin.config.template.argument; import com.ezylang.evalex.Expression; import com.ezylang.evalex.data.EvaluationValue; import net.momirealms.craftengine.core.plugin.config.template.ArgumentString; -import net.momirealms.craftengine.core.util.Key; import java.util.Locale; import java.util.Map; @@ -11,7 +10,6 @@ import java.util.Optional; import java.util.function.Function; public final class ExpressionTemplateArgument implements TemplateArgument { - public static final Key ID = Key.of("craftengine:expression"); public static final TemplateArgumentFactory FACTORY = new Factory(); private final ArgumentString expression; private final ValueType valueType; diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ListTemplateArgument.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ListTemplateArgument.java index b456dbf58..07ff6b0c4 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ListTemplateArgument.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ListTemplateArgument.java @@ -1,14 +1,12 @@ package net.momirealms.craftengine.core.plugin.config.template.argument; import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigException; -import net.momirealms.craftengine.core.util.Key; import java.util.List; import java.util.Map; import java.util.function.Supplier; public final class ListTemplateArgument implements TemplateArgument { - public static final Key ID = Key.of("craftengine:list"); public static final TemplateArgumentFactory FACTORY = new Factory(); private final List value; diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/MapTemplateArgument.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/MapTemplateArgument.java index 6b1c557c8..0d0ceadb1 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/MapTemplateArgument.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/MapTemplateArgument.java @@ -1,12 +1,10 @@ package net.momirealms.craftengine.core.plugin.config.template.argument; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.MiscUtils; import java.util.Map; public final class MapTemplateArgument implements TemplateArgument { - public static final Key ID = Key.of("craftengine:map"); public static final TemplateArgumentFactory FACTORY = new Factory(); private final Map value; diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/NullTemplateArgument.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/NullTemplateArgument.java index 723a18a7c..6b013fd67 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/NullTemplateArgument.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/NullTemplateArgument.java @@ -1,11 +1,8 @@ package net.momirealms.craftengine.core.plugin.config.template.argument; -import net.momirealms.craftengine.core.util.Key; - import java.util.Map; public final class NullTemplateArgument implements TemplateArgument { - public static final Key ID = Key.of("craftengine:null"); public static final NullTemplateArgument INSTANCE = new NullTemplateArgument(); public static final TemplateArgumentFactory FACTORY = new Factory(); diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ObjectTemplateArgument.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ObjectTemplateArgument.java index da36cfaa9..ebb3d8ab4 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ObjectTemplateArgument.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ObjectTemplateArgument.java @@ -1,11 +1,8 @@ package net.momirealms.craftengine.core.plugin.config.template.argument; -import net.momirealms.craftengine.core.util.Key; - import java.util.Map; public final class ObjectTemplateArgument implements TemplateArgument { - public static final Key ID = Key.of("craftengine:object"); public static final TemplateArgumentFactory FACTORY = new Factory(); private final Object value; diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/PlainStringTemplateArgument.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/PlainStringTemplateArgument.java index 814a2be8c..d4d4f0c68 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/PlainStringTemplateArgument.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/PlainStringTemplateArgument.java @@ -1,11 +1,8 @@ package net.momirealms.craftengine.core.plugin.config.template.argument; -import net.momirealms.craftengine.core.util.Key; - import java.util.Map; public final class PlainStringTemplateArgument implements TemplateArgument { - public static final Key ID = Key.of("craftengine:plain"); public static final TemplateArgumentFactory FACTORY = new Factory(); private final String value; diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/SelfIncreaseIntTemplateArgument.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/SelfIncreaseIntTemplateArgument.java index 325d00369..ae9875661 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/SelfIncreaseIntTemplateArgument.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/SelfIncreaseIntTemplateArgument.java @@ -1,13 +1,11 @@ package net.momirealms.craftengine.core.plugin.config.template.argument; import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigException; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; public final class SelfIncreaseIntTemplateArgument implements TemplateArgument { - public static final Key ID = Key.of("craftengine:self_increase_int"); public static final TemplateArgumentFactory FACTORY = new Factory(); private final int min; private final int max; 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 6e7e24dcb..b7c13cea5 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 @@ -10,17 +10,17 @@ import java.util.List; import java.util.Map; public final class TemplateArguments { - public static final TemplateArgumentType PLAIN = register(PlainStringTemplateArgument.ID, PlainStringTemplateArgument.FACTORY); - public static final TemplateArgumentType SELF_INCREASE_INT = register(SelfIncreaseIntTemplateArgument.ID, SelfIncreaseIntTemplateArgument.FACTORY); - public static final TemplateArgumentType MAP = register(MapTemplateArgument.ID, MapTemplateArgument.FACTORY); - public static final TemplateArgumentType LIST = register(ListTemplateArgument.ID, ListTemplateArgument.FACTORY); - public static final TemplateArgumentType NULL = register(NullTemplateArgument.ID, NullTemplateArgument.FACTORY); - public static final TemplateArgumentType EXPRESSION = register(ExpressionTemplateArgument.ID, ExpressionTemplateArgument.FACTORY); - public static final TemplateArgumentType CONDITION = register(ConditionTemplateArgument.ID, ConditionTemplateArgument.FACTORY); - public static final TemplateArgumentType TO_UPPER_CASE = register(ToUpperCaseTemplateArgument.ID, ToUpperCaseTemplateArgument.FACTORY); - public static final TemplateArgumentType TO_LOWER_CASE = register(ToLowerCaseTemplateArgument.ID, ToLowerCaseTemplateArgument.FACTORY); - public static final TemplateArgumentType OBJECT = register(ObjectTemplateArgument.ID, ObjectTemplateArgument.FACTORY); - public static final TemplateArgumentType WHEN = register(WhenTemplateArgument.ID, WhenTemplateArgument.FACTORY); + public static final TemplateArgumentType PLAIN = register(Key.ce("plain"), PlainStringTemplateArgument.FACTORY); + public static final TemplateArgumentType SELF_INCREASE_INT = register(Key.ce("self_increase_int"), SelfIncreaseIntTemplateArgument.FACTORY); + public static final TemplateArgumentType MAP = register(Key.ce("map"), MapTemplateArgument.FACTORY); + public static final TemplateArgumentType LIST = register(Key.ce("list"), ListTemplateArgument.FACTORY); + public static final TemplateArgumentType NULL = register(Key.ce("null"), NullTemplateArgument.FACTORY); + public static final TemplateArgumentType EXPRESSION = register(Key.ce("expression"), ExpressionTemplateArgument.FACTORY); + public static final TemplateArgumentType CONDITION = register(Key.ce("condition"), ConditionTemplateArgument.FACTORY); + public static final TemplateArgumentType TO_UPPER_CASE = register(Key.ce("to_upper_case"), ToUpperCaseTemplateArgument.FACTORY); + public static final TemplateArgumentType TO_LOWER_CASE = register(Key.ce("to_lower_case"), ToLowerCaseTemplateArgument.FACTORY); + public static final TemplateArgumentType OBJECT = register(Key.ce("object"), ObjectTemplateArgument.FACTORY); + public static final TemplateArgumentType WHEN = register(Key.ce("when"), WhenTemplateArgument.FACTORY); private TemplateArguments() {} diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ToLowerCaseTemplateArgument.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ToLowerCaseTemplateArgument.java index 60c99d430..b6666d196 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ToLowerCaseTemplateArgument.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ToLowerCaseTemplateArgument.java @@ -2,14 +2,12 @@ package net.momirealms.craftengine.core.plugin.config.template.argument; import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigException; import net.momirealms.craftengine.core.plugin.locale.TranslationManager; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Locale; import java.util.Map; public final class ToLowerCaseTemplateArgument implements TemplateArgument { - public static final Key ID = Key.of("craftengine:to_lower_case"); public static final TemplateArgumentFactory FACTORY = new Factory(); private final String result; diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ToUpperCaseTemplateArgument.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ToUpperCaseTemplateArgument.java index 0f4f8dd91..874046ba1 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ToUpperCaseTemplateArgument.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ToUpperCaseTemplateArgument.java @@ -2,14 +2,12 @@ package net.momirealms.craftengine.core.plugin.config.template.argument; import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigException; import net.momirealms.craftengine.core.plugin.locale.TranslationManager; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Locale; import java.util.Map; public final class ToUpperCaseTemplateArgument implements TemplateArgument { - public static final Key ID = Key.of("craftengine:to_upper_case"); public static final TemplateArgumentFactory FACTORY = new Factory(); private final String result; diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/WhenTemplateArgument.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/WhenTemplateArgument.java index 22af726ea..c9084d3ec 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/WhenTemplateArgument.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/WhenTemplateArgument.java @@ -1,12 +1,10 @@ package net.momirealms.craftengine.core.plugin.config.template.argument; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; public final class WhenTemplateArgument implements TemplateArgument { - public static final Key ID = Key.of("craftengine:when"); public static final TemplateArgumentFactory FACTORY = new Factory(); private final TemplateArgument result; diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/CooldownData.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/CooldownData.java index 235888530..7ac74b314 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/CooldownData.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/CooldownData.java @@ -12,7 +12,7 @@ import java.util.HashMap; import java.util.Map; public class CooldownData { - public static final Key COOLDOWN_KEY = Key.of("craftengine:cooldown"); + public static final Key COOLDOWN_KEY = Key.ce("cooldown"); private final Map cooldownMap = Collections.synchronizedMap(new HashMap<>()); public boolean isOnCooldown(String key) { diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/condition/CommonConditions.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/condition/CommonConditions.java index 256ff4e3b..8007af22e 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/condition/CommonConditions.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/condition/CommonConditions.java @@ -5,32 +5,32 @@ import net.momirealms.craftengine.core.util.Key; public final class CommonConditions { private CommonConditions() {} - public static final Key ALWAYS_TRUE = Key.of("craftengine:always_true"); - public static final Key ALWAYS_FALSE = Key.of("craftengine:always_false"); - public static final Key ALL_OF = Key.of("craftengine:all_of"); - public static final Key ANY_OF = Key.of("craftengine:any_of"); - public static final Key INVERTED = Key.of("craftengine:inverted"); - public static final Key MATCH_ITEM = Key.of("craftengine:match_item"); - public static final Key HAS_ITEM = Key.of("craftengine:has_item"); - public static final Key MATCH_ENTITY = Key.of("craftengine:match_entity"); - public static final Key MATCH_BLOCK = Key.of("craftengine:match_block"); - public static final Key MATCH_BLOCK_PROPERTY = Key.from("craftengine:match_block_property"); - public static final Key MATCH_FURNITURE_VARIANT = Key.from("craftengine:match_furniture_variant"); - public static final Key TABLE_BONUS = Key.from("craftengine:table_bonus"); - public static final Key SURVIVES_EXPLOSION = Key.from("craftengine:survives_explosion"); - public static final Key RANDOM = Key.from("craftengine:random"); - public static final Key ENCHANTMENT = Key.from("craftengine:enchantment"); - public static final Key FALLING_BLOCK = Key.from("craftengine:falling_block"); - public static final Key DISTANCE = Key.from("craftengine:distance"); - public static final Key PERMISSION = Key.from("craftengine:permission"); - public static final Key ON_COOLDOWN = Key.from("craftengine:on_cooldown"); - public static final Key EQUALS = Key.from("craftengine:equals"); - public static final Key STRING_EQUALS = Key.from("craftengine:string_equals"); - public static final Key STRING_CONTAINS = Key.from("craftengine:string_contains"); - public static final Key STRING_REGEX = Key.from("craftengine:regex"); - public static final Key EXPRESSION = Key.from("craftengine:expression"); - public static final Key IS_NULL = Key.from("craftengine:is_null"); - public static final Key HAND = Key.from("craftengine:hand"); - public static final Key HAS_PLAYER = Key.from("craftengine:has_player"); - public static final Key INVENTORY_HAS_ITEM = Key.from("craftengine:inventory_has_item"); + public static final Key ALWAYS_TRUE = Key.ce("always_true"); + public static final Key ALWAYS_FALSE = Key.ce("always_false"); + public static final Key ALL_OF = Key.ce("all_of"); + public static final Key ANY_OF = Key.ce("any_of"); + public static final Key INVERTED = Key.ce("inverted"); + public static final Key MATCH_ITEM = Key.ce("match_item"); + public static final Key HAS_ITEM = Key.ce("has_item"); + public static final Key MATCH_ENTITY = Key.ce("match_entity"); + public static final Key MATCH_BLOCK = Key.ce("match_block"); + public static final Key MATCH_BLOCK_PROPERTY = Key.ce("match_block_property"); + public static final Key MATCH_FURNITURE_VARIANT = Key.ce("match_furniture_variant"); + public static final Key TABLE_BONUS = Key.ce("table_bonus"); + public static final Key SURVIVES_EXPLOSION = Key.ce("survives_explosion"); + public static final Key RANDOM = Key.ce("random"); + public static final Key ENCHANTMENT = Key.ce("enchantment"); + public static final Key FALLING_BLOCK = Key.ce("falling_block"); + public static final Key DISTANCE = Key.ce("distance"); + public static final Key PERMISSION = Key.ce("permission"); + public static final Key ON_COOLDOWN = Key.ce("on_cooldown"); + public static final Key EQUALS = Key.ce("equals"); + public static final Key STRING_EQUALS = Key.ce("string_equals"); + public static final Key STRING_CONTAINS = Key.ce("string_contains"); + public static final Key STRING_REGEX = Key.ce("regex"); + public static final Key EXPRESSION = Key.ce("expression"); + public static final Key IS_NULL = Key.ce("is_null"); + public static final Key HAND = Key.ce("hand"); + public static final Key HAS_PLAYER = Key.ce("has_player"); + public static final Key INVENTORY_HAS_ITEM = Key.ce("inventory_has_item"); } diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/CommonFunctions.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/CommonFunctions.java index 3083f3cf6..d94676443 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/CommonFunctions.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/CommonFunctions.java @@ -5,51 +5,51 @@ import net.momirealms.craftengine.core.util.Key; public final class CommonFunctions { private CommonFunctions() {} - public static final Key RUN = Key.of("craftengine:run"); - public static final Key COMMAND = Key.of("craftengine:command"); - public static final Key MESSAGE = Key.of("craftengine:message"); - public static final Key ACTIONBAR = Key.of("craftengine:actionbar"); - public static final Key TITLE = Key.of("craftengine:title"); - public static final Key OPEN_WINDOW = Key.of("craftengine:open_window"); - public static final Key PARTICLE = Key.of("craftengine:particle"); - public static final Key PLAY_SOUND = Key.of("craftengine:play_sound"); - public static final Key POTION_EFFECT = Key.of("craftengine:potion_effect"); - public static final Key REMOVE_POTION_EFFECT = Key.of("craftengine:remove_potion_effect"); - public static final Key BREAK_BLOCK = Key.of("craftengine:break_block"); - public static final Key CANCEL_EVENT = Key.of("craftengine:cancel_event"); - public static final Key UPDATE_INTERACTION_TICK = Key.of("craftengine:update_interaction_tick"); - public static final Key SET_COUNT = Key.of("craftengine:set_count"); - public static final Key PLACE_BLOCK = Key.of("craftengine:place_block"); - public static final Key TRANSFORM_BLOCK = Key.of("craftengine:transform_block"); - public static final Key UPDATE_BLOCK_PROPERTY = Key.of("craftengine:update_block_property"); - public static final Key SET_FOOD = Key.of("craftengine:set_food"); - public static final Key SET_COOLDOWN = Key.of("craftengine:set_cooldown"); - public static final Key REMOVE_COOLDOWN = Key.of("craftengine:remove_cooldown"); - public static final Key SET_SATURATION = Key.of("craftengine:set_saturation"); - public static final Key DROP_LOOT = Key.of("craftengine:drop_loot"); - public static final Key SWING_HAND = Key.of("craftengine:swing_hand"); - public static final Key LEVELER_EXP = Key.of("craftengine:leveler_exp"); - public static final Key SPAWN_FURNITURE = Key.of("craftengine:spawn_furniture"); - public static final Key REMOVE_FURNITURE = Key.of("craftengine:remove_furniture"); - public static final Key REPLACE_FURNITURE = Key.of("craftengine:replace_furniture"); - public static final Key ROTATE_FURNITURE = Key.of("craftengine:rotate_furniture"); - public static final Key MYTHIC_MOBS_SKILL = Key.of("craftengine:mythic_mobs_skill"); - public static final Key TELEPORT = Key.of("craftengine:teleport"); - public static final Key TOAST = Key.of("craftengine:toast"); - public static final Key SET_VARIABLE = Key.of("craftengine:set_variable"); - public static final Key DAMAGE = Key.of("craftengine:damage"); - public static final Key MERCHANT_TRADE = Key.of("craftengine:merchant_trade"); - public static final Key REMOVE_ENTITY = Key.of("craftengine:remove_entity"); - public static final Key IF_ELSE = Key.of("craftengine:if_else"); - public static final Key ALTERNATIVES = Key.of("craftengine:alternatives"); - public static final Key WHEN = Key.of("craftengine:when"); - public static final Key ALL_OF = Key.of("craftengine:all_of"); - public static final Key DUMMY = Key.of("craftengine:dummy"); - public static final Key DAMAGE_ITEM = Key.of("craftengine:damage_item"); - public static final Key CYCLE_BLOCK_PROPERTY = Key.of("craftengine:cycle_block_property"); - public static final Key SET_EXP = Key.of("craftengine:set_exp"); - public static final Key SET_LEVEL = Key.of("craftengine:set_level"); - public static final Key PLAY_TOTEM_ANIMATION = Key.of("craftengine:play_totem_animation"); - public static final Key CLOSE_INVENTORY = Key.of("craftengine:close_inventory"); - public static final Key CLEAR_ITEM = Key.of("craftengine:clear_item"); + public static final Key RUN = Key.ce("run"); + public static final Key COMMAND = Key.ce("command"); + public static final Key MESSAGE = Key.ce("message"); + public static final Key ACTIONBAR = Key.ce("actionbar"); + public static final Key TITLE = Key.ce("title"); + public static final Key OPEN_WINDOW = Key.ce("open_window"); + public static final Key PARTICLE = Key.ce("particle"); + public static final Key PLAY_SOUND = Key.ce("play_sound"); + public static final Key POTION_EFFECT = Key.ce("potion_effect"); + public static final Key REMOVE_POTION_EFFECT = Key.ce("remove_potion_effect"); + public static final Key BREAK_BLOCK = Key.ce("break_block"); + public static final Key CANCEL_EVENT = Key.ce("cancel_event"); + public static final Key UPDATE_INTERACTION_TICK = Key.ce("update_interaction_tick"); + public static final Key SET_COUNT = Key.ce("set_count"); + public static final Key PLACE_BLOCK = Key.ce("place_block"); + public static final Key TRANSFORM_BLOCK = Key.ce("transform_block"); + public static final Key UPDATE_BLOCK_PROPERTY = Key.ce("update_block_property"); + public static final Key SET_FOOD = Key.ce("set_food"); + public static final Key SET_COOLDOWN = Key.ce("set_cooldown"); + public static final Key REMOVE_COOLDOWN = Key.ce("remove_cooldown"); + public static final Key SET_SATURATION = Key.ce("set_saturation"); + public static final Key DROP_LOOT = Key.ce("drop_loot"); + public static final Key SWING_HAND = Key.ce("swing_hand"); + public static final Key LEVELER_EXP = Key.ce("leveler_exp"); + public static final Key SPAWN_FURNITURE = Key.ce("spawn_furniture"); + public static final Key REMOVE_FURNITURE = Key.ce("remove_furniture"); + public static final Key REPLACE_FURNITURE = Key.ce("replace_furniture"); + public static final Key ROTATE_FURNITURE = Key.ce("rotate_furniture"); + public static final Key MYTHIC_MOBS_SKILL = Key.ce("mythic_mobs_skill"); + public static final Key TELEPORT = Key.ce("teleport"); + public static final Key TOAST = Key.ce("toast"); + public static final Key SET_VARIABLE = Key.ce("set_variable"); + public static final Key DAMAGE = Key.ce("damage"); + public static final Key MERCHANT_TRADE = Key.ce("merchant_trade"); + public static final Key REMOVE_ENTITY = Key.ce("remove_entity"); + public static final Key IF_ELSE = Key.ce("if_else"); + public static final Key ALTERNATIVES = Key.ce("alternatives"); + public static final Key WHEN = Key.ce("when"); + public static final Key ALL_OF = Key.ce("all_of"); + public static final Key DUMMY = Key.ce("dummy"); + public static final Key DAMAGE_ITEM = Key.ce("damage_item"); + public static final Key CYCLE_BLOCK_PROPERTY = Key.ce("cycle_block_property"); + public static final Key SET_EXP = Key.ce("set_exp"); + public static final Key SET_LEVEL = Key.ce("set_level"); + public static final Key PLAY_TOTEM_ANIMATION = Key.ce("play_totem_animation"); + public static final Key CLOSE_INVENTORY = Key.ce("close_inventory"); + public static final Key CLEAR_ITEM = Key.ce("clear_item"); } diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/number/BinomialNumberProvider.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/number/BinomialNumberProvider.java index 688ff33f0..806f31c72 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/number/BinomialNumberProvider.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/number/BinomialNumberProvider.java @@ -1,14 +1,12 @@ package net.momirealms.craftengine.core.plugin.context.number; import net.momirealms.craftengine.core.plugin.context.Context; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.RandomUtils; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; public record BinomialNumberProvider(NumberProvider trials, NumberProvider successProbability) implements NumberProvider { - public static final Key ID = Key.of("craftengine:binomial"); public static final NumberProviderFactory FACTORY = new Factory(); @Override diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/number/ExpressionNumberProvider.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/number/ExpressionNumberProvider.java index b6a004327..94020ae72 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/number/ExpressionNumberProvider.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/number/ExpressionNumberProvider.java @@ -6,13 +6,11 @@ import com.ezylang.evalex.parser.ParseException; import net.kyori.adventure.text.Component; import net.momirealms.craftengine.core.plugin.context.Context; import net.momirealms.craftengine.core.util.AdventureHelper; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; public record ExpressionNumberProvider(String expression) implements NumberProvider { - public static final Key ID = Key.of("craftengine:expression"); public static final NumberProviderFactory FACTORY = new Factory(); @Override diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/number/FixedNumberProvider.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/number/FixedNumberProvider.java index e62e1312c..735d6f9ac 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/number/FixedNumberProvider.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/number/FixedNumberProvider.java @@ -3,13 +3,11 @@ package net.momirealms.craftengine.core.plugin.context.number; import com.ezylang.evalex.Expression; import net.momirealms.craftengine.core.plugin.context.Context; import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigException; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; public record FixedNumberProvider(double value) implements NumberProvider { - public static final Key ID = Key.of("craftengine:fixed"); public static final NumberProviderFactory FACTORY = new Factory(); @Override diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/number/GaussianNumberProvider.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/number/GaussianNumberProvider.java index de9c354b4..8a0319801 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/number/GaussianNumberProvider.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/number/GaussianNumberProvider.java @@ -1,7 +1,6 @@ package net.momirealms.craftengine.core.plugin.context.number; import net.momirealms.craftengine.core.plugin.context.Context; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.MiscUtils; import net.momirealms.craftengine.core.util.ResourceConfigUtils; @@ -10,7 +9,6 @@ import java.util.Random; import java.util.concurrent.ThreadLocalRandom; public record GaussianNumberProvider(double min, double max, double mean, double stdDev, int maxAttempts) implements NumberProvider { - public static final Key ID = Key.of("craftengine:gaussian"); public static final NumberProviderFactory FACTORY = new Factory(); public GaussianNumberProvider(double min, double max, double mean, double stdDev, int maxAttempts) { diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/number/NumberProviders.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/number/NumberProviders.java index 31f75f872..27721bc9e 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/number/NumberProviders.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/number/NumberProviders.java @@ -11,12 +11,12 @@ import net.momirealms.craftengine.core.util.ResourceKey; import java.util.Map; public final class NumberProviders { - public static final NumberProviderType FIXED = register(FixedNumberProvider.ID, FixedNumberProvider.FACTORY); - public static final NumberProviderType CONSTANT = register(Key.of("craftengine:constant"), FixedNumberProvider.FACTORY); - public static final NumberProviderType UNIFORM = register(UniformNumberProvider.ID, UniformNumberProvider.FACTORY); - public static final NumberProviderType EXPRESSION = register(ExpressionNumberProvider.ID, ExpressionNumberProvider.FACTORY); - public static final NumberProviderType GAUSSIAN = register(GaussianNumberProvider.ID, GaussianNumberProvider.FACTORY); - public static final NumberProviderType BINOMIAL = register(BinomialNumberProvider.ID, BinomialNumberProvider.FACTORY); + public static final NumberProviderType FIXED = register(Key.ce("fixed"), FixedNumberProvider.FACTORY); + public static final NumberProviderType CONSTANT = register(Key.ce("constant"), FixedNumberProvider.FACTORY); + public static final NumberProviderType UNIFORM = register(Key.ce("uniform"), UniformNumberProvider.FACTORY); + public static final NumberProviderType EXPRESSION = register(Key.ce("expression"), ExpressionNumberProvider.FACTORY); + public static final NumberProviderType GAUSSIAN = register(Key.ce("gaussian"), GaussianNumberProvider.FACTORY); + public static final NumberProviderType BINOMIAL = register(Key.ce("binomial"), BinomialNumberProvider.FACTORY); private NumberProviders() {} diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/number/UniformNumberProvider.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/number/UniformNumberProvider.java index dd2c46911..5566228fe 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/number/UniformNumberProvider.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/number/UniformNumberProvider.java @@ -1,14 +1,12 @@ package net.momirealms.craftengine.core.plugin.context.number; import net.momirealms.craftengine.core.plugin.context.Context; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.RandomUtils; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; public record UniformNumberProvider(NumberProvider min, NumberProvider max) implements NumberProvider { - public static final Key ID = Key.of("craftengine:uniform"); public static final NumberProviderFactory FACTORY = new Factory(); @Override diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/selector/AllPlayerSelector.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/selector/AllPlayerSelector.java index b8686e3db..12ec9a30f 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/selector/AllPlayerSelector.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/selector/AllPlayerSelector.java @@ -7,7 +7,6 @@ import net.momirealms.craftengine.core.plugin.context.Context; import net.momirealms.craftengine.core.plugin.context.ContextHolder; import net.momirealms.craftengine.core.plugin.context.PlayerOptionalContext; import net.momirealms.craftengine.core.plugin.context.parameter.DirectContextParameters; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.MiscUtils; import java.util.ArrayList; @@ -20,14 +19,26 @@ import java.util.function.Predicate; public class AllPlayerSelector implements PlayerSelector { private final Predicate predicate; - public AllPlayerSelector(List> predicates) { + private AllPlayerSelector(List> predicates) { this.predicate = MiscUtils.allOf(predicates); } - public AllPlayerSelector() { + private AllPlayerSelector() { this.predicate = null; } + public static AllPlayerSelector all(List> predicates) { + return new AllPlayerSelector<>(predicates); + } + + public static AllPlayerSelector all() { + return new AllPlayerSelector<>(); + } + + public static PlayerSelectorFactory factory() { + return new Factory<>(); + } + @SuppressWarnings("unchecked") @Override public List get(CTX context) { @@ -48,18 +59,11 @@ public class AllPlayerSelector implements PlayerSelector implements PlayerSelectorFactory { + private static class Factory implements PlayerSelectorFactory { @Override public PlayerSelector create(Map args, Function, Condition> conditionFactory) { - - - return null; + return new AllPlayerSelector<>(); } } } diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/selector/PlayerSelector.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/selector/PlayerSelector.java index 1c70278d2..62535421a 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/selector/PlayerSelector.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/selector/PlayerSelector.java @@ -2,13 +2,10 @@ package net.momirealms.craftengine.core.plugin.context.selector; import net.momirealms.craftengine.core.entity.player.Player; import net.momirealms.craftengine.core.plugin.context.Context; -import net.momirealms.craftengine.core.util.Key; import java.util.List; public interface PlayerSelector { List get(CTX context); - - Key type(); } diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/selector/PlayerSelectorType.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/selector/PlayerSelectorType.java new file mode 100644 index 000000000..7689478cb --- /dev/null +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/selector/PlayerSelectorType.java @@ -0,0 +1,7 @@ +package net.momirealms.craftengine.core.plugin.context.selector; + +import net.momirealms.craftengine.core.plugin.context.Context; +import net.momirealms.craftengine.core.util.Key; + +public record PlayerSelectorType(Key id, PlayerSelectorFactory factory) { +} diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/selector/PlayerSelectors.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/selector/PlayerSelectors.java index ab5d4a7ca..31f2f2fc0 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/selector/PlayerSelectors.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/selector/PlayerSelectors.java @@ -15,44 +15,50 @@ import org.jetbrains.annotations.Nullable; import java.util.Map; import java.util.function.Function; -public class PlayerSelectors { - public static final Key ALL = Key.of("craftengine:all"); - public static final Key SELF = Key.of("craftengine:self"); +public final class PlayerSelectors { + public static final PlayerSelectorType ALL = register(Key.ce("all"), AllPlayerSelector.factory()); + public static final PlayerSelectorType SELF = register(Key.ce("self"), SelfPlayerSelector.factory()); - static { - register(ALL, new AllPlayerSelector.FactoryImpl<>()); - register(SELF, new SelfPlayerSelector.FactoryImpl<>()); - } + private PlayerSelectors() {} - public static void register(Key key, PlayerSelectorFactory factory) { - ((WritableRegistry>) BuiltInRegistries.PLAYER_SELECTOR_FACTORY) - .register(ResourceKey.create(Registries.PLAYER_SELECTOR_FACTORY.location(), key), factory); + public static PlayerSelectorType register(Key key, PlayerSelectorFactory factory) { + PlayerSelectorType type = new PlayerSelectorType<>(key, factory); + ((WritableRegistry>) BuiltInRegistries.PLAYER_SELECTOR_TYPE) + .register(ResourceKey.create(Registries.PLAYER_SELECTOR_TYPE.location(), key), type); + return type; } @Nullable public static PlayerSelector fromObject(Object object, Function, Condition> conditionFactory) { - if (object == null) return null; - if (object instanceof Map map) { - Map selectorMap = MiscUtils.castToMap(map, false); - return fromMap(selectorMap, conditionFactory); - } else if (object instanceof String target) { - if (target.equals("all") || target.equals("@a")) { - return new AllPlayerSelector<>(); - } else if (target.equals("self") || target.equals("@s")) { - return new SelfPlayerSelector<>(); + switch (object) { + case null -> { + return null; + } + case Map map -> { + Map selectorMap = MiscUtils.castToMap(map, false); + return fromMap(selectorMap, conditionFactory); + } + case String target -> { + if (target.equals("all") || target.equals("@a")) { + return AllPlayerSelector.all(); + } else if (target.equals("self") || target.equals("@s")) { + return SelfPlayerSelector.self(); + } + } + default -> { } } throw new LocalizedResourceConfigException("warning.config.selector.invalid_target", object.toString()); } + @SuppressWarnings("unchecked") public static PlayerSelector fromMap(Map map, Function, Condition> conditionFactory) { String type = ResourceConfigUtils.requireNonEmptyStringOrThrow(map.get("type"), "warning.config.selector.missing_type"); Key key = Key.withDefaultNamespace(type, Key.DEFAULT_NAMESPACE); - @SuppressWarnings("unchecked") - PlayerSelectorFactory factory = (PlayerSelectorFactory) BuiltInRegistries.PLAYER_SELECTOR_FACTORY.getValue(key); - if (factory == null) { + PlayerSelectorType selectorType = (PlayerSelectorType) BuiltInRegistries.PLAYER_SELECTOR_TYPE.getValue(key); + if (selectorType == null) { throw new LocalizedResourceConfigException("warning.config.selector.invalid_type", type); } - return factory.create(map, conditionFactory); + return selectorType.factory().create(map, conditionFactory); } } diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/selector/SelfPlayerSelector.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/selector/SelfPlayerSelector.java index 64024828c..9a6623bc2 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/selector/SelfPlayerSelector.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/selector/SelfPlayerSelector.java @@ -4,25 +4,28 @@ import net.momirealms.craftengine.core.entity.player.Player; import net.momirealms.craftengine.core.plugin.context.Condition; import net.momirealms.craftengine.core.plugin.context.Context; import net.momirealms.craftengine.core.plugin.context.parameter.DirectContextParameters; -import net.momirealms.craftengine.core.util.Key; import java.util.List; import java.util.Map; import java.util.function.Function; public class SelfPlayerSelector implements PlayerSelector { + private SelfPlayerSelector() {} + + public static SelfPlayerSelector self() { + return new SelfPlayerSelector<>(); + } @Override public List get(CTX context) { return List.of(context.getParameterOrThrow(DirectContextParameters.PLAYER)); } - @Override - public Key type() { - return PlayerSelectors.SELF; + public static PlayerSelectorFactory factory() { + return new Factory<>(); } - public static class FactoryImpl implements PlayerSelectorFactory { + private static class Factory implements PlayerSelectorFactory { @Override public PlayerSelector create(Map args, Function, Condition> conditionFactory) { return new SelfPlayerSelector<>(); diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/text/TextProviders.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/text/TextProviders.java index 8e60616f6..4b755f45e 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/text/TextProviders.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/text/TextProviders.java @@ -3,8 +3,8 @@ package net.momirealms.craftengine.core.plugin.context.text; import net.momirealms.craftengine.core.util.Key; public class TextProviders { - public static final Key PLAIN = Key.of("craftengine:plain"); - public static final Key TAG = Key.of("craftengine:tag"); + public static final Key PLAIN = Key.ce("plain"); + public static final Key TAG = Key.ce("tag"); public static TextProvider fromString(String string) { if (string.contains("<") && string.contains(">")) { diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/network/PayloadChannelKeys.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/network/PayloadChannelKeys.java index 9ffca844c..c507a965d 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/network/PayloadChannelKeys.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/network/PayloadChannelKeys.java @@ -3,5 +3,5 @@ package net.momirealms.craftengine.core.plugin.network; import net.momirealms.craftengine.core.util.Key; public final class PayloadChannelKeys { - public static final Key CRAFTENGINE_CHANNEL = Key.of("craftengine:payload"); // 进出 + public static final Key CRAFTENGINE_CHANNEL = Key.ce("payload"); // 进出 } 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 67b263860..df1242946 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 @@ -3,14 +3,13 @@ package net.momirealms.craftengine.core.registry; import net.momirealms.craftengine.core.block.CustomBlock; import net.momirealms.craftengine.core.block.behavior.BlockBehaviorType; import net.momirealms.craftengine.core.block.entity.BlockEntityType; -import net.momirealms.craftengine.core.block.entity.render.element.BlockEntityElementConfigFactory; import net.momirealms.craftengine.core.block.entity.render.element.BlockEntityElementConfigType; import net.momirealms.craftengine.core.block.properties.PropertyType; import net.momirealms.craftengine.core.entity.furniture.behavior.FurnitureBehaviorType; -import net.momirealms.craftengine.core.entity.furniture.element.FurnitureElementConfigFactory; -import net.momirealms.craftengine.core.entity.furniture.hitbox.FurnitureHitBoxConfigFactory; +import net.momirealms.craftengine.core.entity.furniture.element.FurnitureElementConfigType; +import net.momirealms.craftengine.core.entity.furniture.hitbox.FurnitureHitboxConfigType; import net.momirealms.craftengine.core.item.behavior.ItemBehaviorType; -import net.momirealms.craftengine.core.item.equipment.EquipmentFactory; +import net.momirealms.craftengine.core.item.equipment.EquipmentType; import net.momirealms.craftengine.core.item.processor.ItemProcessorType; import net.momirealms.craftengine.core.item.recipe.CustomSmithingTransformRecipe; import net.momirealms.craftengine.core.item.recipe.Recipe; @@ -18,15 +17,15 @@ import net.momirealms.craftengine.core.item.recipe.RecipeSerializer; import net.momirealms.craftengine.core.item.recipe.network.legacy.LegacyRecipe; import net.momirealms.craftengine.core.item.recipe.network.modern.display.RecipeDisplay; import net.momirealms.craftengine.core.item.recipe.network.modern.display.slot.SlotDisplay; -import net.momirealms.craftengine.core.item.recipe.remainder.CraftRemainderFactory; -import net.momirealms.craftengine.core.item.recipe.result.PostProcessor; +import net.momirealms.craftengine.core.item.recipe.remainder.CraftRemainderType; +import net.momirealms.craftengine.core.item.recipe.result.PostProcessorType; import net.momirealms.craftengine.core.item.updater.ItemUpdaterType; import net.momirealms.craftengine.core.loot.entry.LootEntryContainerType; import net.momirealms.craftengine.core.loot.function.ApplyBonusCountFunction; import net.momirealms.craftengine.core.loot.function.LootFunctionType; import net.momirealms.craftengine.core.pack.conflict.matcher.PathMatcherType; import net.momirealms.craftengine.core.pack.conflict.resolution.ResolutionType; -import net.momirealms.craftengine.core.pack.host.ResourcePackHostFactory; +import net.momirealms.craftengine.core.pack.host.ResourcePackHostType; import net.momirealms.craftengine.core.pack.model.definition.ItemModelType; import net.momirealms.craftengine.core.pack.model.definition.condition.ConditionPropertyType; import net.momirealms.craftengine.core.pack.model.definition.rangedisptach.RangeDispatchPropertyType; @@ -38,7 +37,7 @@ import net.momirealms.craftengine.core.plugin.context.Context; import net.momirealms.craftengine.core.plugin.context.condition.ConditionFactory; import net.momirealms.craftengine.core.plugin.context.function.FunctionFactory; import net.momirealms.craftengine.core.plugin.context.number.NumberProviderType; -import net.momirealms.craftengine.core.plugin.context.selector.PlayerSelectorFactory; +import net.momirealms.craftengine.core.plugin.context.selector.PlayerSelectorType; import net.momirealms.craftengine.core.plugin.network.ModPacket; import net.momirealms.craftengine.core.plugin.network.codec.NetworkCodec; import net.momirealms.craftengine.core.util.FriendlyByteBuf; @@ -65,22 +64,22 @@ public final class BuiltInRegistries { public static final Registry PATH_MATCHER_TYPE = createConstantBoundRegistry(Registries.PATH_MATCHER_TYPE, 16); public static final Registry RESOLUTION_TYPE = createConstantBoundRegistry(Registries.RESOLUTION_TYPE, 16); public static final Registry SMITHING_RESULT_PROCESSOR_FACTORY = createConstantBoundRegistry(Registries.SMITHING_RESULT_PROCESSOR_FACTORY, 16); - public static final Registry RESOURCE_PACK_HOST_FACTORY = createConstantBoundRegistry(Registries.RESOURCE_PACK_HOST_FACTORY, 16); + public static final Registry RESOURCE_PACK_HOST_FACTORY = createConstantBoundRegistry(Registries.RESOURCE_PACK_HOST_FACTORY, 16); public static final Registry> EVENT_FUNCTION_FACTORY = createConstantBoundRegistry(Registries.EVENT_FUNCTION_FACTORY, 128); public static final Registry> EVENT_CONDITION_FACTORY = createConstantBoundRegistry(Registries.EVENT_CONDITION_FACTORY, 128); - public static final Registry> PLAYER_SELECTOR_FACTORY = createConstantBoundRegistry(Registries.PLAYER_SELECTOR_FACTORY, 16); - public static final Registry EQUIPMENT_FACTORY = createConstantBoundRegistry(Registries.EQUIPMENT_FACTORY, 8); + public static final Registry> PLAYER_SELECTOR_TYPE = createConstantBoundRegistry(Registries.PLAYER_SELECTOR_TYPE, 16); + public static final Registry> EQUIPMENT_TYPE = createConstantBoundRegistry(Registries.EQUIPMENT_TYPE, 8); public static final Registry> SLOT_DISPLAY_TYPE = createConstantBoundRegistry(Registries.SLOT_DISPLAY_TYPE, 16); public static final Registry> RECIPE_DISPLAY_TYPE = createConstantBoundRegistry(Registries.RECIPE_DISPLAY_TYPE, 16); public static final Registry> LEGACY_RECIPE_TYPE = createConstantBoundRegistry(Registries.LEGACY_RECIPE_TYPE, 16); - public static final Registry> RECIPE_POST_PROCESSOR_TYPE = createConstantBoundRegistry(Registries.RECIPE_POST_PROCESSOR_TYPE, 16); + public static final Registry> RECIPE_POST_PROCESSOR_TYPE = createConstantBoundRegistry(Registries.RECIPE_POST_PROCESSOR_TYPE, 16); 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> 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> CRAFT_REMAINDER_TYPE = createConstantBoundRegistry(Registries.CRAFT_REMAINDER_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); public static final Registry> FURNITURE_BEHAVIOR_TYPE = createConstantBoundRegistry(Registries.FURNITURE_BEHAVIOR_TYPE, 32); private BuiltInRegistries() {} 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 414adc24d..b17ddfe9b 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 @@ -3,14 +3,13 @@ package net.momirealms.craftengine.core.registry; import net.momirealms.craftengine.core.block.CustomBlock; import net.momirealms.craftengine.core.block.behavior.BlockBehaviorType; import net.momirealms.craftengine.core.block.entity.BlockEntityType; -import net.momirealms.craftengine.core.block.entity.render.element.BlockEntityElementConfigFactory; import net.momirealms.craftengine.core.block.entity.render.element.BlockEntityElementConfigType; import net.momirealms.craftengine.core.block.properties.PropertyType; import net.momirealms.craftengine.core.entity.furniture.behavior.FurnitureBehaviorType; -import net.momirealms.craftengine.core.entity.furniture.element.FurnitureElementConfigFactory; -import net.momirealms.craftengine.core.entity.furniture.hitbox.FurnitureHitBoxConfigFactory; +import net.momirealms.craftengine.core.entity.furniture.element.FurnitureElementConfigType; +import net.momirealms.craftengine.core.entity.furniture.hitbox.FurnitureHitboxConfigType; import net.momirealms.craftengine.core.item.behavior.ItemBehaviorType; -import net.momirealms.craftengine.core.item.equipment.EquipmentFactory; +import net.momirealms.craftengine.core.item.equipment.EquipmentType; import net.momirealms.craftengine.core.item.processor.ItemProcessorType; import net.momirealms.craftengine.core.item.recipe.CustomSmithingTransformRecipe; import net.momirealms.craftengine.core.item.recipe.Recipe; @@ -18,15 +17,15 @@ import net.momirealms.craftengine.core.item.recipe.RecipeSerializer; import net.momirealms.craftengine.core.item.recipe.network.legacy.LegacyRecipe; import net.momirealms.craftengine.core.item.recipe.network.modern.display.RecipeDisplay; import net.momirealms.craftengine.core.item.recipe.network.modern.display.slot.SlotDisplay; -import net.momirealms.craftengine.core.item.recipe.remainder.CraftRemainderFactory; -import net.momirealms.craftengine.core.item.recipe.result.PostProcessor; +import net.momirealms.craftengine.core.item.recipe.remainder.CraftRemainderType; +import net.momirealms.craftengine.core.item.recipe.result.PostProcessorType; import net.momirealms.craftengine.core.item.updater.ItemUpdaterType; import net.momirealms.craftengine.core.loot.entry.LootEntryContainerType; import net.momirealms.craftengine.core.loot.function.ApplyBonusCountFunction; import net.momirealms.craftengine.core.loot.function.LootFunctionType; import net.momirealms.craftengine.core.pack.conflict.matcher.PathMatcherType; import net.momirealms.craftengine.core.pack.conflict.resolution.ResolutionType; -import net.momirealms.craftengine.core.pack.host.ResourcePackHostFactory; +import net.momirealms.craftengine.core.pack.host.ResourcePackHostType; import net.momirealms.craftengine.core.pack.model.definition.ItemModelType; import net.momirealms.craftengine.core.pack.model.definition.condition.ConditionPropertyType; import net.momirealms.craftengine.core.pack.model.definition.rangedisptach.RangeDispatchPropertyType; @@ -38,7 +37,7 @@ import net.momirealms.craftengine.core.plugin.context.Context; import net.momirealms.craftengine.core.plugin.context.condition.ConditionFactory; import net.momirealms.craftengine.core.plugin.context.function.FunctionFactory; import net.momirealms.craftengine.core.plugin.context.number.NumberProviderType; -import net.momirealms.craftengine.core.plugin.context.selector.PlayerSelectorFactory; +import net.momirealms.craftengine.core.plugin.context.selector.PlayerSelectorType; import net.momirealms.craftengine.core.plugin.network.ModPacket; import net.momirealms.craftengine.core.plugin.network.codec.NetworkCodec; import net.momirealms.craftengine.core.util.FriendlyByteBuf; @@ -69,21 +68,21 @@ public final class Registries { public static final ResourceKey> PATH_MATCHER_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("path_matcher_type")); public static final ResourceKey> RESOLUTION_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("resolution_type")); public static final ResourceKey> SMITHING_RESULT_PROCESSOR_FACTORY = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("smithing_result_processor_factory")); - public static final ResourceKey> RESOURCE_PACK_HOST_FACTORY = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("resource_pack_host_factory")); + public static final ResourceKey> RESOURCE_PACK_HOST_FACTORY = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("resource_pack_host_factory")); public static final ResourceKey>> EVENT_FUNCTION_FACTORY = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("event_function_factory")); public static final ResourceKey>> EVENT_CONDITION_FACTORY = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("event_condition_factory")); - public static final ResourceKey>> PLAYER_SELECTOR_FACTORY = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("player_selector_factory")); - public static final ResourceKey> EQUIPMENT_FACTORY = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("equipment_factory")); + public static final ResourceKey>> PLAYER_SELECTOR_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("player_selector_type")); + public static final ResourceKey>> EQUIPMENT_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("equipment_type")); public static final ResourceKey>> SLOT_DISPLAY_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("slot_display_type")); public static final ResourceKey>> RECIPE_DISPLAY_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("recipe_display_type")); public static final ResourceKey>> LEGACY_RECIPE_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("legacy_recipe_type")); - public static final ResourceKey>> RECIPE_POST_PROCESSOR_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("recipe_post_processor_type")); + public static final ResourceKey>> RECIPE_POST_PROCESSOR_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("recipe_post_processor_type")); 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>> 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>> CRAFT_REMAINDER_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("craft_remainder_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")); public static final ResourceKey>> FURNITURE_BEHAVIOR_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("furniture_behavior_type")); } From bb413d1264847939346a2fa3aeb1082c72bc284f Mon Sep 17 00:00:00 2001 From: XiaoMoMi Date: Sun, 28 Dec 2025 03:08:40 +0800 Subject: [PATCH 7/8] =?UTF-8?q?=E6=B8=85=E7=90=86=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bukkit/block/behavior/BouncingBlockBehavior.java | 1 - .../bukkit/block/behavior/ChangeOverTimeBlockBehavior.java | 5 ++++- .../bukkit/block/behavior/ConcretePowderBlockBehavior.java | 1 - .../bukkit/block/behavior/DoubleHighBlockBehavior.java | 1 - .../bukkit/block/behavior/DropExperienceBlockBehavior.java | 1 - .../FaceAttachedHorizontalDirectionalBlockBehavior.java | 5 ++++- .../bukkit/block/behavior/FallingBlockBehavior.java | 1 - .../bukkit/block/behavior/FenceGateBlockBehavior.java | 5 ++++- .../bukkit/block/behavior/HangableBlockBehavior.java | 1 - .../bukkit/block/behavior/HangingBlockBehavior.java | 1 - .../bukkit/block/behavior/LiquidFlowableBlockBehavior.java | 1 - .../bukkit/block/behavior/MultiHighBlockBehavior.java | 1 - .../bukkit/block/behavior/NearLiquidBlockBehavior.java | 1 - .../bukkit/block/behavior/OnLiquidBlockBehavior.java | 1 - .../bukkit/block/behavior/PressurePlateBlockBehavior.java | 5 ++++- .../bukkit/block/behavior/SimpleParticleBlockBehavior.java | 1 - .../bukkit/block/behavior/SimpleStorageBlockBehavior.java | 1 - .../bukkit/block/behavior/StairsBlockBehavior.java | 5 ++++- .../bukkit/block/behavior/StrippableBlockBehavior.java | 1 - .../bukkit/block/behavior/SturdyBaseBlockBehavior.java | 1 - .../bukkit/block/behavior/SurfaceSpreadingBlockBehavior.java | 5 ++++- .../bukkit/block/behavior/ToggleableLampBlockBehavior.java | 1 - .../bukkit/block/behavior/VerticalCropBlockBehavior.java | 1 - .../block/behavior/WallTorchParticleBlockBehavior.java | 1 - .../entity/furniture/hitbox/BukkitFurnitureHitboxTypes.java | 1 - 25 files changed, 24 insertions(+), 25 deletions(-) diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/BouncingBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/BouncingBlockBehavior.java index 26432f814..d369738ea 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/BouncingBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/BouncingBlockBehavior.java @@ -9,7 +9,6 @@ import net.momirealms.craftengine.core.block.behavior.BlockBehavior; import net.momirealms.craftengine.core.block.behavior.BlockBehaviorFactory; import net.momirealms.craftengine.core.block.behavior.FallOnBlockBehavior; import net.momirealms.craftengine.core.plugin.CraftEngine; -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.core.world.Vec3d; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/ChangeOverTimeBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/ChangeOverTimeBlockBehavior.java index b5c198378..290df96d0 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/ChangeOverTimeBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/ChangeOverTimeBlockBehavior.java @@ -8,7 +8,10 @@ import net.momirealms.craftengine.core.block.UpdateOption; import net.momirealms.craftengine.core.block.behavior.BlockBehavior; import net.momirealms.craftengine.core.block.behavior.BlockBehaviorFactory; import net.momirealms.craftengine.core.plugin.CraftEngine; -import net.momirealms.craftengine.core.util.*; +import net.momirealms.craftengine.core.util.LazyReference; +import net.momirealms.craftengine.core.util.MiscUtils; +import net.momirealms.craftengine.core.util.RandomUtils; +import net.momirealms.craftengine.core.util.ResourceConfigUtils; import net.momirealms.sparrow.nbt.CompoundTag; import java.util.List; 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 d3b285d48..856603778 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 @@ -16,7 +16,6 @@ import net.momirealms.craftengine.core.block.behavior.BlockBehaviorFactory; import net.momirealms.craftengine.core.block.parser.BlockStateParser; import net.momirealms.craftengine.core.plugin.CraftEngine; import net.momirealms.craftengine.core.util.Direction; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.LazyReference; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import net.momirealms.craftengine.core.world.context.BlockPlaceContext; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/DoubleHighBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/DoubleHighBlockBehavior.java index 616ab0c10..04884cd6d 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/DoubleHighBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/DoubleHighBlockBehavior.java @@ -17,7 +17,6 @@ import net.momirealms.craftengine.core.block.properties.Property; import net.momirealms.craftengine.core.block.properties.type.DoubleBlockHalf; import net.momirealms.craftengine.core.entity.player.InteractionHand; import net.momirealms.craftengine.core.item.Item; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import net.momirealms.craftengine.core.world.*; import net.momirealms.craftengine.core.world.context.BlockPlaceContext; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/DropExperienceBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/DropExperienceBlockBehavior.java index 3f93dce96..7cdeb265f 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/DropExperienceBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/DropExperienceBlockBehavior.java @@ -19,7 +19,6 @@ import net.momirealms.craftengine.core.plugin.context.ContextHolder; import net.momirealms.craftengine.core.plugin.context.number.NumberProvider; import net.momirealms.craftengine.core.plugin.context.number.NumberProviders; import net.momirealms.craftengine.core.plugin.context.parameter.DirectContextParameters; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.MiscUtils; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import net.momirealms.craftengine.core.world.BlockPos; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/FaceAttachedHorizontalDirectionalBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/FaceAttachedHorizontalDirectionalBlockBehavior.java index ac56abaea..f788907fe 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/FaceAttachedHorizontalDirectionalBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/FaceAttachedHorizontalDirectionalBlockBehavior.java @@ -12,7 +12,10 @@ import net.momirealms.craftengine.core.block.behavior.BlockBehavior; import net.momirealms.craftengine.core.block.behavior.BlockBehaviorFactory; import net.momirealms.craftengine.core.block.properties.Property; import net.momirealms.craftengine.core.block.properties.type.AnchorType; -import net.momirealms.craftengine.core.util.*; +import net.momirealms.craftengine.core.util.Direction; +import net.momirealms.craftengine.core.util.HorizontalDirection; +import net.momirealms.craftengine.core.util.ResourceConfigUtils; +import net.momirealms.craftengine.core.util.Tuple; import net.momirealms.craftengine.core.world.context.BlockPlaceContext; import org.jetbrains.annotations.Nullable; 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 2c4ff1507..ae616ef9e 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 @@ -13,7 +13,6 @@ import net.momirealms.craftengine.core.block.ImmutableBlockState; import net.momirealms.craftengine.core.block.behavior.BlockBehavior; import net.momirealms.craftengine.core.block.behavior.BlockBehaviorFactory; import net.momirealms.craftengine.core.sound.SoundData; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import net.momirealms.craftengine.core.world.Vec3d; import net.momirealms.craftengine.core.world.WorldPosition; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/FenceGateBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/FenceGateBlockBehavior.java index 3421c97ab..264d0f6ec 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/FenceGateBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/FenceGateBlockBehavior.java @@ -23,7 +23,10 @@ import net.momirealms.craftengine.core.entity.player.Player; import net.momirealms.craftengine.core.item.Item; import net.momirealms.craftengine.core.item.ItemKeys; import net.momirealms.craftengine.core.sound.SoundData; -import net.momirealms.craftengine.core.util.*; +import net.momirealms.craftengine.core.util.Direction; +import net.momirealms.craftengine.core.util.HorizontalDirection; +import net.momirealms.craftengine.core.util.ResourceConfigUtils; +import net.momirealms.craftengine.core.util.VersionHelper; import net.momirealms.craftengine.core.world.BlockPos; import net.momirealms.craftengine.core.world.Vec3d; import net.momirealms.craftengine.core.world.World; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/HangableBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/HangableBlockBehavior.java index 5b1fffc9f..b20d3c210 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/HangableBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/HangableBlockBehavior.java @@ -13,7 +13,6 @@ import net.momirealms.craftengine.core.block.behavior.BlockBehaviorFactory; import net.momirealms.craftengine.core.block.behavior.IsPathFindableBlockBehavior; import net.momirealms.craftengine.core.block.properties.BooleanProperty; 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.world.context.BlockPlaceContext; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/HangingBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/HangingBlockBehavior.java index da39c5243..faa496f43 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/HangingBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/HangingBlockBehavior.java @@ -5,7 +5,6 @@ import net.momirealms.craftengine.bukkit.util.LocationUtils; import net.momirealms.craftengine.core.block.CustomBlock; import net.momirealms.craftengine.core.block.behavior.BlockBehavior; import net.momirealms.craftengine.core.block.behavior.BlockBehaviorFactory; -import net.momirealms.craftengine.core.util.Key; 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/LiquidFlowableBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/LiquidFlowableBlockBehavior.java index 465bc0ecf..d9f613cc7 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/LiquidFlowableBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/LiquidFlowableBlockBehavior.java @@ -7,7 +7,6 @@ import net.momirealms.craftengine.core.block.UpdateOption; import net.momirealms.craftengine.core.block.behavior.BlockBehavior; import net.momirealms.craftengine.core.block.behavior.BlockBehaviorFactory; import net.momirealms.craftengine.core.block.behavior.PlaceLiquidBlockBehavior; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.world.WorldEvents; import java.util.Map; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/MultiHighBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/MultiHighBlockBehavior.java index 1874af875..b0cc3c124 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/MultiHighBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/MultiHighBlockBehavior.java @@ -18,7 +18,6 @@ import net.momirealms.craftengine.core.block.properties.IntegerProperty; import net.momirealms.craftengine.core.entity.player.InteractionHand; import net.momirealms.craftengine.core.item.Item; 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.world.*; import net.momirealms.craftengine.core.world.context.BlockPlaceContext; 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 b348b485c..955325d9c 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 @@ -9,7 +9,6 @@ import net.momirealms.craftengine.core.block.CustomBlock; import net.momirealms.craftengine.core.block.ImmutableBlockState; import net.momirealms.craftengine.core.block.behavior.BlockBehavior; import net.momirealms.craftengine.core.block.behavior.BlockBehaviorFactory; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.MiscUtils; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import net.momirealms.craftengine.core.world.BlockPos; 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 abcc5d6c9..708729413 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 @@ -9,7 +9,6 @@ import net.momirealms.craftengine.core.block.CustomBlock; import net.momirealms.craftengine.core.block.ImmutableBlockState; import net.momirealms.craftengine.core.block.behavior.BlockBehavior; import net.momirealms.craftengine.core.block.behavior.BlockBehaviorFactory; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.MiscUtils; import net.momirealms.craftengine.core.util.ResourceConfigUtils; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/PressurePlateBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/PressurePlateBlockBehavior.java index c2bd9c754..6e283a98d 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/PressurePlateBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/PressurePlateBlockBehavior.java @@ -16,7 +16,10 @@ import net.momirealms.craftengine.core.block.behavior.BlockBehavior; import net.momirealms.craftengine.core.block.behavior.BlockBehaviorFactory; import net.momirealms.craftengine.core.block.properties.Property; import net.momirealms.craftengine.core.sound.SoundData; -import net.momirealms.craftengine.core.util.*; +import net.momirealms.craftengine.core.util.Direction; +import net.momirealms.craftengine.core.util.PressurePlateSensitivity; +import net.momirealms.craftengine.core.util.ResourceConfigUtils; +import net.momirealms.craftengine.core.util.VersionHelper; import net.momirealms.craftengine.core.world.World; import net.momirealms.craftengine.core.world.WorldEvents; import org.bukkit.GameEvent; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SimpleParticleBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SimpleParticleBlockBehavior.java index 57640bb86..64b5671b5 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SimpleParticleBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SimpleParticleBlockBehavior.java @@ -10,7 +10,6 @@ import net.momirealms.craftengine.core.block.behavior.EntityBlockBehavior; import net.momirealms.craftengine.core.block.entity.BlockEntity; import net.momirealms.craftengine.core.block.entity.BlockEntityType; import net.momirealms.craftengine.core.block.entity.tick.BlockEntityTicker; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import net.momirealms.craftengine.core.world.BlockPos; import net.momirealms.craftengine.core.world.CEWorld; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SimpleStorageBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SimpleStorageBlockBehavior.java index 758e96ac0..139e26017 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SimpleStorageBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SimpleStorageBlockBehavior.java @@ -20,7 +20,6 @@ import net.momirealms.craftengine.core.entity.player.InteractionResult; import net.momirealms.craftengine.core.plugin.context.PlayerOptionalContext; import net.momirealms.craftengine.core.sound.SoundData; import net.momirealms.craftengine.core.util.AdventureHelper; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.MiscUtils; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import net.momirealms.craftengine.core.world.BlockPos; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/StairsBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/StairsBlockBehavior.java index 58dbcf11e..625a11aa7 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/StairsBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/StairsBlockBehavior.java @@ -12,7 +12,10 @@ import net.momirealms.craftengine.core.block.behavior.BlockBehaviorFactory; import net.momirealms.craftengine.core.block.properties.Property; import net.momirealms.craftengine.core.block.properties.type.SingleBlockHalf; import net.momirealms.craftengine.core.block.properties.type.StairsShape; -import net.momirealms.craftengine.core.util.*; +import net.momirealms.craftengine.core.util.Direction; +import net.momirealms.craftengine.core.util.HorizontalDirection; +import net.momirealms.craftengine.core.util.ResourceConfigUtils; +import net.momirealms.craftengine.core.util.VersionHelper; import net.momirealms.craftengine.core.world.BlockPos; import net.momirealms.craftengine.core.world.context.BlockPlaceContext; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/StrippableBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/StrippableBlockBehavior.java index d7cf461e1..61a2c1c6f 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/StrippableBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/StrippableBlockBehavior.java @@ -5,7 +5,6 @@ import net.momirealms.craftengine.core.block.CustomBlock; import net.momirealms.craftengine.core.block.behavior.BlockBehavior; import net.momirealms.craftengine.core.block.behavior.BlockBehaviorFactory; import net.momirealms.craftengine.core.plugin.CraftEngine; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.LazyReference; import net.momirealms.craftengine.core.util.MiscUtils; import net.momirealms.craftengine.core.util.ResourceConfigUtils; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SturdyBaseBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SturdyBaseBlockBehavior.java index 4c3a23a3c..44e4716d5 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SturdyBaseBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SturdyBaseBlockBehavior.java @@ -9,7 +9,6 @@ import net.momirealms.craftengine.core.block.ImmutableBlockState; import net.momirealms.craftengine.core.block.behavior.BlockBehavior; import net.momirealms.craftengine.core.block.behavior.BlockBehaviorFactory; 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; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SurfaceSpreadingBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SurfaceSpreadingBlockBehavior.java index 7965e89a6..aed152726 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SurfaceSpreadingBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SurfaceSpreadingBlockBehavior.java @@ -11,7 +11,10 @@ import net.momirealms.craftengine.core.block.UpdateOption; import net.momirealms.craftengine.core.block.behavior.BlockBehavior; import net.momirealms.craftengine.core.block.behavior.BlockBehaviorFactory; import net.momirealms.craftengine.core.block.properties.Property; -import net.momirealms.craftengine.core.util.*; +import net.momirealms.craftengine.core.util.LazyReference; +import net.momirealms.craftengine.core.util.RandomUtils; +import net.momirealms.craftengine.core.util.ResourceConfigUtils; +import net.momirealms.craftengine.core.util.VersionHelper; import org.jetbrains.annotations.Nullable; import java.util.Map; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/ToggleableLampBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/ToggleableLampBlockBehavior.java index d950ca442..c7bf8792e 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/ToggleableLampBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/ToggleableLampBlockBehavior.java @@ -10,7 +10,6 @@ import net.momirealms.craftengine.core.block.behavior.BlockBehavior; import net.momirealms.craftengine.core.block.behavior.BlockBehaviorFactory; import net.momirealms.craftengine.core.block.properties.Property; import net.momirealms.craftengine.core.entity.player.InteractionResult; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import net.momirealms.craftengine.core.world.context.UseOnContext; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/VerticalCropBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/VerticalCropBlockBehavior.java index fadc5f6f1..2d3f4eb3e 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/VerticalCropBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/VerticalCropBlockBehavior.java @@ -12,7 +12,6 @@ import net.momirealms.craftengine.core.block.behavior.BlockBehavior; import net.momirealms.craftengine.core.block.behavior.BlockBehaviorFactory; import net.momirealms.craftengine.core.block.properties.IntegerProperty; import net.momirealms.craftengine.core.block.properties.Property; -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.VersionHelper; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/WallTorchParticleBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/WallTorchParticleBlockBehavior.java index 1edba71fa..2b4f87592 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/WallTorchParticleBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/WallTorchParticleBlockBehavior.java @@ -13,7 +13,6 @@ import net.momirealms.craftengine.core.block.entity.tick.BlockEntityTicker; import net.momirealms.craftengine.core.block.properties.Property; import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigException; import net.momirealms.craftengine.core.util.HorizontalDirection; -import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import net.momirealms.craftengine.core.world.BlockPos; import net.momirealms.craftengine.core.world.CEWorld; 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 70bd774d2..ab0bc5ab5 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 @@ -3,7 +3,6 @@ package net.momirealms.craftengine.bukkit.entity.furniture.hitbox; import net.momirealms.craftengine.core.entity.furniture.hitbox.FurnitureHitBoxes; import net.momirealms.craftengine.core.entity.furniture.hitbox.FurnitureHitboxConfigType; import net.momirealms.craftengine.core.util.Key; -import net.momirealms.craftengine.core.util.VersionHelper; public final class BukkitFurnitureHitboxTypes extends FurnitureHitBoxes { public static final FurnitureHitboxConfigType INTERACTION = register(Key.ce("interaction"), InteractionFurnitureHitboxConfig.FACTORY); From 5906cbd31d8188a2e4b294cd913a83f6c250634d Mon Sep 17 00:00:00 2001 From: XiaoMoMi Date: Sun, 28 Dec 2025 04:30:53 +0800 Subject: [PATCH 8/8] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=97=A0=E7=94=A8?= =?UTF-8?q?=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/translations/de.yml | 5 - .../src/main/resources/translations/en.yml | 5 - .../src/main/resources/translations/es.yml | 7 - .../src/main/resources/translations/fr_fr.yml | 5 - .../src/main/resources/translations/ru_ru.yml | 5 - .../src/main/resources/translations/tr.yml | 5 - .../src/main/resources/translations/zh_cn.yml | 5 - .../core/block/entity/BlockEntityTypes.java | 2 +- .../element/BlockEntityElementConfigs.java | 2 +- .../core/block/properties/Properties.java | 2 +- .../behavior/FurnitureBehaviors.java | 4 +- .../element/FurnitureElementConfigs.java | 2 +- .../furniture/hitbox/FurnitureHitBoxes.java | 2 +- .../core/item/behavior/EmptyItemBehavior.java | 6 +- .../processor/lore/DynamicLoreProcessor.java | 4 +- .../core/item/processor/lore/LoreFactory.java | 11 ++ .../item/processor/lore/LoreProcessor.java | 10 +- .../lore/OverwritableLoreProcessor.java | 4 +- .../recipe/CustomSmithingTransformRecipe.java | 76 ++++------- .../core/item/recipe/RecipeSerializers.java | 2 +- .../craftengine/core/loot/LootTable.java | 2 +- .../craftengine/core/loot/VanillaLoot.java | 2 +- .../loot/entry/ExpLootEntryContainer.java | 4 +- .../function/ApplyBonusCountFunction.java | 115 +---------------- .../core/loot/function/formula/CropDrops.java | 37 ++++++ .../core/loot/function/formula/Formula.java | 6 + .../loot/function/formula/FormulaFactory.java | 8 ++ .../loot/function/formula/FormulaType.java | 6 + .../core/loot/function/formula/Formulas.java | 36 ++++++ .../core/loot/function/formula/OreDrops.java | 33 +++++ .../core/pack/host/ResourcePackHosts.java | 6 +- .../pack/model/definition/tint/GrassTint.java | 3 +- .../core/plugin/context/CommonConditions.java | 71 +++++----- .../core/plugin/context/CommonFunctions.java | 121 +++++++++--------- .../core/plugin/context/ConditionType.java | 7 + .../core/plugin/context/FunctionType.java | 7 + .../context/condition/CommonConditions.java | 36 ------ .../function/AbstractConditionalFunction.java | 2 +- .../context/function/ActionBarFunction.java | 6 +- .../context/function/BreakBlockFunction.java | 6 +- .../context/function/CancelEventFunction.java | 6 +- .../context/function/ClearItemFunction.java | 6 +- .../function/CloseInventoryFunction.java | 6 +- .../context/function/CommandFunction.java | 6 +- .../context/function/CommonFunctions.java | 55 -------- .../function/CycleBlockPropertyFunction.java | 6 +- .../context/function/DamageFunction.java | 6 +- .../context/function/DamageItemFunction.java | 6 +- .../context/function/DropLootFunction.java | 6 +- .../context/function/IfElseFunction.java | 10 +- .../context/function/LevelerExpFunction.java | 6 +- .../function/MerchantTradeFunction.java | 6 +- .../context/function/MessageFunction.java | 6 +- .../function/MythicMobsSkillFunction.java | 6 +- .../context/function/OpenWindowFunction.java | 6 +- .../context/function/ParticleFunction.java | 6 +- .../context/function/PlaceBlockFunction.java | 6 +- .../context/function/PlaySoundFunction.java | 6 +- .../function/PlayTotemAnimationFunction.java | 6 +- .../function/PotionEffectFunction.java | 6 +- .../function/RemoveCooldownFunction.java | 6 +- .../function/RemoveEntityFunction.java | 6 +- .../function/RemoveFurnitureFunction.java | 6 +- .../function/RemovePotionEffectFunction.java | 6 +- .../function/ReplaceFurnitureFunction.java | 6 +- .../function/RotateFurnitureFunction.java | 6 +- .../plugin/context/function/RunFunction.java | 6 +- .../context/function/SetCooldownFunction.java | 6 +- .../context/function/SetCountFunction.java | 6 +- .../context/function/SetExpFunction.java | 6 +- .../context/function/SetFoodFunction.java | 6 +- .../context/function/SetLevelFunction.java | 6 +- .../function/SetSaturationFunction.java | 6 +- .../context/function/SetVariableFunction.java | 6 +- .../function/SpawnFurnitureFunction.java | 6 +- .../context/function/SwingHandFunction.java | 6 +- .../context/function/TeleportFunction.java | 6 +- .../context/function/TitleFunction.java | 6 +- .../context/function/ToastFunction.java | 6 +- .../function/TransformBlockFunction.java | 6 +- .../function/UpdateBlockPropertyFunction.java | 6 +- .../function/UpdateInteractionFunction.java | 6 +- .../plugin/context/function/WhenFunction.java | 10 +- .../context/selector/PlayerSelectors.java | 2 +- .../core/registry/BuiltInRegistries.java | 40 +++--- .../craftengine/core/registry/Registries.java | 40 +++--- gradle.properties | 2 +- 87 files changed, 579 insertions(+), 498 deletions(-) create mode 100644 core/src/main/java/net/momirealms/craftengine/core/item/processor/lore/LoreFactory.java create mode 100644 core/src/main/java/net/momirealms/craftengine/core/loot/function/formula/CropDrops.java create mode 100644 core/src/main/java/net/momirealms/craftengine/core/loot/function/formula/Formula.java create mode 100644 core/src/main/java/net/momirealms/craftengine/core/loot/function/formula/FormulaFactory.java create mode 100644 core/src/main/java/net/momirealms/craftengine/core/loot/function/formula/FormulaType.java create mode 100644 core/src/main/java/net/momirealms/craftengine/core/loot/function/formula/Formulas.java create mode 100644 core/src/main/java/net/momirealms/craftengine/core/loot/function/formula/OreDrops.java create mode 100644 core/src/main/java/net/momirealms/craftengine/core/plugin/context/ConditionType.java create mode 100644 core/src/main/java/net/momirealms/craftengine/core/plugin/context/FunctionType.java delete mode 100644 core/src/main/java/net/momirealms/craftengine/core/plugin/context/condition/CommonConditions.java delete mode 100644 core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/CommonFunctions.java diff --git a/common-files/src/main/resources/translations/de.yml b/common-files/src/main/resources/translations/de.yml index ba775a647..4bd555848 100644 --- a/common-files/src/main/resources/translations/de.yml +++ b/common-files/src/main/resources/translations/de.yml @@ -309,9 +309,6 @@ warning.config.emoji.invalid_image: "Problem in Datei gefunden - warning.config.advancement.duplicate: "Problem in Datei gefunden - Doppelter Advancement ''. Bitte prüfe, ob dieselbe Konfiguration in anderen Dateien vorhanden ist." warning.config.loot_table.missing_pools: "Problem in Datei gefunden - '' hat eine falsch konfigurierte Loot-Table, bei der das erforderliche 'pools'-Argument fehlt." warning.config.loot_table.invalid_pools_type: "Problem in Datei gefunden - '' hat eine falsch konfigurierte Loot-Table, 'pools' sollte eine String/Map-Liste sein, aktueller Typ: ''." -warning.config.loot_table.invalid_conditions_type: "Problem in Datei gefunden - '' hat eine falsch konfigurierte Loot-Table, 'conditions' sollte eine Map-Liste sein, aktueller Typ: ''." -warning.config.loot_table.invalid_functions_type: "Problem in Datei gefunden - '' hat eine falsch konfigurierte Loot-Table, 'functions' sollte eine Map-Liste sein, aktueller Typ: ''." -warning.config.loot_table.invalid_entries_type: "Problem in Datei gefunden - '' hat eine falsch konfigurierte Loot-Table, 'entries' sollte eine Map-Liste sein, aktueller Typ: ''." warning.config.loot_table.function.missing_type: "Problem in Datei gefunden - '' hat eine falsch konfigurierte Loot-Table, bei einer der Funktionen fehlt das erforderliche 'type'-Argument." warning.config.loot_table.function.invalid_type: "Problem in Datei gefunden - '' hat eine falsch konfigurierte Loot-Table, eine der Funktionen verwendet einen ungültigen Funktionstyp ''." warning.config.loot_table.function.apply_bonus.missing_enchantment: "Problem in Datei gefunden - '' hat eine falsch konfigurierte Loot-Table, bei der Funktion 'apply_bonus' fehlt das erforderliche 'enchantment'-Argument." @@ -322,8 +319,6 @@ warning.config.loot_table.entry.missing_type: "Problem in Datei warning.config.loot_table.entry.invalid_type: "Problem in Datei gefunden - '' hat eine falsch konfigurierte Loot-Table, einer der Einträge verwendet einen ungültigen Eintragstyp ''." warning.config.loot_table.entry.exp.missing_count: "Problem in Datei gefunden - '' hat eine falsch konfigurierte Loot-Table, beim Eintrag 'exp' fehlt das erforderliche 'count'-Argument." warning.config.loot_table.entry.item.missing_item: "Problem in Datei gefunden - '' hat eine falsch konfigurierte Loot-Table, beim Eintrag 'item' fehlt das erforderliche 'item'-Argument." -warning.config.loot_table.condition.missing_type: "Problem in Datei gefunden - '' hat eine falsch konfigurierte Loot-Table, bei einer der Bedingungen fehlt das erforderliche 'type'-Argument." -warning.config.loot_table.condition.invalid_type: "Problem in Datei gefunden - '' hat eine falsch konfigurierte Loot-Table, eine der Bedingungen verwendet einen ungültigen Bedingungstyp ''." warning.config.host.missing_type: "Problem in config.yml bei 'resource-pack.delivery.hosting' gefunden - Fehlendes erforderliches 'type'-Argument für Host." warning.config.host.invalid_type: "Problem in config.yml bei 'resource-pack.delivery.hosting' gefunden - Host-Typ '' ist ungültig. Bitte lies https://xiao-momi.github.io/craft-engine-wiki/getting_start/set_up_host." warning.config.host.external.missing_url: "Problem in config.yml bei 'resource-pack.delivery.hosting' gefunden - Fehlendes erforderliches 'url'-Argument für externen Host." diff --git a/common-files/src/main/resources/translations/en.yml b/common-files/src/main/resources/translations/en.yml index f543e69db..b31a0ea37 100644 --- a/common-files/src/main/resources/translations/en.yml +++ b/common-files/src/main/resources/translations/en.yml @@ -447,9 +447,6 @@ warning.config.emoji.invalid_image: "Issue found in file - The e warning.config.advancement.duplicate: "Issue found in file - Duplicated advancement ''. Please check if there is the same configuration in other files." warning.config.loot_table.missing_pools: "Issue found in file - '' has a misconfigured loot table which is missing the required 'pools' argument." warning.config.loot_table.invalid_pools_type: "Issue found in file - '' has a misconfigured loot table, 'pools' should be a string/map list, current type: ''." -warning.config.loot_table.invalid_conditions_type: "Issue found in file - '' has a misconfigured loot table, 'conditions' should be a map list, current type: ''." -warning.config.loot_table.invalid_functions_type: "Issue found in file - '' has a misconfigured loot table, 'functions' should be a map list, current type: ''." -warning.config.loot_table.invalid_entries_type: "Issue found in file - '' has a misconfigured loot table, 'entries' should be a map list, current type: ''." warning.config.loot_table.function.missing_type: "Issue found in file - '' has a misconfigured loot table, one of the functions is missing the required 'type' argument." warning.config.loot_table.function.invalid_type: "Issue found in file - '' has a misconfigured loot table, one of the functions is using an invalid function type ''." warning.config.loot_table.function.apply_bonus.missing_enchantment: "Issue found in file - '' has a misconfigured loot table, function 'apply_bonus' is missing the required 'enchantment' argument." @@ -461,8 +458,6 @@ warning.config.loot_table.entry.missing_type: "Issue found in file Issue found in file - '' has a misconfigured loot table, one of the entries is using an invalid entry type ''." warning.config.loot_table.entry.exp.missing_count: "Issue found in file - '' has a misconfigured loot table, entry 'exp' is missing the required 'count' argument." warning.config.loot_table.entry.item.missing_item: "Issue found in file - '' has a misconfigured loot table, entry 'item' is missing the required 'item' argument." -warning.config.loot_table.condition.missing_type: "Issue found in file - '' has a misconfigured loot table, one of the conditions is missing the required 'type' argument." -warning.config.loot_table.condition.invalid_type: "Issue found in file - '' has a misconfigured loot table, one of the conditions is using an invalid condition type ''." warning.config.host.missing_type: "Issue found in config.yml at 'resource-pack.delivery.hosting' - Missing required 'type' argument for host." warning.config.host.invalid_type: "Issue found in config.yml at 'resource-pack.delivery.hosting' - Host type '' is invalid. Please read https://xiao-momi.github.io/craft-engine-wiki/getting_start/set_up_host." warning.config.host.external.missing_url: "Issue found in config.yml at 'resource-pack.delivery.hosting' - Missing required 'url' argument for external host." diff --git a/common-files/src/main/resources/translations/es.yml b/common-files/src/main/resources/translations/es.yml index d5f5ef866..321906080 100644 --- a/common-files/src/main/resources/translations/es.yml +++ b/common-files/src/main/resources/translations/es.yml @@ -206,9 +206,6 @@ warning.config.emoji.invalid_image: "Problema encontrado en el archivo < warning.config.advancement.duplicate: "Problema encontrado en el archivo - Logro duplicado ''. Verifica si hay la misma configuración en otros archivos." warning.config.loot_table.missing_pools: "Problema encontrado en el archivo - '' tiene una tabla de botín mal configurada que carece del argumento requerido 'pools'." warning.config.loot_table.invalid_pools_type: "Problema encontrado en el archivo - '' tiene una tabla de botín mal configurada, 'pools' debe ser una lista de arrays/mapas, tipo actual: ''." -warning.config.loot_table.invalid_conditions_type: "Problema encontrado en el archivo - '' tiene una tabla de botín mal configurada, 'conditions' debe ser una lista de mapas, tipo actual: ''." -warning.config.loot_table.invalid_functions_type: "Problema encontrado en el archivo - '' tiene una tabla de botín mal configurada, 'functions' debe ser una lista de mapas, tipo actual: ''." -warning.config.loot_table.invalid_entries_type: "Problema encontrado en el archivo - '' tiene una tabla de botín mal configurada, 'entries' debe ser una lista de mapas, tipo actual: ''." warning.config.loot_table.function.missing_type: "Problema encontrado en el archivo - '' tiene una tabla de botín mal configurada, una de las funciones carece del argumento requerido 'type'." warning.config.loot_table.function.invalid_type: "Problema encontrado en el archivo - '' tiene una tabla de botín mal configurada, una de las funciones está usando un tipo de función inválido ''." warning.config.loot_table.function.apply_bonus.missing_enchantment: "Problema encontrado en el archivo - '' tiene una tabla de botín mal configurada, la función 'apply_bonus' carece del argumento requerido 'enchantment'." @@ -219,10 +216,6 @@ warning.config.loot_table.entry.missing_type: "Problema encontrado en el warning.config.loot_table.entry.invalid_type: "Problema encontrado en el archivo - '' tiene una tabla de botín mal configurada, una de las entradas está usando un tipo de entrada inválido ''." warning.config.loot_table.entry.exp.missing_count: "Problema encontrado en el archivo - '' tiene una tabla de botín mal configurada, la entrada 'exp' carece del argumento requerido 'count'." warning.config.loot_table.entry.item.missing_item: "Problema encontrado en el archivo - '' tiene una tabla de botín mal configurada, la entrada 'item' carece del argumento requerido 'item'." -warning.config.loot_table.condition.missing_type: "Problema encontrado en el archivo - '' tiene una tabla de botín mal configurada, una de las condiciones carece del argumento requerido 'type'." -warning.config.loot_table.condition.invalid_type: "Problema encontrado en el archivo - '' tiene una tabla de botín mal configurada, una de las condiciones está usando un tipo de condición inválido ''." -warning.config.loot_table.condition.table_bonus.missing_enchantment: "Problema encontrado en el archivo - '' tiene una tabla de botín mal configurada, la condición 'table_bonus' carece del argumento requerido 'enchantment'." -warning.config.loot_table.condition.table_bonus.missing_chances: "Problema encontrado en el archivo - '' tiene una tabla de botín mal configurada, la condición 'table_bonus' carece del argumento requerido 'chances'." warning.config.loot_table.number.missing_type: "Problema encontrado en el archivo - '' tiene una tabla de botín mal configurada, uno de los números carece del argumento requerido 'type'." warning.config.loot_table.number.invalid_type: "Problema encontrado en el archivo - '' tiene una tabla de botín mal configurada, uno de los números está usando un tipo de número inválido ''." warning.config.host.missing_type: "Problema encontrado en config.yml en la sección 'resource-pack.delivery.hosting' - Argumento requerido 'type' faltante para el host." diff --git a/common-files/src/main/resources/translations/fr_fr.yml b/common-files/src/main/resources/translations/fr_fr.yml index 2d9c8f0ab..69a8b37b6 100644 --- a/common-files/src/main/resources/translations/fr_fr.yml +++ b/common-files/src/main/resources/translations/fr_fr.yml @@ -366,9 +366,6 @@ warning.config.emoji.invalid_image: "Problème trouvé dans le fichier < warning.config.advancement.duplicate: "Problème trouvé dans le fichier - Avancement dupliqué ''. Vérifiez si la même configuration existe dans d'autres fichiers." warning.config.loot_table.missing_pools: "Problème trouvé dans le fichier - '' a une table de butin mal configurée qui manque de l'argument requis 'pools'." warning.config.loot_table.invalid_pools_type: "Problème trouvé dans le fichier - '' a une table de butin mal configurée, 'pools' doit être une liste de maps/arrays, type actuel : ''." -warning.config.loot_table.invalid_conditions_type: "Problème trouvé dans le fichier - '' a une table de butin mal configurée, 'conditions' doit être une liste de maps, type actuel : ''." -warning.config.loot_table.invalid_functions_type: "Problème trouvé dans le fichier - '' a une table de butin mal configurée, 'functions' doit être une liste de maps, type actuel : ''." -warning.config.loot_table.invalid_entries_type: "Problème trouvé dans le fichier - '' a une table de butin mal configurée, 'entries' doit être une liste de maps, type actuel : ''." warning.config.loot_table.function.missing_type: "Problème trouvé dans le fichier - '' a une table de butin mal configurée, une des fonctions manque de l'argument requis 'type'." warning.config.loot_table.function.invalid_type: "Problème trouvé dans le fichier - '' a une table de butin mal configurée, une des fonctions utilise un type de fonction invalide ''." warning.config.loot_table.function.apply_bonus.missing_enchantment: "Problème trouvé dans le fichier - '' a une table de butin mal configurée, la fonction 'apply_bonus' manque de l'argument requis 'enchantment'." @@ -380,8 +377,6 @@ warning.config.loot_table.entry.missing_type: "Problème trouvé dans le warning.config.loot_table.entry.invalid_type: "Problème trouvé dans le fichier - '' a une table de butin mal configurée, une des entrées utilise un type invalide ''." warning.config.loot_table.entry.exp.missing_count: "Problème trouvé dans le fichier - '' a une table de butin mal configurée, l'entrée 'exp' manque de l'argument requis 'count'." warning.config.loot_table.entry.item.missing_item: "Problème trouvé dans le fichier - '' a une table de butin mal configurée, l'entrée 'item' manque de l'argument requis 'item'." -warning.config.loot_table.condition.missing_type: "Problème trouvé dans le fichier - '' a une table de butin mal configurée, une des conditions manque de l'argument requis 'type'." -warning.config.loot_table.condition.invalid_type: "Problème trouvé dans le fichier - '' a une table de butin mal configurée, une des conditions utilise un type invalide ''." warning.config.host.missing_type: "Problème trouvé dans config.yml à 'resource-pack.delivery.hosting' - L'argument requis 'type' est manquant pour l'hôte." warning.config.host.invalid_type: "Problème trouvé dans config.yml à 'resource-pack.delivery.hosting' - Le type d'hôte '' est invalide. Veuillez lire https://xiao-momi.github.io/craft-engine-wiki/getting_start/set_up_host" warning.config.host.external.missing_url: "Problème trouvé dans config.yml à 'resource-pack.delivery.hosting' - L'argument requis 'url' est manquant pour l'hôte externe." diff --git a/common-files/src/main/resources/translations/ru_ru.yml b/common-files/src/main/resources/translations/ru_ru.yml index 87e4f597b..7e115757e 100644 --- a/common-files/src/main/resources/translations/ru_ru.yml +++ b/common-files/src/main/resources/translations/ru_ru.yml @@ -280,9 +280,6 @@ warning.config.emoji.invalid_image: "Проблема найдена в warning.config.advancement.duplicate: "Проблема найдена в файле - Дублированное достижение ''. Проверьте, есть ли такая же конфигурация в других файлах." warning.config.loot_table.missing_pools: "Проблема найдена в файле - '' имеет неправильно настроенную таблицу добычи, в которой отсутствует необходимый 'pools' аргумент." warning.config.loot_table.invalid_pools_type: "Проблема найдена в файле - '' имеет неправильно настроенную таблицу добычи, 'pools' должен быть списком строк/карт, текущий тип: ''." -warning.config.loot_table.invalid_conditions_type: "Проблема найдена в файле - '' имеет неправильно настроенную таблицу добычи, 'conditions' должен быть списком карт, текущий тип: ''." -warning.config.loot_table.invalid_functions_type: "Проблема найдена в файле - '' имеет неправильно настроенную таблицу добычи, 'functions' должен быть список карт, текущий тип: ''." -warning.config.loot_table.invalid_entries_type: "Проблема найдена в файле - '' имеет неправильно настроенную таблицу добычи, 'entries' должен быть список карт, текущий тип: ''." warning.config.loot_table.function.missing_type: "Проблема найдена в файле - '' имеет неправильно настроенную таблицу добычи, в одной из функций отсутствует необходимый 'type' аргумент." warning.config.loot_table.function.invalid_type: "Проблема найдена в файле - '' имеет неправильно настроенную таблицу добычи, одна из функций имеет недействительный тип функции ''." warning.config.loot_table.function.apply_bonus.missing_enchantment: "Проблема найдена в файле - '' имеет неправильно настроенную таблицу добычи, в функции 'apply_bonus' отсутствует необходимый 'enchantment' аргумент." @@ -293,8 +290,6 @@ warning.config.loot_table.entry.missing_type: "Проблема найд warning.config.loot_table.entry.invalid_type: "Проблема найдена в файле - '' имеет неправильно настроенную таблицу добычи, одна из записей имеет недействительный тип записи ''." warning.config.loot_table.entry.exp.missing_count: "Проблема найдена в файле - '' имеет неправильно настроенную таблицу добычи, в записи 'exp' отсутствует необходимый 'count' аргумент." warning.config.loot_table.entry.item.missing_item: "Проблема найдена в файле - '' имеет неправильно настроенную таблицу добычи, в записи 'item' отсутствует необходимый 'item' аргумент." -warning.config.loot_table.condition.missing_type: "Проблема найдена в файле - '' имеет неправильно настроенную таблицу добычи, в одном из условий отсутствует необходимый 'type' аргумент." -warning.config.loot_table.condition.invalid_type: "Проблема найдена в файле - '' имеет неправильно настроенную таблицу добычи, одно из условий имеет недействительный тип условия ''." warning.config.host.missing_type: "Проблема обнаружена в config.yml по адресу 'resource-pack.delivery.hosting' - Отсутствует обязательный 'type' аргумент для хостинга." warning.config.host.invalid_type: "Проблема обнаружена в config.yml по адресу 'resource-pack.delivery.hosting' - Тип хоста '' недействителен. Пожалуйста, прочитайте https://xiao-momi.github.io/craft-engine-wiki/getting_start/set_up_host." warning.config.host.external.missing_url: "Проблема обнаружена в config.yml по адресу 'resource-pack.delivery.hosting' - Отсутствует обязательный 'url' аргумент для внешнего хоста." diff --git a/common-files/src/main/resources/translations/tr.yml b/common-files/src/main/resources/translations/tr.yml index 57b575aa2..5bae33246 100644 --- a/common-files/src/main/resources/translations/tr.yml +++ b/common-files/src/main/resources/translations/tr.yml @@ -204,9 +204,6 @@ warning.config.emoji.invalid_image: " dosyasında sorun bulundu - warning.config.advancement.duplicate: " dosyasında sorun bulundu - Yinelenen ilerleme ''. Diğer dosyalarda aynı yapılandırmanın olup olmadığını kontrol edin." warning.config.loot_table.missing_pools: " dosyasında sorun bulundu - '', gerekli 'pools' argümanı eksik olan yanlış yapılandırılmış bir ganimet tablosuna sahip." warning.config.loot_table.invalid_pools_type: " dosyasında sorun bulundu - '', yanlış yapılandırılmış bir ganimet tablosuna sahip, 'pools' bir dizi/harita listesi olmalı, mevcut tür: ''." -warning.config.loot_table.invalid_conditions_type: " dosyasında sorun bulundu - '', yanlış yapılandırılmış bir ganimet tablosuna sahip, 'conditions' bir harita listesi olmalı, mevcut tür: ''." -warning.config.loot_table.invalid_functions_type: " dosyasında sorun bulundu - '', yanlış yapılandırılmış bir ganimet tablosuna sahip, 'functions' bir harita listesi olmalı, mevcut tür: ''." -warning.config.loot_table.invalid_entries_type: " dosyasında sorun bulundu - '', yanlış yapılandırılmış bir ganimet tablosuna sahip, 'entries' bir harita listesi olmalı, mevcut tür: ''." warning.config.loot_table.function.missing_type: " dosyasında sorun bulundu - '', yanlış yapılandırılmış bir ganimet tablosuna sahip, fonksiyonlardan biri için gerekli 'type' argümanı eksik." warning.config.loot_table.function.invalid_type: " dosyasında sorun bulundu - '', yanlış yapılandırılmış bir ganimet tablosuna sahip, fonksiyonlardan biri geçersiz bir fonksiyon türü '' kullanıyor." warning.config.loot_table.function.apply_bonus.missing_enchantment: " dosyasında sorun bulundu - '', yanlış yapılandırılmış bir ganimet tablosuna sahip, 'apply_bonus' fonksiyonu için gerekli 'enchantment' argümanı eksik." @@ -217,8 +214,6 @@ warning.config.loot_table.entry.missing_type: " dosyasında sorun warning.config.loot_table.entry.invalid_type: " dosyasında sorun bulundu - '', yanlış yapılandırılmış bir ganimet tablosuna sahip, girişlerden biri geçersiz bir giriş türü '' kullanıyor." warning.config.loot_table.entry.exp.missing_count: " dosyasında sorun bulundu - '', yanlış yapılandırılmış bir ganimet tablosuna sahip, 'exp' girişi için gerekli 'count' argümanı eksik." warning.config.loot_table.entry.item.missing_item: " dosyasında sorun bulundu - '', yanlış yapılandırılmış bir ganimet tablosuna sahip, 'item' girişi için gerekli 'item' argümanı eksik." -warning.config.loot_table.condition.missing_type: " dosyasında sorun bulundu - '', yanlış yapılandırılmış bir ganimet tablosuna sahip, koşullardan biri için gerekli 'type' argümanı eksik." -warning.config.loot_table.condition.invalid_type: " dosyasında sorun bulundu - '', yanlış yapılandırılmış bir ganimet tablosuna sahip, koşullardan biri geçersiz bir koşul türü '' kullanıyor." warning.config.host.missing_type: "config.yml dosyasında 'resource-pack.delivery.hosting' bölümünde sorun bulundu - Host için gerekli 'type' argümanı eksik." warning.config.host.invalid_type: "config.yml dosyasında 'resource-pack.delivery.hosting' bölümünde sorun bulundu - Host türü '' geçersiz. Lütfen https://xiao-momi.github.io/craft-engine-wiki/getting_start/set_up_host sayfasını okuyun." warning.config.host.external.missing_url: "config.yml dosyasında 'resource-pack.delivery.hosting' bölümünde sorun bulundu - Harici host için gerekli 'url' argümanı eksik." diff --git a/common-files/src/main/resources/translations/zh_cn.yml b/common-files/src/main/resources/translations/zh_cn.yml index 6367c9c05..df53858c0 100644 --- a/common-files/src/main/resources/translations/zh_cn.yml +++ b/common-files/src/main/resources/translations/zh_cn.yml @@ -447,9 +447,6 @@ warning.config.emoji.invalid_image: "在文件 发现问题 - warning.config.advancement.duplicate: "在文件 发现问题 - 重复的进度 '' 请检查其他文件中是否存在相同配置" warning.config.loot_table.missing_pools: "在文件 发现问题 - '' 的战利品表配置错误 缺少必需的 'pools' 参数" warning.config.loot_table.invalid_pools_type: "在文件 发现问题 - '' 的战利品表配置错误 'pools' 应为字符串/映射列表 当前类型: ''" -warning.config.loot_table.invalid_conditions_type: "在文件 发现问题 - '' 的战利品表配置错误 'conditions' 应为映射列表 当前类型: ''" -warning.config.loot_table.invalid_functions_type: "在文件 发现问题 - '' 的战利品表配置错误 'functions' 应为映射列表 当前类型: ''" -warning.config.loot_table.invalid_entries_type: "在文件 发现问题 - '' 的战利品表配置错误 'entries' 应为映射列表 当前类型: ''" warning.config.loot_table.function.missing_type: "在文件 发现问题 - '' 的战利品表配置错误 某个函数缺少必需的 'type' 参数" warning.config.loot_table.function.invalid_type: "在文件 发现问题 - '' 的战利品表配置错误 某个函数使用了无效的函数类型 ''" warning.config.loot_table.function.apply_bonus.missing_enchantment: "在文件 发现问题 - '' 的战利品表配置错误 'apply_bonus' 函数缺少必需的 'enchantment' 参数" @@ -461,8 +458,6 @@ warning.config.loot_table.entry.missing_type: "在文件 发现 warning.config.loot_table.entry.invalid_type: "在文件 发现问题 - '' 的战利品表配置错误 某个条目使用了无效的条目类型 ''" warning.config.loot_table.entry.exp.missing_count: "在文件 发现问题 - '' 的战利品表配置错误 'exp' 条目缺少必需的 'count' 参数" warning.config.loot_table.entry.item.missing_item: "在文件 发现问题 - '' 的战利品表配置错误 'item' 条目缺少必需的 'item' 参数" -warning.config.loot_table.condition.missing_type: "在文件 发现问题 - '' 的战利品表配置错误 某个条件缺少必需的 'type' 参数" -warning.config.loot_table.condition.invalid_type: "在文件 发现问题 - '' 的战利品表配置错误 某个条件使用了无效的条件类型 ''" warning.config.host.missing_type: "在 config.yml 的 'resource-pack.delivery.hosting' 处发现问题 - 缺少必需的 'type' 参数" warning.config.host.invalid_type: "在 config.yml 的 'resource-pack.delivery.hosting' 处发现问题 - 无效的托管类型 '' 请参考 https://ce.gtemc.cn/zh-Hans/getting_start/set_up_host" warning.config.host.external.missing_url: "在 config.yml 的 'resource-pack.delivery.hosting' 处发现问题 - 外部托管缺少必需的 'url' 参数" diff --git a/core/src/main/java/net/momirealms/craftengine/core/block/entity/BlockEntityTypes.java b/core/src/main/java/net/momirealms/craftengine/core/block/entity/BlockEntityTypes.java index 46083cc4b..0703bf612 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/block/entity/BlockEntityTypes.java +++ b/core/src/main/java/net/momirealms/craftengine/core/block/entity/BlockEntityTypes.java @@ -11,7 +11,7 @@ public abstract class BlockEntityTypes { public static BlockEntityType register(Key id) { BlockEntityType type = new BlockEntityType<>(id); - ((WritableRegistry>) BuiltInRegistries.BLOCK_ENTITY_TYPE) + ((WritableRegistry>) BuiltInRegistries.BLOCK_ENTITY_TYPE) .register(ResourceKey.create(Registries.BLOCK_ENTITY_TYPE.location(), id), type); return type; } 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 11527d4ca..42af5c5b9 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 @@ -16,7 +16,7 @@ public abstract class BlockEntityElementConfigs { public static BlockEntityElementConfigType register(Key key, BlockEntityElementConfigFactory factory) { BlockEntityElementConfigType type = new BlockEntityElementConfigType<>(key, factory); - ((WritableRegistry>) BuiltInRegistries.BLOCK_ENTITY_ELEMENT_TYPE) + ((WritableRegistry>) BuiltInRegistries.BLOCK_ENTITY_ELEMENT_TYPE) .register(ResourceKey.create(Registries.BLOCK_ENTITY_ELEMENT_TYPE.location(), key), type); return type; } diff --git a/core/src/main/java/net/momirealms/craftengine/core/block/properties/Properties.java b/core/src/main/java/net/momirealms/craftengine/core/block/properties/Properties.java index 15fb0d5f9..280f58d7b 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/block/properties/Properties.java +++ b/core/src/main/java/net/momirealms/craftengine/core/block/properties/Properties.java @@ -30,7 +30,7 @@ public final class Properties { public static > PropertyType register(Key key, PropertyFactory factory) { PropertyType type = new PropertyType<>(key, factory); - ((WritableRegistry>) BuiltInRegistries.PROPERTY_TYPE) + ((WritableRegistry>>) BuiltInRegistries.PROPERTY_TYPE) .register(ResourceKey.create(Registries.PROPERTY_TYPE.location(), key), type); return type; } diff --git a/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/behavior/FurnitureBehaviors.java b/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/behavior/FurnitureBehaviors.java index 7a692d891..452f98600 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/behavior/FurnitureBehaviors.java +++ b/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/behavior/FurnitureBehaviors.java @@ -30,8 +30,8 @@ public class FurnitureBehaviors { public static FurnitureBehaviorType register(Key id, FurnitureBehaviorFactory factory) { FurnitureBehaviorType type = new FurnitureBehaviorType<>(id, factory); - ((WritableRegistry>) BuiltInRegistries.FURNITURE_BEHAVIOR_TYPE) - .register(ResourceKey.create(Registries.BLOCK_BEHAVIOR_TYPE.location(), id), type); + ((WritableRegistry>) BuiltInRegistries.FURNITURE_BEHAVIOR_TYPE) + .register(ResourceKey.create(Registries.FURNITURE_BEHAVIOR_TYPE.location(), id), type); return type; } } 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 2c39b95eb..296eb0403 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,7 +15,7 @@ public class FurnitureElementConfigs { public static FurnitureElementConfigType register(Key key, FurnitureElementConfigFactory factory) { FurnitureElementConfigType type = new FurnitureElementConfigType<>(key, factory); - ((WritableRegistry>) BuiltInRegistries.FURNITURE_ELEMENT_TYPE) + ((WritableRegistry>) BuiltInRegistries.FURNITURE_ELEMENT_TYPE) .register(ResourceKey.create(Registries.FURNITURE_ELEMENT_TYPE.location(), key), type); return type; } diff --git a/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/hitbox/FurnitureHitBoxes.java b/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/hitbox/FurnitureHitBoxes.java index 918232165..d059f72ec 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/hitbox/FurnitureHitBoxes.java +++ b/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/hitbox/FurnitureHitBoxes.java @@ -15,7 +15,7 @@ public class FurnitureHitBoxes { public static FurnitureHitboxConfigType register(Key key, FurnitureHitBoxConfigFactory factory) { FurnitureHitboxConfigType type = new FurnitureHitboxConfigType<>(key, factory); - ((WritableRegistry>) BuiltInRegistries.FURNITURE_HITBOX_TYPE) + ((WritableRegistry>) BuiltInRegistries.FURNITURE_HITBOX_TYPE) .register(ResourceKey.create(Registries.FURNITURE_HITBOX_TYPE.location(), key), type); return type; } diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/behavior/EmptyItemBehavior.java b/core/src/main/java/net/momirealms/craftengine/core/item/behavior/EmptyItemBehavior.java index 6546c56c3..d3486caec 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/behavior/EmptyItemBehavior.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/behavior/EmptyItemBehavior.java @@ -7,10 +7,12 @@ import java.nio.file.Path; import java.util.Map; public class EmptyItemBehavior extends ItemBehavior { - public static final Factory FACTORY = new Factory(); + public static final ItemBehaviorFactory FACTORY = new Factory(); public static final EmptyItemBehavior INSTANCE = new EmptyItemBehavior(); - public static class Factory implements ItemBehaviorFactory { + private EmptyItemBehavior() {} + + private static class Factory implements ItemBehaviorFactory { @Override public ItemBehavior create(Pack pack, Path path, String node, Key id, Map arguments) { diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/processor/lore/DynamicLoreProcessor.java b/core/src/main/java/net/momirealms/craftengine/core/item/processor/lore/DynamicLoreProcessor.java index 636d7725c..15e73e603 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/processor/lore/DynamicLoreProcessor.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/processor/lore/DynamicLoreProcessor.java @@ -13,7 +13,7 @@ import java.util.Map; import java.util.Optional; public final class DynamicLoreProcessor implements SimpleNetworkItemProcessor { - public static final Factory FACTORY = new Factory<>(); + public static final ItemProcessorFactory FACTORY = new Factory<>(); public static final String CONTEXT_TAG_KEY = "craftengine:display_context"; private final Map> displayContexts; private final LoreProcessor defaultModifier; @@ -52,7 +52,7 @@ public final class DynamicLoreProcessor implements SimpleNetworkItemProcessor return "display.Lore"; } - public static class Factory implements ItemProcessorFactory { + private static class Factory implements ItemProcessorFactory { @Override public ItemProcessor create(Object arg) { Map> dynamicLore = new LinkedHashMap<>(); diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/processor/lore/LoreFactory.java b/core/src/main/java/net/momirealms/craftengine/core/item/processor/lore/LoreFactory.java new file mode 100644 index 000000000..aa0ec3460 --- /dev/null +++ b/core/src/main/java/net/momirealms/craftengine/core/item/processor/lore/LoreFactory.java @@ -0,0 +1,11 @@ +package net.momirealms.craftengine.core.item.processor.lore; + +import net.momirealms.craftengine.core.item.ItemProcessorFactory; +import net.momirealms.craftengine.core.item.processor.ItemProcessor; + +class LoreFactory implements ItemProcessorFactory { + @Override + public ItemProcessor create(Object arg) { + return LoreProcessor.createLoreModifier(arg); + } +} \ No newline at end of file diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/processor/lore/LoreProcessor.java b/core/src/main/java/net/momirealms/craftengine/core/item/processor/lore/LoreProcessor.java index edca4feda..2f867c98b 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/processor/lore/LoreProcessor.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/processor/lore/LoreProcessor.java @@ -5,7 +5,6 @@ import net.momirealms.craftengine.core.item.DataComponentKeys; import net.momirealms.craftengine.core.item.Item; import net.momirealms.craftengine.core.item.ItemBuildContext; import net.momirealms.craftengine.core.item.ItemProcessorFactory; -import net.momirealms.craftengine.core.item.processor.ItemProcessor; import net.momirealms.craftengine.core.item.processor.SimpleNetworkItemProcessor; import net.momirealms.craftengine.core.plugin.config.Config; import net.momirealms.craftengine.core.plugin.context.CommonConditions; @@ -21,7 +20,7 @@ import java.util.stream.Stream; public sealed interface LoreProcessor extends SimpleNetworkItemProcessor permits LoreProcessor.EmptyLoreProcessor, LoreProcessor.CompositeLoreProcessor, LoreProcessor.DoubleLoreProcessor, LoreProcessor.SingleLoreProcessor { - ItemProcessorFactory FACTORY = new Factory<>(); + ItemProcessorFactory FACTORY = new LoreFactory<>(); @Override @Nullable @@ -42,13 +41,6 @@ public sealed interface LoreProcessor extends SimpleNetworkItemProcessor List lore(); - class Factory implements ItemProcessorFactory { - @Override - public ItemProcessor create(Object arg) { - return createLoreModifier(arg); - } - } - static LoreProcessor createLoreModifier(Object arg) { List rawLoreData = MiscUtils.getAsList(arg, Object.class); String[] rawLore = new String[rawLoreData.size()]; diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/processor/lore/OverwritableLoreProcessor.java b/core/src/main/java/net/momirealms/craftengine/core/item/processor/lore/OverwritableLoreProcessor.java index 1e1dd5473..a7ee17938 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/processor/lore/OverwritableLoreProcessor.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/processor/lore/OverwritableLoreProcessor.java @@ -11,7 +11,7 @@ import net.momirealms.craftengine.core.util.VersionHelper; import net.momirealms.sparrow.nbt.CompoundTag; public final class OverwritableLoreProcessor implements SimpleNetworkItemProcessor { - public static final Factory FACTORY = new Factory<>(); + public static final ItemProcessorFactory FACTORY = new Factory<>(); private final LoreProcessor loreProcessor; public OverwritableLoreProcessor(LoreProcessor loreProcessor) { @@ -47,7 +47,7 @@ public final class OverwritableLoreProcessor implements SimpleNetworkItemProc return "display.Lore"; } - public static class Factory implements ItemProcessorFactory { + private static class Factory implements ItemProcessorFactory { @Override public ItemProcessor create(Object arg) { LoreProcessor lore = LoreProcessor.createLoreModifier(arg); 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 d2fba5f10..1aea79bc6 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 @@ -228,21 +228,13 @@ public class CustomSmithingTransformRecipe extends AbstractedFixedResultRecip } } - public static class ItemDataProcessors { - public static final Key KEEP_COMPONENTS = Key.ce("keep_components"); - public static final Key KEEP_TAGS = Key.ce("keep_tags"); - public static final Key MERGE_ENCHANTMENTS = Key.ce("merge_enchantments"); - public static final Key KEEP_CUSTOM_DATA = Key.ce("keep_custom_data"); + public static final class ItemDataProcessors { + public static final ItemDataProcessor.Type KEEP_COMPONENTS = register(Key.ce("keep_components"), KeepComponents.FACTORY); + public static final ItemDataProcessor.Type KEEP_TAGS = register(Key.ce("keep_tags"), KeepTags.FACTORY); + public static final ItemDataProcessor.Type KEEP_CUSTOM_DATA = register(Key.ce("keep_custom_data"), KeepCustomData.FACTORY); + public static final ItemDataProcessor.Type MERGE_ENCHANTMENTS = register(Key.ce("merge_enchantments"), MergeEnchantments.FACTORY); - static { - if (VersionHelper.isOrAbove1_20_5()) { - register(KEEP_COMPONENTS, KeepComponents.FACTORY); - register(KEEP_CUSTOM_DATA, KeepCustomData.FACTORY); - } else { - register(KEEP_TAGS, KeepTags.FACTORY); - } - register(MERGE_ENCHANTMENTS, MergeEnchantments.FACTORY); - } + private ItemDataProcessors() {} public static List fromMapList(List> mapList) { if (mapList == null || mapList.isEmpty()) return List.of(); @@ -259,36 +251,33 @@ public class CustomSmithingTransformRecipe extends AbstractedFixedResultRecip throw new LocalizedResourceConfigException("warning.config.recipe.smithing_transform.post_processor.missing_type"); } Key key = Key.withDefaultNamespace(type, Key.DEFAULT_NAMESPACE); - ItemDataProcessor.ProcessorFactory factory = BuiltInRegistries.SMITHING_RESULT_PROCESSOR_FACTORY.getValue(key); - if (factory == null) { + ItemDataProcessor.Type processorType = BuiltInRegistries.SMITHING_RESULT_PROCESSOR_TYPE.getValue(key); + if (processorType == null) { throw new LocalizedResourceConfigException("warning.config.recipe.smithing_transform.post_processor.invalid_type", type); } - return factory.create(map); + return processorType.factory.create(map); } - public static void register(Key key, ItemDataProcessor.ProcessorFactory factory) { - ((WritableRegistry) BuiltInRegistries.SMITHING_RESULT_PROCESSOR_FACTORY) - .register(ResourceKey.create(Registries.SMITHING_RESULT_PROCESSOR_FACTORY.location(), key), factory); + public static ItemDataProcessor.Type register(Key key, ItemDataProcessor.Factory factory) { + ItemDataProcessor.Type type = new ItemDataProcessor.Type(key, factory); + ((WritableRegistry) BuiltInRegistries.SMITHING_RESULT_PROCESSOR_TYPE) + .register(ResourceKey.create(Registries.SMITHING_RESULT_PROCESSOR_TYPE.location(), key), type); + return type; } } public interface ItemDataProcessor extends TriConsumer, Item, Item> { - Key type(); - - interface ProcessorFactory { + interface Factory { ItemDataProcessor create(Map arguments); } + + record Type(Key id, Factory factory) {} } public static class MergeEnchantments implements ItemDataProcessor { public static final MergeEnchantments INSTANCE = new MergeEnchantments(); - public static final Factory FACTORY = new Factory(); - - @Override - public Key type() { - return ItemDataProcessors.MERGE_ENCHANTMENTS; - } + public static final ItemDataProcessor.Factory FACTORY = new Factory(); @Override public void accept(Item item1, Item item2, Item item3) { @@ -308,7 +297,7 @@ public class CustomSmithingTransformRecipe extends AbstractedFixedResultRecip }); } - public static class Factory implements ProcessorFactory { + private static class Factory implements ItemDataProcessor.Factory { @Override public ItemDataProcessor create(Map arguments) { @@ -318,7 +307,7 @@ public class CustomSmithingTransformRecipe extends AbstractedFixedResultRecip } public static class KeepCustomData implements ItemDataProcessor { - public static final Factory FACTORY = new Factory(); + public static final ItemDataProcessor.Factory FACTORY = new Factory(); private final List paths; public KeepCustomData(List data) { @@ -335,12 +324,7 @@ public class CustomSmithingTransformRecipe extends AbstractedFixedResultRecip } } - @Override - public Key type() { - return ItemDataProcessors.KEEP_CUSTOM_DATA; - } - - public static class Factory implements ProcessorFactory { + private static class Factory implements ItemDataProcessor.Factory { @Override public ItemDataProcessor create(Map arguments) { @@ -354,7 +338,7 @@ public class CustomSmithingTransformRecipe extends AbstractedFixedResultRecip } public static class KeepComponents implements ItemDataProcessor { - public static final Factory FACTORY = new Factory(); + public static final ItemDataProcessor.Factory FACTORY = new Factory(); private final List components; public KeepComponents(List components) { @@ -371,12 +355,7 @@ public class CustomSmithingTransformRecipe extends AbstractedFixedResultRecip } } - @Override - public Key type() { - return ItemDataProcessors.KEEP_COMPONENTS; - } - - public static class Factory implements ProcessorFactory { + private static class Factory implements ItemDataProcessor.Factory { private static final Key CUSTOM_DATA = Key.of("minecraft", "custom_data"); @Override @@ -392,7 +371,7 @@ public class CustomSmithingTransformRecipe extends AbstractedFixedResultRecip } public static class KeepTags implements ItemDataProcessor { - public static final Factory FACTORY = new Factory(); + public static final ItemDataProcessor.Factory FACTORY = new Factory(); private final List tags; public KeepTags(List tags) { @@ -409,12 +388,7 @@ public class CustomSmithingTransformRecipe extends AbstractedFixedResultRecip } } - @Override - public Key type() { - return ItemDataProcessors.KEEP_TAGS; - } - - public static class Factory implements ProcessorFactory { + private static class Factory implements ItemDataProcessor.Factory { @Override public ItemDataProcessor create(Map arguments) { diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/recipe/RecipeSerializers.java b/core/src/main/java/net/momirealms/craftengine/core/item/recipe/RecipeSerializers.java index 0d3fe7b12..19bbea82b 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/recipe/RecipeSerializers.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/recipe/RecipeSerializers.java @@ -40,7 +40,7 @@ public final class RecipeSerializers { @SuppressWarnings({"unchecked", "rawtypes"}) public static > void register(Key key, RecipeSerializer serializer) { WritableRegistry> registry = (WritableRegistry) BuiltInRegistries.RECIPE_SERIALIZER; - registry.register(ResourceKey.create(Registries.RECIPE_FACTORY.location(), key), serializer); + registry.register(ResourceKey.create(Registries.RECIPE_SERIALIZER.location(), key), serializer); } @SuppressWarnings("unchecked") diff --git a/core/src/main/java/net/momirealms/craftengine/core/loot/LootTable.java b/core/src/main/java/net/momirealms/craftengine/core/loot/LootTable.java index 83bdb44d4..b9e5d06b6 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/loot/LootTable.java +++ b/core/src/main/java/net/momirealms/craftengine/core/loot/LootTable.java @@ -24,7 +24,7 @@ import java.util.function.BiFunction; import java.util.function.Consumer; import java.util.function.Supplier; -public class LootTable { +public final class LootTable { private final List> pools; private final List> functions; private final BiFunction, LootContext, Item> compositeFunction; diff --git a/core/src/main/java/net/momirealms/craftengine/core/loot/VanillaLoot.java b/core/src/main/java/net/momirealms/craftengine/core/loot/VanillaLoot.java index 3d9d75870..6b060d200 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/loot/VanillaLoot.java +++ b/core/src/main/java/net/momirealms/craftengine/core/loot/VanillaLoot.java @@ -3,7 +3,7 @@ package net.momirealms.craftengine.core.loot; import java.util.ArrayList; import java.util.List; -public class VanillaLoot { +public final class VanillaLoot { private final Type type; private final List> lootTables; private boolean override; diff --git a/core/src/main/java/net/momirealms/craftengine/core/loot/entry/ExpLootEntryContainer.java b/core/src/main/java/net/momirealms/craftengine/core/loot/entry/ExpLootEntryContainer.java index 58cef15f1..b17e9e245 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/loot/entry/ExpLootEntryContainer.java +++ b/core/src/main/java/net/momirealms/craftengine/core/loot/entry/ExpLootEntryContainer.java @@ -13,7 +13,7 @@ import java.util.Map; import java.util.function.Consumer; public final class ExpLootEntryContainer extends AbstractLootEntryContainer { - public static final Factory FACTORY = new Factory<>(); + public static final LootEntryContainerFactory FACTORY = new Factory<>(); private final NumberProvider value; private ExpLootEntryContainer(NumberProvider value, List> conditions) { @@ -32,7 +32,7 @@ public final class ExpLootEntryContainer extends AbstractLootEntryContainer implements LootEntryContainerFactory { + private static class Factory implements LootEntryContainerFactory { @Override public LootEntryContainer create(Map arguments) { 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 63a675058..889c682f5 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 @@ -3,14 +3,15 @@ package net.momirealms.craftengine.core.loot.function; import net.momirealms.craftengine.core.item.Item; import net.momirealms.craftengine.core.item.data.Enchantment; import net.momirealms.craftengine.core.loot.LootContext; +import net.momirealms.craftengine.core.loot.function.formula.Formula; +import net.momirealms.craftengine.core.loot.function.formula.Formulas; import net.momirealms.craftengine.core.plugin.context.CommonConditions; import net.momirealms.craftengine.core.plugin.context.Condition; import net.momirealms.craftengine.core.plugin.context.parameter.DirectContextParameters; import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigException; -import net.momirealms.craftengine.core.registry.BuiltInRegistries; -import net.momirealms.craftengine.core.registry.Registries; -import net.momirealms.craftengine.core.registry.WritableRegistry; -import net.momirealms.craftengine.core.util.*; +import net.momirealms.craftengine.core.util.Key; +import net.momirealms.craftengine.core.util.MiscUtils; +import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.List; import java.util.Map; @@ -49,110 +50,4 @@ public final class ApplyBonusCountFunction extends AbstractLootConditionalFun return new ApplyBonusCountFunction<>(conditions, Key.from(enchantment), Formulas.fromMap(formulaMap)); } } - - public interface Formula { - int apply(int initialCount, int enchantmentLevel); - - Key type(); - } - - public interface FormulaFactory { - - Formula create(Map arguments); - } - - public static class Formulas { - public static final Key ORE_DROPS = Key.ce("ore_drops"); - public static final Key CROP_DROPS = Key.ce("binomial_with_bonus_count"); - - static { - register(ORE_DROPS, OreDrops.FACTORY); - register(CROP_DROPS, CropDrops.FACTORY); - } - - public static void register(Key key, FormulaFactory factory) { - ((WritableRegistry) BuiltInRegistries.FORMULA_FACTORY) - .register(ResourceKey.create(Registries.FORMULA_FACTORY.location(), key), factory); - } - - public static Formula fromMap(Map map) { - String type = (String) map.get("type"); - if (type == 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 type: " + type); - } - return factory.create(map); - } - } - - public static class OreDrops implements Formula { - public static final Factory FACTORY = new Factory(); - private static final OreDrops INSTANCE = new OreDrops(); - - @Override - public int apply(int initialCount, int enchantmentLevel) { - if (enchantmentLevel > 0) { - int i = RandomUtils.generateRandomInt(0, enchantmentLevel + 2) - 1; - if (i < 0) { - i = 0; - } - return initialCount * (i + 1); - } else { - return initialCount; - } - } - - @Override - public Key type() { - return Formulas.ORE_DROPS; - } - - public static class Factory implements FormulaFactory { - - @Override - public Formula create(Map arguments) { - return INSTANCE; - } - } - } - - public static class CropDrops implements Formula { - public static final Factory FACTORY = new Factory(); - private final int extra; - private final float probability; - - public CropDrops(int extra, float probability) { - this.extra = extra; - this.probability = probability; - } - - @Override - public int apply(int initialCount, int enchantmentLevel) { - for (int i = 0; i < enchantmentLevel + this.extra; i++) { - if (RandomUtils.generateRandomFloat(0,1) < this.probability) { - initialCount++; - } - } - return initialCount; - } - - @Override - public Key type() { - return Formulas.CROP_DROPS; - } - - public static class Factory implements FormulaFactory { - - @Override - public Formula create(Map arguments) { - int extra = ResourceConfigUtils.getAsInt(arguments.getOrDefault("extra", 1), "extra"); - float probability = ResourceConfigUtils.getAsFloat(arguments.getOrDefault("probability", 0.5f), "probability"); - return new CropDrops(extra, probability); - } - } - } } diff --git a/core/src/main/java/net/momirealms/craftengine/core/loot/function/formula/CropDrops.java b/core/src/main/java/net/momirealms/craftengine/core/loot/function/formula/CropDrops.java new file mode 100644 index 000000000..85616e244 --- /dev/null +++ b/core/src/main/java/net/momirealms/craftengine/core/loot/function/formula/CropDrops.java @@ -0,0 +1,37 @@ +package net.momirealms.craftengine.core.loot.function.formula; + +import net.momirealms.craftengine.core.util.RandomUtils; +import net.momirealms.craftengine.core.util.ResourceConfigUtils; + +import java.util.Map; + +public final class CropDrops implements Formula { + public static final FormulaFactory FACTORY = new Factory(); + private final int extra; + private final float probability; + + private CropDrops(int extra, float probability) { + this.extra = extra; + this.probability = probability; + } + + @Override + public int apply(int initialCount, int enchantmentLevel) { + for (int i = 0; i < enchantmentLevel + this.extra; i++) { + if (RandomUtils.generateRandomFloat(0, 1) < this.probability) { + initialCount++; + } + } + return initialCount; + } + + private static class Factory implements FormulaFactory { + + @Override + public Formula create(Map arguments) { + int extra = ResourceConfigUtils.getAsInt(arguments.getOrDefault("extra", 1), "extra"); + float probability = ResourceConfigUtils.getAsFloat(arguments.getOrDefault("probability", 0.5f), "probability"); + return new CropDrops(extra, probability); + } + } +} \ No newline at end of file diff --git a/core/src/main/java/net/momirealms/craftengine/core/loot/function/formula/Formula.java b/core/src/main/java/net/momirealms/craftengine/core/loot/function/formula/Formula.java new file mode 100644 index 000000000..a403a9f95 --- /dev/null +++ b/core/src/main/java/net/momirealms/craftengine/core/loot/function/formula/Formula.java @@ -0,0 +1,6 @@ +package net.momirealms.craftengine.core.loot.function.formula; + +public interface Formula { + + int apply(int initialCount, int enchantmentLevel); +} \ No newline at end of file diff --git a/core/src/main/java/net/momirealms/craftengine/core/loot/function/formula/FormulaFactory.java b/core/src/main/java/net/momirealms/craftengine/core/loot/function/formula/FormulaFactory.java new file mode 100644 index 000000000..f6e5741e4 --- /dev/null +++ b/core/src/main/java/net/momirealms/craftengine/core/loot/function/formula/FormulaFactory.java @@ -0,0 +1,8 @@ +package net.momirealms.craftengine.core.loot.function.formula; + +import java.util.Map; + +public interface FormulaFactory { + + Formula create(Map arguments); +} \ No newline at end of file diff --git a/core/src/main/java/net/momirealms/craftengine/core/loot/function/formula/FormulaType.java b/core/src/main/java/net/momirealms/craftengine/core/loot/function/formula/FormulaType.java new file mode 100644 index 000000000..1370bc531 --- /dev/null +++ b/core/src/main/java/net/momirealms/craftengine/core/loot/function/formula/FormulaType.java @@ -0,0 +1,6 @@ +package net.momirealms.craftengine.core.loot.function.formula; + +import net.momirealms.craftengine.core.util.Key; + +public record FormulaType(Key id, FormulaFactory factory) { +} diff --git a/core/src/main/java/net/momirealms/craftengine/core/loot/function/formula/Formulas.java b/core/src/main/java/net/momirealms/craftengine/core/loot/function/formula/Formulas.java new file mode 100644 index 000000000..695afd3cd --- /dev/null +++ b/core/src/main/java/net/momirealms/craftengine/core/loot/function/formula/Formulas.java @@ -0,0 +1,36 @@ +package net.momirealms.craftengine.core.loot.function.formula; + +import net.momirealms.craftengine.core.registry.BuiltInRegistries; +import net.momirealms.craftengine.core.registry.Registries; +import net.momirealms.craftengine.core.registry.WritableRegistry; +import net.momirealms.craftengine.core.util.Key; +import net.momirealms.craftengine.core.util.ResourceKey; + +import java.util.Map; + +public final class Formulas { + public static final FormulaType ORE_DROPS = register(Key.ce("ore_drops"), OreDrops.FACTORY); + public static final FormulaType CROP_DROPS = register(Key.ce("binomial_with_bonus_count"), CropDrops.FACTORY); + + private Formulas() {} + + public static FormulaType register(Key key, FormulaFactory factory) { + FormulaType type = new FormulaType(key, factory); + ((WritableRegistry) BuiltInRegistries.FORMULA_TYPE) + .register(ResourceKey.create(Registries.FORMULA_TYPE.location(), key), type); + return type; + } + + public static Formula fromMap(Map map) { + String type = (String) map.get("type"); + if (type == null) { + throw new NullPointerException("number type cannot be null"); + } + Key key = Key.withDefaultNamespace(type, Key.DEFAULT_NAMESPACE); + FormulaType formulaType = BuiltInRegistries.FORMULA_TYPE.getValue(key); + if (formulaType == null) { + throw new IllegalArgumentException("Unknown formula type: " + type); + } + return formulaType.factory().create(map); + } +} \ No newline at end of file diff --git a/core/src/main/java/net/momirealms/craftengine/core/loot/function/formula/OreDrops.java b/core/src/main/java/net/momirealms/craftengine/core/loot/function/formula/OreDrops.java new file mode 100644 index 000000000..cdbb7ead5 --- /dev/null +++ b/core/src/main/java/net/momirealms/craftengine/core/loot/function/formula/OreDrops.java @@ -0,0 +1,33 @@ +package net.momirealms.craftengine.core.loot.function.formula; + +import net.momirealms.craftengine.core.util.RandomUtils; + +import java.util.Map; + +public final class OreDrops implements Formula { + public static final FormulaFactory FACTORY = new Factory(); + private static final OreDrops INSTANCE = new OreDrops(); + + private OreDrops() {} + + @Override + public int apply(int initialCount, int enchantmentLevel) { + if (enchantmentLevel > 0) { + int i = RandomUtils.generateRandomInt(0, enchantmentLevel + 2) - 1; + if (i < 0) { + i = 0; + } + return initialCount * (i + 1); + } else { + return initialCount; + } + } + + private static class Factory implements FormulaFactory { + + @Override + public Formula create(Map arguments) { + return INSTANCE; + } + } +} \ No newline at end of file diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/host/ResourcePackHosts.java b/core/src/main/java/net/momirealms/craftengine/core/pack/host/ResourcePackHosts.java index 28186f380..86b846862 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/host/ResourcePackHosts.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/host/ResourcePackHosts.java @@ -25,8 +25,8 @@ public final class ResourcePackHosts { public static ResourcePackHostType register(Key key, ResourcePackHostFactory factory) { ResourcePackHostType type = new ResourcePackHostType(key, factory); - ((WritableRegistry) BuiltInRegistries.RESOURCE_PACK_HOST_FACTORY) - .register(ResourceKey.create(Registries.RESOURCE_PACK_HOST_FACTORY.location(), key), type); + ((WritableRegistry) BuiltInRegistries.RESOURCE_PACK_HOST_TYPE) + .register(ResourceKey.create(Registries.RESOURCE_PACK_HOST_TYPE.location(), key), type); return type; } @@ -36,7 +36,7 @@ public final class ResourcePackHosts { throw new LocalizedException("warning.config.host.missing_type"); } Key key = Key.withDefaultNamespace(type, Key.DEFAULT_NAMESPACE); - ResourcePackHostType hostType = BuiltInRegistries.RESOURCE_PACK_HOST_FACTORY.getValue(key); + ResourcePackHostType hostType = BuiltInRegistries.RESOURCE_PACK_HOST_TYPE.getValue(key); if (hostType == null) { throw new LocalizedException("warning.config.host.invalid_type", type); } diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/tint/GrassTint.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/tint/GrassTint.java index 2e639edd3..49174e6b5 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/tint/GrassTint.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/tint/GrassTint.java @@ -34,7 +34,8 @@ public final class GrassTint implements Tint { return json; } - public static class Factory implements TintFactory { + private static class Factory implements TintFactory { + @Override public Tint create(Map arguments) { float temperature = ResourceConfigUtils.getAsFloat(arguments.getOrDefault("temperature", 0), "temperature"); diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/CommonConditions.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/CommonConditions.java index 425f2dbfe..14526fd7c 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/CommonConditions.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/CommonConditions.java @@ -11,40 +11,41 @@ import net.momirealms.craftengine.core.util.ResourceKey; import java.util.Map; -public class CommonConditions { +public final class CommonConditions { + public static final ConditionType HAS_PLAYER = register(Key.ce("has_player"), HasPlayerCondition.factory()); + public static final ConditionType HAS_ITEM = register(Key.ce("has_item"), HasItemCondition.factory()); + public static final ConditionType MATCH_ITEM = register(Key.ce("match_item"), MatchItemCondition.factory()); + public static final ConditionType MATCH_ENTITY = register(Key.ce("match_entity"), MatchEntityCondition.factory()); + public static final ConditionType MATCH_BLOCK = register(Key.ce("match_block"), MatchBlockCondition.factory()); + public static final ConditionType MATCH_BLOCK_PROPERTY = register(Key.ce("match_block_property"), MatchBlockPropertyCondition.factory()); + public static final ConditionType TABLE_BONUS = register(Key.ce("table_bonus"), TableBonusCondition.factory()); + public static final ConditionType SURVIVES_EXPLOSION = register(Key.ce("survives_explosion"), SurvivesExplosionCondition.factory()); + public static final ConditionType ANY_OF = register(Key.ce("any_of"), AnyOfCondition.factory(CommonConditions::fromMap)); + public static final ConditionType ALL_OF = register(Key.ce("all_of"), AllOfCondition.factory(CommonConditions::fromMap)); + public static final ConditionType ENCHANTMENT = register(Key.ce("enchantment"), EnchantmentCondition.factory()); + public static final ConditionType INVERTED = register(Key.ce("inverted"), InvertedCondition.factory(CommonConditions::fromMap)); + public static final ConditionType FALLING_BLOCK = register(Key.ce("falling_block"), FallingBlockCondition.factory()); + public static final ConditionType RANDOM = register(Key.ce("random"), RandomCondition.factory()); + public static final ConditionType DISTANCE = register(Key.ce("distance"), DistanceCondition.factory()); + public static final ConditionType PERMISSION = register(Key.ce("permission"), PermissionCondition.factory()); + public static final ConditionType EQUALS = register(Key.ce("equals"), StringEqualsCondition.factory()); + public static final ConditionType REGEX = register(Key.ce("regex"), StringRegexCondition.factory()); + public static final ConditionType STRING_EQUALS = register(Key.ce("string_equals"), StringEqualsCondition.factory()); + public static final ConditionType STRING_CONTAINS = register(Key.ce("string_contains"), StringContainsCondition.factory()); + public static final ConditionType EXPRESSION = register(Key.ce("expression"), ExpressionCondition.factory()); + public static final ConditionType IS_NULL = register(Key.ce("is_null"), IsNullCondition.factory()); + public static final ConditionType HAND = register(Key.ce("hand"), HandCondition.factory()); + public static final ConditionType ON_COOLDOWN = register(Key.ce("on_cooldown"), OnCooldownCondition.factory()); + public static final ConditionType INVENTORY_HAS_ITEM = register(Key.ce("inventory_has_item"), InventoryHasItemCondition.factory()); + public static final ConditionType MATCH_FURNITURE_VARIANT = register(Key.ce("match_furniture_variant"), MatchFurnitureVariantCondition.factory()); - static { - register(net.momirealms.craftengine.core.plugin.context.condition.CommonConditions.HAS_PLAYER, HasPlayerCondition.factory()); - register(net.momirealms.craftengine.core.plugin.context.condition.CommonConditions.HAS_ITEM, HasItemCondition.factory()); - register(net.momirealms.craftengine.core.plugin.context.condition.CommonConditions.MATCH_ITEM, MatchItemCondition.factory()); - register(net.momirealms.craftengine.core.plugin.context.condition.CommonConditions.MATCH_ENTITY, MatchEntityCondition.factory()); - register(net.momirealms.craftengine.core.plugin.context.condition.CommonConditions.MATCH_BLOCK, MatchBlockCondition.factory()); - register(net.momirealms.craftengine.core.plugin.context.condition.CommonConditions.MATCH_BLOCK_PROPERTY, MatchBlockPropertyCondition.factory()); - register(net.momirealms.craftengine.core.plugin.context.condition.CommonConditions.TABLE_BONUS, TableBonusCondition.factory()); - register(net.momirealms.craftengine.core.plugin.context.condition.CommonConditions.SURVIVES_EXPLOSION, SurvivesExplosionCondition.factory()); - register(net.momirealms.craftengine.core.plugin.context.condition.CommonConditions.ANY_OF, AnyOfCondition.factory(CommonConditions::fromMap)); - register(net.momirealms.craftengine.core.plugin.context.condition.CommonConditions.ALL_OF, AllOfCondition.factory(CommonConditions::fromMap)); - register(net.momirealms.craftengine.core.plugin.context.condition.CommonConditions.ENCHANTMENT, EnchantmentCondition.factory()); - register(net.momirealms.craftengine.core.plugin.context.condition.CommonConditions.INVERTED, InvertedCondition.factory(CommonConditions::fromMap)); - register(net.momirealms.craftengine.core.plugin.context.condition.CommonConditions.FALLING_BLOCK, FallingBlockCondition.factory()); - register(net.momirealms.craftengine.core.plugin.context.condition.CommonConditions.RANDOM, RandomCondition.factory()); - register(net.momirealms.craftengine.core.plugin.context.condition.CommonConditions.DISTANCE, DistanceCondition.factory()); - register(net.momirealms.craftengine.core.plugin.context.condition.CommonConditions.PERMISSION, PermissionCondition.factory()); - register(net.momirealms.craftengine.core.plugin.context.condition.CommonConditions.EQUALS, StringEqualsCondition.factory()); - register(net.momirealms.craftengine.core.plugin.context.condition.CommonConditions.STRING_REGEX, StringRegexCondition.factory()); - register(net.momirealms.craftengine.core.plugin.context.condition.CommonConditions.STRING_EQUALS, StringEqualsCondition.factory()); - register(net.momirealms.craftengine.core.plugin.context.condition.CommonConditions.STRING_CONTAINS, StringContainsCondition.factory()); - register(net.momirealms.craftengine.core.plugin.context.condition.CommonConditions.EXPRESSION, ExpressionCondition.factory()); - register(net.momirealms.craftengine.core.plugin.context.condition.CommonConditions.IS_NULL, IsNullCondition.factory()); - register(net.momirealms.craftengine.core.plugin.context.condition.CommonConditions.HAND, HandCondition.factory()); - register(net.momirealms.craftengine.core.plugin.context.condition.CommonConditions.ON_COOLDOWN, OnCooldownCondition.factory()); - register(net.momirealms.craftengine.core.plugin.context.condition.CommonConditions.INVENTORY_HAS_ITEM, InventoryHasItemCondition.factory()); - register(net.momirealms.craftengine.core.plugin.context.condition.CommonConditions.MATCH_FURNITURE_VARIANT, MatchFurnitureVariantCondition.factory()); - } + private CommonConditions() {} - public static void register(Key key, ConditionFactory factory) { - ((WritableRegistry>) BuiltInRegistries.EVENT_CONDITION_FACTORY) - .register(ResourceKey.create(Registries.EVENT_CONDITION_FACTORY.location(), key), factory); + public static ConditionType register(Key key, ConditionFactory factory) { + ConditionType type = new ConditionType<>(key, factory); + ((WritableRegistry>) BuiltInRegistries.COMMON_CONDITION_TYPE) + .register(ResourceKey.create(Registries.COMMON_CONDITION_TYPE.location(), key), type); + return type; } @SuppressWarnings("unchecked") @@ -55,10 +56,10 @@ public class CommonConditions { type = type.substring(1); } Key key = Key.withDefaultNamespace(type, Key.DEFAULT_NAMESPACE); - ConditionFactory factory = BuiltInRegistries.EVENT_CONDITION_FACTORY.getValue(key); - if (factory == null) { + ConditionType conditionType = (ConditionType) BuiltInRegistries.COMMON_CONDITION_TYPE.getValue(key); + if (conditionType == null) { throw new LocalizedResourceConfigException("warning.config.event.condition.invalid_type", type); } - return inverted ? new InvertedCondition<>((Condition) factory.create(map)) : (Condition) factory.create(map); + return inverted ? new InvertedCondition<>((Condition) conditionType.factory().create(map)) : (Condition) conditionType.factory().create(map); } } diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/CommonFunctions.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/CommonFunctions.java index 26754e086..e0c18a7f2 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/CommonFunctions.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/CommonFunctions.java @@ -10,71 +10,76 @@ import net.momirealms.craftengine.core.util.MiscUtils; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import net.momirealms.craftengine.core.util.ResourceKey; -import java.util.*; +import java.util.ArrayList; +import java.util.EnumMap; +import java.util.List; +import java.util.Map; -public class CommonFunctions { +public final class CommonFunctions { + public static final FunctionType COMMAND = register(Key.ce("command"), CommandFunction.factory(CommonConditions::fromMap)); + public static final FunctionType MESSAGE = register(Key.ce("message"), MessageFunction.factory(CommonConditions::fromMap)); + public static final FunctionType ACTIONBAR = register(Key.ce("actionbar"), ActionBarFunction.factory(CommonConditions::fromMap)); + public static final FunctionType TITLE = register(Key.ce("title"), TitleFunction.factory(CommonConditions::fromMap)); + public static final FunctionType OPEN_WINDOW = register(Key.ce("open_window"), OpenWindowFunction.factory(CommonConditions::fromMap)); + public static final FunctionType CANCEL_EVENT = register(Key.ce("cancel_event"), CancelEventFunction.factory(CommonConditions::fromMap)); + public static final FunctionType RUN = register(Key.ce("run"), RunFunction.factory(CommonFunctions::fromMap, CommonConditions::fromMap)); + public static final FunctionType PLACE_BLOCK = register(Key.ce("place_block"), PlaceBlockFunction.factory(CommonConditions::fromMap)); + public static final FunctionType UPDATE_BLOCK_PROPERTY = register(Key.ce("update_block_property"), UpdateBlockPropertyFunction.factory(CommonConditions::fromMap)); + public static final FunctionType TRANSFORM_BLOCK = register(Key.ce("transform_block"), TransformBlockFunction.factory(CommonConditions::fromMap)); + public static final FunctionType BREAK_BLOCK = register(Key.ce("break_block"), BreakBlockFunction.factory(CommonConditions::fromMap)); + public static final FunctionType UPDATE_INTERACTION_TICK = register(Key.ce("update_interaction_tick"), UpdateInteractionFunction.factory(CommonConditions::fromMap)); + public static final FunctionType SET_COUNT = register(Key.ce("set_count"), SetCountFunction.factory(CommonConditions::fromMap)); + public static final FunctionType DROP_LOOT = register(Key.ce("drop_loot"), DropLootFunction.factory(CommonConditions::fromMap)); + public static final FunctionType SWING_HAND = register(Key.ce("swing_hand"), SwingHandFunction.factory(CommonConditions::fromMap)); + public static final FunctionType SET_FOOD = register(Key.ce("set_food"), SetFoodFunction.factory(CommonConditions::fromMap)); + public static final FunctionType SET_SATURATION = register(Key.ce("set_saturation"), SetSaturationFunction.factory(CommonConditions::fromMap)); + public static final FunctionType PLAY_SOUND = register(Key.ce("play_sound"), PlaySoundFunction.factory(CommonConditions::fromMap)); + public static final FunctionType PARTICLE = register(Key.ce("particle"), ParticleFunction.factory(CommonConditions::fromMap)); + public static final FunctionType POTION_EFFECT = register(Key.ce("potion_effect"), PotionEffectFunction.factory(CommonConditions::fromMap)); + public static final FunctionType REMOVE_POTION_EFFECT = register(Key.ce("remove_potion_effect"), RemovePotionEffectFunction.factory(CommonConditions::fromMap)); + public static final FunctionType LEVELER_EXP = register(Key.ce("leveler_exp"), LevelerExpFunction.factory(CommonConditions::fromMap)); + public static final FunctionType SET_COOLDOWN = register(Key.ce("set_cooldown"), SetCooldownFunction.factory(CommonConditions::fromMap)); + public static final FunctionType REMOVE_COOLDOWN = register(Key.ce("remove_cooldown"), RemoveCooldownFunction.factory(CommonConditions::fromMap)); + public static final FunctionType SPAWN_FURNITURE = register(Key.ce("spawn_furniture"), SpawnFurnitureFunction.factory(CommonConditions::fromMap)); + public static final FunctionType REMOVE_FURNITURE = register(Key.ce("remove_furniture"), RemoveFurnitureFunction.factory(CommonConditions::fromMap)); + public static final FunctionType REPLACE_FURNITURE = register(Key.ce("replace_furniture"), ReplaceFurnitureFunction.factory(CommonConditions::fromMap)); + public static final FunctionType ROTATE_FURNITURE = register(Key.ce("rotate_furniture"), RotateFurnitureFunction.factory(CommonConditions::fromMap)); + public static final FunctionType MYTHIC_MOBS_SKILL = register(Key.ce("mythic_mobs_skill"), MythicMobsSkillFunction.factory(CommonConditions::fromMap)); + public static final FunctionType TELEPORT = register(Key.ce("teleport"), TeleportFunction.factory(CommonConditions::fromMap)); + public static final FunctionType SET_VARIABLE = register(Key.ce("set_variable"), SetVariableFunction.factory(CommonConditions::fromMap)); + public static final FunctionType TOAST = register(Key.ce("toast"), ToastFunction.factory(CommonConditions::fromMap)); + public static final FunctionType DAMAGE = register(Key.ce("damage"), DamageFunction.factory(CommonConditions::fromMap)); + public static final FunctionType MERCHANT_TRADE = register(Key.ce("merchant_trade"), MerchantTradeFunction.factory(CommonConditions::fromMap)); + public static final FunctionType REMOVE_ENTITY = register(Key.ce("remove_entity"), RemoveEntityFunction.factory(CommonConditions::fromMap)); + public static final FunctionType IF_ELSE = register(Key.ce("if_else"), IfElseFunction.factory(CommonFunctions::fromMap, CommonConditions::fromMap)); + public static final FunctionType ALTERNATIVES = register(Key.ce("alternatives"), IfElseFunction.factory(CommonFunctions::fromMap, CommonConditions::fromMap)); + public static final FunctionType WHEN = register(Key.ce("when"), WhenFunction.factory(CommonFunctions::fromMap, CommonConditions::fromMap)); + public static final FunctionType DAMAGE_ITEM = register(Key.ce("damage_item"), DamageItemFunction.factory(CommonConditions::fromMap)); + public static final FunctionType CYCLE_BLOCK_PROPERTY = register(Key.ce("cycle_block_property"), CycleBlockPropertyFunction.factory(CommonConditions::fromMap)); + public static final FunctionType SET_EXP = register(Key.ce("set_exp"), SetExpFunction.factory(CommonConditions::fromMap)); + public static final FunctionType SET_LEVEL = register(Key.ce("set_level"), SetLevelFunction.factory(CommonConditions::fromMap)); + public static final FunctionType PLAY_TOTEM_ANIMATION = register(Key.ce("play_totem_animation"), PlayTotemAnimationFunction.factory(CommonConditions::fromMap)); + public static final FunctionType CLOSE_INVENTORY = register(Key.ce("close_inventory"), CloseInventoryFunction.factory(CommonConditions::fromMap)); + public static final FunctionType CLEAR_ITEM = register(Key.ce("clear_item"), ClearItemFunction.factory(CommonConditions::fromMap)); - static { - register(net.momirealms.craftengine.core.plugin.context.function.CommonFunctions.COMMAND, new CommandFunction.Factory<>(CommonConditions::fromMap)); - register(net.momirealms.craftengine.core.plugin.context.function.CommonFunctions.MESSAGE, new MessageFunction.Factory<>(CommonConditions::fromMap)); - register(net.momirealms.craftengine.core.plugin.context.function.CommonFunctions.ACTIONBAR, new ActionBarFunction.Factory<>(CommonConditions::fromMap)); - register(net.momirealms.craftengine.core.plugin.context.function.CommonFunctions.TITLE, new TitleFunction.Factory<>(CommonConditions::fromMap)); - register(net.momirealms.craftengine.core.plugin.context.function.CommonFunctions.OPEN_WINDOW, new OpenWindowFunction.Factory<>(CommonConditions::fromMap)); - register(net.momirealms.craftengine.core.plugin.context.function.CommonFunctions.CANCEL_EVENT, new CancelEventFunction.Factory<>(CommonConditions::fromMap)); - register(net.momirealms.craftengine.core.plugin.context.function.CommonFunctions.RUN, new RunFunction.Factory<>(CommonFunctions::fromMap, CommonConditions::fromMap)); - register(net.momirealms.craftengine.core.plugin.context.function.CommonFunctions.PLACE_BLOCK, new PlaceBlockFunction.Factory<>(CommonConditions::fromMap)); - register(net.momirealms.craftengine.core.plugin.context.function.CommonFunctions.UPDATE_BLOCK_PROPERTY, new UpdateBlockPropertyFunction.Factory<>(CommonConditions::fromMap)); - register(net.momirealms.craftengine.core.plugin.context.function.CommonFunctions.TRANSFORM_BLOCK, new TransformBlockFunction.Factory<>(CommonConditions::fromMap)); - register(net.momirealms.craftengine.core.plugin.context.function.CommonFunctions.BREAK_BLOCK, new BreakBlockFunction.Factory<>(CommonConditions::fromMap)); - register(net.momirealms.craftengine.core.plugin.context.function.CommonFunctions.UPDATE_INTERACTION_TICK, new UpdateInteractionFunction.Factory<>(CommonConditions::fromMap)); - register(net.momirealms.craftengine.core.plugin.context.function.CommonFunctions.SET_COUNT, new SetCountFunction.Factory<>(CommonConditions::fromMap)); - register(net.momirealms.craftengine.core.plugin.context.function.CommonFunctions.DROP_LOOT, new DropLootFunction.Factory<>(CommonConditions::fromMap)); - register(net.momirealms.craftengine.core.plugin.context.function.CommonFunctions.SWING_HAND, new SwingHandFunction.Factory<>(CommonConditions::fromMap)); - register(net.momirealms.craftengine.core.plugin.context.function.CommonFunctions.SET_FOOD, new SetFoodFunction.Factory<>(CommonConditions::fromMap)); - register(net.momirealms.craftengine.core.plugin.context.function.CommonFunctions.SET_SATURATION, new SetSaturationFunction.Factory<>(CommonConditions::fromMap)); - register(net.momirealms.craftengine.core.plugin.context.function.CommonFunctions.PLAY_SOUND, new PlaySoundFunction.Factory<>(CommonConditions::fromMap)); - register(net.momirealms.craftengine.core.plugin.context.function.CommonFunctions.PARTICLE, new ParticleFunction.Factory<>(CommonConditions::fromMap)); - register(net.momirealms.craftengine.core.plugin.context.function.CommonFunctions.POTION_EFFECT, new PotionEffectFunction.Factory<>(CommonConditions::fromMap)); - register(net.momirealms.craftengine.core.plugin.context.function.CommonFunctions.REMOVE_POTION_EFFECT, new RemovePotionEffectFunction.Factory<>(CommonConditions::fromMap)); - register(net.momirealms.craftengine.core.plugin.context.function.CommonFunctions.LEVELER_EXP, new LevelerExpFunction.Factory<>(CommonConditions::fromMap)); - register(net.momirealms.craftengine.core.plugin.context.function.CommonFunctions.SET_COOLDOWN, new SetCooldownFunction.Factory<>(CommonConditions::fromMap)); - register(net.momirealms.craftengine.core.plugin.context.function.CommonFunctions.REMOVE_COOLDOWN, new RemoveCooldownFunction.Factory<>(CommonConditions::fromMap)); - register(net.momirealms.craftengine.core.plugin.context.function.CommonFunctions.SPAWN_FURNITURE, new SpawnFurnitureFunction.Factory<>(CommonConditions::fromMap)); - register(net.momirealms.craftengine.core.plugin.context.function.CommonFunctions.REMOVE_FURNITURE, new RemoveFurnitureFunction.Factory<>(CommonConditions::fromMap)); - register(net.momirealms.craftengine.core.plugin.context.function.CommonFunctions.REPLACE_FURNITURE, new ReplaceFurnitureFunction.Factory<>(CommonConditions::fromMap)); - register(net.momirealms.craftengine.core.plugin.context.function.CommonFunctions.ROTATE_FURNITURE, new RotateFurnitureFunction.Factory<>(CommonConditions::fromMap)); - register(net.momirealms.craftengine.core.plugin.context.function.CommonFunctions.MYTHIC_MOBS_SKILL, new MythicMobsSkillFunction.Factory<>(CommonConditions::fromMap)); - register(net.momirealms.craftengine.core.plugin.context.function.CommonFunctions.TELEPORT, new TeleportFunction.Factory<>(CommonConditions::fromMap)); - register(net.momirealms.craftengine.core.plugin.context.function.CommonFunctions.SET_VARIABLE, new SetVariableFunction.Factory<>(CommonConditions::fromMap)); - register(net.momirealms.craftengine.core.plugin.context.function.CommonFunctions.TOAST, new ToastFunction.Factory<>(CommonConditions::fromMap)); - register(net.momirealms.craftengine.core.plugin.context.function.CommonFunctions.DAMAGE, new DamageFunction.Factory<>(CommonConditions::fromMap)); - register(net.momirealms.craftengine.core.plugin.context.function.CommonFunctions.MERCHANT_TRADE, new MerchantTradeFunction.Factory<>(CommonConditions::fromMap)); - register(net.momirealms.craftengine.core.plugin.context.function.CommonFunctions.REMOVE_ENTITY, new RemoveEntityFunction.Factory<>(CommonConditions::fromMap)); - register(net.momirealms.craftengine.core.plugin.context.function.CommonFunctions.IF_ELSE, new IfElseFunction.Factory<>(CommonConditions::fromMap, CommonFunctions::fromMap)); - register(net.momirealms.craftengine.core.plugin.context.function.CommonFunctions.ALTERNATIVES, new IfElseFunction.Factory<>(CommonConditions::fromMap, CommonFunctions::fromMap)); - register(net.momirealms.craftengine.core.plugin.context.function.CommonFunctions.WHEN, new WhenFunction.Factory<>(CommonConditions::fromMap, CommonFunctions::fromMap)); - register(net.momirealms.craftengine.core.plugin.context.function.CommonFunctions.DAMAGE_ITEM, new DamageItemFunction.Factory<>(CommonConditions::fromMap)); - register(net.momirealms.craftengine.core.plugin.context.function.CommonFunctions.CYCLE_BLOCK_PROPERTY, new CycleBlockPropertyFunction.Factory<>(CommonConditions::fromMap)); - register(net.momirealms.craftengine.core.plugin.context.function.CommonFunctions.SET_EXP, new SetExpFunction.Factory<>(CommonConditions::fromMap)); - register(net.momirealms.craftengine.core.plugin.context.function.CommonFunctions.SET_LEVEL, new SetLevelFunction.Factory<>(CommonConditions::fromMap)); - register(net.momirealms.craftengine.core.plugin.context.function.CommonFunctions.PLAY_TOTEM_ANIMATION, new PlayTotemAnimationFunction.Factory<>(CommonConditions::fromMap)); - register(net.momirealms.craftengine.core.plugin.context.function.CommonFunctions.CLOSE_INVENTORY, new CloseInventoryFunction.Factory<>(CommonConditions::fromMap)); - register(net.momirealms.craftengine.core.plugin.context.function.CommonFunctions.CLEAR_ITEM, new ClearItemFunction.Factory<>(CommonConditions::fromMap)); + private CommonFunctions() {} + + public static FunctionType register(Key key, FunctionFactory factory) { + FunctionType type = new FunctionType<>(key, factory); + ((WritableRegistry>) BuiltInRegistries.COMMON_FUNCTION_TYPE) + .register(ResourceKey.create(Registries.COMMON_FUNCTION_TYPE.location(), key), type); + return type; } - public static void register(Key key, FunctionFactory factory) { - ((WritableRegistry>) BuiltInRegistries.EVENT_FUNCTION_FACTORY) - .register(ResourceKey.create(Registries.EVENT_FUNCTION_FACTORY.location(), key), factory); - } - - public static Function fromMap(Map map) { + @SuppressWarnings("unchecked") + public static Function fromMap(Map map) { String type = ResourceConfigUtils.requireNonEmptyStringOrThrow(map.get("type"), "warning.config.function.missing_type"); Key key = Key.withDefaultNamespace(type, Key.DEFAULT_NAMESPACE); - FunctionFactory factory = BuiltInRegistries.EVENT_FUNCTION_FACTORY.getValue(key); - if (factory == null) { + FunctionType functionType = (FunctionType) BuiltInRegistries.COMMON_FUNCTION_TYPE.getValue(key); + if (functionType == null) { throw new LocalizedResourceConfigException("warning.config.function.invalid_type", type); } - return factory.create(map); + return functionType.factory().create(map); } public static Map>> parseEvents(Object eventsObj) { @@ -101,7 +106,7 @@ public class CommonFunctions { Function function = CommonFunctions.fromMap(eventSection); events.computeIfAbsent(eventTrigger, k -> new ArrayList<>(4)).add(function); } else if (eventSection.containsKey("functions")) { - events.computeIfAbsent(eventTrigger, k -> new ArrayList<>(4)).add(Objects.requireNonNull(BuiltInRegistries.EVENT_FUNCTION_FACTORY.getValue(net.momirealms.craftengine.core.plugin.context.function.CommonFunctions.RUN)).create(eventSection)); + events.computeIfAbsent(eventTrigger, k -> new ArrayList<>(4)).add(RUN.factory().create(eventSection)); } } catch (IllegalArgumentException e) { throw new LocalizedResourceConfigException("warning.config.event.invalid_trigger", on); diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/ConditionType.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/ConditionType.java new file mode 100644 index 000000000..9dc2d8ebd --- /dev/null +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/ConditionType.java @@ -0,0 +1,7 @@ +package net.momirealms.craftengine.core.plugin.context; + +import net.momirealms.craftengine.core.plugin.context.condition.ConditionFactory; +import net.momirealms.craftengine.core.util.Key; + +public record ConditionType(Key id, ConditionFactory factory) { +} diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/FunctionType.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/FunctionType.java new file mode 100644 index 000000000..3e61c3c50 --- /dev/null +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/FunctionType.java @@ -0,0 +1,7 @@ +package net.momirealms.craftengine.core.plugin.context; + +import net.momirealms.craftengine.core.plugin.context.function.FunctionFactory; +import net.momirealms.craftengine.core.util.Key; + +public record FunctionType(Key id, FunctionFactory factory) { +} diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/condition/CommonConditions.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/condition/CommonConditions.java deleted file mode 100644 index 8007af22e..000000000 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/condition/CommonConditions.java +++ /dev/null @@ -1,36 +0,0 @@ -package net.momirealms.craftengine.core.plugin.context.condition; - -import net.momirealms.craftengine.core.util.Key; - -public final class CommonConditions { - private CommonConditions() {} - - public static final Key ALWAYS_TRUE = Key.ce("always_true"); - public static final Key ALWAYS_FALSE = Key.ce("always_false"); - public static final Key ALL_OF = Key.ce("all_of"); - public static final Key ANY_OF = Key.ce("any_of"); - public static final Key INVERTED = Key.ce("inverted"); - public static final Key MATCH_ITEM = Key.ce("match_item"); - public static final Key HAS_ITEM = Key.ce("has_item"); - public static final Key MATCH_ENTITY = Key.ce("match_entity"); - public static final Key MATCH_BLOCK = Key.ce("match_block"); - public static final Key MATCH_BLOCK_PROPERTY = Key.ce("match_block_property"); - public static final Key MATCH_FURNITURE_VARIANT = Key.ce("match_furniture_variant"); - public static final Key TABLE_BONUS = Key.ce("table_bonus"); - public static final Key SURVIVES_EXPLOSION = Key.ce("survives_explosion"); - public static final Key RANDOM = Key.ce("random"); - public static final Key ENCHANTMENT = Key.ce("enchantment"); - public static final Key FALLING_BLOCK = Key.ce("falling_block"); - public static final Key DISTANCE = Key.ce("distance"); - public static final Key PERMISSION = Key.ce("permission"); - public static final Key ON_COOLDOWN = Key.ce("on_cooldown"); - public static final Key EQUALS = Key.ce("equals"); - public static final Key STRING_EQUALS = Key.ce("string_equals"); - public static final Key STRING_CONTAINS = Key.ce("string_contains"); - public static final Key STRING_REGEX = Key.ce("regex"); - public static final Key EXPRESSION = Key.ce("expression"); - public static final Key IS_NULL = Key.ce("is_null"); - public static final Key HAND = Key.ce("hand"); - public static final Key HAS_PLAYER = Key.ce("has_player"); - public static final Key INVENTORY_HAS_ITEM = Key.ce("inventory_has_item"); -} diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/AbstractConditionalFunction.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/AbstractConditionalFunction.java index 1f90610f2..63c4adf6e 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/AbstractConditionalFunction.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/AbstractConditionalFunction.java @@ -63,7 +63,7 @@ public abstract class AbstractConditionalFunction implement public static abstract class AbstractFunctionalFactory extends AbstractFactory { protected final java.util.function.Function, Function> functionFactory; - public AbstractFunctionalFactory(java.util.function.Function, Condition> factory, java.util.function.Function, Function> functionFactory) { + public AbstractFunctionalFactory(java.util.function.Function, Function> functionFactory, java.util.function.Function, Condition> factory) { super(factory); this.functionFactory = functionFactory; } diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/ActionBarFunction.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/ActionBarFunction.java index 33a5ea143..85d1a7add 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/ActionBarFunction.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/ActionBarFunction.java @@ -36,7 +36,11 @@ public class ActionBarFunction extends AbstractConditionalF } } - public static class Factory extends AbstractFactory { + public static FunctionFactory factory(java.util.function.Function, Condition> factory) { + return new Factory<>(factory); + } + + private static class Factory extends AbstractFactory { public Factory(java.util.function.Function, Condition> factory) { super(factory); diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/BreakBlockFunction.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/BreakBlockFunction.java index c36ab8bba..cd671ae96 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/BreakBlockFunction.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/BreakBlockFunction.java @@ -30,7 +30,11 @@ public class BreakBlockFunction extends AbstractConditional optionalPlayer.ifPresent(player -> player.breakBlock(MiscUtils.floor(x.getDouble(ctx)), MiscUtils.floor(y.getDouble(ctx)), MiscUtils.floor(z.getDouble(ctx)))); } - public static class Factory extends AbstractFactory { + public static FunctionFactory factory(java.util.function.Function, Condition> factory) { + return new Factory<>(factory); + } + + private static class Factory extends AbstractFactory { public Factory(java.util.function.Function, Condition> factory) { super(factory); diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/CancelEventFunction.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/CancelEventFunction.java index 5594a6f84..ec097dcd2 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/CancelEventFunction.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/CancelEventFunction.java @@ -21,7 +21,11 @@ public class CancelEventFunction extends AbstractConditiona cancellable.ifPresent(value -> value.setCancelled(true)); } - public static class Factory extends AbstractFactory { + public static FunctionFactory factory(java.util.function.Function, Condition> factory) { + return new Factory<>(factory); + } + + private static class Factory extends AbstractFactory { public Factory(java.util.function.Function, Condition> factory) { super(factory); diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/ClearItemFunction.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/ClearItemFunction.java index 58534900e..c99eff325 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/ClearItemFunction.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/ClearItemFunction.java @@ -33,7 +33,11 @@ public class ClearItemFunction extends AbstractConditionalF player.clearOrCountMatchingInventoryItems(itemId, count.getInt(ctx)); } - public static class Factory extends AbstractFactory { + public static FunctionFactory factory(java.util.function.Function, Condition> factory) { + return new Factory<>(factory); + } + + private static class Factory extends AbstractFactory { public Factory(java.util.function.Function, Condition> factory) { super(factory); diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/CloseInventoryFunction.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/CloseInventoryFunction.java index 2a5fa249f..d3aa8c1aa 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/CloseInventoryFunction.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/CloseInventoryFunction.java @@ -30,7 +30,11 @@ public class CloseInventoryFunction extends AbstractConditi } } - public static class Factory extends AbstractFactory { + public static FunctionFactory factory(java.util.function.Function, Condition> factory) { + return new Factory<>(factory); + } + + private static class Factory extends AbstractFactory { public Factory(java.util.function.Function, Condition> factory) { super(factory); diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/CommandFunction.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/CommandFunction.java index 1e30043c1..5d88bbd72 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/CommandFunction.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/CommandFunction.java @@ -62,7 +62,11 @@ public class CommandFunction extends AbstractConditionalFun } } - public static class Factory extends AbstractFactory { + public static FunctionFactory factory(java.util.function.Function, Condition> factory) { + return new Factory<>(factory); + } + + private static class Factory extends AbstractFactory { public Factory(java.util.function.Function, Condition> factory) { super(factory); diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/CommonFunctions.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/CommonFunctions.java deleted file mode 100644 index d94676443..000000000 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/CommonFunctions.java +++ /dev/null @@ -1,55 +0,0 @@ -package net.momirealms.craftengine.core.plugin.context.function; - -import net.momirealms.craftengine.core.util.Key; - -public final class CommonFunctions { - private CommonFunctions() {} - - public static final Key RUN = Key.ce("run"); - public static final Key COMMAND = Key.ce("command"); - public static final Key MESSAGE = Key.ce("message"); - public static final Key ACTIONBAR = Key.ce("actionbar"); - public static final Key TITLE = Key.ce("title"); - public static final Key OPEN_WINDOW = Key.ce("open_window"); - public static final Key PARTICLE = Key.ce("particle"); - public static final Key PLAY_SOUND = Key.ce("play_sound"); - public static final Key POTION_EFFECT = Key.ce("potion_effect"); - public static final Key REMOVE_POTION_EFFECT = Key.ce("remove_potion_effect"); - public static final Key BREAK_BLOCK = Key.ce("break_block"); - public static final Key CANCEL_EVENT = Key.ce("cancel_event"); - public static final Key UPDATE_INTERACTION_TICK = Key.ce("update_interaction_tick"); - public static final Key SET_COUNT = Key.ce("set_count"); - public static final Key PLACE_BLOCK = Key.ce("place_block"); - public static final Key TRANSFORM_BLOCK = Key.ce("transform_block"); - public static final Key UPDATE_BLOCK_PROPERTY = Key.ce("update_block_property"); - public static final Key SET_FOOD = Key.ce("set_food"); - public static final Key SET_COOLDOWN = Key.ce("set_cooldown"); - public static final Key REMOVE_COOLDOWN = Key.ce("remove_cooldown"); - public static final Key SET_SATURATION = Key.ce("set_saturation"); - public static final Key DROP_LOOT = Key.ce("drop_loot"); - public static final Key SWING_HAND = Key.ce("swing_hand"); - public static final Key LEVELER_EXP = Key.ce("leveler_exp"); - public static final Key SPAWN_FURNITURE = Key.ce("spawn_furniture"); - public static final Key REMOVE_FURNITURE = Key.ce("remove_furniture"); - public static final Key REPLACE_FURNITURE = Key.ce("replace_furniture"); - public static final Key ROTATE_FURNITURE = Key.ce("rotate_furniture"); - public static final Key MYTHIC_MOBS_SKILL = Key.ce("mythic_mobs_skill"); - public static final Key TELEPORT = Key.ce("teleport"); - public static final Key TOAST = Key.ce("toast"); - public static final Key SET_VARIABLE = Key.ce("set_variable"); - public static final Key DAMAGE = Key.ce("damage"); - public static final Key MERCHANT_TRADE = Key.ce("merchant_trade"); - public static final Key REMOVE_ENTITY = Key.ce("remove_entity"); - public static final Key IF_ELSE = Key.ce("if_else"); - public static final Key ALTERNATIVES = Key.ce("alternatives"); - public static final Key WHEN = Key.ce("when"); - public static final Key ALL_OF = Key.ce("all_of"); - public static final Key DUMMY = Key.ce("dummy"); - public static final Key DAMAGE_ITEM = Key.ce("damage_item"); - public static final Key CYCLE_BLOCK_PROPERTY = Key.ce("cycle_block_property"); - public static final Key SET_EXP = Key.ce("set_exp"); - public static final Key SET_LEVEL = Key.ce("set_level"); - public static final Key PLAY_TOTEM_ANIMATION = Key.ce("play_totem_animation"); - public static final Key CLOSE_INVENTORY = Key.ce("close_inventory"); - public static final Key CLEAR_ITEM = Key.ce("clear_item"); -} diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/CycleBlockPropertyFunction.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/CycleBlockPropertyFunction.java index 1a610e6a6..e0c160e1d 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/CycleBlockPropertyFunction.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/CycleBlockPropertyFunction.java @@ -78,7 +78,11 @@ public class CycleBlockPropertyFunction extends AbstractCon return wrapper.withProperty(this.property, mapValue); } - public static class Factory extends AbstractFactory { + public static FunctionFactory factory(java.util.function.Function, Condition> factory) { + return new Factory<>(factory); + } + + private static class Factory extends AbstractFactory { public Factory(java.util.function.Function, Condition> factory) { super(factory); 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 3b58a4247..a3faf44d7 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 @@ -29,7 +29,11 @@ public class DamageFunction extends AbstractConditionalFunc selector.get(ctx).forEach(p -> p.damage(amount.getDouble(ctx), damageType, null)); } - public static class Factory extends AbstractFactory { + public static FunctionFactory factory(java.util.function.Function, Condition> factory) { + return new Factory<>(factory); + } + + private static class Factory extends AbstractFactory { public Factory(java.util.function.Function, Condition> factory) { super(factory); diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/DamageItemFunction.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/DamageItemFunction.java index 198e1278a..b28d4d138 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/DamageItemFunction.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/DamageItemFunction.java @@ -36,7 +36,11 @@ public class DamageItemFunction extends AbstractConditional item.hurtAndBreak(amount.getInt(ctx), player, slot); } - public static class Factory extends AbstractFactory { + public static FunctionFactory factory(java.util.function.Function, Condition> factory) { + return new Factory<>(factory); + } + + private static class Factory extends AbstractFactory { public Factory(java.util.function.Function, Condition> factory) { super(factory); diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/DropLootFunction.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/DropLootFunction.java index 62986492c..051a02bdb 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/DropLootFunction.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/DropLootFunction.java @@ -53,7 +53,11 @@ public class DropLootFunction extends AbstractConditionalFu } } - public static class Factory extends AbstractFactory { + public static FunctionFactory factory(java.util.function.Function, Condition> factory) { + return new Factory<>(factory); + } + + private static class Factory extends AbstractFactory { public Factory(java.util.function.Function, Condition> factory) { super(factory); diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/IfElseFunction.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/IfElseFunction.java index ccd34f5a9..063f48f33 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/IfElseFunction.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/IfElseFunction.java @@ -28,10 +28,14 @@ public class IfElseFunction extends AbstractConditionalFunc } } - public static class Factory extends AbstractFunctionalFactory { + public static FunctionFactory factory(java.util.function.Function, Function> f1, java.util.function.Function, Condition> f2) { + return new Factory<>(f1, f2); + } - public Factory(java.util.function.Function, Condition> conditionFactory, java.util.function.Function, Function> functionFactory) { - super(conditionFactory, functionFactory); + private static class Factory extends AbstractFunctionalFactory { + + public Factory(java.util.function.Function, Function> functionFactory, java.util.function.Function, Condition> conditionFactory) { + super(functionFactory, conditionFactory); } @Override diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/LevelerExpFunction.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/LevelerExpFunction.java index cf34029f0..cd62df2dc 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/LevelerExpFunction.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/LevelerExpFunction.java @@ -42,7 +42,11 @@ public class LevelerExpFunction extends AbstractConditional } } - public static class Factory extends AbstractFactory { + public static FunctionFactory factory(java.util.function.Function, Condition> factory) { + return new Factory<>(factory); + } + + private static class Factory extends AbstractFactory { public Factory(java.util.function.Function, Condition> factory) { super(factory); diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/MerchantTradeFunction.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/MerchantTradeFunction.java index 099ae1000..b6b8da88d 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/MerchantTradeFunction.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/MerchantTradeFunction.java @@ -48,7 +48,11 @@ public class MerchantTradeFunction extends AbstractConditio } } - public static class Factory extends AbstractFactory { + public static FunctionFactory factory(java.util.function.Function, Condition> factory) { + return new Factory<>(factory); + } + + private static class Factory extends AbstractFactory { public Factory(java.util.function.Function, Condition> factory) { super(factory); diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/MessageFunction.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/MessageFunction.java index ee05d86fd..708e0a918 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/MessageFunction.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/MessageFunction.java @@ -43,7 +43,11 @@ public class MessageFunction extends AbstractConditionalFun } } - public static class Factory extends AbstractFactory { + public static FunctionFactory factory(java.util.function.Function, Condition> factory) { + return new Factory<>(factory); + } + + private static class Factory extends AbstractFactory { public Factory(java.util.function.Function, Condition> factory) { super(factory); diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/MythicMobsSkillFunction.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/MythicMobsSkillFunction.java index 20d8efe9c..c63f3fea7 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/MythicMobsSkillFunction.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/MythicMobsSkillFunction.java @@ -26,7 +26,11 @@ public class MythicMobsSkillFunction extends AbstractCondit }); } - public static class Factory extends AbstractFactory { + public static FunctionFactory factory(java.util.function.Function, Condition> factory) { + return new Factory<>(factory); + } + + private static class Factory extends AbstractFactory { public Factory(java.util.function.Function, Condition> factory) { super(factory); 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 c6e2cabd7..9de67c6a2 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 @@ -50,7 +50,11 @@ public class OpenWindowFunction extends AbstractConditional } } - public static class Factory extends AbstractFactory { + public static FunctionFactory factory(java.util.function.Function, Condition> factory) { + return new Factory<>(factory); + } + + private static class Factory extends AbstractFactory { public Factory(java.util.function.Function, Condition> factory) { super(factory); diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/ParticleFunction.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/ParticleFunction.java index fb59fb091..baf295051 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/ParticleFunction.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/ParticleFunction.java @@ -31,7 +31,11 @@ public class ParticleFunction extends AbstractConditionalFu } } - public static class Factory extends AbstractFactory { + public static FunctionFactory factory(java.util.function.Function, Condition> factory) { + return new Factory<>(factory); + } + + private static class Factory extends AbstractFactory { public Factory(java.util.function.Function, Condition> factory) { super(factory); diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/PlaceBlockFunction.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/PlaceBlockFunction.java index 6b514efba..df049f2d8 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/PlaceBlockFunction.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/PlaceBlockFunction.java @@ -43,7 +43,11 @@ public class PlaceBlockFunction extends AbstractConditional } } - public static class Factory extends AbstractFactory { + public static FunctionFactory factory(java.util.function.Function, Condition> factory) { + return new Factory<>(factory); + } + + private static class Factory extends AbstractFactory { public Factory(java.util.function.Function, Condition> factory) { super(factory); diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/PlaySoundFunction.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/PlaySoundFunction.java index 190ddfe49..eeb0d7c35 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/PlaySoundFunction.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/PlaySoundFunction.java @@ -60,7 +60,11 @@ public class PlaySoundFunction extends AbstractConditionalF } } - public static class Factory extends AbstractFactory { + public static FunctionFactory factory(java.util.function.Function, Condition> factory) { + return new Factory<>(factory); + } + + private static class Factory extends AbstractFactory { public Factory(java.util.function.Function, Condition> factory) { super(factory); diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/PlayTotemAnimationFunction.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/PlayTotemAnimationFunction.java index dd1a7c814..3f327a243 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/PlayTotemAnimationFunction.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/PlayTotemAnimationFunction.java @@ -72,7 +72,11 @@ public class PlayTotemAnimationFunction extends AbstractCon } } - public static class Factory extends AbstractFactory { + public static FunctionFactory factory(java.util.function.Function, Condition> factory) { + return new Factory<>(factory); + } + + private static class Factory extends AbstractFactory { public Factory(java.util.function.Function, Condition> factory) { super(factory); diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/PotionEffectFunction.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/PotionEffectFunction.java index e124f036d..921f51c2d 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/PotionEffectFunction.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/PotionEffectFunction.java @@ -45,7 +45,11 @@ public class PotionEffectFunction extends AbstractCondition } } - public static class Factory extends AbstractFactory { + public static FunctionFactory factory(java.util.function.Function, Condition> factory) { + return new Factory<>(factory); + } + + private static class Factory extends AbstractFactory { public Factory(java.util.function.Function, Condition> factory) { super(factory); diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/RemoveCooldownFunction.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/RemoveCooldownFunction.java index 7cc0e35be..b196f1aa8 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/RemoveCooldownFunction.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/RemoveCooldownFunction.java @@ -43,7 +43,11 @@ public class RemoveCooldownFunction extends AbstractConditi } } - public static class Factory extends AbstractFactory { + public static FunctionFactory factory(java.util.function.Function, Condition> factory) { + return new Factory<>(factory); + } + + private static class Factory extends AbstractFactory { public Factory(java.util.function.Function, Condition> factory) { super(factory); diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/RemoveEntityFunction.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/RemoveEntityFunction.java index ed8119b80..a0544c8ce 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/RemoveEntityFunction.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/RemoveEntityFunction.java @@ -19,7 +19,11 @@ public class RemoveEntityFunction extends AbstractCondition ctx.getOptionalParameter(DirectContextParameters.ENTITY).ifPresent(Entity::remove); } - public static class Factory extends AbstractFactory { + public static FunctionFactory factory(java.util.function.Function, Condition> factory) { + return new Factory<>(factory); + } + + private static class Factory extends AbstractFactory { public Factory(java.util.function.Function, Condition> factory) { super(factory); diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/RemoveFurnitureFunction.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/RemoveFurnitureFunction.java index 480e6b5fb..8e3c26e98 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/RemoveFurnitureFunction.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/RemoveFurnitureFunction.java @@ -64,7 +64,11 @@ public class RemoveFurnitureFunction extends AbstractCondit } } - public static class Factory extends AbstractFactory { + public static FunctionFactory factory(java.util.function.Function, Condition> factory) { + return new Factory<>(factory); + } + + private static class Factory extends AbstractFactory { public Factory(java.util.function.Function, Condition> factory) { super(factory); diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/RemovePotionEffectFunction.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/RemovePotionEffectFunction.java index d9d0d22a1..efdd1222f 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/RemovePotionEffectFunction.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/RemovePotionEffectFunction.java @@ -39,7 +39,11 @@ public class RemovePotionEffectFunction extends AbstractCon } } - public static class Factory extends AbstractFactory { + public static FunctionFactory factory(java.util.function.Function, Condition> factory) { + return new Factory<>(factory); + } + + private static class Factory extends AbstractFactory { public Factory(java.util.function.Function, Condition> factory) { super(factory); 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 67244ffbc..e64ef5b20 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 @@ -65,7 +65,11 @@ public class ReplaceFurnitureFunction extends AbstractCondi } } - public static class Factory extends AbstractFactory { + public static FunctionFactory factory(java.util.function.Function, Condition> factory) { + return new Factory<>(factory); + } + + private static class Factory extends AbstractFactory { public Factory(java.util.function.Function, Condition> factory) { super(factory); diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/RotateFurnitureFunction.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/RotateFurnitureFunction.java index 0e3dbefd5..9237db238 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/RotateFurnitureFunction.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/RotateFurnitureFunction.java @@ -51,7 +51,11 @@ public class RotateFurnitureFunction extends AbstractCondit return this.degree; } - public static class Factory extends AbstractFactory { + public static FunctionFactory factory(java.util.function.Function, Condition> factory) { + return new Factory<>(factory); + } + + private static class Factory extends AbstractFactory { public Factory(java.util.function.Function, Condition> factory) { super(factory); diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/RunFunction.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/RunFunction.java index 666c1ce65..d20be6fce 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/RunFunction.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/RunFunction.java @@ -52,7 +52,11 @@ public class RunFunction extends AbstractConditionalFunctio } } - public static class Factory extends AbstractFactory { + public static FunctionFactory factory(java.util.function.Function, Function> f1, java.util.function.Function, Condition> f2) { + return new Factory<>(f1, f2); + } + + private static class Factory extends AbstractFactory { private final java.util.function.Function, Function> functionFactory; public Factory(java.util.function.Function, Function> functionFactory, java.util.function.Function, Condition> conditionFactory) { diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/SetCooldownFunction.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/SetCooldownFunction.java index 20d6fbd1c..b04335f63 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/SetCooldownFunction.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/SetCooldownFunction.java @@ -49,7 +49,11 @@ public class SetCooldownFunction extends AbstractConditiona } } - public static class Factory extends AbstractFactory { + public static FunctionFactory factory(java.util.function.Function, Condition> factory) { + return new Factory<>(factory); + } + + private static class Factory extends AbstractFactory { public Factory(java.util.function.Function, Condition> factory) { super(factory); diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/SetCountFunction.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/SetCountFunction.java index f4f5372ea..de797ad17 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/SetCountFunction.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/SetCountFunction.java @@ -35,7 +35,11 @@ public class SetCountFunction extends AbstractConditionalFu } } - public static class Factory extends AbstractFactory { + public static FunctionFactory factory(java.util.function.Function, Condition> factory) { + return new Factory<>(factory); + } + + private static class Factory extends AbstractFactory { public Factory(java.util.function.Function, Condition> factory) { super(factory); diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/SetExpFunction.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/SetExpFunction.java index fb4b65f30..0cf43b51b 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/SetExpFunction.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/SetExpFunction.java @@ -32,7 +32,11 @@ public class SetExpFunction extends AbstractConditionalFunc } } - public static class Factory extends AbstractFactory { + public static FunctionFactory factory(java.util.function.Function, Condition> factory) { + return new Factory<>(factory); + } + + private static class Factory extends AbstractFactory { private static final BiConsumer ADD_POINTS = Player::giveExperiencePoints; private static final BiConsumer SET_POINTS = (player, experience) -> { if (experience < player.getXpNeededForNextLevel()) { diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/SetFoodFunction.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/SetFoodFunction.java index baad27291..91e30f066 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/SetFoodFunction.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/SetFoodFunction.java @@ -38,7 +38,11 @@ public class SetFoodFunction extends AbstractConditionalFun } } - public static class Factory extends AbstractFactory { + public static FunctionFactory factory(java.util.function.Function, Condition> factory) { + return new Factory<>(factory); + } + + private static class Factory extends AbstractFactory { public Factory(java.util.function.Function, Condition> factory) { super(factory); diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/SetLevelFunction.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/SetLevelFunction.java index 2438a0b26..ec84164b5 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/SetLevelFunction.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/SetLevelFunction.java @@ -32,7 +32,11 @@ public class SetLevelFunction extends AbstractConditionalFu } } - public static class Factory extends AbstractFactory { + public static FunctionFactory factory(java.util.function.Function, Condition> factory) { + return new Factory<>(factory); + } + + private static class Factory extends AbstractFactory { private static final BiConsumer ADD_LEVELS = Player::giveExperienceLevels; private static final BiConsumer SET_LEVELS = Player::setExperienceLevels; diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/SetSaturationFunction.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/SetSaturationFunction.java index 1674fa199..9f429f0b6 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/SetSaturationFunction.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/SetSaturationFunction.java @@ -38,7 +38,11 @@ public class SetSaturationFunction extends AbstractConditio } } - public static class Factory extends AbstractFactory { + public static FunctionFactory factory(java.util.function.Function, Condition> factory) { + return new Factory<>(factory); + } + + private static class Factory extends AbstractFactory { public Factory(java.util.function.Function, Condition> factory) { super(factory); diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/SetVariableFunction.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/SetVariableFunction.java index dceae5e63..ac1728f40 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/SetVariableFunction.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/SetVariableFunction.java @@ -35,7 +35,11 @@ public class SetVariableFunction extends AbstractConditiona .ifRight(number -> contexts.withParameter(ContextKey.direct("var_" + this.variableName), asInt ? number.getInt(ctx) : number.getDouble(ctx))); } - public static class Factory extends AbstractFactory { + public static FunctionFactory factory(java.util.function.Function, Condition> factory) { + return new Factory<>(factory); + } + + private static class Factory extends AbstractFactory { public Factory(java.util.function.Function, Condition> factory) { super(factory); 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 523226afa..436474066 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 @@ -57,7 +57,11 @@ public class SpawnFurnitureFunction extends AbstractConditi CraftEngine.instance().furnitureManager().furnitureById(furnitureId).ifPresent(furniture -> CraftEngine.instance().furnitureManager().place(position, furniture, FurnitureDataAccessor.ofVariant(variant), playSound)); } - public static class Factory extends AbstractFactory { + public static FunctionFactory factory(java.util.function.Function, Condition> factory) { + return new Factory<>(factory); + } + + private static class Factory extends AbstractFactory { public Factory(java.util.function.Function, Condition> factory) { super(factory); diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/SwingHandFunction.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/SwingHandFunction.java index 73ff6ec2a..ca6fd5dec 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/SwingHandFunction.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/SwingHandFunction.java @@ -31,7 +31,11 @@ public class SwingHandFunction extends AbstractConditionalF }); } - public static class Factory extends AbstractFactory { + public static FunctionFactory factory(java.util.function.Function, Condition> factory) { + return new Factory<>(factory); + } + + private static class Factory extends AbstractFactory { public Factory(java.util.function.Function, Condition> factory) { super(factory); diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/TeleportFunction.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/TeleportFunction.java index b43bd3459..1923658c7 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/TeleportFunction.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/TeleportFunction.java @@ -67,7 +67,11 @@ public class TeleportFunction extends AbstractConditionalFu } } - public static class Factory extends AbstractFactory { + public static FunctionFactory factory(java.util.function.Function, Condition> factory) { + return new Factory<>(factory); + } + + private static class Factory extends AbstractFactory { public Factory(java.util.function.Function, Condition> factory) { super(factory); diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/TitleFunction.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/TitleFunction.java index 314a4533d..6403969c3 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/TitleFunction.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/TitleFunction.java @@ -52,7 +52,11 @@ public class TitleFunction extends AbstractConditionalFunct } } - public static class Factory extends AbstractFactory { + public static FunctionFactory factory(java.util.function.Function, Condition> factory) { + return new Factory<>(factory); + } + + private static class Factory extends AbstractFactory { public Factory(java.util.function.Function, Condition> factory) { super(factory); 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 1930a8665..2eec6ded2 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 @@ -49,7 +49,11 @@ public class ToastFunction extends AbstractConditionalFunct } } - public static class Factory extends AbstractFactory { + public static FunctionFactory factory(java.util.function.Function, Condition> factory) { + return new Factory<>(factory); + } + + private static class Factory extends AbstractFactory { public Factory(java.util.function.Function, Condition> factory) { super(factory); diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/TransformBlockFunction.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/TransformBlockFunction.java index a8ba173d0..46f56d32f 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/TransformBlockFunction.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/TransformBlockFunction.java @@ -61,7 +61,11 @@ public class TransformBlockFunction extends AbstractConditi } } - public static class Factory extends AbstractFactory { + public static FunctionFactory factory(java.util.function.Function, Condition> factory) { + return new Factory<>(factory); + } + + private static class Factory extends AbstractFactory { public Factory(java.util.function.Function, Condition> factory) { super(factory); diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/UpdateBlockPropertyFunction.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/UpdateBlockPropertyFunction.java index 1d9140cec..9aee84e88 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/UpdateBlockPropertyFunction.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/UpdateBlockPropertyFunction.java @@ -48,7 +48,11 @@ public class UpdateBlockPropertyFunction extends AbstractCo } } - public static class Factory extends AbstractFactory { + public static FunctionFactory factory(java.util.function.Function, Condition> factory) { + return new Factory<>(factory); + } + + private static class Factory extends AbstractFactory { public Factory(java.util.function.Function, Condition> factory) { super(factory); diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/UpdateInteractionFunction.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/UpdateInteractionFunction.java index 2f7577299..12e735de4 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/UpdateInteractionFunction.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/UpdateInteractionFunction.java @@ -21,7 +21,11 @@ public class UpdateInteractionFunction extends AbstractCond cancellable.ifPresent(value -> value.updateLastSuccessfulInteractionTick(value.gameTicks())); } - public static class Factory extends AbstractFactory { + public static FunctionFactory factory(java.util.function.Function, Condition> factory) { + return new Factory<>(factory); + } + + private static class Factory extends AbstractFactory { public Factory(java.util.function.Function, Condition> factory) { super(factory); diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/WhenFunction.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/WhenFunction.java index fc2c424ae..0b68685ff 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/WhenFunction.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/function/WhenFunction.java @@ -31,10 +31,14 @@ public class WhenFunction extends AbstractConditionalFuncti function.run(ctx); } - public static class Factory extends AbstractFunctionalFactory { + public static FunctionFactory factory(java.util.function.Function, Function> f1, java.util.function.Function, Condition> f2) { + return new Factory<>(f1, f2); + } - public Factory(java.util.function.Function, Condition> conditionFactory, java.util.function.Function, Function> functionFactory) { - super(conditionFactory, functionFactory); + private static class Factory extends AbstractFunctionalFactory { + + public Factory(java.util.function.Function, Function> functionFactory, java.util.function.Function, Condition> conditionFactory) { + super(functionFactory, conditionFactory); } @Override diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/selector/PlayerSelectors.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/selector/PlayerSelectors.java index 31f2f2fc0..f3e02cd87 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/selector/PlayerSelectors.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/selector/PlayerSelectors.java @@ -23,7 +23,7 @@ public final class PlayerSelectors { public static PlayerSelectorType register(Key key, PlayerSelectorFactory factory) { PlayerSelectorType type = new PlayerSelectorType<>(key, factory); - ((WritableRegistry>) BuiltInRegistries.PLAYER_SELECTOR_TYPE) + ((WritableRegistry>) BuiltInRegistries.PLAYER_SELECTOR_TYPE) .register(ResourceKey.create(Registries.PLAYER_SELECTOR_TYPE.location(), key), type); return type; } 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 df1242946..cafcff5ab 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 @@ -2,13 +2,19 @@ package net.momirealms.craftengine.core.registry; import net.momirealms.craftengine.core.block.CustomBlock; import net.momirealms.craftengine.core.block.behavior.BlockBehaviorType; +import net.momirealms.craftengine.core.block.entity.BlockEntity; import net.momirealms.craftengine.core.block.entity.BlockEntityType; +import net.momirealms.craftengine.core.block.entity.render.element.BlockEntityElement; import net.momirealms.craftengine.core.block.entity.render.element.BlockEntityElementConfigType; import net.momirealms.craftengine.core.block.properties.PropertyType; +import net.momirealms.craftengine.core.entity.furniture.behavior.FurnitureBehavior; import net.momirealms.craftengine.core.entity.furniture.behavior.FurnitureBehaviorType; +import net.momirealms.craftengine.core.entity.furniture.element.FurnitureElement; import net.momirealms.craftengine.core.entity.furniture.element.FurnitureElementConfigType; +import net.momirealms.craftengine.core.entity.furniture.hitbox.FurnitureHitBox; import net.momirealms.craftengine.core.entity.furniture.hitbox.FurnitureHitboxConfigType; import net.momirealms.craftengine.core.item.behavior.ItemBehaviorType; +import net.momirealms.craftengine.core.item.equipment.Equipment; import net.momirealms.craftengine.core.item.equipment.EquipmentType; import net.momirealms.craftengine.core.item.processor.ItemProcessorType; import net.momirealms.craftengine.core.item.recipe.CustomSmithingTransformRecipe; @@ -21,8 +27,8 @@ import net.momirealms.craftengine.core.item.recipe.remainder.CraftRemainderType; import net.momirealms.craftengine.core.item.recipe.result.PostProcessorType; import net.momirealms.craftengine.core.item.updater.ItemUpdaterType; import net.momirealms.craftengine.core.loot.entry.LootEntryContainerType; -import net.momirealms.craftengine.core.loot.function.ApplyBonusCountFunction; import net.momirealms.craftengine.core.loot.function.LootFunctionType; +import net.momirealms.craftengine.core.loot.function.formula.FormulaType; import net.momirealms.craftengine.core.pack.conflict.matcher.PathMatcherType; import net.momirealms.craftengine.core.pack.conflict.resolution.ResolutionType; import net.momirealms.craftengine.core.pack.host.ResourcePackHostType; @@ -33,9 +39,9 @@ import net.momirealms.craftengine.core.pack.model.definition.select.SelectProper import net.momirealms.craftengine.core.pack.model.definition.special.SpecialModelType; import net.momirealms.craftengine.core.pack.model.definition.tint.TintType; import net.momirealms.craftengine.core.plugin.config.template.argument.TemplateArgumentType; +import net.momirealms.craftengine.core.plugin.context.ConditionType; import net.momirealms.craftengine.core.plugin.context.Context; -import net.momirealms.craftengine.core.plugin.context.condition.ConditionFactory; -import net.momirealms.craftengine.core.plugin.context.function.FunctionFactory; +import net.momirealms.craftengine.core.plugin.context.FunctionType; import net.momirealms.craftengine.core.plugin.context.number.NumberProviderType; import net.momirealms.craftengine.core.plugin.context.selector.PlayerSelectorType; import net.momirealms.craftengine.core.plugin.network.ModPacket; @@ -48,7 +54,7 @@ public final class BuiltInRegistries { public static final Registry BLOCK_BEHAVIOR_TYPE = createConstantBoundRegistry(Registries.BLOCK_BEHAVIOR_TYPE, 64); public static final Registry> ITEM_PROCESSOR_TYPE = createConstantBoundRegistry(Registries.ITEM_PROCESSOR_TYPE, 64); public static final Registry ITEM_BEHAVIOR_TYPE = createConstantBoundRegistry(Registries.ITEM_BEHAVIOR_TYPE, 64); - public static final Registry> PROPERTY_TYPE = createConstantBoundRegistry(Registries.PROPERTY_TYPE, 16); + public static final Registry>> PROPERTY_TYPE = createConstantBoundRegistry(Registries.PROPERTY_TYPE, 16); public static final Registry> LOOT_FUNCTION_TYPE = createConstantBoundRegistry(Registries.LOOT_FUNCTION_TYPE, 32); public static final Registry> LOOT_ENTRY_CONTAINER_TYPE = createConstantBoundRegistry(Registries.LOOT_ENTRY_CONTAINER_TYPE, 16); public static final Registry NUMBER_PROVIDER_TYPE = createConstantBoundRegistry(Registries.NUMBER_PROVIDER_TYPE, 16); @@ -59,28 +65,28 @@ public final class BuiltInRegistries { public static final Registry RANGE_DISPATCH_PROPERTY_TYPE = createConstantBoundRegistry(Registries.RANGE_DISPATCH_PROPERTY_TYPE, 16); public static final Registry CONDITION_PROPERTY_TYPE = createConstantBoundRegistry(Registries.CONDITION_PROPERTY_TYPE, 16); public static final Registry SELECT_PROPERTY_TYPE = createConstantBoundRegistry(Registries.SELECT_PROPERTY_TYPE, 16); - public static final Registry>> RECIPE_SERIALIZER = createConstantBoundRegistry(Registries.RECIPE_FACTORY, 16); - public static final Registry FORMULA_FACTORY = createConstantBoundRegistry(Registries.FORMULA_FACTORY, 16); + public static final Registry>> RECIPE_SERIALIZER = createConstantBoundRegistry(Registries.RECIPE_SERIALIZER, 16); + public static final Registry FORMULA_TYPE = createConstantBoundRegistry(Registries.FORMULA_TYPE, 16); public static final Registry PATH_MATCHER_TYPE = createConstantBoundRegistry(Registries.PATH_MATCHER_TYPE, 16); public static final Registry RESOLUTION_TYPE = createConstantBoundRegistry(Registries.RESOLUTION_TYPE, 16); - public static final Registry SMITHING_RESULT_PROCESSOR_FACTORY = createConstantBoundRegistry(Registries.SMITHING_RESULT_PROCESSOR_FACTORY, 16); - public static final Registry RESOURCE_PACK_HOST_FACTORY = createConstantBoundRegistry(Registries.RESOURCE_PACK_HOST_FACTORY, 16); - public static final Registry> EVENT_FUNCTION_FACTORY = createConstantBoundRegistry(Registries.EVENT_FUNCTION_FACTORY, 128); - public static final Registry> EVENT_CONDITION_FACTORY = createConstantBoundRegistry(Registries.EVENT_CONDITION_FACTORY, 128); - public static final Registry> PLAYER_SELECTOR_TYPE = createConstantBoundRegistry(Registries.PLAYER_SELECTOR_TYPE, 16); - public static final Registry> EQUIPMENT_TYPE = createConstantBoundRegistry(Registries.EQUIPMENT_TYPE, 8); + public static final Registry SMITHING_RESULT_PROCESSOR_TYPE = createConstantBoundRegistry(Registries.SMITHING_RESULT_PROCESSOR_TYPE, 16); + public static final Registry RESOURCE_PACK_HOST_TYPE = createConstantBoundRegistry(Registries.RESOURCE_PACK_HOST_TYPE, 16); + public static final Registry> COMMON_FUNCTION_TYPE = createConstantBoundRegistry(Registries.COMMON_FUNCTION_TYPE, 128); + public static final Registry> COMMON_CONDITION_TYPE = createConstantBoundRegistry(Registries.COMMON_CONDITION_TYPE, 128); + public static final Registry> PLAYER_SELECTOR_TYPE = createConstantBoundRegistry(Registries.PLAYER_SELECTOR_TYPE, 16); + public static final Registry> EQUIPMENT_TYPE = createConstantBoundRegistry(Registries.EQUIPMENT_TYPE, 8); public static final Registry> SLOT_DISPLAY_TYPE = createConstantBoundRegistry(Registries.SLOT_DISPLAY_TYPE, 16); public static final Registry> RECIPE_DISPLAY_TYPE = createConstantBoundRegistry(Registries.RECIPE_DISPLAY_TYPE, 16); public static final Registry> LEGACY_RECIPE_TYPE = createConstantBoundRegistry(Registries.LEGACY_RECIPE_TYPE, 16); public static final Registry> RECIPE_POST_PROCESSOR_TYPE = createConstantBoundRegistry(Registries.RECIPE_POST_PROCESSOR_TYPE, 16); 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_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> CRAFT_REMAINDER_TYPE = createConstantBoundRegistry(Registries.CRAFT_REMAINDER_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); - public static final Registry> FURNITURE_BEHAVIOR_TYPE = createConstantBoundRegistry(Registries.FURNITURE_BEHAVIOR_TYPE, 32); + 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_BEHAVIOR_TYPE = createConstantBoundRegistry(Registries.FURNITURE_BEHAVIOR_TYPE, 32); private BuiltInRegistries() {} 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 b17ddfe9b..e07e4292d 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 @@ -2,13 +2,19 @@ package net.momirealms.craftengine.core.registry; import net.momirealms.craftengine.core.block.CustomBlock; import net.momirealms.craftengine.core.block.behavior.BlockBehaviorType; +import net.momirealms.craftengine.core.block.entity.BlockEntity; import net.momirealms.craftengine.core.block.entity.BlockEntityType; +import net.momirealms.craftengine.core.block.entity.render.element.BlockEntityElement; import net.momirealms.craftengine.core.block.entity.render.element.BlockEntityElementConfigType; import net.momirealms.craftengine.core.block.properties.PropertyType; +import net.momirealms.craftengine.core.entity.furniture.behavior.FurnitureBehavior; import net.momirealms.craftengine.core.entity.furniture.behavior.FurnitureBehaviorType; +import net.momirealms.craftengine.core.entity.furniture.element.FurnitureElement; import net.momirealms.craftengine.core.entity.furniture.element.FurnitureElementConfigType; +import net.momirealms.craftengine.core.entity.furniture.hitbox.FurnitureHitBox; import net.momirealms.craftengine.core.entity.furniture.hitbox.FurnitureHitboxConfigType; import net.momirealms.craftengine.core.item.behavior.ItemBehaviorType; +import net.momirealms.craftengine.core.item.equipment.Equipment; import net.momirealms.craftengine.core.item.equipment.EquipmentType; import net.momirealms.craftengine.core.item.processor.ItemProcessorType; import net.momirealms.craftengine.core.item.recipe.CustomSmithingTransformRecipe; @@ -21,8 +27,8 @@ import net.momirealms.craftengine.core.item.recipe.remainder.CraftRemainderType; import net.momirealms.craftengine.core.item.recipe.result.PostProcessorType; import net.momirealms.craftengine.core.item.updater.ItemUpdaterType; import net.momirealms.craftengine.core.loot.entry.LootEntryContainerType; -import net.momirealms.craftengine.core.loot.function.ApplyBonusCountFunction; import net.momirealms.craftengine.core.loot.function.LootFunctionType; +import net.momirealms.craftengine.core.loot.function.formula.FormulaType; import net.momirealms.craftengine.core.pack.conflict.matcher.PathMatcherType; import net.momirealms.craftengine.core.pack.conflict.resolution.ResolutionType; import net.momirealms.craftengine.core.pack.host.ResourcePackHostType; @@ -33,9 +39,9 @@ import net.momirealms.craftengine.core.pack.model.definition.select.SelectProper import net.momirealms.craftengine.core.pack.model.definition.special.SpecialModelType; import net.momirealms.craftengine.core.pack.model.definition.tint.TintType; import net.momirealms.craftengine.core.plugin.config.template.argument.TemplateArgumentType; +import net.momirealms.craftengine.core.plugin.context.ConditionType; import net.momirealms.craftengine.core.plugin.context.Context; -import net.momirealms.craftengine.core.plugin.context.condition.ConditionFactory; -import net.momirealms.craftengine.core.plugin.context.function.FunctionFactory; +import net.momirealms.craftengine.core.plugin.context.FunctionType; import net.momirealms.craftengine.core.plugin.context.number.NumberProviderType; import net.momirealms.craftengine.core.plugin.context.selector.PlayerSelectorType; import net.momirealms.craftengine.core.plugin.network.ModPacket; @@ -50,7 +56,7 @@ public final class Registries { public static final Key ROOT_REGISTRY = Key.withDefaultNamespace("root"); public static final ResourceKey> BLOCK = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("block")); public static final ResourceKey>> ITEM_PROCESSOR_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("item_processor_type")); - public static final ResourceKey>> PROPERTY_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("property_type")); + public static final ResourceKey>>> PROPERTY_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("property_type")); public static final ResourceKey> BLOCK_BEHAVIOR_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("block_behavior_type")); public static final ResourceKey> ITEM_BEHAVIOR_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("item_behavior_type")); public static final ResourceKey>> LOOT_FUNCTION_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("loot_function_type")); @@ -63,26 +69,26 @@ public final class Registries { public static final ResourceKey> RANGE_DISPATCH_PROPERTY_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("range_dispatch_property_type")); public static final ResourceKey> CONDITION_PROPERTY_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("condition_property_type")); public static final ResourceKey> SELECT_PROPERTY_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("select_property_type")); - public static final ResourceKey>>> RECIPE_FACTORY = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("recipe_factory")); - public static final ResourceKey> FORMULA_FACTORY = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("formula_factory")); + public static final ResourceKey>>> RECIPE_SERIALIZER = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("recipe_serializer")); + public static final ResourceKey> FORMULA_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("formula_type")); public static final ResourceKey> PATH_MATCHER_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("path_matcher_type")); public static final ResourceKey> RESOLUTION_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("resolution_type")); - public static final ResourceKey> SMITHING_RESULT_PROCESSOR_FACTORY = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("smithing_result_processor_factory")); - public static final ResourceKey> RESOURCE_PACK_HOST_FACTORY = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("resource_pack_host_factory")); - public static final ResourceKey>> EVENT_FUNCTION_FACTORY = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("event_function_factory")); - public static final ResourceKey>> EVENT_CONDITION_FACTORY = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("event_condition_factory")); - public static final ResourceKey>> PLAYER_SELECTOR_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("player_selector_type")); - public static final ResourceKey>> EQUIPMENT_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("equipment_type")); + public static final ResourceKey> SMITHING_RESULT_PROCESSOR_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("smithing_result_processor_type")); + public static final ResourceKey> RESOURCE_PACK_HOST_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("resource_pack_host_type")); + public static final ResourceKey>> COMMON_FUNCTION_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("common_function_type")); + public static final ResourceKey>> COMMON_CONDITION_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("common_condition_type")); + public static final ResourceKey>> PLAYER_SELECTOR_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("player_selector_type")); + public static final ResourceKey>> EQUIPMENT_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("equipment_type")); public static final ResourceKey>> SLOT_DISPLAY_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("slot_display_type")); public static final ResourceKey>> RECIPE_DISPLAY_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("recipe_display_type")); public static final ResourceKey>> LEGACY_RECIPE_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("legacy_recipe_type")); public static final ResourceKey>> RECIPE_POST_PROCESSOR_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("recipe_post_processor_type")); 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_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>> CRAFT_REMAINDER_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("craft_remainder_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")); - public static final ResourceKey>> FURNITURE_BEHAVIOR_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("furniture_behavior_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")); + public static final ResourceKey>> FURNITURE_BEHAVIOR_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("furniture_behavior_type")); } diff --git a/gradle.properties b/gradle.properties index e644a7ea3..00fd1f293 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,7 +1,7 @@ org.gradle.jvmargs=-Xmx4G # Project settings -project_version=0.0.66.10 +project_version=0.0.66.11 config_version=66 lang_version=48 project_group=net.momirealms