diff --git a/gradle.properties b/gradle.properties index 4e3c5ea..d7ce4af 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,9 +4,9 @@ org.gradle.parallel=true # Fabric Properties # check these on https://fabricmc.net/develop -minecraft_version=1.21 -yarn_mappings=1.21+build.7 -loader_version=0.16.0 +minecraft_version=1.21.1 +yarn_mappings=1.21.1+build.3 +loader_version=0.16.5 # Mod Properties mod_version=1.5.1 @@ -14,11 +14,11 @@ maven_group=com.github.shap_po.shappoli archives_base_name=shappoli # Dependencies -fabric_version=0.100.5+1.21 -apoli_version=2.12.0-alpha.11+mc.1.21.x +fabric_version=0.105.0+1.21.1 +apoli_version=2.12.0-alpha.12+mc.1.21.x # Optional Dependencies -origins_version=1.13.0-alpha.8+mc.1.21.x +origins_version=1.13.0-alpha.9+mc.1.21.x trinkets_version=3.10.0 wildfire_gender_version=3.2.1+1.21 woodwalkers_version=1.21-fabric-5.2 diff --git a/src/main/java/com/github/shap_po/shappoli/access/SuppressiblePower.java b/src/main/java/com/github/shap_po/shappoli/access/SuppressiblePower.java index 7817f75..18ccefc 100644 --- a/src/main/java/com/github/shap_po/shappoli/access/SuppressiblePower.java +++ b/src/main/java/com/github/shap_po/shappoli/access/SuppressiblePower.java @@ -10,7 +10,7 @@ public interface SuppressiblePower { boolean shappoli$hasConditions(); - void shappoli$setHasConditions(boolean hasConditions); + void shappoli$setHasConditions(boolean hasConditionTypes); @SuppressWarnings({"unused"}) @Nullable diff --git a/src/main/java/com/github/shap_po/shappoli/action/factory/BiEntityActions.java b/src/main/java/com/github/shap_po/shappoli/action/factory/BiEntityActionTypes.java similarity index 90% rename from src/main/java/com/github/shap_po/shappoli/action/factory/BiEntityActions.java rename to src/main/java/com/github/shap_po/shappoli/action/factory/BiEntityActionTypes.java index 76101ee..d77b420 100644 --- a/src/main/java/com/github/shap_po/shappoli/action/factory/BiEntityActions.java +++ b/src/main/java/com/github/shap_po/shappoli/action/factory/BiEntityActionTypes.java @@ -10,7 +10,7 @@ import net.minecraft.registry.Registry; import net.minecraft.util.Pair; -public class BiEntityActions { +public class BiEntityActionTypes { public static void register() { register(SuppressPowerActionType.getFactory()); register(TeleportActionType.getFactory()); @@ -19,7 +19,7 @@ public static void register() { SendActionActionType.getFactory( Pair::getLeft, ReceiveActionPowerType::receiveBientityAction, - io.github.apace100.apoli.action.factory.BiEntityActions.ALIASES + io.github.apace100.apoli.action.type.BiEntityActionTypes.ALIASES ) ); } diff --git a/src/main/java/com/github/shap_po/shappoli/action/factory/BlockActions.java b/src/main/java/com/github/shap_po/shappoli/action/factory/BlockActionTypes.java similarity index 95% rename from src/main/java/com/github/shap_po/shappoli/action/factory/BlockActions.java rename to src/main/java/com/github/shap_po/shappoli/action/factory/BlockActionTypes.java index 4ec1893..8740963 100644 --- a/src/main/java/com/github/shap_po/shappoli/action/factory/BlockActions.java +++ b/src/main/java/com/github/shap_po/shappoli/action/factory/BlockActionTypes.java @@ -8,7 +8,7 @@ import net.minecraft.world.World; import org.apache.commons.lang3.tuple.Triple; -public class BlockActions { +public class BlockActionTypes { public static void register() { } diff --git a/src/main/java/com/github/shap_po/shappoli/action/factory/EntityActions.java b/src/main/java/com/github/shap_po/shappoli/action/factory/EntityActionTypes.java similarity index 89% rename from src/main/java/com/github/shap_po/shappoli/action/factory/EntityActions.java rename to src/main/java/com/github/shap_po/shappoli/action/factory/EntityActionTypes.java index 5ded196..62e890d 100644 --- a/src/main/java/com/github/shap_po/shappoli/action/factory/EntityActions.java +++ b/src/main/java/com/github/shap_po/shappoli/action/factory/EntityActionTypes.java @@ -1,14 +1,14 @@ package com.github.shap_po.shappoli.action.factory; -import com.github.shap_po.shappoli.power.type.ReceiveActionPowerType; import com.github.shap_po.shappoli.action.type.entity.SelfBientityActionActionType; import com.github.shap_po.shappoli.action.type.meta.SendActionActionType; +import com.github.shap_po.shappoli.power.type.ReceiveActionPowerType; import io.github.apace100.apoli.action.factory.ActionTypeFactory; import io.github.apace100.apoli.registry.ApoliRegistries; import net.minecraft.entity.Entity; import net.minecraft.registry.Registry; -public class EntityActions { +public class EntityActionTypes { public static void register() { register(SelfBientityActionActionType.getFactory()); @@ -16,7 +16,7 @@ public static void register() { SendActionActionType.getFactory( entity -> entity, ReceiveActionPowerType::receiveEntityAction, - io.github.apace100.apoli.action.factory.EntityActions.ALIASES + io.github.apace100.apoli.action.type.EntityActionTypes.ALIASES ) ); } diff --git a/src/main/java/com/github/shap_po/shappoli/action/factory/ItemActions.java b/src/main/java/com/github/shap_po/shappoli/action/factory/ItemActionTypes.java similarity index 90% rename from src/main/java/com/github/shap_po/shappoli/action/factory/ItemActions.java rename to src/main/java/com/github/shap_po/shappoli/action/factory/ItemActionTypes.java index cc64f40..77251b1 100644 --- a/src/main/java/com/github/shap_po/shappoli/action/factory/ItemActions.java +++ b/src/main/java/com/github/shap_po/shappoli/action/factory/ItemActionTypes.java @@ -1,7 +1,7 @@ package com.github.shap_po.shappoli.action.factory; -import com.github.shap_po.shappoli.power.type.ReceiveActionPowerType; import com.github.shap_po.shappoli.action.type.meta.SendActionActionType; +import com.github.shap_po.shappoli.power.type.ReceiveActionPowerType; import com.github.shap_po.shappoli.util.InventoryUtil; import io.github.apace100.apoli.action.factory.ActionTypeFactory; import io.github.apace100.apoli.registry.ApoliRegistries; @@ -10,13 +10,13 @@ import net.minecraft.util.Pair; import net.minecraft.world.World; -public class ItemActions { +public class ItemActionTypes { public static void register() { register( SendActionActionType.getFactory( worldAndStack -> InventoryUtil.getHolder(worldAndStack.getRight().get()), ReceiveActionPowerType::receiveItemAction, - io.github.apace100.apoli.action.factory.ItemActions.ALIASES + io.github.apace100.apoli.action.type.ItemActionTypes.ALIASES ) ); } diff --git a/src/main/java/com/github/shap_po/shappoli/action/type/bientity/SuppressPowerActionType.java b/src/main/java/com/github/shap_po/shappoli/action/type/bientity/SuppressPowerActionType.java index 47c6e53..34f3ff8 100644 --- a/src/main/java/com/github/shap_po/shappoli/action/type/bientity/SuppressPowerActionType.java +++ b/src/main/java/com/github/shap_po/shappoli/action/type/bientity/SuppressPowerActionType.java @@ -116,7 +116,7 @@ private static

boolean suppressPower( if (!suppressiblePower.shappoli$hasConditions() && !ignoreNoConditionWarning) { Shappoli.LOGGER.warn( - "Suppressed power \"{}\" of type \"{}\" that does not support conditions. This probably would not work. If you want to ignore this message, set the \"ignore_no_condition_warning\" parameter to \"true\"", + "Suppressed power \"{}\" of type \"{}\" that does not support ConditionTypes. This probably would not work. If you want to ignore this message, set the \"ignore_no_condition_warning\" parameter to \"true\"", powerType.getPowerId(), powerType.getPower().getFactoryInstance().getSerializerId() ); @@ -130,16 +130,16 @@ public static ActionTypeFactory> getFactory() { Shappoli.identifier("suppress_power"), new SerializableData() .add("power", ApoliDataTypes.POWER_REFERENCE, null) // power reference, example: my_namespace:my_power - .add("powers", ApoliDataTypes.POWER_REFERENCE.listOf(), null) + .add("powers", ApoliDataTypes.POWER_REFERENCE.list(), null) .add("power_type", ApoliDataTypes.POWER_TYPE_FACTORY, null) // power type, example: apoli:action_on_hit - .add("power_types", ApoliDataTypes.POWER_TYPE_FACTORY.listOf(), null) + .add("power_types", ApoliDataTypes.POWER_TYPE_FACTORY.list(), null) .add("power_source", SerializableDataTypes.IDENTIFIER, null) // power source identifier, example: apoli:command .add("power_sources", SerializableDataTypes.IDENTIFIERS, null) .add("ignored_power", ApoliDataTypes.POWER_REFERENCE, null) // power reference to ignore - .add("ignored_powers", ApoliDataTypes.POWER_REFERENCE.listOf(), null) + .add("ignored_powers", ApoliDataTypes.POWER_REFERENCE.list(), null) .add("duration", SerializableDataTypes.POSITIVE_INT) .add("bientity_action", ApoliDataTypes.BIENTITY_ACTION, null) @@ -147,7 +147,7 @@ public static ActionTypeFactory> getFactory() { .add("ignore_no_condition_warning", SerializableDataTypes.BOOLEAN, false) .add("ignore_multiple_power_warning", SerializableDataTypes.BOOLEAN, false) - .postProcessor(data -> MiscUtil.checkHasAtLeastOneField(data, "power", "powers", "power_type", "power_types", "power_source", "power_sources")) + .validate(data -> MiscUtil.checkAtLeastOneFieldExists(data, "power", "powers", "power_type", "power_types", "power_source", "power_sources")) , (data, actorAndTarget) -> action( actorAndTarget.getLeft(), actorAndTarget.getRight(), diff --git a/src/main/java/com/github/shap_po/shappoli/action/type/bientity/TeleportActionType.java b/src/main/java/com/github/shap_po/shappoli/action/type/bientity/TeleportActionType.java index 1b690fd..d0d928b 100644 --- a/src/main/java/com/github/shap_po/shappoli/action/type/bientity/TeleportActionType.java +++ b/src/main/java/com/github/shap_po/shappoli/action/type/bientity/TeleportActionType.java @@ -1,6 +1,7 @@ package com.github.shap_po.shappoli.action.type.bientity; import com.github.shap_po.shappoli.Shappoli; +import com.github.shap_po.shappoli.util.MiscUtil; import io.github.apace100.apoli.action.factory.ActionTypeFactory; import io.github.apace100.calio.data.SerializableData; import io.github.apace100.calio.data.SerializableDataTypes; @@ -65,11 +66,7 @@ public static ActionTypeFactory> getFactory() { .add("teleport_actor", SerializableDataTypes.BOOLEAN, false) .add("teleport_target", SerializableDataTypes.BOOLEAN, true) .add("rotate", SerializableDataTypes.BOOLEAN, false) - .postProcessor(data -> { - if (!data.getBoolean("teleport_actor") && !data.getBoolean("teleport_target")) { - throw new IllegalStateException("Any of 'teleport_actor' or 'teleport_target' fields must to true!"); - } - }) + .validate(MiscUtil::checkAtLeastOneFieldIsTrue) , (data, actorAndTarget) -> action( actorAndTarget.getLeft(), actorAndTarget.getRight(), diff --git a/src/main/java/com/github/shap_po/shappoli/action/type/entity/SelfBientityActionActionType.java b/src/main/java/com/github/shap_po/shappoli/action/type/entity/SelfBientityActionActionType.java index 92f5b1d..98c605b 100644 --- a/src/main/java/com/github/shap_po/shappoli/action/type/entity/SelfBientityActionActionType.java +++ b/src/main/java/com/github/shap_po/shappoli/action/type/entity/SelfBientityActionActionType.java @@ -2,7 +2,7 @@ import com.github.shap_po.shappoli.Shappoli; import io.github.apace100.apoli.action.factory.ActionTypeFactory; -import io.github.apace100.apoli.action.factory.EntityActions; +import io.github.apace100.apoli.action.type.EntityActionTypes; import io.github.apace100.apoli.data.ApoliDataTypes; import io.github.apace100.calio.data.SerializableData; import net.minecraft.entity.Entity; @@ -25,8 +25,8 @@ public static ActionTypeFactory getFactory() { (data, entity) -> action(entity, data.get("action")) ); - EntityActions.ALIASES.addPathAlias("self_bientity", factory.getSerializerId().getPath()); - EntityActions.ALIASES.addPathAlias("bientity_action", factory.getSerializerId().getPath()); + EntityActionTypes.ALIASES.addPathAlias("self_bientity", factory.getSerializerId().getPath()); + EntityActionTypes.ALIASES.addPathAlias("bientity_action", factory.getSerializerId().getPath()); return factory; } } diff --git a/src/main/java/com/github/shap_po/shappoli/condition/factory/BiEntityConditions.java b/src/main/java/com/github/shap_po/shappoli/condition/factory/BiEntityConditionTypes.java similarity index 87% rename from src/main/java/com/github/shap_po/shappoli/condition/factory/BiEntityConditions.java rename to src/main/java/com/github/shap_po/shappoli/condition/factory/BiEntityConditionTypes.java index 9ca5208..ae83007 100644 --- a/src/main/java/com/github/shap_po/shappoli/condition/factory/BiEntityConditions.java +++ b/src/main/java/com/github/shap_po/shappoli/condition/factory/BiEntityConditionTypes.java @@ -1,19 +1,19 @@ package com.github.shap_po.shappoli.condition.factory; -import com.github.shap_po.shappoli.power.type.ReceiveConditionPowerType; import com.github.shap_po.shappoli.condition.type.meta.SendConditionConditionType; +import com.github.shap_po.shappoli.power.type.ReceiveConditionPowerType; import io.github.apace100.apoli.condition.factory.ConditionTypeFactory; import io.github.apace100.apoli.registry.ApoliRegistries; import net.minecraft.entity.Entity; import net.minecraft.registry.Registry; import net.minecraft.util.Pair; -public class BiEntityConditions { +public class BiEntityConditionTypes { public static void register() { register(SendConditionConditionType.getFactory( Pair::getLeft, ReceiveConditionPowerType::receiveBientity, - io.github.apace100.apoli.condition.factory.BiEntityConditions.ALIASES + io.github.apace100.apoli.condition.type.BiEntityConditionTypes.ALIASES )); } diff --git a/src/main/java/com/github/shap_po/shappoli/condition/factory/EntityConditions.java b/src/main/java/com/github/shap_po/shappoli/condition/factory/EntityConditionTypes.java similarity index 87% rename from src/main/java/com/github/shap_po/shappoli/condition/factory/EntityConditions.java rename to src/main/java/com/github/shap_po/shappoli/condition/factory/EntityConditionTypes.java index 47e20de..6b8a950 100644 --- a/src/main/java/com/github/shap_po/shappoli/condition/factory/EntityConditions.java +++ b/src/main/java/com/github/shap_po/shappoli/condition/factory/EntityConditionTypes.java @@ -1,18 +1,18 @@ package com.github.shap_po.shappoli.condition.factory; -import com.github.shap_po.shappoli.power.type.ReceiveConditionPowerType; import com.github.shap_po.shappoli.condition.type.meta.SendConditionConditionType; +import com.github.shap_po.shappoli.power.type.ReceiveConditionPowerType; import io.github.apace100.apoli.condition.factory.ConditionTypeFactory; import io.github.apace100.apoli.registry.ApoliRegistries; import net.minecraft.entity.Entity; import net.minecraft.registry.Registry; -public class EntityConditions { +public class EntityConditionTypes { public static void register() { register(SendConditionConditionType.getFactory( entity -> entity, ReceiveConditionPowerType::receiveEntity, - io.github.apace100.apoli.condition.factory.EntityConditions.ALIASES + io.github.apace100.apoli.condition.type.EntityConditionTypes.ALIASES )); } diff --git a/src/main/java/com/github/shap_po/shappoli/condition/factory/ItemConditions.java b/src/main/java/com/github/shap_po/shappoli/condition/factory/ItemConditionTypes.java similarity index 91% rename from src/main/java/com/github/shap_po/shappoli/condition/factory/ItemConditions.java rename to src/main/java/com/github/shap_po/shappoli/condition/factory/ItemConditionTypes.java index 91a6194..9feb3e9 100644 --- a/src/main/java/com/github/shap_po/shappoli/condition/factory/ItemConditions.java +++ b/src/main/java/com/github/shap_po/shappoli/condition/factory/ItemConditionTypes.java @@ -1,9 +1,9 @@ package com.github.shap_po.shappoli.condition.factory; -import com.github.shap_po.shappoli.power.type.ReceiveConditionPowerType; import com.github.shap_po.shappoli.condition.type.item.BlockConditionType; import com.github.shap_po.shappoli.condition.type.item.HolderConditionType; import com.github.shap_po.shappoli.condition.type.meta.SendConditionConditionType; +import com.github.shap_po.shappoli.power.type.ReceiveConditionPowerType; import com.github.shap_po.shappoli.util.InventoryUtil; import io.github.apace100.apoli.condition.factory.ConditionTypeFactory; import io.github.apace100.apoli.registry.ApoliRegistries; @@ -12,7 +12,7 @@ import net.minecraft.util.Pair; import net.minecraft.world.World; -public class ItemConditions { +public class ItemConditionTypes { public static void register() { register(BlockConditionType.getFactory()); register(HolderConditionType.getFactory()); @@ -21,7 +21,7 @@ public static void register() { SendConditionConditionType.getFactory( worldAndStack -> InventoryUtil.getHolder(worldAndStack.getRight()), ReceiveConditionPowerType::receiveItem, - io.github.apace100.apoli.condition.factory.ItemConditions.ALIASES + io.github.apace100.apoli.condition.type.ItemConditionTypes.ALIASES ) ); } diff --git a/src/main/java/com/github/shap_po/shappoli/condition/type/item/BlockConditionType.java b/src/main/java/com/github/shap_po/shappoli/condition/type/item/BlockConditionType.java index 733d4b2..2ea6c51 100644 --- a/src/main/java/com/github/shap_po/shappoli/condition/type/item/BlockConditionType.java +++ b/src/main/java/com/github/shap_po/shappoli/condition/type/item/BlockConditionType.java @@ -2,7 +2,7 @@ import com.github.shap_po.shappoli.Shappoli; import io.github.apace100.apoli.condition.factory.ConditionTypeFactory; -import io.github.apace100.apoli.condition.factory.ItemConditions; +import io.github.apace100.apoli.condition.type.ItemConditionTypes; import io.github.apace100.calio.data.SerializableData; import net.minecraft.item.BlockItem; import net.minecraft.item.ItemStack; @@ -21,7 +21,7 @@ public static ConditionTypeFactory> getFactory() { (data, worldAndStack) -> condition(worldAndStack.getRight()) ); - ItemConditions.ALIASES.addPathAlias("block", factory.getSerializerId().getPath()); + ItemConditionTypes.ALIASES.addPathAlias("block", factory.getSerializerId().getPath()); return factory; } } diff --git a/src/main/java/com/github/shap_po/shappoli/condition/type/item/HolderConditionType.java b/src/main/java/com/github/shap_po/shappoli/condition/type/item/HolderConditionType.java index 4a20ec0..7b5b73e 100644 --- a/src/main/java/com/github/shap_po/shappoli/condition/type/item/HolderConditionType.java +++ b/src/main/java/com/github/shap_po/shappoli/condition/type/item/HolderConditionType.java @@ -3,7 +3,7 @@ import com.github.shap_po.shappoli.Shappoli; import com.github.shap_po.shappoli.util.InventoryUtil; import io.github.apace100.apoli.condition.factory.ConditionTypeFactory; -import io.github.apace100.apoli.condition.factory.ItemConditions; +import io.github.apace100.apoli.condition.type.ItemConditionTypes; import io.github.apace100.apoli.data.ApoliDataTypes; import io.github.apace100.calio.data.SerializableData; import net.minecraft.entity.Entity; @@ -29,7 +29,7 @@ public static ConditionTypeFactory> getFactory() { (data, worldAndStack) -> condition(worldAndStack.getRight(), data.get("condition")) ); - ItemConditions.ALIASES.addPathAlias("holder", factory.getSerializerId().getPath()); + ItemConditionTypes.ALIASES.addPathAlias("holder", factory.getSerializerId().getPath()); return factory; } } diff --git a/src/main/java/com/github/shap_po/shappoli/integration/origins/OriginsIntegration.java b/src/main/java/com/github/shap_po/shappoli/integration/origins/OriginsIntegration.java index 3da2a7c..b3b3506 100644 --- a/src/main/java/com/github/shap_po/shappoli/integration/origins/OriginsIntegration.java +++ b/src/main/java/com/github/shap_po/shappoli/integration/origins/OriginsIntegration.java @@ -1,11 +1,11 @@ package com.github.shap_po.shappoli.integration.origins; -import com.github.shap_po.shappoli.integration.origins.action.factory.BiEntityActions; -import com.github.shap_po.shappoli.integration.origins.action.factory.EntityActions; +import com.github.shap_po.shappoli.integration.origins.action.factory.BiEntityActionTypes; +import com.github.shap_po.shappoli.integration.origins.action.factory.EntityActionTypes; public class OriginsIntegration { public static void register() { - BiEntityActions.register(); - EntityActions.register(); + BiEntityActionTypes.register(); + EntityActionTypes.register(); } } diff --git a/src/main/java/com/github/shap_po/shappoli/integration/origins/action/factory/BiEntityActions.java b/src/main/java/com/github/shap_po/shappoli/integration/origins/action/factory/BiEntityActionTypes.java similarity index 95% rename from src/main/java/com/github/shap_po/shappoli/integration/origins/action/factory/BiEntityActions.java rename to src/main/java/com/github/shap_po/shappoli/integration/origins/action/factory/BiEntityActionTypes.java index cd913fb..e802bf2 100644 --- a/src/main/java/com/github/shap_po/shappoli/integration/origins/action/factory/BiEntityActions.java +++ b/src/main/java/com/github/shap_po/shappoli/integration/origins/action/factory/BiEntityActionTypes.java @@ -7,7 +7,7 @@ import net.minecraft.registry.Registry; import net.minecraft.util.Pair; -public class BiEntityActions { +public class BiEntityActionTypes { public static void register() { register(CopyOriginActionType.getFactory()); } diff --git a/src/main/java/com/github/shap_po/shappoli/integration/origins/action/factory/EntityActions.java b/src/main/java/com/github/shap_po/shappoli/integration/origins/action/factory/EntityActionTypes.java similarity index 95% rename from src/main/java/com/github/shap_po/shappoli/integration/origins/action/factory/EntityActions.java rename to src/main/java/com/github/shap_po/shappoli/integration/origins/action/factory/EntityActionTypes.java index 1de4e38..ea1354b 100644 --- a/src/main/java/com/github/shap_po/shappoli/integration/origins/action/factory/EntityActions.java +++ b/src/main/java/com/github/shap_po/shappoli/integration/origins/action/factory/EntityActionTypes.java @@ -6,7 +6,7 @@ import net.minecraft.entity.Entity; import net.minecraft.registry.Registry; -public class EntityActions { +public class EntityActionTypes { public static void register() { register(SetOriginActionType.getFactory()); } diff --git a/src/main/java/com/github/shap_po/shappoli/integration/origins/action/type/bientity/CopyOriginActionType.java b/src/main/java/com/github/shap_po/shappoli/integration/origins/action/type/bientity/CopyOriginActionType.java index f365cf8..0bb8e27 100644 --- a/src/main/java/com/github/shap_po/shappoli/integration/origins/action/type/bientity/CopyOriginActionType.java +++ b/src/main/java/com/github/shap_po/shappoli/integration/origins/action/type/bientity/CopyOriginActionType.java @@ -2,8 +2,9 @@ import com.github.shap_po.shappoli.Shappoli; import com.github.shap_po.shappoli.integration.origins.util.OriginsUtil; +import com.github.shap_po.shappoli.util.MiscUtil; import io.github.apace100.apoli.action.factory.ActionTypeFactory; -import io.github.apace100.apoli.action.factory.BiEntityActions; +import io.github.apace100.apoli.action.type.BiEntityActionTypes; import io.github.apace100.calio.data.SerializableData; import io.github.apace100.calio.data.SerializableDataTypes; import io.github.apace100.origins.origin.Origin; @@ -39,11 +40,7 @@ public static ActionTypeFactory> getFactory() { .add("layer", SerializableDataTypes.IDENTIFIER, OriginsUtil.ORIGIN_LAYER_ID) .add("modify_actor", SerializableDataTypes.BOOLEAN, false) .add("modify_target", SerializableDataTypes.BOOLEAN, true) - .postProcessor(data -> { - if (!data.getBoolean("modify_actor") && !data.getBoolean("modify_target")) { - throw new IllegalStateException("Any of 'modify_actor' and 'modify_target' fields must be true."); - } - }) + .validate(MiscUtil::checkAtLeastOneFieldIsTrue) , (data, actorAndTarget) -> action( actorAndTarget.getLeft(), actorAndTarget.getRight(), @@ -52,7 +49,7 @@ public static ActionTypeFactory> getFactory() { ) ); - BiEntityActions.ALIASES.addPathAlias("transfer_origin", factory.getSerializerId().getPath()); + BiEntityActionTypes.ALIASES.addPathAlias("transfer_origin", factory.getSerializerId().getPath()); return factory; } } diff --git a/src/main/java/com/github/shap_po/shappoli/integration/origins/util/OriginsUtil.java b/src/main/java/com/github/shap_po/shappoli/integration/origins/util/OriginsUtil.java index 4dc5b84..3db3e3d 100644 --- a/src/main/java/com/github/shap_po/shappoli/integration/origins/util/OriginsUtil.java +++ b/src/main/java/com/github/shap_po/shappoli/integration/origins/util/OriginsUtil.java @@ -5,7 +5,7 @@ import io.github.apace100.origins.origin.Origin; import io.github.apace100.origins.origin.OriginLayer; import io.github.apace100.origins.origin.OriginLayerManager; -import io.github.apace100.origins.origin.OriginRegistry; +import io.github.apace100.origins.origin.OriginManager; import io.github.apace100.origins.registry.ModComponents; import net.minecraft.entity.Entity; import net.minecraft.util.Identifier; @@ -41,7 +41,7 @@ public static boolean setOrigin(Entity entity, @Nullable OriginLayer layer, @Nul public static @Nullable Origin getOrigin(Identifier id) { try { - return OriginRegistry.get(id); + return OriginManager.get(id); } catch (IllegalArgumentException e) { return null; } diff --git a/src/main/java/com/github/shap_po/shappoli/integration/trinkets/TrinketsIntegration.java b/src/main/java/com/github/shap_po/shappoli/integration/trinkets/TrinketsIntegration.java index c48f751..276015c 100644 --- a/src/main/java/com/github/shap_po/shappoli/integration/trinkets/TrinketsIntegration.java +++ b/src/main/java/com/github/shap_po/shappoli/integration/trinkets/TrinketsIntegration.java @@ -2,16 +2,16 @@ import com.github.shap_po.shappoli.integration.trinkets.command.TrinketsCommand; import com.github.shap_po.shappoli.integration.trinkets.power.factory.PowerTypes; -import com.github.shap_po.shappoli.integration.trinkets.action.factory.EntityActions; -import com.github.shap_po.shappoli.integration.trinkets.condition.factory.EntityConditions; -import com.github.shap_po.shappoli.integration.trinkets.condition.factory.ItemConditions; +import com.github.shap_po.shappoli.integration.trinkets.action.factory.EntityActionTypes; +import com.github.shap_po.shappoli.integration.trinkets.condition.factory.EntityConditionTypes; +import com.github.shap_po.shappoli.integration.trinkets.condition.factory.ItemConditionTypes; public class TrinketsIntegration { public static void register() { PowerTypes.register(); - EntityActions.register(); - EntityConditions.register(); - ItemConditions.register(); + EntityActionTypes.register(); + EntityConditionTypes.register(); + ItemConditionTypes.register(); TrinketsCommand.register(); } diff --git a/src/main/java/com/github/shap_po/shappoli/integration/trinkets/action/factory/EntityActions.java b/src/main/java/com/github/shap_po/shappoli/integration/trinkets/action/factory/EntityActionTypes.java similarity index 95% rename from src/main/java/com/github/shap_po/shappoli/integration/trinkets/action/factory/EntityActions.java rename to src/main/java/com/github/shap_po/shappoli/integration/trinkets/action/factory/EntityActionTypes.java index cb7dbbe..c4d7383 100644 --- a/src/main/java/com/github/shap_po/shappoli/integration/trinkets/action/factory/EntityActions.java +++ b/src/main/java/com/github/shap_po/shappoli/integration/trinkets/action/factory/EntityActionTypes.java @@ -6,7 +6,7 @@ import net.minecraft.entity.Entity; import net.minecraft.registry.Registry; -public class EntityActions { +public class EntityActionTypes { public static void register() { register(ModifyTrinketActionType.getFactory()); } diff --git a/src/main/java/com/github/shap_po/shappoli/integration/trinkets/action/type/entity/ModifyTrinketActionType.java b/src/main/java/com/github/shap_po/shappoli/integration/trinkets/action/type/entity/ModifyTrinketActionType.java index 4a7a9f0..6840a67 100644 --- a/src/main/java/com/github/shap_po/shappoli/integration/trinkets/action/type/entity/ModifyTrinketActionType.java +++ b/src/main/java/com/github/shap_po/shappoli/integration/trinkets/action/type/entity/ModifyTrinketActionType.java @@ -6,7 +6,7 @@ import com.github.shap_po.shappoli.integration.trinkets.util.TrinketsUtil; import dev.emi.trinkets.api.SlotReference; import io.github.apace100.apoli.action.factory.ActionTypeFactory; -import io.github.apace100.apoli.action.factory.EntityActions; +import io.github.apace100.apoli.action.type.EntityActionTypes; import io.github.apace100.apoli.data.ApoliDataTypes; import io.github.apace100.apoli.util.InventoryUtil; import io.github.apace100.calio.data.SerializableData; @@ -83,7 +83,7 @@ public static ActionTypeFactory getFactory() { ) ); - EntityActions.ALIASES.addPathAlias("modify_trinkets", factory.getSerializerId().getPath()); + EntityActionTypes.ALIASES.addPathAlias("modify_trinkets", factory.getSerializerId().getPath()); return factory; } } diff --git a/src/main/java/com/github/shap_po/shappoli/integration/trinkets/condition/factory/EntityConditions.java b/src/main/java/com/github/shap_po/shappoli/integration/trinkets/condition/factory/EntityConditionTypes.java similarity index 96% rename from src/main/java/com/github/shap_po/shappoli/integration/trinkets/condition/factory/EntityConditions.java rename to src/main/java/com/github/shap_po/shappoli/integration/trinkets/condition/factory/EntityConditionTypes.java index f6a3e73..08f42eb 100644 --- a/src/main/java/com/github/shap_po/shappoli/integration/trinkets/condition/factory/EntityConditions.java +++ b/src/main/java/com/github/shap_po/shappoli/integration/trinkets/condition/factory/EntityConditionTypes.java @@ -7,7 +7,7 @@ import net.minecraft.entity.Entity; import net.minecraft.registry.Registry; -public class EntityConditions { +public class EntityConditionTypes { public static void register() { register(EquippedTrinketCountConditionType.getFactory()); register(TrinketSlotCountConditionType.getFactory()); diff --git a/src/main/java/com/github/shap_po/shappoli/integration/trinkets/condition/factory/ItemConditions.java b/src/main/java/com/github/shap_po/shappoli/integration/trinkets/condition/factory/ItemConditionTypes.java similarity index 97% rename from src/main/java/com/github/shap_po/shappoli/integration/trinkets/condition/factory/ItemConditions.java rename to src/main/java/com/github/shap_po/shappoli/integration/trinkets/condition/factory/ItemConditionTypes.java index 16431ab..cea26d2 100644 --- a/src/main/java/com/github/shap_po/shappoli/integration/trinkets/condition/factory/ItemConditions.java +++ b/src/main/java/com/github/shap_po/shappoli/integration/trinkets/condition/factory/ItemConditionTypes.java @@ -10,7 +10,7 @@ import net.minecraft.util.Pair; import net.minecraft.world.World; -public class ItemConditions { +public class ItemConditionTypes { public static void register() { register(EquippableTrinketConditionType.getFactory()); register(EquippedTrinketCountConditionType.getFactory()); diff --git a/src/main/java/com/github/shap_po/shappoli/integration/trinkets/condition/type/entity/EquippedTrinketCountConditionType.java b/src/main/java/com/github/shap_po/shappoli/integration/trinkets/condition/type/entity/EquippedTrinketCountConditionType.java index 43a9098..b6e6140 100644 --- a/src/main/java/com/github/shap_po/shappoli/integration/trinkets/condition/type/entity/EquippedTrinketCountConditionType.java +++ b/src/main/java/com/github/shap_po/shappoli/integration/trinkets/condition/type/entity/EquippedTrinketCountConditionType.java @@ -5,7 +5,7 @@ import com.github.shap_po.shappoli.integration.trinkets.data.TrinketSlotData; import com.github.shap_po.shappoli.integration.trinkets.util.TrinketsUtil; import io.github.apace100.apoli.condition.factory.ConditionTypeFactory; -import io.github.apace100.apoli.condition.factory.EntityConditions; +import io.github.apace100.apoli.condition.type.EntityConditionTypes; import io.github.apace100.apoli.data.ApoliDataTypes; import io.github.apace100.apoli.util.Comparison; import io.github.apace100.calio.data.SerializableData; @@ -55,7 +55,7 @@ public static ConditionTypeFactory getFactory() { ) ); - EntityConditions.ALIASES.addPathAlias("equipped_trinket", factory.getSerializerId().getPath()); + EntityConditionTypes.ALIASES.addPathAlias("equipped_trinket", factory.getSerializerId().getPath()); return factory; } } diff --git a/src/main/java/com/github/shap_po/shappoli/integration/trinkets/condition/type/entity/TrinketSlotCountConditionType.java b/src/main/java/com/github/shap_po/shappoli/integration/trinkets/condition/type/entity/TrinketSlotCountConditionType.java index 6ccf42c..afb0eaa 100644 --- a/src/main/java/com/github/shap_po/shappoli/integration/trinkets/condition/type/entity/TrinketSlotCountConditionType.java +++ b/src/main/java/com/github/shap_po/shappoli/integration/trinkets/condition/type/entity/TrinketSlotCountConditionType.java @@ -5,7 +5,7 @@ import com.github.shap_po.shappoli.integration.trinkets.data.TrinketSlotData; import com.github.shap_po.shappoli.integration.trinkets.util.TrinketsUtil; import io.github.apace100.apoli.condition.factory.ConditionTypeFactory; -import io.github.apace100.apoli.condition.factory.EntityConditions; +import io.github.apace100.apoli.condition.type.EntityConditionTypes; import io.github.apace100.apoli.data.ApoliDataTypes; import io.github.apace100.apoli.util.Comparison; import io.github.apace100.calio.data.SerializableData; @@ -46,7 +46,7 @@ public static ConditionTypeFactory getFactory() { ) ); - EntityConditions.ALIASES.addPathAlias("trinket_slots_count", factory.getSerializerId().getPath()); + EntityConditionTypes.ALIASES.addPathAlias("trinket_slots_count", factory.getSerializerId().getPath()); return factory; } } diff --git a/src/main/java/com/github/shap_po/shappoli/integration/trinkets/condition/type/item/EquippableTrinketConditionType.java b/src/main/java/com/github/shap_po/shappoli/integration/trinkets/condition/type/item/EquippableTrinketConditionType.java index a1c170f..75e2888 100644 --- a/src/main/java/com/github/shap_po/shappoli/integration/trinkets/condition/type/item/EquippableTrinketConditionType.java +++ b/src/main/java/com/github/shap_po/shappoli/integration/trinkets/condition/type/item/EquippableTrinketConditionType.java @@ -7,7 +7,7 @@ import com.github.shap_po.shappoli.util.InventoryUtil; import dev.emi.trinkets.TrinketSlot; import io.github.apace100.apoli.condition.factory.ConditionTypeFactory; -import io.github.apace100.apoli.condition.factory.ItemConditions; +import io.github.apace100.apoli.condition.type.ItemConditionTypes; import io.github.apace100.calio.data.SerializableData; import io.github.apace100.calio.data.SerializableDataTypes; import net.minecraft.entity.Entity; @@ -52,7 +52,7 @@ public static ConditionTypeFactory> getFactory() { ) ); - ItemConditions.ALIASES.addPathAlias("is_equippable_trinket", factory.getSerializerId().getPath()); + ItemConditionTypes.ALIASES.addPathAlias("is_equippable_trinket", factory.getSerializerId().getPath()); return factory; } } diff --git a/src/main/java/com/github/shap_po/shappoli/integration/trinkets/condition/type/item/EquippedTrinketCountConditionType.java b/src/main/java/com/github/shap_po/shappoli/integration/trinkets/condition/type/item/EquippedTrinketCountConditionType.java index a88adbe..d9ffbee 100644 --- a/src/main/java/com/github/shap_po/shappoli/integration/trinkets/condition/type/item/EquippedTrinketCountConditionType.java +++ b/src/main/java/com/github/shap_po/shappoli/integration/trinkets/condition/type/item/EquippedTrinketCountConditionType.java @@ -6,7 +6,7 @@ import com.github.shap_po.shappoli.integration.trinkets.util.TrinketsUtil; import com.github.shap_po.shappoli.util.InventoryUtil; import io.github.apace100.apoli.condition.factory.ConditionTypeFactory; -import io.github.apace100.apoli.condition.factory.ItemConditions; +import io.github.apace100.apoli.condition.type.ItemConditionTypes; import io.github.apace100.apoli.data.ApoliDataTypes; import io.github.apace100.apoli.util.Comparison; import io.github.apace100.calio.data.SerializableData; @@ -53,7 +53,7 @@ public static ConditionTypeFactory> getFactory() { ) ); - ItemConditions.ALIASES.addPathAlias("equipped_trinket", factory.getSerializerId().getPath()); + ItemConditionTypes.ALIASES.addPathAlias("equipped_trinket", factory.getSerializerId().getPath()); return factory; } } diff --git a/src/main/java/com/github/shap_po/shappoli/integration/trinkets/condition/type/item/TrinketConditionType.java b/src/main/java/com/github/shap_po/shappoli/integration/trinkets/condition/type/item/TrinketConditionType.java index 55aacf7..88226f3 100644 --- a/src/main/java/com/github/shap_po/shappoli/integration/trinkets/condition/type/item/TrinketConditionType.java +++ b/src/main/java/com/github/shap_po/shappoli/integration/trinkets/condition/type/item/TrinketConditionType.java @@ -3,7 +3,7 @@ import com.github.shap_po.shappoli.Shappoli; import dev.emi.trinkets.api.TrinketsApi; import io.github.apace100.apoli.condition.factory.ConditionTypeFactory; -import io.github.apace100.apoli.condition.factory.ItemConditions; +import io.github.apace100.apoli.condition.type.ItemConditionTypes; import io.github.apace100.calio.data.SerializableData; import net.minecraft.item.ItemStack; import net.minecraft.util.Pair; @@ -21,7 +21,7 @@ public static ConditionTypeFactory> getFactory() { (data, worldAndStack) -> condition(worldAndStack.getRight()) ); - ItemConditions.ALIASES.addPathAlias("trinket", factory.getSerializerId().getPath()); + ItemConditionTypes.ALIASES.addPathAlias("trinket", factory.getSerializerId().getPath()); return factory; } } diff --git a/src/main/java/com/github/shap_po/shappoli/integration/trinkets/data/ShappoliTrinketsDataTypes.java b/src/main/java/com/github/shap_po/shappoli/integration/trinkets/data/ShappoliTrinketsDataTypes.java index 696634a..d9de90a 100644 --- a/src/main/java/com/github/shap_po/shappoli/integration/trinkets/data/ShappoliTrinketsDataTypes.java +++ b/src/main/java/com/github/shap_po/shappoli/integration/trinkets/data/ShappoliTrinketsDataTypes.java @@ -5,9 +5,9 @@ import java.util.List; public class ShappoliTrinketsDataTypes { - public static final SerializableDataType TRINKET_SLOT = SerializableDataType.compound(TrinketSlotData.class, TrinketSlotData.DATA, TrinketSlotData::fromData, TrinketSlotData::toData); + public static final SerializableDataType TRINKET_SLOT = SerializableDataType.compound(TrinketSlotData.DATA, TrinketSlotData::fromData, TrinketSlotData::toData); public static final SerializableDataType> TRINKET_SLOTS = SerializableDataType.list(TRINKET_SLOT); - public static final SerializableDataType SLOT_ENTITY_ATTRIBUTE_MODIFIER = SerializableDataType.compound(SlotEntityAttributeModifier.class, SlotEntityAttributeModifier.DATA, SlotEntityAttributeModifier::fromData, SlotEntityAttributeModifier::toData); + public static final SerializableDataType SLOT_ENTITY_ATTRIBUTE_MODIFIER = SerializableDataType.compound(SlotEntityAttributeModifier.DATA, SlotEntityAttributeModifier::fromData, SlotEntityAttributeModifier::toData); public static final SerializableDataType> SLOT_ENTITY_ATTRIBUTE_MODIFIERS = SerializableDataType.list(SLOT_ENTITY_ATTRIBUTE_MODIFIER); } diff --git a/src/main/java/com/github/shap_po/shappoli/integration/trinkets/data/SlotEntityAttributeModifier.java b/src/main/java/com/github/shap_po/shappoli/integration/trinkets/data/SlotEntityAttributeModifier.java index bda2c79..b888302 100644 --- a/src/main/java/com/github/shap_po/shappoli/integration/trinkets/data/SlotEntityAttributeModifier.java +++ b/src/main/java/com/github/shap_po/shappoli/integration/trinkets/data/SlotEntityAttributeModifier.java @@ -39,7 +39,7 @@ public static SlotEntityAttributeModifier fromData(SerializableData.Instance dat return new SlotEntityAttributeModifier(attribute, modifier); } - public static SerializableData.Instance toData(SerializableData data, SlotEntityAttributeModifier instance) { + public static SerializableData.Instance toData(SlotEntityAttributeModifier instance,SerializableData data) { SerializableData.Instance dataInstance = data.new Instance(); dataInstance.set("slot", instance.attribute.slot); dataInstance.set("id", instance.getModifier().id()); diff --git a/src/main/java/com/github/shap_po/shappoli/integration/trinkets/data/TrinketSlotData.java b/src/main/java/com/github/shap_po/shappoli/integration/trinkets/data/TrinketSlotData.java index e7620e0..621647f 100644 --- a/src/main/java/com/github/shap_po/shappoli/integration/trinkets/data/TrinketSlotData.java +++ b/src/main/java/com/github/shap_po/shappoli/integration/trinkets/data/TrinketSlotData.java @@ -55,7 +55,7 @@ public static TrinketSlotData fromData(SerializableData.Instance dataInstance) { ); } - public static SerializableData.Instance toData(SerializableData data, TrinketSlotData slot) { + public static SerializableData.Instance toData(TrinketSlotData slot,SerializableData data) { SerializableData.Instance dataInstance = data.new Instance(); dataInstance.set("name", slot.name); dataInstance.set("group", slot.group); diff --git a/src/main/java/com/github/shap_po/shappoli/integration/trinkets/power/type/ActionOnTrinketChangePowerType.java b/src/main/java/com/github/shap_po/shappoli/integration/trinkets/power/type/ActionOnTrinketChangePowerType.java index 3257e5c..2b2d39b 100644 --- a/src/main/java/com/github/shap_po/shappoli/integration/trinkets/power/type/ActionOnTrinketChangePowerType.java +++ b/src/main/java/com/github/shap_po/shappoli/integration/trinkets/power/type/ActionOnTrinketChangePowerType.java @@ -12,7 +12,7 @@ import io.github.apace100.apoli.data.ApoliDataTypes; import io.github.apace100.apoli.power.Power; import io.github.apace100.apoli.power.factory.PowerTypeFactory; -import io.github.apace100.apoli.power.factory.PowerTypes; +import io.github.apace100.apoli.power.type.PowerTypes; import io.github.apace100.apoli.power.type.PowerType; import io.github.apace100.calio.data.SerializableData; import net.minecraft.entity.Entity; @@ -101,7 +101,7 @@ public static PowerTypeFactory getFactory() { .add("item_condition", ApoliDataTypes.ITEM_CONDITION) .add("slot", ShappoliTrinketsDataTypes.TRINKET_SLOT, null) .add("slots", ShappoliTrinketsDataTypes.TRINKET_SLOTS, null) - .postProcessor(data -> MiscUtil.checkHasAtLeastOneField(data, "entity_action_on_equip", "item_action_on_equip", "entity_action_on_unequip", "item_action_on_unequip")) + .validate(data -> MiscUtil.checkAtLeastOneFieldExists(data, "entity_action_on_equip", "item_action_on_equip", "entity_action_on_unequip", "item_action_on_unequip")) , data -> (type, player) -> new ActionOnTrinketChangePowerType( type, diff --git a/src/main/java/com/github/shap_po/shappoli/integration/trinkets/power/type/ConditionedModifyTrinketSlotPowerType.java b/src/main/java/com/github/shap_po/shappoli/integration/trinkets/power/type/ConditionedModifyTrinketSlotPowerType.java index 2265a97..cb0da2b 100644 --- a/src/main/java/com/github/shap_po/shappoli/integration/trinkets/power/type/ConditionedModifyTrinketSlotPowerType.java +++ b/src/main/java/com/github/shap_po/shappoli/integration/trinkets/power/type/ConditionedModifyTrinketSlotPowerType.java @@ -6,7 +6,7 @@ import com.github.shap_po.shappoli.util.MiscUtil; import io.github.apace100.apoli.power.Power; import io.github.apace100.apoli.power.factory.PowerTypeFactory; -import io.github.apace100.apoli.power.factory.PowerTypes; +import io.github.apace100.apoli.power.type.PowerTypes; import io.github.apace100.calio.data.SerializableData; import io.github.apace100.calio.data.SerializableDataTypes; import net.minecraft.entity.LivingEntity; @@ -55,7 +55,7 @@ public static PowerTypeFactory getFactory() { .add("modifiers", ShappoliTrinketsDataTypes.SLOT_ENTITY_ATTRIBUTE_MODIFIERS, null) .add("tick_rate", SerializableDataTypes.POSITIVE_INT, 20) .add("apply_on_added", SerializableDataTypes.BOOLEAN, true) - .postProcessor(data -> MiscUtil.checkHasAtLeastOneField(data, "modifier", "modifiers")) + .validate(data -> MiscUtil.checkAtLeastOneFieldExists(data, "modifier", "modifiers")) , data -> (type, player) -> { ConditionedModifyTrinketSlotPowerType power = new ConditionedModifyTrinketSlotPowerType(type, player, data.getInt("tick_rate"), data.getBoolean("apply_on_added")); diff --git a/src/main/java/com/github/shap_po/shappoli/integration/trinkets/power/type/ModifyTrinketSlotPowerType.java b/src/main/java/com/github/shap_po/shappoli/integration/trinkets/power/type/ModifyTrinketSlotPowerType.java index 93e90d2..dc1aa94 100644 --- a/src/main/java/com/github/shap_po/shappoli/integration/trinkets/power/type/ModifyTrinketSlotPowerType.java +++ b/src/main/java/com/github/shap_po/shappoli/integration/trinkets/power/type/ModifyTrinketSlotPowerType.java @@ -10,7 +10,7 @@ import dev.emi.trinkets.api.TrinketsApi; import io.github.apace100.apoli.power.Power; import io.github.apace100.apoli.power.factory.PowerTypeFactory; -import io.github.apace100.apoli.power.factory.PowerTypes; +import io.github.apace100.apoli.power.type.PowerTypes; import io.github.apace100.apoli.power.type.PowerType; import io.github.apace100.calio.data.SerializableData; import net.minecraft.entity.LivingEntity; @@ -91,7 +91,7 @@ public static PowerTypeFactory getFactory() { new SerializableData() .add("modifier", ShappoliTrinketsDataTypes.SLOT_ENTITY_ATTRIBUTE_MODIFIER, null) .add("modifiers", ShappoliTrinketsDataTypes.SLOT_ENTITY_ATTRIBUTE_MODIFIERS, null) - .postProcessor(data -> MiscUtil.checkHasAtLeastOneField(data, "modifier", "modifiers")) + .validate(data -> MiscUtil.checkAtLeastOneFieldExists(data, "modifier", "modifiers")) , data -> (type, player) -> { ModifyTrinketSlotPowerType power = new ModifyTrinketSlotPowerType(type, player); diff --git a/src/main/java/com/github/shap_po/shappoli/integration/walkers/WalkersIntegration.java b/src/main/java/com/github/shap_po/shappoli/integration/walkers/WalkersIntegration.java index a9c3595..0933eff 100644 --- a/src/main/java/com/github/shap_po/shappoli/integration/walkers/WalkersIntegration.java +++ b/src/main/java/com/github/shap_po/shappoli/integration/walkers/WalkersIntegration.java @@ -1,15 +1,15 @@ package com.github.shap_po.shappoli.integration.walkers; import com.github.shap_po.shappoli.integration.walkers.power.factory.PowerTypes; -import com.github.shap_po.shappoli.integration.walkers.action.factory.BiEntityActions; -import com.github.shap_po.shappoli.integration.walkers.action.factory.EntityActions; -import com.github.shap_po.shappoli.integration.walkers.condition.factory.EntityConditions; +import com.github.shap_po.shappoli.integration.walkers.action.factory.BiEntityActionTypes; +import com.github.shap_po.shappoli.integration.walkers.action.factory.EntityActionTypes; +import com.github.shap_po.shappoli.integration.walkers.condition.factory.EntityConditionTypes; public class WalkersIntegration { public static void register() { PowerTypes.register(); - BiEntityActions.register(); - EntityActions.register(); - EntityConditions.register(); + BiEntityActionTypes.register(); + EntityActionTypes.register(); + EntityConditionTypes.register(); } } diff --git a/src/main/java/com/github/shap_po/shappoli/integration/walkers/action/factory/BiEntityActions.java b/src/main/java/com/github/shap_po/shappoli/integration/walkers/action/factory/BiEntityActionTypes.java similarity index 95% rename from src/main/java/com/github/shap_po/shappoli/integration/walkers/action/factory/BiEntityActions.java rename to src/main/java/com/github/shap_po/shappoli/integration/walkers/action/factory/BiEntityActionTypes.java index 38875c2..f0f5abc 100644 --- a/src/main/java/com/github/shap_po/shappoli/integration/walkers/action/factory/BiEntityActions.java +++ b/src/main/java/com/github/shap_po/shappoli/integration/walkers/action/factory/BiEntityActionTypes.java @@ -7,7 +7,7 @@ import net.minecraft.registry.Registry; import net.minecraft.util.Pair; -public class BiEntityActions { +public class BiEntityActionTypes { public static void register() { register(SwitchShapeActionType.getFactory()); } diff --git a/src/main/java/com/github/shap_po/shappoli/integration/walkers/action/factory/EntityActions.java b/src/main/java/com/github/shap_po/shappoli/integration/walkers/action/factory/EntityActionTypes.java similarity index 97% rename from src/main/java/com/github/shap_po/shappoli/integration/walkers/action/factory/EntityActions.java rename to src/main/java/com/github/shap_po/shappoli/integration/walkers/action/factory/EntityActionTypes.java index 7d82f61..61067bb 100644 --- a/src/main/java/com/github/shap_po/shappoli/integration/walkers/action/factory/EntityActions.java +++ b/src/main/java/com/github/shap_po/shappoli/integration/walkers/action/factory/EntityActionTypes.java @@ -9,7 +9,7 @@ import net.minecraft.entity.Entity; import net.minecraft.registry.Registry; -public class EntityActions { +public class EntityActionTypes { public static void register() { register(ChangeShapeAbilityCooldownActionType.getFactory()); register(ShapeActionActionType.getFactory()); diff --git a/src/main/java/com/github/shap_po/shappoli/integration/walkers/action/type/bientity/SwitchShapeActionType.java b/src/main/java/com/github/shap_po/shappoli/integration/walkers/action/type/bientity/SwitchShapeActionType.java index 68e8e02..3db54c5 100644 --- a/src/main/java/com/github/shap_po/shappoli/integration/walkers/action/type/bientity/SwitchShapeActionType.java +++ b/src/main/java/com/github/shap_po/shappoli/integration/walkers/action/type/bientity/SwitchShapeActionType.java @@ -3,7 +3,7 @@ import com.github.shap_po.shappoli.Shappoli; import com.github.shap_po.shappoli.integration.walkers.util.WalkersUtil; import io.github.apace100.apoli.action.factory.ActionTypeFactory; -import io.github.apace100.apoli.action.factory.BiEntityActions; +import io.github.apace100.apoli.action.type.BiEntityActionTypes; import io.github.apace100.apoli.data.ApoliDataTypes; import io.github.apace100.calio.data.SerializableData; import io.github.apace100.calio.data.SerializableDataTypes; @@ -49,8 +49,8 @@ public static ActionTypeFactory> getFactory() { ) ); - BiEntityActions.ALIASES.addPathAlias("change_shape", factory.getSerializerId().getPath()); - BiEntityActions.ALIASES.addPathAlias("morph", factory.getSerializerId().getPath()); + BiEntityActionTypes.ALIASES.addPathAlias("change_shape", factory.getSerializerId().getPath()); + BiEntityActionTypes.ALIASES.addPathAlias("morph", factory.getSerializerId().getPath()); return factory; } } diff --git a/src/main/java/com/github/shap_po/shappoli/integration/walkers/action/type/entity/ShapeActionActionType.java b/src/main/java/com/github/shap_po/shappoli/integration/walkers/action/type/entity/ShapeActionActionType.java index 894a4b7..792e5e2 100644 --- a/src/main/java/com/github/shap_po/shappoli/integration/walkers/action/type/entity/ShapeActionActionType.java +++ b/src/main/java/com/github/shap_po/shappoli/integration/walkers/action/type/entity/ShapeActionActionType.java @@ -3,7 +3,7 @@ import com.github.shap_po.shappoli.Shappoli; import com.github.shap_po.shappoli.integration.walkers.util.WalkersUtil; import io.github.apace100.apoli.action.factory.ActionTypeFactory; -import io.github.apace100.apoli.action.factory.EntityActions; +import io.github.apace100.apoli.action.type.EntityActionTypes; import io.github.apace100.apoli.data.ApoliDataTypes; import io.github.apace100.calio.data.SerializableData; import net.minecraft.entity.Entity; @@ -30,7 +30,7 @@ public static ActionTypeFactory getFactory() { (data, entity) -> action(entity, data.get("bientity_action")) ); - EntityActions.ALIASES.addPathAlias("action_on_shape", factory.getSerializerId().getPath()); + EntityActionTypes.ALIASES.addPathAlias("action_on_shape", factory.getSerializerId().getPath()); return factory; } } diff --git a/src/main/java/com/github/shap_po/shappoli/integration/walkers/action/type/entity/SwitchShapeActionType.java b/src/main/java/com/github/shap_po/shappoli/integration/walkers/action/type/entity/SwitchShapeActionType.java index 355e46a..ea1b779 100644 --- a/src/main/java/com/github/shap_po/shappoli/integration/walkers/action/type/entity/SwitchShapeActionType.java +++ b/src/main/java/com/github/shap_po/shappoli/integration/walkers/action/type/entity/SwitchShapeActionType.java @@ -3,7 +3,7 @@ import com.github.shap_po.shappoli.Shappoli; import com.github.shap_po.shappoli.integration.walkers.util.WalkersUtil; import io.github.apace100.apoli.action.factory.ActionTypeFactory; -import io.github.apace100.apoli.action.factory.EntityActions; +import io.github.apace100.apoli.action.type.EntityActionTypes; import io.github.apace100.apoli.data.ApoliDataTypes; import io.github.apace100.calio.data.SerializableData; import io.github.apace100.calio.data.SerializableDataTypes; @@ -47,8 +47,8 @@ public static ActionTypeFactory getFactory() { ) ); - EntityActions.ALIASES.addPathAlias("change_shape", factory.getSerializerId().getPath()); - EntityActions.ALIASES.addPathAlias("morph", factory.getSerializerId().getPath()); + EntityActionTypes.ALIASES.addPathAlias("change_shape", factory.getSerializerId().getPath()); + EntityActionTypes.ALIASES.addPathAlias("morph", factory.getSerializerId().getPath()); return factory; } } diff --git a/src/main/java/com/github/shap_po/shappoli/integration/walkers/condition/factory/EntityConditions.java b/src/main/java/com/github/shap_po/shappoli/integration/walkers/condition/factory/EntityConditionTypes.java similarity index 97% rename from src/main/java/com/github/shap_po/shappoli/integration/walkers/condition/factory/EntityConditions.java rename to src/main/java/com/github/shap_po/shappoli/integration/walkers/condition/factory/EntityConditionTypes.java index 708d8f9..fba7cb8 100644 --- a/src/main/java/com/github/shap_po/shappoli/integration/walkers/condition/factory/EntityConditions.java +++ b/src/main/java/com/github/shap_po/shappoli/integration/walkers/condition/factory/EntityConditionTypes.java @@ -9,7 +9,7 @@ import net.minecraft.entity.Entity; import net.minecraft.registry.Registry; -public class EntityConditions { +public class EntityConditionTypes { public static void register() { register(CanUseShapeAbilityConditionType.getFactory()); register(HasShapeAbilityConditionType.getFactory()); diff --git a/src/main/java/com/github/shap_po/shappoli/integration/walkers/condition/type/entity/ShapeConditionType.java b/src/main/java/com/github/shap_po/shappoli/integration/walkers/condition/type/entity/ShapeConditionType.java index 8e3b324..6a69514 100644 --- a/src/main/java/com/github/shap_po/shappoli/integration/walkers/condition/type/entity/ShapeConditionType.java +++ b/src/main/java/com/github/shap_po/shappoli/integration/walkers/condition/type/entity/ShapeConditionType.java @@ -3,7 +3,7 @@ import com.github.shap_po.shappoli.Shappoli; import com.github.shap_po.shappoli.integration.walkers.util.WalkersUtil; import io.github.apace100.apoli.condition.factory.ConditionTypeFactory; -import io.github.apace100.apoli.condition.factory.EntityConditions; +import io.github.apace100.apoli.condition.type.EntityConditionTypes; import io.github.apace100.apoli.data.ApoliDataTypes; import io.github.apace100.calio.data.SerializableData; import net.minecraft.entity.Entity; @@ -29,7 +29,7 @@ public static ConditionTypeFactory getFactory() { (data, entity) -> condition(entity, data.get("bientity_condition")) ); - EntityConditions.ALIASES.addPathAlias("shape", factory.getSerializerId().getPath()); + EntityConditionTypes.ALIASES.addPathAlias("shape", factory.getSerializerId().getPath()); return factory; } } diff --git a/src/main/java/com/github/shap_po/shappoli/integration/walkers/power/factory/action/EntityActions.java b/src/main/java/com/github/shap_po/shappoli/integration/walkers/power/factory/action/EntityActionTypes.java similarity index 100% rename from src/main/java/com/github/shap_po/shappoli/integration/walkers/power/factory/action/EntityActions.java rename to src/main/java/com/github/shap_po/shappoli/integration/walkers/power/factory/action/EntityActionTypes.java diff --git a/src/main/java/com/github/shap_po/shappoli/integration/walkers/power/type/ActionOnShapeChangePowerType.java b/src/main/java/com/github/shap_po/shappoli/integration/walkers/power/type/ActionOnShapeChangePowerType.java index e016a61..ee76c7f 100644 --- a/src/main/java/com/github/shap_po/shappoli/integration/walkers/power/type/ActionOnShapeChangePowerType.java +++ b/src/main/java/com/github/shap_po/shappoli/integration/walkers/power/type/ActionOnShapeChangePowerType.java @@ -4,7 +4,7 @@ import io.github.apace100.apoli.data.ApoliDataTypes; import io.github.apace100.apoli.power.Power; import io.github.apace100.apoli.power.factory.PowerTypeFactory; -import io.github.apace100.apoli.power.factory.PowerTypes; +import io.github.apace100.apoli.power.type.PowerTypes; import io.github.apace100.apoli.power.type.PowerType; import io.github.apace100.calio.data.SerializableData; import net.minecraft.entity.Entity; diff --git a/src/main/java/com/github/shap_po/shappoli/integration/walkers/power/type/PreventShapeChangePowerType.java b/src/main/java/com/github/shap_po/shappoli/integration/walkers/power/type/PreventShapeChangePowerType.java index ee49415..c9b8106 100644 --- a/src/main/java/com/github/shap_po/shappoli/integration/walkers/power/type/PreventShapeChangePowerType.java +++ b/src/main/java/com/github/shap_po/shappoli/integration/walkers/power/type/PreventShapeChangePowerType.java @@ -4,7 +4,7 @@ import io.github.apace100.apoli.data.ApoliDataTypes; import io.github.apace100.apoli.power.Power; import io.github.apace100.apoli.power.factory.PowerTypeFactory; -import io.github.apace100.apoli.power.factory.PowerTypes; +import io.github.apace100.apoli.power.type.PowerTypes; import io.github.apace100.apoli.power.type.PowerType; import io.github.apace100.calio.data.SerializableData; import net.minecraft.entity.Entity; diff --git a/src/main/java/com/github/shap_po/shappoli/mixin/PowerTypeMixin.java b/src/main/java/com/github/shap_po/shappoli/mixin/PowerTypeMixin.java index 79a14e2..112d1db 100644 --- a/src/main/java/com/github/shap_po/shappoli/mixin/PowerTypeMixin.java +++ b/src/main/java/com/github/shap_po/shappoli/mixin/PowerTypeMixin.java @@ -35,8 +35,8 @@ public class PowerTypeMixin implements SuppressiblePower { } @Override - public void shappoli$setHasConditions(boolean hasConditions) { - shappoli$hasConditions = hasConditions; + public void shappoli$setHasConditions(boolean hasConditionTypes) { + shappoli$hasConditions = hasConditionTypes; } @Override diff --git a/src/main/java/com/github/shap_po/shappoli/power/type/ReceiveActionPowerType.java b/src/main/java/com/github/shap_po/shappoli/power/type/ReceiveActionPowerType.java index e73af8d..4119aa7 100644 --- a/src/main/java/com/github/shap_po/shappoli/power/type/ReceiveActionPowerType.java +++ b/src/main/java/com/github/shap_po/shappoli/power/type/ReceiveActionPowerType.java @@ -91,7 +91,7 @@ public static PowerTypeFactory getFactory() { .add("entity_condition", ApoliDataTypes.ENTITY_CONDITION, null) .add("item_action", ApoliDataTypes.ITEM_ACTION, null) .add("item_condition", ApoliDataTypes.ITEM_CONDITION, null) - .postProcessor(data -> MiscUtil.checkHasAtLeastOneField(data, "action", "bientity_action", "entity_action", "item_action")) + .validate(data -> MiscUtil.checkAtLeastOneFieldExists(data, "action", "bientity_action", "entity_action", "item_action")) , data -> (type, entity) -> new ReceiveActionPowerType(type, entity, data.get("action"), diff --git a/src/main/java/com/github/shap_po/shappoli/power/type/ReceiveConditionPowerType.java b/src/main/java/com/github/shap_po/shappoli/power/type/ReceiveConditionPowerType.java index 57124c0..ca6d403 100644 --- a/src/main/java/com/github/shap_po/shappoli/power/type/ReceiveConditionPowerType.java +++ b/src/main/java/com/github/shap_po/shappoli/power/type/ReceiveConditionPowerType.java @@ -56,7 +56,7 @@ public static PowerTypeFactory getFactory() { .add("bientity_condition", ApoliDataTypes.BIENTITY_CONDITION, null) .add("entity_condition", ApoliDataTypes.ENTITY_CONDITION, null) .add("item_condition", ApoliDataTypes.ITEM_CONDITION, null) - .postProcessor(data -> MiscUtil.checkHasAtLeastOneField(data, "bientity_condition", "entity_condition", "item_condition")) + .validate(data -> MiscUtil.checkAtLeastOneFieldExists(data, "bientity_condition", "entity_condition", "item_condition")) , data -> (type, entity) -> new ReceiveConditionPowerType( type, entity, diff --git a/src/main/java/com/github/shap_po/shappoli/power/type/SuppressPowerPowerType.java b/src/main/java/com/github/shap_po/shappoli/power/type/SuppressPowerPowerType.java index 5d39202..ac37a37 100644 --- a/src/main/java/com/github/shap_po/shappoli/power/type/SuppressPowerPowerType.java +++ b/src/main/java/com/github/shap_po/shappoli/power/type/SuppressPowerPowerType.java @@ -36,8 +36,8 @@ public static PowerTypeFactory getFactory() { Shappoli.identifier("suppress_power"), new SerializableData() .add("power", ApoliDataTypes.POWER_REFERENCE, null) - .add("powers", ApoliDataTypes.POWER_REFERENCE.listOf(), null) - .postProcessor(data -> MiscUtil.checkHasAtLeastOneField(data, "power", "powers")) + .add("powers", ApoliDataTypes.POWER_REFERENCE.list(), null) + .validate(data -> MiscUtil.checkAtLeastOneFieldExists(data, "power", "powers")) , data -> (type, entity) -> new SuppressPowerPowerType( type, entity, diff --git a/src/main/java/com/github/shap_po/shappoli/registry/ModPowers.java b/src/main/java/com/github/shap_po/shappoli/registry/ModPowers.java index 26d20aa..2d66633 100644 --- a/src/main/java/com/github/shap_po/shappoli/registry/ModPowers.java +++ b/src/main/java/com/github/shap_po/shappoli/registry/ModPowers.java @@ -1,25 +1,25 @@ package com.github.shap_po.shappoli.registry; import com.github.shap_po.shappoli.power.factory.PowerTypes; -import com.github.shap_po.shappoli.action.factory.BiEntityActions; -import com.github.shap_po.shappoli.action.factory.BlockActions; -import com.github.shap_po.shappoli.action.factory.EntityActions; -import com.github.shap_po.shappoli.action.factory.ItemActions; -import com.github.shap_po.shappoli.condition.factory.BiEntityConditions; -import com.github.shap_po.shappoli.condition.factory.EntityConditions; -import com.github.shap_po.shappoli.condition.factory.ItemConditions; +import com.github.shap_po.shappoli.action.factory.BiEntityActionTypes; +import com.github.shap_po.shappoli.action.factory.BlockActionTypes; +import com.github.shap_po.shappoli.action.factory.EntityActionTypes; +import com.github.shap_po.shappoli.action.factory.ItemActionTypes; +import com.github.shap_po.shappoli.condition.factory.BiEntityConditionTypes; +import com.github.shap_po.shappoli.condition.factory.EntityConditionTypes; +import com.github.shap_po.shappoli.condition.factory.ItemConditionTypes; public class ModPowers { public static void register() { PowerTypes.register(); - BiEntityConditions.register(); - EntityConditions.register(); - ItemConditions.register(); + BiEntityConditionTypes.register(); + EntityConditionTypes.register(); + ItemConditionTypes.register(); - BiEntityActions.register(); - BlockActions.register(); - EntityActions.register(); - ItemActions.register(); + BiEntityActionTypes.register(); + BlockActionTypes.register(); + EntityActionTypes.register(); + ItemActionTypes.register(); } } diff --git a/src/main/java/com/github/shap_po/shappoli/util/InventoryUtil.java b/src/main/java/com/github/shap_po/shappoli/util/InventoryUtil.java index 7d02d86..b87d413 100644 --- a/src/main/java/com/github/shap_po/shappoli/util/InventoryUtil.java +++ b/src/main/java/com/github/shap_po/shappoli/util/InventoryUtil.java @@ -6,12 +6,12 @@ @SuppressWarnings({"UnusedReturnValue"}) public class InventoryUtil { - @SuppressWarnings({"ConstantConditions"}) + @SuppressWarnings({"ConstantConditionTypes"}) public static Entity getHolder(ItemStack stack) { return ((EntityLinkedItemStack) (Object) stack).apoli$getEntity(); } - @SuppressWarnings({"ConstantConditions"}) + @SuppressWarnings({"ConstantConditionTypes"}) public static ItemStack setHolder(ItemStack stack, Entity holder) { ((EntityLinkedItemStack) (Object) stack).apoli$setEntity(holder); return stack; diff --git a/src/main/java/com/github/shap_po/shappoli/util/MiscUtil.java b/src/main/java/com/github/shap_po/shappoli/util/MiscUtil.java index 2332209..84e2f97 100644 --- a/src/main/java/com/github/shap_po/shappoli/util/MiscUtil.java +++ b/src/main/java/com/github/shap_po/shappoli/util/MiscUtil.java @@ -1,5 +1,6 @@ package com.github.shap_po.shappoli.util; +import com.mojang.serialization.DataResult; import io.github.apace100.calio.data.SerializableData; import org.jetbrains.annotations.Nullable; @@ -18,15 +19,20 @@ public static List listFromData(SerializableData.Instance data, @Nullable return list; } - /** - * @throws IllegalArgumentException If none of the fields are present - */ - public static void checkHasAtLeastOneField(SerializableData.Instance data, String... fields) { + public static DataResult checkAtLeastOneFieldExists(SerializableData.Instance data, String... fields) { for (String field : fields) { if (data.isPresent(field)) { - return; + return DataResult.success(data); } } - throw new IllegalArgumentException("Any of the following fields must be defied: " + String.join(", ", fields)); + return DataResult.error(() -> "Any of the following fields must be defied: " + String.join(", ", fields)); + } + public static DataResult checkAtLeastOneFieldIsTrue(SerializableData.Instance data, String... fields) { + for (String field : fields) { + if (data.isPresent(field) && data.getBoolean(field)) { + return DataResult.success(data); + } + } + return DataResult.error(() -> "Any of the following fields must be true: " + String.join(", ", fields)); } }