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 9329336ef..0cce7c2db 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 @@ -7,7 +7,6 @@ import net.momirealms.craftengine.bukkit.util.BlockStateUtils; import net.momirealms.craftengine.bukkit.util.DirectionUtils; 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.block.behavior.IsPathFindableBlockBehavior; import net.momirealms.craftengine.core.block.properties.IntegerProperty; @@ -22,7 +21,7 @@ import java.util.Optional; import java.util.concurrent.Callable; public class AttachedStemBlockBehavior extends BukkitBlockBehavior implements IsPathFindableBlockBehavior { - public static final BlockBehaviorFactory FACTORY = new Factory(); + public static final BlockBehaviorFactory FACTORY = new Factory(); private final Property facingProperty; private final Key fruit; private final Key stem; @@ -85,10 +84,10 @@ public class AttachedStemBlockBehavior extends BukkitBlockBehavior implements Is return null; } - private static class Factory implements BlockBehaviorFactory { + private static class Factory implements BlockBehaviorFactory { @Override - public BlockBehavior create(CustomBlock block, Map arguments) { + public AttachedStemBlockBehavior create(CustomBlock block, Map arguments) { @SuppressWarnings("unchecked") Property facingProperty = (Property) ResourceConfigUtils.requireNonNullOrThrow(block.getProperty("facing"), "warning.config.block.behavior.attached_stem.missing_facing"); 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 d369738ea..0cbdac039 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 @@ -5,7 +5,6 @@ import net.momirealms.craftengine.bukkit.plugin.BukkitCraftEngine; import net.momirealms.craftengine.bukkit.plugin.reflection.minecraft.CoreReflections; 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.block.behavior.FallOnBlockBehavior; import net.momirealms.craftengine.core.plugin.CraftEngine; @@ -18,7 +17,7 @@ import java.util.Map; import java.util.concurrent.Callable; public class BouncingBlockBehavior extends BukkitBlockBehavior implements FallOnBlockBehavior { - public static final BlockBehaviorFactory FACTORY = new Factory(); + public static final BlockBehaviorFactory FACTORY = new Factory(); private final double bounceHeight; private final boolean syncPlayerPosition; private final double fallDamageMultiplier; @@ -77,10 +76,10 @@ public class BouncingBlockBehavior extends BukkitBlockBehavior implements FallOn } } - private static class Factory implements BlockBehaviorFactory { + private static class Factory implements BlockBehaviorFactory { @Override - public BlockBehavior create(CustomBlock block, Map arguments) { + public BouncingBlockBehavior create(CustomBlock block, Map arguments) { double bounceHeight = ResourceConfigUtils.getAsDouble(arguments.getOrDefault("bounce-height", 0.66), "bounce-height"); boolean syncPlayerPosition = ResourceConfigUtils.getAsBoolean(arguments.getOrDefault("sync-player-position", true), "sync-player-position"); double fallDamageMultiplier = ResourceConfigUtils.getAsDouble(arguments.getOrDefault("fall-damage-multiplier", 0.5), "fall-damage-multiplier"); 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 44fa19a7c..0d0df8efb 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 @@ -8,7 +8,6 @@ import net.momirealms.craftengine.bukkit.util.BlockStateUtils; import net.momirealms.craftengine.bukkit.util.DirectionUtils; 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.block.properties.BooleanProperty; import net.momirealms.craftengine.core.block.properties.Property; @@ -19,7 +18,7 @@ import java.util.Map; import java.util.concurrent.Callable; public class BuddingBlockBehavior extends BukkitBlockBehavior { - public static final BlockBehaviorFactory FACTORY = new Factory(); + public static final BlockBehaviorFactory FACTORY = new Factory(); private final float growthChance; private final List blocks; @@ -86,10 +85,10 @@ public class BuddingBlockBehavior extends BukkitBlockBehavior { && FastNMS.INSTANCE.field$FluidState$amount(FastNMS.INSTANCE.field$BlockBehaviour$BlockStateBase$fluidState(state)) == 8; } - private static class Factory implements BlockBehaviorFactory { + private static class Factory implements BlockBehaviorFactory { @Override - public BlockBehavior create(CustomBlock block, Map arguments) { + public BuddingBlockBehavior create(CustomBlock block, Map arguments) { float growthChance = ResourceConfigUtils.getAsFloat(arguments.getOrDefault("growth-chance", 0.2), "growth-chance"); List blocks = new ObjectArrayList<>(); MiscUtils.getAsStringList(arguments.get("blocks")).forEach(s -> blocks.add(Key.of(s))); 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 731d2a123..6619f0737 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,52 +7,52 @@ import net.momirealms.craftengine.core.util.Key; public class BukkitBlockBehaviors extends BlockBehaviors { private BukkitBlockBehaviors() {} - 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 final BlockBehaviorType SPREADING_BLOCK = register(Key.ce("spreading_block"), SpreadingBlockBehavior.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 final BlockBehaviorType SPREADING_BLOCK = register(Key.ce("spreading_block"), SpreadingBlockBehavior.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 a8e469c10..ea5f004e3 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 @@ -6,7 +6,6 @@ import net.momirealms.craftengine.bukkit.util.BlockTags; import net.momirealms.craftengine.bukkit.util.LocationUtils; 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; @@ -20,7 +19,7 @@ import org.bukkit.Registry; import java.util.*; public class BushBlockBehavior extends AbstractCanSurviveBlockBehavior { - public static final BlockBehaviorFactory FACTORY = new Factory(); + public static final BlockBehaviorFactory FACTORY = new Factory(); protected final List tagsCanSurviveOn; protected final Set blockStatesCanSurviveOn; protected final Set customBlocksCansSurviveOn; @@ -39,10 +38,10 @@ public class BushBlockBehavior extends AbstractCanSurviveBlockBehavior { this.customBlocksCansSurviveOn = customBlocksCansSurviveOn; } - private static class Factory implements BlockBehaviorFactory { + private static class Factory implements BlockBehaviorFactory { @Override - public BlockBehavior create(CustomBlock block, Map arguments) { + public BushBlockBehavior create(CustomBlock block, Map arguments) { Tuple, Set, Set> tuple = readTagsAndState(arguments, false); boolean stackable = ResourceConfigUtils.getAsBoolean(arguments.getOrDefault("stackable", false), "stackable"); int maxHeight = ResourceConfigUtils.getAsInt(arguments.getOrDefault("max-height", 0), "max-height"); 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 49a6dd260..5ed09ea2e 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 @@ -11,7 +11,6 @@ import net.momirealms.craftengine.bukkit.util.LocationUtils; import net.momirealms.craftengine.core.block.CustomBlock; import net.momirealms.craftengine.core.block.ImmutableBlockState; 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.BooleanProperty; import net.momirealms.craftengine.core.block.properties.Property; @@ -29,7 +28,7 @@ import java.util.Optional; import java.util.concurrent.Callable; public class ButtonBlockBehavior extends BukkitBlockBehavior { - public static final BlockBehaviorFactory FACTORY = new Factory(); + public static final BlockBehaviorFactory FACTORY = new Factory(); private final BooleanProperty poweredProperty; private final int ticksToStayPressed; private final boolean canButtonBeActivatedByArrows; @@ -197,11 +196,11 @@ public class ButtonBlockBehavior extends BukkitBlockBehavior { FastNMS.INSTANCE.method$LevelAccessor$gameEvent(level, player, gameEvent, pos); } - private static class Factory implements BlockBehaviorFactory { + private static class Factory implements BlockBehaviorFactory { @SuppressWarnings({"unchecked", "DuplicatedCode"}) @Override - public BlockBehavior create(CustomBlock block, Map arguments) { + public ButtonBlockBehavior create(CustomBlock block, Map arguments) { BooleanProperty powered = (BooleanProperty) ResourceConfigUtils.requireNonNullOrThrow(block.getProperty("powered"), "warning.config.block.behavior.button.missing_powered"); int ticksToStayPressed = ResourceConfigUtils.getAsInt(arguments.getOrDefault("ticks-to-stay-pressed", 30), "ticks-to-stay-pressed"); boolean canButtonBeActivatedByArrows = ResourceConfigUtils.getAsBoolean(arguments.getOrDefault("can-be-activated-by-arrows", true), "can-be-activated-by-arrows"); 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 290df96d0..e7051d417 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 @@ -5,7 +5,6 @@ import net.momirealms.craftengine.bukkit.util.BlockStateUtils; import net.momirealms.craftengine.core.block.BlockStateWrapper; import net.momirealms.craftengine.core.block.CustomBlock; 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.LazyReference; @@ -19,7 +18,7 @@ import java.util.Map; import java.util.concurrent.Callable; public class ChangeOverTimeBlockBehavior extends BukkitBlockBehavior { - public static final BlockBehaviorFactory FACTORY = new Factory(); + public static final BlockBehaviorFactory FACTORY = new Factory(); private final float changeSpeed; private final String nextBlock; private final LazyReference lazyState; @@ -64,10 +63,10 @@ public class ChangeOverTimeBlockBehavior extends BukkitBlockBehavior { }); } - private static class Factory implements BlockBehaviorFactory { + private static class Factory implements BlockBehaviorFactory { @Override - public BlockBehavior create(CustomBlock block, Map arguments) { + public ChangeOverTimeBlockBehavior create(CustomBlock block, Map arguments) { float changeSpeed = ResourceConfigUtils.getAsFloat(arguments.getOrDefault("change-speed", 0.05688889F), "change-speed"); String nextBlock = ResourceConfigUtils.requireNonEmptyStringOrThrow(arguments.getOrDefault("next-block", "minecraft:air"), "warning.config.block.behavior.change_over_time.missing_next_block"); List excludedProperties = MiscUtils.getAsStringList(arguments.get("excluded-properties")); 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 815e1f7e1..589cc290e 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 @@ -4,7 +4,6 @@ import net.momirealms.craftengine.bukkit.nms.FastNMS; import net.momirealms.craftengine.bukkit.plugin.reflection.minecraft.CoreReflections; import net.momirealms.craftengine.bukkit.util.KeyUtils; 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.ResourceConfigUtils; @@ -14,7 +13,7 @@ import java.util.Optional; import java.util.concurrent.Callable; public class ChimeBlockBehavior extends BukkitBlockBehavior { - public static final BlockBehaviorFactory FACTORY = new Factory(); + public static final BlockBehaviorFactory FACTORY = new Factory(); private final SoundData hitSound; public ChimeBlockBehavior(CustomBlock customBlock, SoundData hitSound) { @@ -29,10 +28,10 @@ public class ChimeBlockBehavior extends BukkitBlockBehavior { FastNMS.INSTANCE.method$LevelAccessor$playSound(args[0], null, blockPos, sound, CoreReflections.instance$SoundSource$BLOCKS, hitSound.volume().get(), hitSound.pitch().get()); } - private static class Factory implements BlockBehaviorFactory { + private static class Factory implements BlockBehaviorFactory { @Override - public BlockBehavior create(CustomBlock block, Map arguments) { + public ChimeBlockBehavior create(CustomBlock block, Map arguments) { SoundData hitSound = SoundData.create(ResourceConfigUtils.requireNonNullOrThrow( Optional.ofNullable(ResourceConfigUtils.getAsMap(arguments.get("sounds"), "sounds")) .map(sounds -> ResourceConfigUtils.get(sounds, "projectile-hit", "chime")) 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 856603778..af612645b 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 @@ -11,7 +11,6 @@ import net.momirealms.craftengine.bukkit.util.LocationUtils; import net.momirealms.craftengine.core.block.CustomBlock; import net.momirealms.craftengine.core.block.ImmutableBlockState; 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.parser.BlockStateParser; import net.momirealms.craftengine.core.plugin.CraftEngine; @@ -27,7 +26,7 @@ import java.util.Map; import java.util.concurrent.Callable; public class ConcretePowderBlockBehavior extends BukkitBlockBehavior { - public static final BlockBehaviorFactory FACTORY = new Factory(); + public static final BlockBehaviorFactory FACTORY = new Factory(); private final LazyReference<@Nullable ImmutableBlockState> targetBlock; public ConcretePowderBlockBehavior(CustomBlock block, String targetBlock) { @@ -125,10 +124,10 @@ public class ConcretePowderBlockBehavior extends BukkitBlockBehavior { return flag; } - private static class Factory implements BlockBehaviorFactory { + private static class Factory implements BlockBehaviorFactory { @Override - public BlockBehavior create(CustomBlock block, Map arguments) { + public ConcretePowderBlockBehavior create(CustomBlock block, Map arguments) { String solidBlock = ResourceConfigUtils.requireNonEmptyStringOrThrow(arguments.get("solid-block"), "warning.config.block.behavior.concrete.missing_solid"); return new ConcretePowderBlockBehavior(block, solidBlock); } 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 a021f86c6..34a1c7039 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 @@ -9,7 +9,6 @@ import net.momirealms.craftengine.bukkit.util.ParticleUtils; import net.momirealms.craftengine.core.block.CustomBlock; import net.momirealms.craftengine.core.block.ImmutableBlockState; 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.IntegerProperty; import net.momirealms.craftengine.core.block.properties.Property; @@ -38,7 +37,7 @@ import java.util.concurrent.Callable; @SuppressWarnings("DuplicatedCode") public class CropBlockBehavior extends BukkitBlockBehavior { - public static final BlockBehaviorFactory FACTORY = new Factory(); + public static final BlockBehaviorFactory FACTORY = new Factory(); private final IntegerProperty ageProperty; private final float growSpeed; private final int minGrowLight; @@ -188,11 +187,11 @@ public class CropBlockBehavior extends BukkitBlockBehavior { } } - private static class Factory implements BlockBehaviorFactory { + private static class Factory implements BlockBehaviorFactory { @SuppressWarnings("unchecked") @Override - public BlockBehavior create(CustomBlock block, Map arguments) { + public CropBlockBehavior create(CustomBlock block, Map arguments) { Property ageProperty = (Property) ResourceConfigUtils.requireNonNullOrThrow(block.getProperty("age"), "warning.config.block.behavior.crop.missing_age"); int minGrowLight = ResourceConfigUtils.getAsInt(arguments.getOrDefault("light-requirement", 9), "light-requirement"); float growSpeed = ResourceConfigUtils.getAsFloat(arguments.getOrDefault("grow-speed", 0.125f), "grow-speed"); 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 bc47220d8..bae81940b 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 @@ -9,7 +9,6 @@ import net.momirealms.craftengine.bukkit.util.DirectionUtils; import net.momirealms.craftengine.bukkit.util.LocationUtils; 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.block.properties.Property; import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigException; @@ -26,7 +25,7 @@ import java.util.*; import java.util.concurrent.Callable; public class DirectionalAttachedBlockBehavior extends BukkitBlockBehavior { - public static final BlockBehaviorFactory FACTORY = new Factory(); + public static final BlockBehaviorFactory FACTORY = new Factory(); private final Property facingProperty; private final boolean isSixDirection; private final List tagsCanSurviveOn; @@ -132,10 +131,10 @@ public class DirectionalAttachedBlockBehavior extends BukkitBlockBehavior { return null; } - private static class Factory implements BlockBehaviorFactory { + private static class Factory implements BlockBehaviorFactory { @Override - public BlockBehavior create(CustomBlock block, Map arguments) { + public DirectionalAttachedBlockBehavior create(CustomBlock block, Map arguments) { Property facing = ResourceConfigUtils.requireNonNullOrThrow(block.getProperty("facing"), "warning.config.block.behavior.directional_attached.missing_facing"); boolean isHorizontalDirection = facing.valueClass() == HorizontalDirection.class; boolean isDirection = facing.valueClass() == Direction.class; 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 4d59f1e41..ae170cc53 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 @@ -13,7 +13,6 @@ import net.momirealms.craftengine.bukkit.util.LocationUtils; import net.momirealms.craftengine.core.block.CustomBlock; import net.momirealms.craftengine.core.block.ImmutableBlockState; 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.IsPathFindableBlockBehavior; import net.momirealms.craftengine.core.block.properties.Property; @@ -48,7 +47,7 @@ import java.util.concurrent.Callable; @SuppressWarnings("DuplicatedCode") public class DoorBlockBehavior extends AbstractCanSurviveBlockBehavior implements IsPathFindableBlockBehavior { - public static final BlockBehaviorFactory FACTORY = new Factory(); + public static final BlockBehaviorFactory FACTORY = new Factory(); private final Property halfProperty; private final Property facingProperty; private final Property hingeProperty; @@ -344,9 +343,9 @@ public class DoorBlockBehavior extends AbstractCanSurviveBlockBehavior implement } @SuppressWarnings("unchecked") - private static class Factory implements BlockBehaviorFactory { + private static class Factory implements BlockBehaviorFactory { @Override - public BlockBehavior create(CustomBlock block, Map arguments) { + public DoorBlockBehavior create(CustomBlock block, Map arguments) { Property half = (Property) ResourceConfigUtils.requireNonNullOrThrow(block.getProperty("half"), "warning.config.block.behavior.door.missing_half"); Property facing = (Property) ResourceConfigUtils.requireNonNullOrThrow(block.getProperty("facing"), "warning.config.block.behavior.door.missing_facing"); Property hinge = (Property) ResourceConfigUtils.requireNonNullOrThrow(block.getProperty("hinge"), "warning.config.block.behavior.door.missing_hinge"); 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 04884cd6d..6916ee4c6 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 @@ -11,7 +11,6 @@ import net.momirealms.craftengine.bukkit.util.LocationUtils; import net.momirealms.craftengine.core.block.CustomBlock; import net.momirealms.craftengine.core.block.ImmutableBlockState; 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.block.properties.type.DoubleBlockHalf; @@ -27,7 +26,7 @@ import java.util.Optional; import java.util.concurrent.Callable; public class DoubleHighBlockBehavior extends AbstractCanSurviveBlockBehavior { - public static final BlockBehaviorFactory FACTORY = new Factory(); + public static final BlockBehaviorFactory FACTORY = new Factory(); private final Property halfProperty; public DoubleHighBlockBehavior(CustomBlock customBlock, Property halfProperty) { @@ -71,8 +70,13 @@ public class DoubleHighBlockBehavior extends AbstractCanSurviveBlockBehavior { Object state = args[2]; Object player = args[3]; ImmutableBlockState blockState = BlockStateUtils.getOptionalCustomBlockState(state).orElse(null); - if (blockState == null || blockState.isEmpty()) return superMethod.call(); + if (blockState == null || blockState.isEmpty()) { + return superMethod.call(); + } BukkitServerPlayer cePlayer = BukkitAdaptors.adapt(FastNMS.INSTANCE.method$ServerPlayer$getBukkitEntity(player)); + if (cePlayer == null) { + return superMethod.call(); + } Item item = cePlayer.getItemInHand(InteractionHand.MAIN_HAND); if (cePlayer.canInstabuild() || !BlockStateUtils.isCorrectTool(blockState, item)) { preventDropFromBottomPart(level, pos, blockState, player); @@ -140,10 +144,10 @@ public class DoubleHighBlockBehavior extends AbstractCanSurviveBlockBehavior { } @SuppressWarnings("unchecked") - private static class Factory implements BlockBehaviorFactory { + private static class Factory implements BlockBehaviorFactory { @Override - public BlockBehavior create(CustomBlock block, Map arguments) { + public DoubleHighBlockBehavior create(CustomBlock block, Map arguments) { Property half = (Property) ResourceConfigUtils.requireNonNullOrThrow(block.getProperty("half"), "warning.config.block.behavior.double_high.missing_half"); return new DoubleHighBlockBehavior(block, half); } 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 7cdeb265f..0ba1ba8a4 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 @@ -8,7 +8,6 @@ import net.momirealms.craftengine.bukkit.world.BukkitWorldManager; import net.momirealms.craftengine.core.block.BlockSettings; 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.item.Item; import net.momirealms.craftengine.core.loot.LootContext; @@ -33,7 +32,7 @@ import java.util.concurrent.Callable; import java.util.function.Predicate; public class DropExperienceBlockBehavior extends BukkitBlockBehavior { - public static final BlockBehaviorFactory FACTORY = new Factory(); + public static final BlockBehaviorFactory FACTORY = new Factory(); private final NumberProvider amount; private final Predicate condition; @@ -87,10 +86,10 @@ public class DropExperienceBlockBehavior extends BukkitBlockBehavior { world.dropExp(dropPos, finalAmount); } - private static class Factory implements BlockBehaviorFactory { + private static class Factory implements BlockBehaviorFactory { @Override - public BlockBehavior create(CustomBlock block, Map arguments) { + public DropExperienceBlockBehavior create(CustomBlock block, Map arguments) { NumberProvider amount = NumberProviders.fromObject(ResourceConfigUtils.get(arguments, "amount", "count")); List> conditionList = ResourceConfigUtils.parseConfigAsList(ResourceConfigUtils.get(arguments, "conditions", "condition"), CommonConditions::fromMap); return new DropExperienceBlockBehavior(block, amount, MiscUtils.allOf(conditionList)); 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 f788907fe..ca4f806c1 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 @@ -8,7 +8,6 @@ import net.momirealms.craftengine.bukkit.util.DirectionUtils; import net.momirealms.craftengine.bukkit.util.LocationUtils; 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.block.properties.Property; import net.momirealms.craftengine.core.block.properties.type.AnchorType; @@ -26,7 +25,7 @@ import java.util.Set; import java.util.concurrent.Callable; public class FaceAttachedHorizontalDirectionalBlockBehavior extends BukkitBlockBehavior { - public static final BlockBehaviorFactory FACTORY = new Factory(); + public static final BlockBehaviorFactory FACTORY = new Factory(); private final Property anchorTypeProperty; private final Property facingProperty; private final List tagsCanSurviveOn; @@ -135,11 +134,11 @@ public class FaceAttachedHorizontalDirectionalBlockBehavior extends BukkitBlockB }; } - private static class Factory implements BlockBehaviorFactory { + private static class Factory implements BlockBehaviorFactory { @SuppressWarnings("unchecked") @Override - public BlockBehavior create(CustomBlock block, Map arguments) { + public FaceAttachedHorizontalDirectionalBlockBehavior create(CustomBlock block, Map arguments) { Property anchorType = (Property) ResourceConfigUtils.requireNonNullOrThrow(block.getProperty("face"), "warning.config.block.behavior.face_attached_horizontal_directional.missing_face"); Property facing = (Property) ResourceConfigUtils.requireNonNullOrThrow(block.getProperty("facing"), "warning.config.block.behavior.face_attached_horizontal_directional.missing_facing"); Tuple, Set, Set> tuple = DirectionalAttachedBlockBehavior.readTagsAndState(arguments); 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 ae616ef9e..e5b4f699e 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 @@ -10,7 +10,6 @@ import net.momirealms.craftengine.bukkit.util.BlockStateUtils; import net.momirealms.craftengine.bukkit.util.LocationUtils; 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.sound.SoundData; import net.momirealms.craftengine.core.util.ResourceConfigUtils; @@ -22,7 +21,7 @@ import java.util.Optional; import java.util.concurrent.Callable; public class FallingBlockBehavior extends BukkitBlockBehavior { - public static final BlockBehaviorFactory FACTORY = new Factory(); + public static final BlockBehaviorFactory FACTORY = new Factory(); private final float hurtAmount; private final int maxHurt; private final SoundData landSound; @@ -112,11 +111,11 @@ public class FallingBlockBehavior extends BukkitBlockBehavior { } } - private static class Factory implements BlockBehaviorFactory { + private static class Factory implements BlockBehaviorFactory { @SuppressWarnings("unchecked") @Override - public BlockBehavior create(CustomBlock block, Map arguments) { + public FallingBlockBehavior create(CustomBlock block, Map arguments) { float hurtAmount = ResourceConfigUtils.getAsFloat(arguments.getOrDefault("hurt-amount", -1f), "hurt-amount"); int hurtMax = ResourceConfigUtils.getAsInt(arguments.getOrDefault("max-hurt", -1), "max-hurt"); Map sounds = (Map) arguments.get("sounds"); 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 a11450c89..97849a863 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 @@ -9,7 +9,6 @@ import net.momirealms.craftengine.bukkit.util.*; import net.momirealms.craftengine.core.block.BlockStateWrapper; 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.block.behavior.IsPathFindableBlockBehavior; import net.momirealms.craftengine.core.block.properties.BooleanProperty; @@ -32,7 +31,7 @@ import java.util.Optional; import java.util.concurrent.Callable; public class FenceBlockBehavior extends BukkitBlockBehavior implements IsPathFindableBlockBehavior { - public static final BlockBehaviorFactory FACTORY = new Factory(); + public static final BlockBehaviorFactory FACTORY = new Factory(); private final BooleanProperty northProperty; private final BooleanProperty eastProperty; private final BooleanProperty southProperty; @@ -137,10 +136,10 @@ public class FenceBlockBehavior extends BukkitBlockBehavior implements IsPathFin return superMethod.call(); } - private static class Factory implements BlockBehaviorFactory { + private static class Factory implements BlockBehaviorFactory { @Override - public BlockBehavior create(CustomBlock block, Map arguments) { + public FenceBlockBehavior create(CustomBlock block, Map arguments) { BooleanProperty north = (BooleanProperty) ResourceConfigUtils.requireNonNullOrThrow(block.getProperty("north"), "warning.config.block.behavior.fence.missing_north"); BooleanProperty east = (BooleanProperty) ResourceConfigUtils.requireNonNullOrThrow(block.getProperty("east"), "warning.config.block.behavior.fence.missing_east"); BooleanProperty south = (BooleanProperty) ResourceConfigUtils.requireNonNullOrThrow(block.getProperty("south"), "warning.config.block.behavior.fence.missing_south"); 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 264d0f6ec..c0dc7031c 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 @@ -14,7 +14,6 @@ import net.momirealms.craftengine.core.block.BlockStateWrapper; import net.momirealms.craftengine.core.block.CustomBlock; import net.momirealms.craftengine.core.block.ImmutableBlockState; 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.IsPathFindableBlockBehavior; import net.momirealms.craftengine.core.block.properties.Property; @@ -46,7 +45,7 @@ import java.util.concurrent.Callable; @SuppressWarnings("DuplicatedCode") public class FenceGateBlockBehavior extends BukkitBlockBehavior implements IsPathFindableBlockBehavior { - public static final BlockBehaviorFactory FACTORY = new Factory(); + public static final BlockBehaviorFactory FACTORY = new Factory(); private final Property facingProperty; private final Property inWallProperty; private final Property openProperty; @@ -280,11 +279,11 @@ public class FenceGateBlockBehavior extends BukkitBlockBehavior implements IsPat return facing != null && facing.axis() == direction.toDirection().clockWise().axis(); } - private static class Factory implements BlockBehaviorFactory { + private static class Factory implements BlockBehaviorFactory { @Override @SuppressWarnings("unchecked") - public BlockBehavior create(CustomBlock block, Map arguments) { + public FenceGateBlockBehavior create(CustomBlock block, Map arguments) { Property facing = (Property) ResourceConfigUtils.requireNonNullOrThrow(block.getProperty("facing"), "warning.config.block.behavior.fence_gate.missing_facing"); Property inWall = (Property) ResourceConfigUtils.requireNonNullOrThrow(block.getProperty("in_wall"), "warning.config.block.behavior.fence_gate.missing_in_wall"); Property open = (Property) ResourceConfigUtils.requireNonNullOrThrow(block.getProperty("open"), "warning.config.block.behavior.fence_gate.missing_open"); 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 1c1322b81..a7dcc9de3 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 @@ -11,7 +11,6 @@ import net.momirealms.craftengine.bukkit.util.ParticleUtils; import net.momirealms.craftengine.bukkit.world.BukkitExistingBlock; 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.entity.player.InteractionResult; import net.momirealms.craftengine.core.entity.player.Player; @@ -29,7 +28,7 @@ import java.util.Optional; @SuppressWarnings("DuplicatedCode") public class GrassBlockBehavior extends BukkitBlockBehavior { - public static final BlockBehaviorFactory FACTORY = new Factory(); + public static final BlockBehaviorFactory FACTORY = new Factory(); private final Key feature; public GrassBlockBehavior(CustomBlock block, Key feature) { @@ -155,9 +154,9 @@ public class GrassBlockBehavior extends BukkitBlockBehavior { } } - private static class Factory implements BlockBehaviorFactory { + private static class Factory implements BlockBehaviorFactory { @Override - public BlockBehavior create(CustomBlock block, Map arguments) { + public GrassBlockBehavior create(CustomBlock block, Map arguments) { String feature = ResourceConfigUtils.requireNonEmptyStringOrThrow(ResourceConfigUtils.get(arguments, "feature", "placed-feature"), "warning.config.block.behavior.grass.missing_feature"); return new GrassBlockBehavior(block, Key.of(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 b20d3c210..1a8f2d769 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 @@ -8,7 +8,6 @@ import net.momirealms.craftengine.bukkit.util.BlockStateUtils; import net.momirealms.craftengine.bukkit.util.LocationUtils; 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.block.behavior.IsPathFindableBlockBehavior; import net.momirealms.craftengine.core.block.properties.BooleanProperty; @@ -20,7 +19,7 @@ import java.util.Map; import java.util.concurrent.Callable; public class HangableBlockBehavior extends BukkitBlockBehavior implements IsPathFindableBlockBehavior { - public static final BlockBehaviorFactory FACTORY = new Factory(); + public static final BlockBehaviorFactory FACTORY = new Factory(); private final BooleanProperty hangingProperty; public HangableBlockBehavior(CustomBlock customBlock, BooleanProperty hangingProperty) { @@ -75,10 +74,10 @@ public class HangableBlockBehavior extends BukkitBlockBehavior implements IsPath return false; } - private static class Factory implements BlockBehaviorFactory { + private static class Factory implements BlockBehaviorFactory { @Override - public BlockBehavior create(CustomBlock block, Map arguments) { + public HangableBlockBehavior create(CustomBlock block, Map arguments) { BooleanProperty hanging = (BooleanProperty) ResourceConfigUtils.requireNonNullOrThrow(block.getProperty("hanging"), "warning.config.block.behavior.hangable.missing_hanging"); return new HangableBlockBehavior(block, hanging); } 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 faa496f43..66fb7141f 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 @@ -3,7 +3,6 @@ package net.momirealms.craftengine.bukkit.block.behavior; import net.momirealms.craftengine.bukkit.nms.FastNMS; 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.ResourceConfigUtils; import net.momirealms.craftengine.core.util.Tuple; @@ -13,7 +12,7 @@ import java.util.Map; import java.util.Set; public class HangingBlockBehavior extends BushBlockBehavior { - public static final BlockBehaviorFactory FACTORY = new Factory(); + public static final BlockBehaviorFactory FACTORY = new Factory(); 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); @@ -26,10 +25,10 @@ public class HangingBlockBehavior extends BushBlockBehavior { return mayPlaceOn(belowState, world, belowPos); } - private static class Factory implements BlockBehaviorFactory { + private static class Factory implements BlockBehaviorFactory { @Override - public BlockBehavior create(CustomBlock block, Map arguments) { + public HangingBlockBehavior create(CustomBlock block, Map arguments) { Tuple, Set, Set> tuple = readTagsAndState(arguments, true); boolean stackable = ResourceConfigUtils.getAsBoolean(arguments.getOrDefault("stackable", false), "stackable"); int delay = ResourceConfigUtils.getAsInt(arguments.getOrDefault("delay", 0), "delay"); 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 4e193b597..307cc90fc 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 @@ -5,7 +5,6 @@ import net.momirealms.craftengine.bukkit.util.BlockStateUtils; import net.momirealms.craftengine.bukkit.util.LocationUtils; 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.block.properties.Property; import net.momirealms.craftengine.core.util.ResourceConfigUtils; @@ -17,7 +16,7 @@ import java.util.concurrent.Callable; @SuppressWarnings("DuplicatedCode") public class LampBlockBehavior extends BukkitBlockBehavior { - public static final BlockBehaviorFactory FACTORY = new Factory(); + public static final BlockBehaviorFactory FACTORY = new Factory(); private final Property litProperty; public LampBlockBehavior(CustomBlock block, Property litProperty) { @@ -70,9 +69,9 @@ public class LampBlockBehavior extends BukkitBlockBehavior { } @SuppressWarnings("unchecked") - private static class Factory implements BlockBehaviorFactory { + private static class Factory implements BlockBehaviorFactory { @Override - public BlockBehavior create(CustomBlock block, Map arguments) { + public LampBlockBehavior create(CustomBlock block, Map arguments) { Property lit = (Property) ResourceConfigUtils.requireNonNullOrThrow(block.getProperty("lit"), "warning.config.block.behavior.lamp.missing_lit"); return new LampBlockBehavior(block, lit); } 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 c8ad1a0d6..e796006bc 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 @@ -8,7 +8,6 @@ import net.momirealms.craftengine.bukkit.util.LocationUtils; import net.momirealms.craftengine.core.block.CustomBlock; import net.momirealms.craftengine.core.block.ImmutableBlockState; 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.Direction; @@ -24,7 +23,7 @@ import java.util.Optional; import java.util.concurrent.Callable; public class LeavesBlockBehavior extends BukkitBlockBehavior { - public static final BlockBehaviorFactory FACTORY = new Factory(); + public static final BlockBehaviorFactory FACTORY = new Factory(); private static final Object LOG_TAG = BlockTags.getOrCreate(Key.of("minecraft", "logs")); private final int maxDistance; private final Property distanceProperty; @@ -160,10 +159,10 @@ public class LeavesBlockBehavior extends BukkitBlockBehavior { } @SuppressWarnings("unchecked") - private static class Factory implements BlockBehaviorFactory { + private static class Factory implements BlockBehaviorFactory { @Override - public BlockBehavior create(CustomBlock block, Map arguments) { + public LeavesBlockBehavior create(CustomBlock block, Map arguments) { Property persistent = (Property) ResourceConfigUtils.requireNonNullOrThrow(block.getProperty("persistent"), "warning.config.block.behavior.leaves.missing_persistent"); Property distance = (Property) ResourceConfigUtils.requireNonNullOrThrow(block.getProperty("distance"), "warning.config.block.behavior.leaves.missing_distance"); int actual = distance.possibleValues().getLast(); 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 d9f613cc7..1caeea80b 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 @@ -4,7 +4,6 @@ import net.momirealms.craftengine.bukkit.nms.FastNMS; import net.momirealms.craftengine.bukkit.plugin.reflection.minecraft.MFluids; import net.momirealms.craftengine.core.block.CustomBlock; 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.world.WorldEvents; @@ -13,7 +12,7 @@ import java.util.Map; import java.util.concurrent.Callable; public class LiquidFlowableBlockBehavior extends BukkitBlockBehavior implements PlaceLiquidBlockBehavior { - public static final BlockBehaviorFactory FACTORY = new Factory(); + public static final BlockBehaviorFactory FACTORY = new Factory(); public LiquidFlowableBlockBehavior(CustomBlock customBlock) { super(customBlock); @@ -40,10 +39,10 @@ public class LiquidFlowableBlockBehavior extends BukkitBlockBehavior implements return true; } - private static class Factory implements BlockBehaviorFactory { + private static class Factory implements BlockBehaviorFactory { @Override - public BlockBehavior create(CustomBlock block, Map arguments) { + public LiquidFlowableBlockBehavior create(CustomBlock block, Map arguments) { return new LiquidFlowableBlockBehavior(block); } } 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 b0cc3c124..dd5362ea1 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 @@ -12,7 +12,6 @@ import net.momirealms.craftengine.bukkit.world.BukkitWorld; import net.momirealms.craftengine.core.block.CustomBlock; import net.momirealms.craftengine.core.block.ImmutableBlockState; 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.IntegerProperty; import net.momirealms.craftengine.core.entity.player.InteractionHand; @@ -28,7 +27,7 @@ import java.util.Optional; import java.util.concurrent.Callable; public class MultiHighBlockBehavior extends BukkitBlockBehavior { - public static final BlockBehaviorFactory FACTORY = new Factory(); + public static final BlockBehaviorFactory FACTORY = new Factory(); public final IntegerProperty highProperty; public MultiHighBlockBehavior(CustomBlock customBlock, IntegerProperty highProperty) { @@ -240,10 +239,10 @@ public class MultiHighBlockBehavior extends BukkitBlockBehavior { return state.with(property, property.min); } - private static class Factory implements BlockBehaviorFactory { + private static class Factory implements BlockBehaviorFactory { @Override - public BlockBehavior create(CustomBlock block, Map arguments) { + public MultiHighBlockBehavior create(CustomBlock block, Map arguments) { IntegerProperty high = (IntegerProperty) ResourceConfigUtils.requireNonNullOrThrow(block.getProperty("high"), "warning.config.block.behavior.multi_high.missing_high"); return new MultiHighBlockBehavior(block, high); } 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 955325d9c..0a7766f3a 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 @@ -7,7 +7,6 @@ import net.momirealms.craftengine.bukkit.util.BlockStateUtils; import net.momirealms.craftengine.bukkit.util.LocationUtils; 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.MiscUtils; import net.momirealms.craftengine.core.util.ResourceConfigUtils; @@ -20,7 +19,7 @@ import java.util.Optional; public class NearLiquidBlockBehavior extends AbstractCanSurviveBlockBehavior { 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(); + public static final BlockBehaviorFactory FACTORY = new Factory(); private final boolean onWater; private final boolean onLava; private final boolean stackable; @@ -42,10 +41,10 @@ public class NearLiquidBlockBehavior extends AbstractCanSurviveBlockBehavior { return this.onLava; } - private static class Factory implements BlockBehaviorFactory { + private static class Factory implements BlockBehaviorFactory { @Override - public BlockBehavior create(CustomBlock block, Map arguments) { + public NearLiquidBlockBehavior create(CustomBlock block, Map arguments) { List liquidTypes = MiscUtils.getAsStringList(arguments.getOrDefault("liquid-type", List.of("water"))); boolean stackable = ResourceConfigUtils.getAsBoolean(arguments.getOrDefault("stackable", false), "stackable"); int delay = ResourceConfigUtils.getAsInt(arguments.getOrDefault("delay", 0), "delay"); 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 708729413..cdd3a442a 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 @@ -7,7 +7,6 @@ import net.momirealms.craftengine.bukkit.util.BlockStateUtils; import net.momirealms.craftengine.bukkit.util.LocationUtils; 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.MiscUtils; import net.momirealms.craftengine.core.util.ResourceConfigUtils; @@ -17,7 +16,7 @@ import java.util.Map; import java.util.Optional; public class OnLiquidBlockBehavior extends AbstractCanSurviveBlockBehavior { - public static final BlockBehaviorFactory FACTORY = new Factory(); + public static final BlockBehaviorFactory FACTORY = new Factory(); private final boolean onWater; private final boolean onLava; private final boolean stackable; @@ -37,9 +36,9 @@ public class OnLiquidBlockBehavior extends AbstractCanSurviveBlockBehavior { return this.onLava; } - private static class Factory implements BlockBehaviorFactory { + private static class Factory implements BlockBehaviorFactory { @Override - public BlockBehavior create(CustomBlock block, Map arguments) { + public OnLiquidBlockBehavior create(CustomBlock block, Map arguments) { List liquidTypes = MiscUtils.getAsStringList(arguments.getOrDefault("liquid-type", List.of("water"))); boolean stackable = ResourceConfigUtils.getAsBoolean(arguments.getOrDefault("stackable", false), "stackable"); int delay = ResourceConfigUtils.getAsInt(arguments.getOrDefault("delay", 0), "delay"); 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 6e283a98d..f81776255 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 @@ -12,7 +12,6 @@ import net.momirealms.craftengine.bukkit.util.LocationUtils; import net.momirealms.craftengine.bukkit.world.BukkitWorldManager; 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.block.properties.Property; import net.momirealms.craftengine.core.sound.SoundData; @@ -31,7 +30,7 @@ import java.util.Optional; import java.util.concurrent.Callable; public class PressurePlateBlockBehavior extends BukkitBlockBehavior { - public static final BlockBehaviorFactory FACTORY = new Factory(); + public static final BlockBehaviorFactory FACTORY = new Factory(); private final Property poweredProperty; private final SoundData onSound; private final SoundData offSound; @@ -220,11 +219,11 @@ public class PressurePlateBlockBehavior extends BukkitBlockBehavior { return true; } - private static class Factory implements BlockBehaviorFactory { + private static class Factory implements BlockBehaviorFactory { @SuppressWarnings("unchecked") @Override - public BlockBehavior create(CustomBlock block, Map arguments) { + public PressurePlateBlockBehavior create(CustomBlock block, Map arguments) { Property powered = (Property) ResourceConfigUtils.requireNonNullOrThrow(block.getProperty("powered"), "warning.config.block.behavior.pressure_plate.missing_powered"); PressurePlateSensitivity pressurePlateSensitivity = PressurePlateSensitivity.byName(arguments.getOrDefault("sensitivity", "everything").toString()); int pressedTime = ResourceConfigUtils.getAsInt(arguments.getOrDefault("pressed-time", 20), "pressed-time"); 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 789537189..7f5a04b6e 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SaplingBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SaplingBlockBehavior.java @@ -11,7 +11,6 @@ import net.momirealms.craftengine.bukkit.util.ParticleUtils; import net.momirealms.craftengine.core.block.CustomBlock; import net.momirealms.craftengine.core.block.ImmutableBlockState; 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.IntegerProperty; import net.momirealms.craftengine.core.block.properties.Property; @@ -34,7 +33,7 @@ import java.util.concurrent.Callable; @SuppressWarnings("DuplicatedCode") public class SaplingBlockBehavior extends BukkitBlockBehavior { - public static final BlockBehaviorFactory FACTORY = new Factory(); + public static final BlockBehaviorFactory FACTORY = new Factory(); private final Key feature; private final IntegerProperty stageProperty; private final double boneMealSuccessChance; @@ -169,11 +168,11 @@ public class SaplingBlockBehavior extends BukkitBlockBehavior { return InteractionResult.SUCCESS; } - private static class Factory implements BlockBehaviorFactory { + private static class Factory implements BlockBehaviorFactory { @SuppressWarnings("unchecked") @Override - public BlockBehavior create(CustomBlock block, Map arguments) { + public SaplingBlockBehavior create(CustomBlock block, Map arguments) { String feature = ResourceConfigUtils.requireNonEmptyStringOrThrow(ResourceConfigUtils.get(arguments, "feature", "configured-feature"), "warning.config.block.behavior.sapling.missing_feature"); Property stageProperty = (Property) ResourceConfigUtils.requireNonNullOrThrow(block.getProperty("stage"), "warning.config.block.behavior.sapling.missing_stage"); double boneMealSuccessChance = ResourceConfigUtils.getAsDouble(arguments.getOrDefault("bone-meal-success-chance", 0.45), "bone-meal-success-chance"); 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 1908496b7..adf3c980d 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 @@ -5,7 +5,6 @@ import net.momirealms.craftengine.bukkit.block.entity.SeatBlockEntity; import net.momirealms.craftengine.bukkit.plugin.user.BukkitServerPlayer; 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.block.behavior.EntityBlockBehavior; import net.momirealms.craftengine.core.block.entity.BlockEntity; @@ -21,7 +20,7 @@ import net.momirealms.craftengine.core.world.context.UseOnContext; import java.util.Map; public class SeatBlockBehavior extends BukkitBlockBehavior implements EntityBlockBehavior { - public static final BlockBehaviorFactory FACTORY = new Factory(); + public static final BlockBehaviorFactory FACTORY = new Factory(); private final Property directionProperty; private final SeatConfig[] seats; @@ -64,11 +63,11 @@ public class SeatBlockBehavior extends BukkitBlockBehavior implements EntityBloc } } - private static class Factory implements BlockBehaviorFactory { + private static class Factory implements BlockBehaviorFactory { @SuppressWarnings("unchecked") @Override - public BlockBehavior create(CustomBlock block, Map arguments) { + public SeatBlockBehavior create(CustomBlock block, Map arguments) { Property directionProperty = null; Property facing = block.getProperty("facing"); if (facing != null && facing.valueClass() == HorizontalDirection.class) { 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 64b5671b5..fd7bec18d 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 @@ -4,7 +4,6 @@ import net.momirealms.craftengine.bukkit.block.entity.BukkitBlockEntityTypes; import net.momirealms.craftengine.bukkit.block.entity.SimpleParticleBlockEntity; 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.block.behavior.EntityBlockBehavior; import net.momirealms.craftengine.core.block.entity.BlockEntity; @@ -19,7 +18,7 @@ import java.util.List; import java.util.Map; public class SimpleParticleBlockBehavior extends BukkitBlockBehavior implements EntityBlockBehavior { - public static final BlockBehaviorFactory FACTORY = new Factory(); + public static final BlockBehaviorFactory FACTORY = new Factory(); public final ParticleConfig[] particles; public final int tickInterval; @@ -53,10 +52,10 @@ public class SimpleParticleBlockBehavior extends BukkitBlockBehavior implements return EntityBlockBehavior.createTickerHelper(SimpleParticleBlockEntity::tick); } - private static class Factory implements BlockBehaviorFactory { + private static class Factory implements BlockBehaviorFactory { @Override - public BlockBehavior create(CustomBlock block, Map arguments) { + public SimpleParticleBlockBehavior create(CustomBlock block, Map arguments) { List particles = ResourceConfigUtils.parseConfigAsList(ResourceConfigUtils.get(arguments, "particles", "particle"), ParticleConfig::fromMap$blockEntity); int tickInterval = ResourceConfigUtils.getAsInt(arguments.getOrDefault("tick-interval", 10), "tick-interval"); return new SimpleParticleBlockBehavior(block, particles.toArray(new ParticleConfig[0]), 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 139e26017..41c37bed7 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 @@ -10,7 +10,6 @@ import net.momirealms.craftengine.bukkit.util.LocationUtils; import net.momirealms.craftengine.bukkit.world.BukkitWorldManager; 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.block.behavior.EntityBlockBehavior; import net.momirealms.craftengine.core.block.entity.BlockEntity; @@ -38,7 +37,7 @@ import java.util.Optional; import java.util.concurrent.Callable; public class SimpleStorageBlockBehavior extends BukkitBlockBehavior implements EntityBlockBehavior { - public static final BlockBehaviorFactory FACTORY = new Factory(); + public static final BlockBehaviorFactory FACTORY = new Factory(); private final String containerTitle; private final int rows; private final SoundData openSound; @@ -198,11 +197,11 @@ public class SimpleStorageBlockBehavior extends BukkitBlockBehavior implements E return null; } - private static class Factory implements BlockBehaviorFactory { + private static class Factory implements BlockBehaviorFactory { @SuppressWarnings("unchecked") @Override - public BlockBehavior create(CustomBlock block, Map arguments) { + public SimpleStorageBlockBehavior create(CustomBlock block, Map arguments) { String title = arguments.getOrDefault("title", "").toString(); int rows = MiscUtils.clamp(ResourceConfigUtils.getAsInt(arguments.getOrDefault("rows", 1), "rows"), 1, 6); Map sounds = (Map) arguments.get("sounds"); 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 a38520c1e..181ad565f 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,7 @@ import java.util.Optional; import java.util.concurrent.Callable; public class SlabBlockBehavior extends BukkitBlockBehavior implements IsPathFindableBlockBehavior, CanBeReplacedBlockBehavior { - public static final BlockBehaviorFactory FACTORY = new Factory(); + public static final BlockBehaviorFactory FACTORY = new Factory(); private final Property typeProperty; public SlabBlockBehavior(CustomBlock block, Property typeProperty) { @@ -114,11 +114,11 @@ public class SlabBlockBehavior extends BukkitBlockBehavior implements IsPathFind return false; } - private static class Factory implements BlockBehaviorFactory { + private static class Factory implements BlockBehaviorFactory { @SuppressWarnings("unchecked") @Override - public BlockBehavior create(CustomBlock block, Map arguments) { + public SlabBlockBehavior create(CustomBlock block, Map arguments) { Property type = (Property) ResourceConfigUtils.requireNonNullOrThrow(block.getProperty("type"), "warning.config.block.behavior.slab.missing_type"); return new SlabBlockBehavior(block, type); } 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 62f4b2292..09c831d8a 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 @@ -7,7 +7,6 @@ import net.momirealms.craftengine.bukkit.util.BlockStateUtils; import net.momirealms.craftengine.bukkit.util.LocationUtils; 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.block.properties.BooleanProperty; import net.momirealms.craftengine.core.util.ResourceConfigUtils; @@ -17,7 +16,7 @@ import java.util.Map; import java.util.concurrent.Callable; public class SnowyBlockBehavior extends BukkitBlockBehavior { - public static final BlockBehaviorFactory FACTORY = new Factory(); + public static final BlockBehaviorFactory FACTORY = new Factory(); private final BooleanProperty snowyProperty; public SnowyBlockBehavior(CustomBlock customBlock, BooleanProperty snowyProperty) { @@ -44,10 +43,10 @@ public class SnowyBlockBehavior extends BukkitBlockBehavior { return FastNMS.INSTANCE.method$BlockStateBase$is(state, MTagKeys.Block$SNOW); } - private static class Factory implements BlockBehaviorFactory { + private static class Factory implements BlockBehaviorFactory { @Override - public BlockBehavior create(CustomBlock block, Map arguments) { + public SnowyBlockBehavior create(CustomBlock block, Map arguments) { BooleanProperty snowyProperty = (BooleanProperty) ResourceConfigUtils.requireNonNullOrThrow(block.getProperty("snowy"), "warning.config.block.behavior.snowy.missing_snowy"); return new SnowyBlockBehavior(block, 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 f94c40c32..c4e4a51cd 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 @@ -7,7 +7,6 @@ import net.momirealms.craftengine.bukkit.util.DirectionUtils; import net.momirealms.craftengine.bukkit.util.LocationUtils; 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.block.properties.Property; import net.momirealms.craftengine.core.block.properties.type.SofaShape; @@ -23,7 +22,7 @@ import java.util.Optional; import java.util.concurrent.Callable; public class SofaBlockBehavior extends BukkitBlockBehavior { - public static final BlockBehaviorFactory FACTORY = new Factory(); + public static final BlockBehaviorFactory FACTORY = new Factory(); private final Property facingProperty; private final Property shapeProperty; @@ -99,11 +98,11 @@ public class SofaBlockBehavior extends BukkitBlockBehavior { return anotherState.get(anotherBehavior.facingProperty) != state.get(this.facingProperty); } - private static class Factory implements BlockBehaviorFactory { + private static class Factory implements BlockBehaviorFactory { @Override @SuppressWarnings("unchecked") - public BlockBehavior create(CustomBlock block, Map arguments) { + public SofaBlockBehavior create(CustomBlock block, Map arguments) { Property facing = (Property) ResourceConfigUtils.requireNonNullOrThrow(block.getProperty("facing"), "warning.config.block.behavior.sofa.missing_facing"); Property shape = (Property) ResourceConfigUtils.requireNonNullOrThrow(block.getProperty("shape"), "warning.config.block.behavior.sofa.missing_shape"); return new SofaBlockBehavior(block, facing, shape); diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SpreadingBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SpreadingBlockBehavior.java index 52988b912..0eb9843f1 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SpreadingBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SpreadingBlockBehavior.java @@ -4,7 +4,6 @@ import net.momirealms.craftengine.bukkit.block.BukkitBlockManager; import net.momirealms.craftengine.bukkit.nms.FastNMS; import net.momirealms.craftengine.core.block.CustomBlock; 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.util.LazyReference; import net.momirealms.craftengine.core.util.RandomUtils; @@ -15,7 +14,7 @@ import java.util.Objects; import java.util.concurrent.Callable; public class SpreadingBlockBehavior extends BukkitBlockBehavior { - public static final BlockBehaviorFactory FACTORY = new Factory(); + public static final BlockBehaviorFactory FACTORY = new Factory(); private final LazyReference targetBlock; public SpreadingBlockBehavior(CustomBlock customBlock, String targetBlock) { @@ -33,10 +32,10 @@ public class SpreadingBlockBehavior extends BukkitBlockBehavior { } } - private static class Factory implements BlockBehaviorFactory { + private static class Factory implements BlockBehaviorFactory { @Override - public BlockBehavior create(CustomBlock block, Map arguments) { + public SpreadingBlockBehavior create(CustomBlock block, Map arguments) { String targetBlock = ResourceConfigUtils.requireNonEmptyStringOrThrow(arguments.get("target-block"), "warning.config.block.behavior.spreading.missing_target_block"); return new SpreadingBlockBehavior(block, targetBlock); } 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 5868d516d..becf6d746 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 @@ -5,7 +5,6 @@ import net.momirealms.craftengine.bukkit.util.BlockStateUtils; import net.momirealms.craftengine.bukkit.util.LocationUtils; 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.block.behavior.CanBeReplacedBlockBehavior; import net.momirealms.craftengine.core.block.properties.IntegerProperty; @@ -22,7 +21,7 @@ import java.util.List; import java.util.Map; public class StackableBlockBehavior extends BukkitBlockBehavior implements CanBeReplacedBlockBehavior { - public static final BlockBehaviorFactory FACTORY = new Factory(); + public static final BlockBehaviorFactory FACTORY = new Factory(); private final IntegerProperty amountProperty; private final List items; private final String propertyName; @@ -71,10 +70,10 @@ public class StackableBlockBehavior extends BukkitBlockBehavior implements CanBe return blockState.cycle(property); } - private static class Factory implements BlockBehaviorFactory { + private static class Factory implements BlockBehaviorFactory { @Override - public BlockBehavior create(CustomBlock block, Map arguments) { + public StackableBlockBehavior create(CustomBlock block, Map arguments) { String propertyName = String.valueOf(arguments.getOrDefault("property", "amount")); IntegerProperty amount = (IntegerProperty) ResourceConfigUtils.requireNonNullOrThrow(block.getProperty(propertyName), () -> { throw new LocalizedResourceConfigException("warning.config.block.behavior.stackable.missing_property", propertyName); 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 625a11aa7..854f9fa55 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 @@ -7,7 +7,6 @@ import net.momirealms.craftengine.bukkit.util.DirectionUtils; import net.momirealms.craftengine.bukkit.util.LocationUtils; 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.block.properties.Property; import net.momirealms.craftengine.core.block.properties.type.SingleBlockHalf; @@ -25,7 +24,7 @@ import java.util.concurrent.Callable; @SuppressWarnings("DuplicatedCode") public class StairsBlockBehavior extends BukkitBlockBehavior { - public static final BlockBehaviorFactory FACTORY = new Factory(); + public static final BlockBehaviorFactory FACTORY = new Factory(); private final Property facingProperty; private final Property halfProperty; private final Property shapeProperty; @@ -125,11 +124,11 @@ public class StairsBlockBehavior extends BukkitBlockBehavior { return anotherState.get(anotherBehavior.facingProperty) != state.get(this.facingProperty) || anotherState.get(anotherBehavior.halfProperty) != state.get(this.halfProperty); } - private static class Factory implements BlockBehaviorFactory { + private static class Factory implements BlockBehaviorFactory { @Override @SuppressWarnings("unchecked") - public BlockBehavior create(CustomBlock block, Map arguments) { + public StairsBlockBehavior create(CustomBlock block, Map arguments) { Property facing = (Property) ResourceConfigUtils.requireNonNullOrThrow(block.getProperty("facing"), "warning.config.block.behavior.stairs.missing_facing"); Property half = (Property) ResourceConfigUtils.requireNonNullOrThrow(block.getProperty("half"), "warning.config.block.behavior.stairs.missing_half"); Property shape = (Property) ResourceConfigUtils.requireNonNullOrThrow(block.getProperty("shape"), "warning.config.block.behavior.stairs.missing_shape"); 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 b3b59d365..5a011620c 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 @@ -11,7 +11,6 @@ import net.momirealms.craftengine.bukkit.util.KeyUtils; import net.momirealms.craftengine.core.block.CustomBlock; import net.momirealms.craftengine.core.block.ImmutableBlockState; 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.IsPathFindableBlockBehavior; import net.momirealms.craftengine.core.block.properties.IntegerProperty; @@ -23,7 +22,7 @@ import java.util.Optional; import java.util.concurrent.Callable; public class StemBlockBehavior extends BukkitBlockBehavior implements IsPathFindableBlockBehavior { - public static final BlockBehaviorFactory FACTORY = new Factory(); + public static final BlockBehaviorFactory FACTORY = new Factory(); private final IntegerProperty ageProperty; private final Key fruit; private final Key attachedStem; @@ -124,10 +123,10 @@ public class StemBlockBehavior extends BukkitBlockBehavior implements IsPathFind return flag1 || flag2; } - private static class Factory implements BlockBehaviorFactory { + private static class Factory implements BlockBehaviorFactory { @Override - public BlockBehavior create(CustomBlock block, Map arguments) { + public StemBlockBehavior create(CustomBlock block, Map arguments) { IntegerProperty ageProperty = (IntegerProperty) ResourceConfigUtils.requireNonNullOrThrow(block.getProperty("age"), "warning.config.block.behavior.stem.missing_age"); Key fruit = Key.of(ResourceConfigUtils.requireNonEmptyStringOrThrow(arguments.get("fruit"), "warning.config.block.behavior.stem.missing_fruit")); Key attachedStem = Key.of(ResourceConfigUtils.requireNonEmptyStringOrThrow(arguments.get("attached-stem"), "warning.config.block.behavior.stem.missing_attached_stem")); 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 61a2c1c6f..7ab2fd693 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 @@ -2,7 +2,6 @@ package net.momirealms.craftengine.bukkit.block.behavior; import net.momirealms.craftengine.core.block.BlockStateWrapper; 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.LazyReference; @@ -14,7 +13,7 @@ import java.util.List; import java.util.Map; public class StrippableBlockBehavior extends BukkitBlockBehavior { - public static final BlockBehaviorFactory FACTORY = new Factory(); + public static final BlockBehaviorFactory FACTORY = new Factory(); private final String stripped; private final LazyReference lazyState; private final List excludedProperties; @@ -41,10 +40,10 @@ public class StrippableBlockBehavior extends BukkitBlockBehavior { return properties; } - private static class Factory implements BlockBehaviorFactory { + private static class Factory implements BlockBehaviorFactory { @Override - public BlockBehavior create(CustomBlock block, Map arguments) { + public StrippableBlockBehavior create(CustomBlock block, Map arguments) { String stripped = ResourceConfigUtils.requireNonEmptyStringOrThrow(arguments.get("stripped"), "warning.config.block.behavior.strippable.missing_stripped"); List excludedProperties = MiscUtils.getAsStringList(arguments.get("excluded-properties")); return new StrippableBlockBehavior(block, stripped, excludedProperties); 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 44e4716d5..27dcde7af 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 @@ -6,7 +6,6 @@ import net.momirealms.craftengine.bukkit.util.BlockStateUtils; import net.momirealms.craftengine.bukkit.util.DirectionUtils; 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.Direction; import net.momirealms.craftengine.core.util.MiscUtils; @@ -18,7 +17,7 @@ import java.util.Map; import java.util.Optional; public class SturdyBaseBlockBehavior extends AbstractCanSurviveBlockBehavior { - public static final BlockBehaviorFactory FACTORY = new Factory(); + public static final BlockBehaviorFactory FACTORY = new Factory(); private final Direction direction; private final boolean stackable; private final boolean checkFull; @@ -60,10 +59,10 @@ public class SturdyBaseBlockBehavior extends AbstractCanSurviveBlockBehavior { return optionalCustomState.filter(immutableBlockState -> immutableBlockState.owner().value() == super.customBlock).isPresent(); } - private static class Factory implements BlockBehaviorFactory { + private static class Factory implements BlockBehaviorFactory { @Override - public BlockBehavior create(CustomBlock block, Map arguments) { + public SturdyBaseBlockBehavior create(CustomBlock block, Map arguments) { int delay = ResourceConfigUtils.getAsInt(arguments.getOrDefault("delay", 0), "delay"); Direction direction = Direction.valueOf(arguments.getOrDefault("direction", "down").toString().toUpperCase(Locale.ENGLISH)); boolean stackable = ResourceConfigUtils.getAsBoolean(arguments.getOrDefault("stackable", false), "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 aed152726..30ad2b769 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 @@ -8,7 +8,6 @@ import net.momirealms.craftengine.bukkit.plugin.reflection.minecraft.MTagKeys; import net.momirealms.craftengine.core.block.CustomBlock; import net.momirealms.craftengine.core.block.ImmutableBlockState; 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.LazyReference; @@ -22,7 +21,7 @@ import java.util.Objects; import java.util.concurrent.Callable; public class SurfaceSpreadingBlockBehavior extends BukkitBlockBehavior { - public static final BlockBehaviorFactory FACTORY = new Factory(); + public static final BlockBehaviorFactory FACTORY = new Factory(); private final int requiredLight; private final LazyReference baseBlock; private final Property snowyProperty; @@ -101,11 +100,11 @@ public class SurfaceSpreadingBlockBehavior extends BukkitBlockBehavior { return canBeGrass(state, level, pos) && !FastNMS.INSTANCE.method$FluidState$is(FastNMS.INSTANCE.method$BlockGetter$getFluidState(level, blockPos), MTagKeys.Fluid$WATER); } - private static class Factory implements BlockBehaviorFactory { + private static class Factory implements BlockBehaviorFactory { @SuppressWarnings("unchecked") @Override - public BlockBehavior create(CustomBlock block, Map arguments) { + public SurfaceSpreadingBlockBehavior create(CustomBlock block, Map arguments) { int requiredLight = ResourceConfigUtils.getAsInt(arguments.getOrDefault("required-light", 9), "required-light"); String baseBlock = ResourceConfigUtils.requireNonEmptyStringOrThrow(arguments.getOrDefault("base-block", "minecraft:dirt"), "warning.config.block.behavior.surface_spreading.missing_base_block"); return new SurfaceSpreadingBlockBehavior(block, requiredLight, baseBlock, (Property) block.getProperty("snowy")); 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 c7bf8792e..2651a3d4a 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 @@ -6,7 +6,6 @@ import net.momirealms.craftengine.bukkit.util.BlockStateUtils; import net.momirealms.craftengine.bukkit.util.LocationUtils; 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.block.properties.Property; import net.momirealms.craftengine.core.entity.player.InteractionResult; @@ -18,7 +17,7 @@ import java.util.Optional; import java.util.concurrent.Callable; public class ToggleableLampBlockBehavior extends BukkitBlockBehavior { - public static final BlockBehaviorFactory FACTORY = new Factory(); + public static final BlockBehaviorFactory FACTORY = new Factory(); private final Property litProperty; private final Property poweredProperty; private final boolean canOpenWithHand; @@ -88,10 +87,10 @@ public class ToggleableLampBlockBehavior extends BukkitBlockBehavior { } @SuppressWarnings("unchecked") - private static class Factory implements BlockBehaviorFactory { + private static class Factory implements BlockBehaviorFactory { @Override - public BlockBehavior create(CustomBlock block, Map arguments) { + public ToggleableLampBlockBehavior create(CustomBlock block, Map arguments) { boolean canOpenWithHand = ResourceConfigUtils.getAsBoolean(ResourceConfigUtils.get(arguments, "can-open-with-hand", "can-toggle-with-hand"), "can-toggle-with-hand"); Property lit = (Property) ResourceConfigUtils.requireNonNullOrThrow(block.getProperty("lit"), "warning.config.block.behavior.toggleable_lamp.missing_lit"); Property powered = (Property) (canOpenWithHand ? block.getProperty("powered") : ResourceConfigUtils.requireNonNullOrThrow(block.getProperty("powered"), "warning.config.block.behavior.toggleable_lamp.missing_powered")); 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 acad70824..f09813fd5 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 @@ -12,7 +12,6 @@ import net.momirealms.craftengine.bukkit.util.LocationUtils; import net.momirealms.craftengine.core.block.CustomBlock; import net.momirealms.craftengine.core.block.ImmutableBlockState; 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.IsPathFindableBlockBehavior; import net.momirealms.craftengine.core.block.properties.Property; @@ -42,7 +41,7 @@ import java.util.concurrent.Callable; @SuppressWarnings("DuplicatedCode") public class TrapDoorBlockBehavior extends BukkitBlockBehavior implements IsPathFindableBlockBehavior { - public static final BlockBehaviorFactory FACTORY = new Factory(); + public static final BlockBehaviorFactory FACTORY = new Factory(); private final Property halfProperty; private final Property facingProperty; private final Property poweredProperty; @@ -228,10 +227,10 @@ public class TrapDoorBlockBehavior extends BukkitBlockBehavior implements IsPath } @SuppressWarnings("unchecked") - private static class Factory implements BlockBehaviorFactory { + private static class Factory implements BlockBehaviorFactory { @Override - public BlockBehavior create(CustomBlock block, Map arguments) { + public TrapDoorBlockBehavior create(CustomBlock block, Map arguments) { Property half = (Property) ResourceConfigUtils.requireNonNullOrThrow(block.getProperty("half"), "warning.config.block.behavior.trapdoor.missing_half"); Property facing = (Property) ResourceConfigUtils.requireNonNullOrThrow(block.getProperty("facing"), "warning.config.block.behavior.trapdoor.missing_facing"); Property open = (Property) ResourceConfigUtils.requireNonNullOrThrow(block.getProperty("open"), "warning.config.block.behavior.trapdoor.missing_open"); 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 2d3f4eb3e..93d9ca400 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 @@ -8,7 +8,6 @@ import net.momirealms.craftengine.bukkit.util.LocationUtils; import net.momirealms.craftengine.core.block.CustomBlock; import net.momirealms.craftengine.core.block.ImmutableBlockState; 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.IntegerProperty; import net.momirealms.craftengine.core.block.properties.Property; @@ -22,7 +21,7 @@ import java.util.Optional; import java.util.concurrent.Callable; public class VerticalCropBlockBehavior extends BukkitBlockBehavior { - public static final BlockBehaviorFactory FACTORY = new Factory(); + public static final BlockBehaviorFactory FACTORY = new Factory(); private final int maxHeight; private final IntegerProperty ageProperty; private final float growSpeed; @@ -78,11 +77,11 @@ public class VerticalCropBlockBehavior extends BukkitBlockBehavior { } } - private static class Factory implements BlockBehaviorFactory { + private static class Factory implements BlockBehaviorFactory { @SuppressWarnings("unchecked") @Override - public BlockBehavior create(CustomBlock block, Map arguments) { + public VerticalCropBlockBehavior create(CustomBlock block, Map arguments) { Property ageProperty = (Property) ResourceConfigUtils.requireNonNullOrThrow(block.getProperty("age"), "warning.config.block.behavior.vertical_crop.missing_age"); int maxHeight = ResourceConfigUtils.getAsInt(arguments.getOrDefault("max-height", 3), "max-height"); boolean direction = arguments.getOrDefault("direction", "up").toString().equalsIgnoreCase("up"); 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 2b4f87592..999f42822 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 @@ -4,7 +4,6 @@ import net.momirealms.craftengine.bukkit.block.entity.BukkitBlockEntityTypes; import net.momirealms.craftengine.bukkit.block.entity.WallTorchParticleBlockEntity; 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.block.behavior.EntityBlockBehavior; import net.momirealms.craftengine.core.block.entity.BlockEntity; @@ -22,7 +21,7 @@ import java.util.List; import java.util.Map; public class WallTorchParticleBlockBehavior extends BukkitBlockBehavior implements EntityBlockBehavior { - public static final BlockBehaviorFactory FACTORY = new Factory(); + public static final BlockBehaviorFactory FACTORY = new Factory(); public final ParticleConfig[] particles; public final int tickInterval; public final Property facingProperty; @@ -62,11 +61,11 @@ public class WallTorchParticleBlockBehavior extends BukkitBlockBehavior implemen return EntityBlockBehavior.createTickerHelper(WallTorchParticleBlockEntity::tick); } - private static class Factory implements BlockBehaviorFactory { + private static class Factory implements BlockBehaviorFactory { @SuppressWarnings("unchecked") @Override - public BlockBehavior create(CustomBlock block, Map arguments) { + public WallTorchParticleBlockBehavior create(CustomBlock block, Map arguments) { List particles = ResourceConfigUtils.parseConfigAsList(ResourceConfigUtils.get(arguments, "particles", "particle"), ParticleConfig::fromMap$blockEntity); int tickInterval = ResourceConfigUtils.getAsInt(arguments.getOrDefault("tick-interval", 10), "tick-interval"); Property directionProperty = (Property) block.getProperty("facing"); 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 f6374d7a6..34567aa4c 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,7 @@ import java.util.Map; import java.util.Optional; public class AxeItemBehavior extends ItemBehavior { - public static final ItemBehaviorFactory FACTORY = new Factory(); + 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"); @@ -112,9 +112,9 @@ public class AxeItemBehavior extends ItemBehavior { return InteractionResult.SUCCESS_AND_CANCEL; } - private static class Factory implements ItemBehaviorFactory { + private static class Factory implements ItemBehaviorFactory { @Override - public ItemBehavior create(Pack pack, Path path, String node, Key key, Map arguments) { + public AxeItemBehavior create(Pack pack, Path path, String node, Key key, Map arguments) { return INSTANCE; } } 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 49f668a81..7bf0e7268 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 @@ -18,7 +18,6 @@ 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.item.behavior.BlockBoundItemBehavior; -import net.momirealms.craftengine.core.item.behavior.ItemBehavior; import net.momirealms.craftengine.core.item.behavior.ItemBehaviorFactory; import net.momirealms.craftengine.core.pack.Pack; import net.momirealms.craftengine.core.pack.PendingConfigSection; @@ -54,7 +53,7 @@ import java.util.Map; import java.util.Optional; public class BlockItemBehavior extends BlockBoundItemBehavior { - public static final ItemBehaviorFactory FACTORY = new Factory(); + public static final ItemBehaviorFactory FACTORY = new Factory(); private final Key blockId; public BlockItemBehavior(Key blockId) { @@ -242,9 +241,9 @@ public class BlockItemBehavior extends BlockBoundItemBehavior { } } - private static class Factory implements ItemBehaviorFactory { + private static class Factory implements ItemBehaviorFactory { @Override - public ItemBehavior create(Pack pack, Path path, String node, Key key, Map arguments) { + public BlockItemBehavior create(Pack pack, Path path, String node, Key key, Map arguments) { Object id = arguments.get("block"); if (id == null) { throw new LocalizedResourceConfigException("warning.config.item.behavior.block.missing_block", new IllegalArgumentException("Missing required parameter 'block' for block_item behavior")); 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 a3dcde3ea..9c693a7ae 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 @@ -7,18 +7,18 @@ import net.momirealms.craftengine.core.util.Key; public final class BukkitItemBehaviors extends ItemBehaviors { private BukkitItemBehaviors() {} - 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 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 b8a29e951..3b1616c63 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 @@ -1,7 +1,6 @@ package net.momirealms.craftengine.bukkit.item.behavior; import net.momirealms.craftengine.core.entity.player.InteractionResult; -import net.momirealms.craftengine.core.item.behavior.ItemBehavior; import net.momirealms.craftengine.core.item.behavior.ItemBehaviorFactory; import net.momirealms.craftengine.core.pack.Pack; import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigException; @@ -14,7 +13,7 @@ import java.nio.file.Path; import java.util.Map; public class CeilingBlockItemBehavior extends BlockItemBehavior { - public static final ItemBehaviorFactory FACTORY = new Factory(); + public static final ItemBehaviorFactory FACTORY = new Factory(); public CeilingBlockItemBehavior(Key ceilingBlockId) { super(ceilingBlockId); @@ -33,9 +32,9 @@ public class CeilingBlockItemBehavior extends BlockItemBehavior { return super.place(context); } - private static class Factory implements ItemBehaviorFactory { + private static class Factory implements ItemBehaviorFactory { @Override - public ItemBehavior create(Pack pack, Path path, String node, Key key, Map arguments) { + public CeilingBlockItemBehavior create(Pack pack, Path path, String node, Key key, Map arguments) { Object id = arguments.get("block"); if (id == null) { throw new LocalizedResourceConfigException("warning.config.item.behavior.ceiling_block.missing_block", new IllegalArgumentException("Missing required parameter 'block' for ceiling_block_item behavior")); 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 7a2c1e1bd..73ec45bde 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,7 @@ import java.nio.file.Path; import java.util.Map; public class CompostableItemBehavior extends ItemBehavior { - public static final ItemBehaviorFactory FACTORY = new Factory(); + public static final ItemBehaviorFactory FACTORY = new Factory(); private final double chance; public CompostableItemBehavior(double chance) { @@ -77,9 +77,9 @@ public class CompostableItemBehavior extends ItemBehavior { return InteractionResult.SUCCESS; } - private static class Factory implements ItemBehaviorFactory { + private static class Factory implements ItemBehaviorFactory { @Override - public ItemBehavior create(Pack pack, Path path, String node, Key key, Map arguments) { + public CompostableItemBehavior create(Pack pack, Path path, String node, Key key, Map arguments) { double chance = ResourceConfigUtils.getAsDouble(arguments.getOrDefault("chance", 0.55), "chance"); return new CompostableItemBehavior(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 acd956a77..9a2d489e2 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 @@ -5,7 +5,6 @@ import net.momirealms.craftengine.bukkit.plugin.reflection.minecraft.MBlocks; import net.momirealms.craftengine.bukkit.plugin.reflection.minecraft.MFluids; import net.momirealms.craftengine.core.block.ImmutableBlockState; import net.momirealms.craftengine.core.block.UpdateOption; -import net.momirealms.craftengine.core.item.behavior.ItemBehavior; import net.momirealms.craftengine.core.item.behavior.ItemBehaviorFactory; import net.momirealms.craftengine.core.pack.Pack; import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigException; @@ -18,7 +17,7 @@ import java.util.List; import java.util.Map; public class DoubleHighBlockItemBehavior extends BlockItemBehavior { - public static final ItemBehaviorFactory FACTORY = new Factory(); + public static final ItemBehaviorFactory FACTORY = new Factory(); public DoubleHighBlockItemBehavior(Key blockId) { super(blockId); @@ -36,9 +35,9 @@ public class DoubleHighBlockItemBehavior extends BlockItemBehavior { return super.placeBlock(location, blockState, revertState); } - private static class Factory implements ItemBehaviorFactory { + private static class Factory implements ItemBehaviorFactory { @Override - public ItemBehavior create(Pack pack, Path path, String node, Key key, Map arguments) { + public DoubleHighBlockItemBehavior create(Pack pack, Path path, String node, Key key, Map arguments) { Object id = arguments.get("block"); if (id == null) { throw new LocalizedResourceConfigException("warning.config.item.behavior.double_high.missing_block"); 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 b41510fe8..1db4b0f29 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,7 @@ import java.util.Map; public class FlintAndSteelItemBehavior extends ItemBehavior { public static final FlintAndSteelItemBehavior INSTANCE = new FlintAndSteelItemBehavior(); - public static final ItemBehaviorFactory FACTORY = new Factory(); + public static final ItemBehaviorFactory FACTORY = new Factory(); private static final Key FLINT_SOUND = Key.of("item.flintandsteel.use"); @SuppressWarnings("unchecked") @@ -159,9 +159,9 @@ public class FlintAndSteelItemBehavior extends ItemBehavior { return InteractionResult.PASS; } - private static class Factory implements ItemBehaviorFactory { + private static class Factory implements ItemBehaviorFactory { @Override - public ItemBehavior create(Pack pack, Path path, String node, Key id, Map arguments) { + public FlintAndSteelItemBehavior create(Pack pack, Path path, String node, Key id, Map arguments) { return INSTANCE; } } 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 e3363e195..17fed2d12 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,7 @@ import java.util.*; import java.util.function.Predicate; public class FurnitureItemBehavior extends ItemBehavior { - public static final ItemBehaviorFactory FACTORY = new Factory(); + public static final ItemBehaviorFactory FACTORY = new Factory(); protected static final Set ALLOWED_ANCHOR_TYPES = Set.of("wall", "ceiling", "ground"); private final Key id; private final Map rules; @@ -210,10 +210,11 @@ public class FurnitureItemBehavior extends ItemBehavior { return InteractionResult.SUCCESS; } - private static class Factory implements ItemBehaviorFactory { + private static class Factory implements ItemBehaviorFactory { + @SuppressWarnings("DuplicatedCode") @Override - public ItemBehavior create(Pack pack, Path path, String node, Key key, Map arguments) { + public FurnitureItemBehavior create(Pack pack, Path path, String node, Key key, Map arguments) { Object id = arguments.get("furniture"); if (id == null) { throw new LocalizedResourceConfigException("warning.config.item.behavior.furniture.missing_furniture", new IllegalArgumentException("Missing required parameter 'furniture' for furniture_item behavior")); 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 1b4430039..1569bbbb2 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 @@ -1,7 +1,6 @@ package net.momirealms.craftengine.bukkit.item.behavior; import net.momirealms.craftengine.core.entity.player.InteractionResult; -import net.momirealms.craftengine.core.item.behavior.ItemBehavior; import net.momirealms.craftengine.core.item.behavior.ItemBehaviorFactory; import net.momirealms.craftengine.core.pack.Pack; import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigException; @@ -14,7 +13,7 @@ import java.nio.file.Path; import java.util.Map; public class GroundBlockItemBehavior extends BlockItemBehavior { - public static final ItemBehaviorFactory FACTORY = new Factory(); + public static final ItemBehaviorFactory FACTORY = new Factory(); public GroundBlockItemBehavior(Key ceilingBlockId) { super(ceilingBlockId); @@ -33,9 +32,9 @@ public class GroundBlockItemBehavior extends BlockItemBehavior { return super.place(context); } - private static class Factory implements ItemBehaviorFactory { + private static class Factory implements ItemBehaviorFactory { @Override - public ItemBehavior create(Pack pack, Path path, String node, Key key, Map arguments) { + public GroundBlockItemBehavior create(Pack pack, Path path, String node, Key key, Map arguments) { Object id = arguments.get("block"); if (id == null) { throw new LocalizedResourceConfigException("warning.config.item.behavior.ground_block.missing_block", new IllegalArgumentException("Missing required parameter 'block' for ground_block_item behavior")); 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 467ed9e69..93f9dbe89 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 @@ -8,7 +8,6 @@ import net.momirealms.craftengine.bukkit.util.LocationUtils; import net.momirealms.craftengine.core.entity.player.InteractionHand; import net.momirealms.craftengine.core.entity.player.InteractionResult; import net.momirealms.craftengine.core.entity.player.Player; -import net.momirealms.craftengine.core.item.behavior.ItemBehavior; import net.momirealms.craftengine.core.item.behavior.ItemBehaviorFactory; import net.momirealms.craftengine.core.pack.Pack; import net.momirealms.craftengine.core.plugin.CraftEngine; @@ -27,7 +26,7 @@ import java.nio.file.Path; import java.util.Map; public class LiquidCollisionBlockItemBehavior extends BlockItemBehavior { - public static final ItemBehaviorFactory FACTORY = new Factory(); + public static final ItemBehaviorFactory FACTORY = new Factory(); private final int offsetY; public LiquidCollisionBlockItemBehavior(Key blockId, int offsetY) { @@ -66,9 +65,9 @@ public class LiquidCollisionBlockItemBehavior extends BlockItemBehavior { } } - private static class Factory implements ItemBehaviorFactory { + private static class Factory implements ItemBehaviorFactory { @Override - public ItemBehavior create(Pack pack, Path path, String node, Key key, Map arguments) { + public LiquidCollisionBlockItemBehavior create(Pack pack, Path path, String node, Key key, Map arguments) { Object id = arguments.get("block"); if (id == null) { throw new LocalizedResourceConfigException("warning.config.item.behavior.liquid_collision.missing_block", new IllegalArgumentException("Missing required parameter 'block' for liquid_collision_block_item behavior")); 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 13d38af4a..87f7c71f3 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 @@ -12,7 +12,6 @@ import net.momirealms.craftengine.core.entity.furniture.RotationRule; import net.momirealms.craftengine.core.entity.player.InteractionHand; import net.momirealms.craftengine.core.entity.player.InteractionResult; import net.momirealms.craftengine.core.entity.player.Player; -import net.momirealms.craftengine.core.item.behavior.ItemBehavior; import net.momirealms.craftengine.core.item.behavior.ItemBehaviorFactory; import net.momirealms.craftengine.core.pack.Pack; import net.momirealms.craftengine.core.pack.PendingConfigSection; @@ -34,7 +33,7 @@ import java.nio.file.Path; import java.util.*; public class LiquidCollisionFurnitureItemBehavior extends FurnitureItemBehavior { - public static final ItemBehaviorFactory FACTORY = new Factory(); + public static final ItemBehaviorFactory FACTORY = new Factory(); private final List liquidTypes; private final boolean sourceOnly; @@ -90,10 +89,11 @@ public class LiquidCollisionFurnitureItemBehavior extends FurnitureItemBehavior } } - private static class Factory implements ItemBehaviorFactory { + private static class Factory implements ItemBehaviorFactory { + @SuppressWarnings("DuplicatedCode") @Override - public ItemBehavior create(Pack pack, Path path, String node, Key key, Map arguments) { + public LiquidCollisionFurnitureItemBehavior create(Pack pack, Path path, String node, Key key, Map arguments) { Object id = arguments.get("furniture"); if (id == null) { throw new LocalizedResourceConfigException("warning.config.item.behavior.furniture.missing_furniture", new IllegalArgumentException("Missing required parameter 'furniture' for furniture_item behavior")); 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 44515024c..11884cbd9 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 @@ -11,7 +11,6 @@ import net.momirealms.craftengine.core.block.UpdateOption; import net.momirealms.craftengine.core.block.properties.IntegerProperty; import net.momirealms.craftengine.core.entity.player.InteractionHand; import net.momirealms.craftengine.core.entity.player.Player; -import net.momirealms.craftengine.core.item.behavior.ItemBehavior; import net.momirealms.craftengine.core.item.behavior.ItemBehaviorFactory; import net.momirealms.craftengine.core.pack.Pack; import net.momirealms.craftengine.core.plugin.CraftEngine; @@ -34,7 +33,7 @@ import java.util.List; import java.util.Map; public class MultiHighBlockItemBehavior extends BlockItemBehavior { - public static final ItemBehaviorFactory FACTORY = new Factory(); + public static final ItemBehaviorFactory FACTORY = new Factory(); public MultiHighBlockItemBehavior(Key blockId) { super(blockId); @@ -104,9 +103,9 @@ public class MultiHighBlockItemBehavior extends BlockItemBehavior { return super.placeBlock(location, blockState, revertState); } - private static class Factory implements ItemBehaviorFactory { + private static class Factory implements ItemBehaviorFactory { @Override - public ItemBehavior create(Pack pack, Path path, String node, Key key, Map arguments) { + public MultiHighBlockItemBehavior create(Pack pack, Path path, String node, Key key, Map arguments) { Object id = arguments.get("block"); if (id == null) { throw new LocalizedResourceConfigException("warning.config.item.behavior.multi_high.missing_block"); 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 ee6bdff97..d511acc97 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 @@ -1,7 +1,6 @@ package net.momirealms.craftengine.bukkit.item.behavior; import net.momirealms.craftengine.core.entity.player.InteractionResult; -import net.momirealms.craftengine.core.item.behavior.ItemBehavior; import net.momirealms.craftengine.core.item.behavior.ItemBehaviorFactory; import net.momirealms.craftengine.core.pack.Pack; import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigException; @@ -13,7 +12,7 @@ import java.nio.file.Path; import java.util.Map; public class WallBlockItemBehavior extends BlockItemBehavior { - public static final ItemBehaviorFactory FACTORY = new Factory(); + public static final ItemBehaviorFactory FACTORY = new Factory(); public WallBlockItemBehavior(Key wallBlockId) { super(wallBlockId); @@ -32,9 +31,9 @@ public class WallBlockItemBehavior extends BlockItemBehavior { return super.place(context); } - private static class Factory implements ItemBehaviorFactory { + private static class Factory implements ItemBehaviorFactory { @Override - public ItemBehavior create(Pack pack, Path path, String node, Key key, Map arguments) { + public WallBlockItemBehavior create(Pack pack, Path path, String node, Key key, Map arguments) { Object id = arguments.get("block"); if (id == null) { throw new LocalizedResourceConfigException("warning.config.item.behavior.wall_block.missing_block", new IllegalArgumentException("Missing required parameter 'block' for wall_block_item behavior")); diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/BukkitNetworkManager.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/BukkitNetworkManager.java index 7237b72a3..ab216e841 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/BukkitNetworkManager.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/BukkitNetworkManager.java @@ -200,7 +200,7 @@ public class BukkitNetworkManager implements NetworkManager, Listener { this.packetIds = VersionHelper.isOrAbove1_20_5() ? new PacketIds1_20_5() : new PacketIds1_20(); // register packet handlers this.registerPacketListeners(); - PayloadHelper.registerDataTypes(); + PayloadHelper.init(); // set up packet senders this.packetConsumer = FastNMS.INSTANCE::method$Connection$send; this.packetsConsumer = (connection, packets, sendListener) -> { @@ -1039,6 +1039,12 @@ public class BukkitNetworkManager implements NetworkManager, Listener { int packetID = event.packetID(); ByteBufferPacketListenerHolder[] listener = s2cPacketListeners[user.encoderState().ordinal()]; if (packetID >= listener.length) { // fixme 为什么会这样 + this.plugin.logger().warn( + "Failed to map the Packet ID " + packetID + " to a PacketType constant. " + + "Bound: CLIENT, Connection state: " + user.encoderState() + ", " + + "Server version: " + VersionHelper.MINECRAFT_VERSION.version(), + new Throwable() + ); return; } ByteBufferPacketListenerHolder holder = listener[packetID]; @@ -1055,6 +1061,12 @@ public class BukkitNetworkManager implements NetworkManager, Listener { int packetID = event.packetID(); ByteBufferPacketListenerHolder[] listener = c2sPacketListeners[user.decoderState().ordinal()]; if (packetID >= listener.length) { // fixme 为什么会这样 + this.plugin.logger().warn( + "Failed to map the Packet ID " + packetID + " to a PacketType constant. " + + "Bound: SERVER, Connection state: " + user.encoderState() + ", " + + "Server version: " + VersionHelper.MINECRAFT_VERSION.version(), + new Throwable() + ); return; } ByteBufferPacketListenerHolder holder = listener[packetID]; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/payload/PayloadHelper.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/payload/PayloadHelper.java index 357c36411..33907f9f8 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/payload/PayloadHelper.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/payload/PayloadHelper.java @@ -9,6 +9,7 @@ import net.momirealms.craftengine.bukkit.plugin.network.payload.protocol.VisualB import net.momirealms.craftengine.core.plugin.CraftEngine; import net.momirealms.craftengine.core.plugin.logger.Debugger; import net.momirealms.craftengine.core.plugin.network.ModPacket; +import net.momirealms.craftengine.core.plugin.network.ModPacketType; import net.momirealms.craftengine.core.plugin.network.NetWorkUser; import net.momirealms.craftengine.core.plugin.network.PayloadChannelKeys; import net.momirealms.craftengine.core.plugin.network.codec.NetworkCodec; @@ -17,17 +18,21 @@ import net.momirealms.craftengine.core.registry.WritableRegistry; import net.momirealms.craftengine.core.util.FriendlyByteBuf; import net.momirealms.craftengine.core.util.ResourceKey; -public class PayloadHelper { +public final class PayloadHelper { + public static final ModPacketType CLIENT_CUSTOM_BLOCK = register(ClientCustomBlockPacket.TYPE, ClientCustomBlockPacket.CODEC); + public static final ModPacketType CANCEL_BLOCK_UPDATE = register(CancelBlockUpdatePacket.TYPE, CancelBlockUpdatePacket.CODEC); + public static final ModPacketType CLIENT_BLOCK_STATE_SIZE = register(ClientBlockStateSizePacket.TYPE, ClientBlockStateSizePacket.CODEC); + public static final ModPacketType VISUAL_BLOCK_STATE = register(VisualBlockStatePacket.TYPE, VisualBlockStatePacket.CODEC); - public static void registerDataTypes() { - registerDataType(ClientCustomBlockPacket.TYPE, ClientCustomBlockPacket.CODEC); - registerDataType(CancelBlockUpdatePacket.TYPE, CancelBlockUpdatePacket.CODEC); - registerDataType(ClientBlockStateSizePacket.TYPE, ClientBlockStateSizePacket.CODEC); - registerDataType(VisualBlockStatePacket.TYPE, VisualBlockStatePacket.CODEC); + private PayloadHelper() {} + + public static void init() { } - public static void registerDataType(ResourceKey> key, NetworkCodec codec) { + public static ModPacketType register(ResourceKey> key, NetworkCodec codec) { + ModPacketType type = new ModPacketType<>(key.location(), codec); ((WritableRegistry>) BuiltInRegistries.MOD_PACKET).register(key, codec); + return type; } public static void sendData(NetWorkUser user, ModPacket data) { diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/world/BukkitWorldManager.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/world/BukkitWorldManager.java index 1c4c3b409..265809008 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/world/BukkitWorldManager.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/world/BukkitWorldManager.java @@ -355,6 +355,10 @@ public class BukkitWorldManager implements WorldManager, Listener { } } + public void addCraftEngineDecorations(CEWorld ceWorld, Object chunkGenerator, Object worldGenLevel, Object chunkAccess, Object structureManager) { + + } + private void handleChunkLoad(CEWorld ceWorld, Chunk chunk, boolean isNew) { int chunkX = chunk.getX(); int chunkZ = chunk.getZ(); diff --git a/core/src/main/java/net/momirealms/craftengine/core/block/behavior/BlockBehaviorFactory.java b/core/src/main/java/net/momirealms/craftengine/core/block/behavior/BlockBehaviorFactory.java index e2c281014..76fe77dba 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/block/behavior/BlockBehaviorFactory.java +++ b/core/src/main/java/net/momirealms/craftengine/core/block/behavior/BlockBehaviorFactory.java @@ -4,7 +4,7 @@ import net.momirealms.craftengine.core.block.CustomBlock; import java.util.Map; -public interface BlockBehaviorFactory { +public interface BlockBehaviorFactory { - BlockBehavior create(CustomBlock block, Map arguments); + T create(CustomBlock block, Map arguments); } diff --git a/core/src/main/java/net/momirealms/craftengine/core/block/behavior/BlockBehaviorType.java b/core/src/main/java/net/momirealms/craftengine/core/block/behavior/BlockBehaviorType.java index e2761796f..ac87e6f9a 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/block/behavior/BlockBehaviorType.java +++ b/core/src/main/java/net/momirealms/craftengine/core/block/behavior/BlockBehaviorType.java @@ -2,5 +2,5 @@ package net.momirealms.craftengine.core.block.behavior; import net.momirealms.craftengine.core.util.Key; -public record BlockBehaviorType(Key id, BlockBehaviorFactory factory) { +public record BlockBehaviorType(Key id, BlockBehaviorFactory factory) { } 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 518a7ce08..4fc8c48aa 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,14 +13,14 @@ import org.jetbrains.annotations.Nullable; import java.util.Map; public class BlockBehaviors { - public static final BlockBehaviorType EMPTY = register(Key.ce("empty"), (block, args) -> EmptyBlockBehavior.INSTANCE); + public static final BlockBehaviorType EMPTY = register(Key.ce("empty"), (block, args) -> EmptyBlockBehavior.INSTANCE); protected BlockBehaviors() { } - public static BlockBehaviorType register(Key key, BlockBehaviorFactory factory) { - BlockBehaviorType type = new BlockBehaviorType(key, factory); - ((WritableRegistry) BuiltInRegistries.BLOCK_BEHAVIOR_TYPE) + public static BlockBehaviorType register(Key key, BlockBehaviorFactory factory) { + BlockBehaviorType type = new BlockBehaviorType<>(key, factory); + ((WritableRegistry>) BuiltInRegistries.BLOCK_BEHAVIOR_TYPE) .register(ResourceKey.create(Registries.BLOCK_BEHAVIOR_TYPE.location(), key), type); return type; } @@ -29,7 +29,7 @@ public class BlockBehaviors { if (map == null || map.isEmpty()) return EmptyBlockBehavior.INSTANCE; String type = ResourceConfigUtils.requireNonEmptyStringOrThrow(map.get("type"), "warning.config.block.behavior.missing_type"); Key key = Key.withDefaultNamespace(type, Key.DEFAULT_NAMESPACE); - BlockBehaviorType factory = BuiltInRegistries.BLOCK_BEHAVIOR_TYPE.getValue(key); + BlockBehaviorType factory = BuiltInRegistries.BLOCK_BEHAVIOR_TYPE.getValue(key); if (factory == null) { throw new LocalizedResourceConfigException("warning.config.block.behavior.invalid_type", 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 d3486caec..fcabca10f 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,15 +7,15 @@ import java.nio.file.Path; import java.util.Map; public class EmptyItemBehavior extends ItemBehavior { - public static final ItemBehaviorFactory FACTORY = new Factory(); + public static final ItemBehaviorFactory FACTORY = new Factory(); public static final EmptyItemBehavior INSTANCE = new EmptyItemBehavior(); private EmptyItemBehavior() {} - private static class Factory implements ItemBehaviorFactory { + private static class Factory implements ItemBehaviorFactory { @Override - public ItemBehavior create(Pack pack, Path path, String node, Key id, Map arguments) { + public EmptyItemBehavior create(Pack pack, Path path, String node, Key id, Map arguments) { return INSTANCE; } } diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/behavior/ItemBehaviorFactory.java b/core/src/main/java/net/momirealms/craftengine/core/item/behavior/ItemBehaviorFactory.java index 0f90c6223..2d157529d 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/behavior/ItemBehaviorFactory.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/behavior/ItemBehaviorFactory.java @@ -6,7 +6,7 @@ import net.momirealms.craftengine.core.util.Key; import java.nio.file.Path; import java.util.Map; -public interface ItemBehaviorFactory { +public interface ItemBehaviorFactory { - ItemBehavior create(Pack pack, Path path, String node, Key id, Map arguments); + T create(Pack pack, Path path, String node, Key id, Map arguments); } diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/behavior/ItemBehaviorType.java b/core/src/main/java/net/momirealms/craftengine/core/item/behavior/ItemBehaviorType.java index 11852c278..daacbe52c 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/behavior/ItemBehaviorType.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/behavior/ItemBehaviorType.java @@ -2,5 +2,5 @@ package net.momirealms.craftengine.core.item.behavior; import net.momirealms.craftengine.core.util.Key; -public record ItemBehaviorType(Key id, ItemBehaviorFactory factory) { +public record ItemBehaviorType(Key id, ItemBehaviorFactory factory) { } diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/behavior/ItemBehaviors.java b/core/src/main/java/net/momirealms/craftengine/core/item/behavior/ItemBehaviors.java index 556c97b92..7efa91471 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/behavior/ItemBehaviors.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/behavior/ItemBehaviors.java @@ -13,11 +13,11 @@ import java.nio.file.Path; import java.util.Map; public class ItemBehaviors { - public static final ItemBehaviorType EMPTY = register(Key.withDefaultNamespace("empty", Key.DEFAULT_NAMESPACE), EmptyItemBehavior.FACTORY); + public static final ItemBehaviorType EMPTY = register(Key.withDefaultNamespace("empty", Key.DEFAULT_NAMESPACE), EmptyItemBehavior.FACTORY); - public static ItemBehaviorType register(Key key, ItemBehaviorFactory factory) { - ItemBehaviorType type = new ItemBehaviorType(key, factory); - ((WritableRegistry) BuiltInRegistries.ITEM_BEHAVIOR_TYPE) + public static ItemBehaviorType register(Key key, ItemBehaviorFactory factory) { + ItemBehaviorType type = new ItemBehaviorType<>(key, factory); + ((WritableRegistry>) BuiltInRegistries.ITEM_BEHAVIOR_TYPE) .register(ResourceKey.create(Registries.ITEM_BEHAVIOR_TYPE.location(), key), type); return type; } @@ -26,7 +26,7 @@ public class ItemBehaviors { if (map == null || map.isEmpty()) return EmptyItemBehavior.INSTANCE; String type = ResourceConfigUtils.requireNonEmptyStringOrThrow(map.get("type"), "warning.config.item.behavior.missing_type"); Key key = Key.withDefaultNamespace(type, Key.DEFAULT_NAMESPACE); - ItemBehaviorType behaviorType = BuiltInRegistries.ITEM_BEHAVIOR_TYPE.getValue(key); + ItemBehaviorType behaviorType = BuiltInRegistries.ITEM_BEHAVIOR_TYPE.getValue(key); if (behaviorType == null) { throw new LocalizedResourceConfigException("warning.config.item.behavior.invalid_type", type); } 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 1aea79bc6..3e9ff50f0 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 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); + 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); private ItemDataProcessors() {} @@ -251,16 +251,16 @@ 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.Type processorType = BuiltInRegistries.SMITHING_RESULT_PROCESSOR_TYPE.getValue(key); + 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 processorType.factory.create(map); } - public static ItemDataProcessor.Type register(Key key, ItemDataProcessor.Factory factory) { - ItemDataProcessor.Type type = new ItemDataProcessor.Type(key, factory); - ((WritableRegistry) BuiltInRegistries.SMITHING_RESULT_PROCESSOR_TYPE) + 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; } @@ -268,16 +268,16 @@ public class CustomSmithingTransformRecipe extends AbstractedFixedResultRecip public interface ItemDataProcessor extends TriConsumer, Item, Item> { - interface Factory { - ItemDataProcessor create(Map arguments); + interface Factory { + T create(Map arguments); } - record Type(Key id, Factory factory) {} + record Type(Key id, Factory factory) {} } public static class MergeEnchantments implements ItemDataProcessor { public static final MergeEnchantments INSTANCE = new MergeEnchantments(); - public static final ItemDataProcessor.Factory FACTORY = new Factory(); + public static final ItemDataProcessor.Factory FACTORY = new Factory(); @Override public void accept(Item item1, Item item2, Item item3) { @@ -297,17 +297,17 @@ public class CustomSmithingTransformRecipe extends AbstractedFixedResultRecip }); } - private static class Factory implements ItemDataProcessor.Factory { + private static class Factory implements ItemDataProcessor.Factory { @Override - public ItemDataProcessor create(Map arguments) { + public MergeEnchantments create(Map arguments) { return INSTANCE; } } } public static class KeepCustomData implements ItemDataProcessor { - public static final ItemDataProcessor.Factory FACTORY = new Factory(); + public static final ItemDataProcessor.Factory FACTORY = new Factory(); private final List paths; public KeepCustomData(List data) { @@ -324,10 +324,10 @@ public class CustomSmithingTransformRecipe extends AbstractedFixedResultRecip } } - private static class Factory implements ItemDataProcessor.Factory { + private static class Factory implements ItemDataProcessor.Factory { @Override - public ItemDataProcessor create(Map arguments) { + public KeepCustomData create(Map arguments) { List paths = MiscUtils.getAsStringList(ResourceConfigUtils.requireNonNullOrThrow( arguments.get("paths"), "warning.config.recipe.smithing_transform.post_processor.keep_custom_data.missing_paths") @@ -338,7 +338,7 @@ public class CustomSmithingTransformRecipe extends AbstractedFixedResultRecip } public static class KeepComponents implements ItemDataProcessor { - public static final ItemDataProcessor.Factory FACTORY = new Factory(); + public static final ItemDataProcessor.Factory FACTORY = new Factory(); private final List components; public KeepComponents(List components) { @@ -355,11 +355,11 @@ public class CustomSmithingTransformRecipe extends AbstractedFixedResultRecip } } - private static class Factory implements ItemDataProcessor.Factory { + private static class Factory implements ItemDataProcessor.Factory { private static final Key CUSTOM_DATA = Key.of("minecraft", "custom_data"); @Override - public ItemDataProcessor create(Map arguments) { + public KeepComponents create(Map arguments) { Object componentsObj = arguments.get("components"); if (componentsObj == null) { throw new LocalizedResourceConfigException("warning.config.recipe.smithing_transform.post_processor.keep_component.missing_components"); @@ -371,7 +371,7 @@ public class CustomSmithingTransformRecipe extends AbstractedFixedResultRecip } public static class KeepTags implements ItemDataProcessor { - public static final ItemDataProcessor.Factory FACTORY = new Factory(); + public static final ItemDataProcessor.Factory FACTORY = new Factory(); private final List tags; public KeepTags(List tags) { @@ -388,10 +388,10 @@ public class CustomSmithingTransformRecipe extends AbstractedFixedResultRecip } } - private static class Factory implements ItemDataProcessor.Factory { + private static class Factory implements ItemDataProcessor.Factory { @Override - public ItemDataProcessor create(Map arguments) { + public KeepTags create(Map arguments) { Object tagsObj = arguments.get("tags"); if (tagsObj == null) { throw new LocalizedResourceConfigException("warning.config.recipe.smithing_transform.post_processor.keep_component.missing_tags"); 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 index 85616e244..1f5c99f93 100644 --- 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 @@ -6,7 +6,7 @@ import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; public final class CropDrops implements Formula { - public static final FormulaFactory FACTORY = new Factory(); + public static final FormulaFactory FACTORY = new Factory(); private final int extra; private final float probability; @@ -25,10 +25,10 @@ public final class CropDrops implements Formula { return initialCount; } - private static class Factory implements FormulaFactory { + private static class Factory implements FormulaFactory { @Override - public Formula create(Map arguments) { + public CropDrops 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/FormulaFactory.java b/core/src/main/java/net/momirealms/craftengine/core/loot/function/formula/FormulaFactory.java index f6e5741e4..59a9d5a1d 100644 --- 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 @@ -2,7 +2,7 @@ package net.momirealms.craftengine.core.loot.function.formula; import java.util.Map; -public interface FormulaFactory { +public interface FormulaFactory { - Formula create(Map arguments); + T 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 index 1370bc531..c128202b6 100644 --- 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 @@ -2,5 +2,5 @@ package net.momirealms.craftengine.core.loot.function.formula; import net.momirealms.craftengine.core.util.Key; -public record FormulaType(Key id, FormulaFactory factory) { +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 index 695afd3cd..7fec5d670 100644 --- 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 @@ -9,14 +9,14 @@ 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); + 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) + 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; } @@ -27,7 +27,7 @@ public final class Formulas { throw new NullPointerException("number type cannot be null"); } Key key = Key.withDefaultNamespace(type, Key.DEFAULT_NAMESPACE); - FormulaType formulaType = BuiltInRegistries.FORMULA_TYPE.getValue(key); + FormulaType formulaType = BuiltInRegistries.FORMULA_TYPE.getValue(key); if (formulaType == null) { throw new IllegalArgumentException("Unknown formula type: " + type); } 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 index cdbb7ead5..2835946b9 100644 --- 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 @@ -5,7 +5,7 @@ import net.momirealms.craftengine.core.util.RandomUtils; import java.util.Map; public final class OreDrops implements Formula { - public static final FormulaFactory FACTORY = new Factory(); + public static final FormulaFactory FACTORY = new Factory(); private static final OreDrops INSTANCE = new OreDrops(); private OreDrops() {} @@ -23,10 +23,10 @@ public final class OreDrops implements Formula { } } - private static class Factory implements FormulaFactory { + private static class Factory implements FormulaFactory { @Override - public Formula create(Map arguments) { + public OreDrops create(Map arguments) { return INSTANCE; } } 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 a52b41570..88c079643 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 @@ -8,7 +8,7 @@ import net.momirealms.craftengine.core.util.MiscUtils; import java.util.Map; public record ConditionalResolution(Condition matcher, Resolution resolution) implements Resolution { - public static final ResolutionFactory FACTORY = new Factory(); + public static final ResolutionFactory FACTORY = new Factory(); @Override public void run(PathContext existing, PathContext conflict) { @@ -17,7 +17,7 @@ public record ConditionalResolution(Condition matcher, Resolution r } } - private static class Factory implements ResolutionFactory { + private static class Factory implements ResolutionFactory { @Override public ConditionalResolution create(Map arguments) { 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 d41da4c86..17700c1f3 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 @@ -11,7 +11,7 @@ import java.util.HashSet; import java.util.Map; public final class MergeAltasResolution implements Resolution { - public static final ResolutionFactory FACTORY = new Factory(); + public static final ResolutionFactory FACTORY = new Factory(); public static final MergeAltasResolution INSTANCE = new MergeAltasResolution(); private MergeAltasResolution() {} @@ -43,10 +43,10 @@ public final class MergeAltasResolution implements Resolution { } } - private static class Factory implements ResolutionFactory { + private static class Factory implements ResolutionFactory { @Override - public Resolution create(Map arguments) { + public MergeAltasResolution create(Map arguments) { return INSTANCE; } } 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 e414a4a8e..5b629c840 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 @@ -11,7 +11,7 @@ import java.util.HashSet; import java.util.Map; public final class MergeFontResolution implements Resolution { - public static final ResolutionFactory FACTORY = new Factory(); + public static final ResolutionFactory FACTORY = new Factory(); public static final MergeFontResolution INSTANCE = new MergeFontResolution(); private MergeFontResolution() {} @@ -43,10 +43,10 @@ public final class MergeFontResolution implements Resolution { } } - private static class Factory implements ResolutionFactory { + private static class Factory implements ResolutionFactory { @Override - public Resolution create(Map arguments) { + public MergeFontResolution create(Map arguments) { return INSTANCE; } } 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 067856ea5..8fbc81685 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 @@ -10,7 +10,7 @@ import java.io.IOException; import java.util.Map; public record MergeJsonResolution(boolean deeply) implements Resolution { - public static final ResolutionFactory FACTORY = new Factory(); + public static final ResolutionFactory FACTORY = new Factory(); @Override public void run(PathContext existing, PathContext conflict) { @@ -29,10 +29,10 @@ public record MergeJsonResolution(boolean deeply) implements Resolution { } } - private static class Factory implements ResolutionFactory { + private static class Factory implements ResolutionFactory { @Override - public Resolution create(Map arguments) { + public MergeJsonResolution create(Map arguments) { boolean deeply = ResourceConfigUtils.getAsBoolean(arguments.getOrDefault("deeply", false), "deeply"); return new MergeJsonResolution(deeply); } 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 a65fdf6fd..3d5ec56b1 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 @@ -13,7 +13,7 @@ import java.util.Map; import java.util.TreeSet; public final class MergeLegacyModelResolution implements Resolution { - public static final ResolutionFactory FACTORY = new Factory(); + public static final ResolutionFactory FACTORY = new Factory(); public static final MergeLegacyModelResolution INSTANCE = new MergeLegacyModelResolution(); private MergeLegacyModelResolution() {} @@ -63,10 +63,10 @@ public final class MergeLegacyModelResolution implements Resolution { return element != null && element.isJsonArray(); } - private static class Factory implements ResolutionFactory { + private static class Factory implements ResolutionFactory { @Override - public Resolution create(Map arguments) { + public MergeLegacyModelResolution create(Map arguments) { return INSTANCE; } } 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 8259a2ab8..0b166fe74 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 @@ -17,7 +17,7 @@ import java.util.*; import java.util.function.Consumer; public final class MergePackMcMetaResolution implements Resolution { - public static final ResolutionFactory FACTORY = new Factory(); + 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(); @@ -257,9 +257,9 @@ public final class MergePackMcMetaResolution implements Resolution { } } - private static class Factory implements ResolutionFactory { + private static class Factory implements ResolutionFactory { @Override - public Resolution create(Map arguments) { + public MergePackMcMetaResolution create(Map arguments) { return INSTANCE; } } diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/resolution/ResolutionFactory.java b/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/resolution/ResolutionFactory.java index b6533aa87..6f9f40275 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/resolution/ResolutionFactory.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/resolution/ResolutionFactory.java @@ -2,7 +2,7 @@ package net.momirealms.craftengine.core.pack.conflict.resolution; import java.util.Map; -public interface ResolutionFactory { +public interface ResolutionFactory { - Resolution create(Map arguments); + T create(Map arguments); } diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/resolution/ResolutionType.java b/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/resolution/ResolutionType.java index c10b7a54b..8962a2ebe 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/resolution/ResolutionType.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/conflict/resolution/ResolutionType.java @@ -2,5 +2,5 @@ package net.momirealms.craftengine.core.pack.conflict.resolution; import net.momirealms.craftengine.core.util.Key; -public record ResolutionType(Key id, ResolutionFactory factory) { +public record ResolutionType(Key id, ResolutionFactory factory) { } 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 233c3d6ff..6dd20018d 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,19 +11,19 @@ import net.momirealms.craftengine.core.util.ResourceKey; import java.util.Map; public final class Resolutions { - 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); + 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() {} - public static ResolutionType register(Key key, ResolutionFactory factory) { - ResolutionType type = new ResolutionType(key, factory); - ((WritableRegistry) BuiltInRegistries.RESOLUTION_TYPE) + public static ResolutionType register(Key key, ResolutionFactory factory) { + ResolutionType type = new ResolutionType<>(key, factory); + ((WritableRegistry>) BuiltInRegistries.RESOLUTION_TYPE) .register(ResourceKey.create(Registries.RESOLUTION_TYPE.location(), key), type); return type; } @@ -31,7 +31,7 @@ public final class Resolutions { public static Resolution fromMap(Map map) { String type = ResourceConfigUtils.requireNonEmptyStringOrThrow(map.get("type"), () -> new LocalizedException("warning.config.conflict_resolution.missing_type")); Key key = Key.withDefaultNamespace(type, Key.DEFAULT_NAMESPACE); - ResolutionType resolutionType = BuiltInRegistries.RESOLUTION_TYPE.getValue(key); + ResolutionType resolutionType = BuiltInRegistries.RESOLUTION_TYPE.getValue(key); if (resolutionType == null) { throw new LocalizedException("warning.config.conflict_resolution.invalid_type", type); } 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 11ad2340a..dd0e1f437 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 @@ -12,7 +12,7 @@ import java.nio.file.StandardCopyOption; import java.util.Map; public record RetainMatchingResolution(Condition matcher) implements Resolution { - public static final ResolutionFactory FACTORY = new Factory(); + public static final ResolutionFactory FACTORY = new Factory(); @Override public void run(PathContext existing, PathContext conflict) { @@ -25,10 +25,10 @@ public record RetainMatchingResolution(Condition matcher) implement } } - private static class Factory implements ResolutionFactory { + private static class Factory implements ResolutionFactory { @Override - public Resolution create(Map arguments) { + public RetainMatchingResolution create(Map arguments) { Map term = MiscUtils.castToMap(arguments.get("term"), false); return new RetainMatchingResolution(PathMatchers.fromMap(term)); } 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 6c5bc6140..e225a91d1 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 @@ -13,5 +13,5 @@ public interface ResourcePackHost { boolean canUpload(); - ResourcePackHostType type(); + ResourcePackHostType type(); } diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/host/ResourcePackHostFactory.java b/core/src/main/java/net/momirealms/craftengine/core/pack/host/ResourcePackHostFactory.java index 323004431..49a538ed2 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/host/ResourcePackHostFactory.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/host/ResourcePackHostFactory.java @@ -7,9 +7,9 @@ import java.net.InetSocketAddress; import java.net.ProxySelector; import java.util.Map; -public interface ResourcePackHostFactory { +public interface ResourcePackHostFactory { - ResourcePackHost create(Map arguments); + T create(Map arguments); default ProxySelector getProxySelector(Map proxySetting) { ProxySelector proxy = ProxySelector.getDefault(); 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 index 6501fd14f..37a495068 100644 --- 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 @@ -2,5 +2,5 @@ package net.momirealms.craftengine.core.pack.host; import net.momirealms.craftengine.core.util.Key; -public record ResourcePackHostType(Key id, ResourcePackHostFactory factory) { +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 86b846862..88e1c990a 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 @@ -11,21 +11,21 @@ import net.momirealms.craftengine.core.util.ResourceKey; import java.util.Map; 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); + 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); private ResourcePackHosts() {} - public static ResourcePackHostType register(Key key, ResourcePackHostFactory factory) { - ResourcePackHostType type = new ResourcePackHostType(key, factory); - ((WritableRegistry) BuiltInRegistries.RESOURCE_PACK_HOST_TYPE) + public static ResourcePackHostType register(Key key, ResourcePackHostFactory factory) { + ResourcePackHostType type = new ResourcePackHostType<>(key, factory); + ((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_TYPE.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/host/impl/AlistHost.java b/core/src/main/java/net/momirealms/craftengine/core/pack/host/impl/AlistHost.java index 0ed4bee58..bca03eb87 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 @@ -30,7 +30,7 @@ import java.util.*; import java.util.concurrent.CompletableFuture; public final class AlistHost implements ResourcePackHost { - public static final ResourcePackHostFactory FACTORY = new Factory(); + public static final ResourcePackHostFactory FACTORY = new Factory(); private final String apiUrl; private final String userName; private final String password; @@ -70,7 +70,7 @@ public final class AlistHost implements ResourcePackHost { } @Override - public ResourcePackHostType type() { + public ResourcePackHostType type() { return ResourcePackHosts.ALIST; } @@ -281,10 +281,10 @@ public final class AlistHost implements ResourcePackHost { new RuntimeException("Failed to obtain resource pack download URL (HTTP " + response.statusCode() + "): " + response.body())); } - private static class Factory implements ResourcePackHostFactory { + private static class Factory implements ResourcePackHostFactory { @Override - public ResourcePackHost create(Map arguments) { + public AlistHost create(Map arguments) { boolean useEnv = ResourceConfigUtils.getAsBoolean(arguments.getOrDefault("use-environment-variables", false), "use-environment-variables"); String apiUrl = ResourceConfigUtils.requireNonEmptyStringOrThrow(arguments.get("api-url"), () -> new LocalizedException("warning.config.host.alist.missing_api_url")); String userName = useEnv ? System.getenv("CE_ALIST_USERNAME") : Optional.ofNullable(arguments.get("username")).map(String::valueOf).orElse(null); 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 3c47b9f0e..09c082bd1 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 @@ -27,7 +27,7 @@ import java.util.concurrent.CompletableFuture; import java.util.concurrent.locks.ReentrantLock; public final class DropboxHost implements ResourcePackHost { - public static final ResourcePackHostFactory FACTORY = new Factory(); + public static final ResourcePackHostFactory FACTORY = new Factory(); private final String appKey; private final String appSecret; private final String uploadPath; @@ -92,7 +92,7 @@ public final class DropboxHost implements ResourcePackHost { } @Override - public ResourcePackHostType type() { + public ResourcePackHostType type() { return ResourcePackHosts.DROPBOX; } @@ -257,10 +257,10 @@ public final class DropboxHost implements ResourcePackHost { } } - private static class Factory implements ResourcePackHostFactory { + private static class Factory implements ResourcePackHostFactory { @Override - public ResourcePackHost create(Map arguments) { + public DropboxHost create(Map arguments) { boolean useEnv = ResourceConfigUtils.getAsBoolean(arguments.getOrDefault("use-environment-variables", false), "use-environment-variables"); String appKey = useEnv ? System.getenv("CE_DROPBOX_APP_KEY") : Optional.ofNullable(arguments.get("app-key")).map(String::valueOf).orElse(null); if (appKey == null || appKey.isEmpty()) { 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 071d118ae..5c54c5e94 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 @@ -12,7 +12,7 @@ import java.util.UUID; import java.util.concurrent.CompletableFuture; public final class ExternalHost implements ResourcePackHost { - public static final ResourcePackHostFactory FACTORY = new Factory(); + public static final ResourcePackHostFactory FACTORY = new Factory(); private final ResourcePackDownloadData downloadData; public ExternalHost(ResourcePackDownloadData downloadData) { @@ -35,14 +35,14 @@ public final class ExternalHost implements ResourcePackHost { } @Override - public ResourcePackHostType type() { + public ResourcePackHostType type() { return ResourcePackHosts.EXTERNAL; } - private static class Factory implements ResourcePackHostFactory { + private static class Factory implements ResourcePackHostFactory { @Override - public ResourcePackHost create(Map arguments) { + public ExternalHost create(Map arguments) { String url = Optional.ofNullable(arguments.get("url")).map(String::valueOf).orElse(null); if (url == null || url.isEmpty()) { throw new LocalizedException("warning.config.host.external.missing_url"); 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 b133560e3..663aede77 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 @@ -27,7 +27,7 @@ import java.util.*; import java.util.concurrent.CompletableFuture; public final class GitLabHost implements ResourcePackHost { - public static final ResourcePackHostFactory FACTORY = new Factory(); + public static final ResourcePackHostFactory FACTORY = new Factory(); private final String gitlabUrl; private final String accessToken; private final String projectId; @@ -162,14 +162,14 @@ public final class GitLabHost implements ResourcePackHost { } @Override - public ResourcePackHostType type() { + public ResourcePackHostType type() { return ResourcePackHosts.GITLAB; } - private static class Factory implements ResourcePackHostFactory { + private static class Factory implements ResourcePackHostFactory { @Override - public ResourcePackHost create(Map arguments) { + public GitLabHost create(Map arguments) { boolean useEnv = ResourceConfigUtils.getAsBoolean(arguments.getOrDefault("use-environment-variables", false), "use-environment-variables"); String gitlabUrl = Optional.ofNullable(arguments.get("gitlab-url")).map(String::valueOf).orElse(null); if (gitlabUrl == null || gitlabUrl.isEmpty()) { 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 4a0de50f2..8181c6556 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 @@ -29,7 +29,7 @@ import java.util.*; import java.util.concurrent.CompletableFuture; public final class LobFileHost implements ResourcePackHost { - public static final ResourcePackHostFactory FACTORY = new Factory(); + public static final ResourcePackHostFactory FACTORY = new Factory(); private final String apiKey; private final ProxySelector proxy; private AccountInfo accountInfo; @@ -50,7 +50,7 @@ public final class LobFileHost implements ResourcePackHost { } @Override - public ResourcePackHostType type() { + public ResourcePackHostType type() { return ResourcePackHosts.LOBFILE; } @@ -263,10 +263,10 @@ public final class LobFileHost implements ResourcePackHost { return sb.toString(); } - private static class Factory implements ResourcePackHostFactory { + private static class Factory implements ResourcePackHostFactory { @Override - public ResourcePackHost create(Map arguments) { + public LobFileHost create(Map arguments) { boolean useEnv = ResourceConfigUtils.getAsBoolean(arguments.getOrDefault("use-environment-variables", false), "use-environment-variables"); String apiKey = useEnv ? System.getenv("CE_LOBFILE_API_KEY") : Optional.ofNullable(arguments.get("api-key")).map(String::valueOf).orElse(null); if (apiKey == null || apiKey.isEmpty()) { 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 c667a3e7f..0708b723d 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 @@ -9,7 +9,7 @@ import java.util.UUID; import java.util.concurrent.CompletableFuture; public final class NoneHost implements ResourcePackHost { - public static final ResourcePackHostFactory FACTORY = new Factory(); + public static final ResourcePackHostFactory FACTORY = new Factory(); public static final NoneHost INSTANCE = new NoneHost(); private NoneHost() {} @@ -25,7 +25,7 @@ public final class NoneHost implements ResourcePackHost { } @Override - public ResourcePackHostType type() { + public ResourcePackHostType type() { return ResourcePackHosts.NONE; } @@ -34,10 +34,10 @@ public final class NoneHost implements ResourcePackHost { return false; } - private static class Factory implements ResourcePackHostFactory { + private static class Factory implements ResourcePackHostFactory { @Override - public ResourcePackHost create(Map arguments) { + public NoneHost create(Map arguments) { return INSTANCE; } } 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 fa291fb13..8b602be16 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 @@ -27,7 +27,7 @@ import java.util.*; import java.util.concurrent.CompletableFuture; public final class OneDriveHost implements ResourcePackHost { - public static final ResourcePackHostFactory FACTORY = new Factory(); + public static final ResourcePackHostFactory FACTORY = new Factory(); private final String clientId; private final String clientSecret; private final ProxySelector proxy; @@ -55,7 +55,7 @@ public final class OneDriveHost implements ResourcePackHost { } @Override - public ResourcePackHostType type() { + public ResourcePackHostType type() { return ResourcePackHosts.ONEDRIVE; } @@ -224,10 +224,10 @@ public final class OneDriveHost implements ResourcePackHost { return this.refreshToken.mid(); } - private static class Factory implements ResourcePackHostFactory { + private static class Factory implements ResourcePackHostFactory { @Override - public ResourcePackHost create(Map arguments) { + public OneDriveHost create(Map arguments) { boolean useEnv = ResourceConfigUtils.getAsBoolean(arguments.getOrDefault("use-environment-variables", false), "use-environment-variables"); String clientId = useEnv ? System.getenv("CE_ONEDRIVE_CLIENT_ID") : Optional.ofNullable(arguments.get("client-id")).map(String::valueOf).orElse(null); if (clientId == null || clientId.isEmpty()) { diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/host/impl/S3HostFactory.java b/core/src/main/java/net/momirealms/craftengine/core/pack/host/impl/S3HostFactory.java index 875fb557a..a52017af4 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/host/impl/S3HostFactory.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/host/impl/S3HostFactory.java @@ -1,6 +1,5 @@ package net.momirealms.craftengine.core.pack.host.impl; -import net.momirealms.craftengine.core.pack.host.ResourcePackHost; import net.momirealms.craftengine.core.pack.host.ResourcePackHostFactory; import net.momirealms.craftengine.core.plugin.CraftEngine; import net.momirealms.craftengine.core.plugin.dependency.Dependencies; @@ -8,11 +7,11 @@ import net.momirealms.craftengine.core.plugin.dependency.Dependencies; import java.util.List; import java.util.Map; -public final class S3HostFactory implements ResourcePackHostFactory { - public static final ResourcePackHostFactory INSTANCE = new S3HostFactory(); +public final class S3HostFactory implements ResourcePackHostFactory { + public static final ResourcePackHostFactory INSTANCE = new S3HostFactory(); @Override - public ResourcePackHost create(Map arguments) { + public S3Host create(Map arguments) { CraftEngine.instance().dependencyManager().loadDependencies( List.of( Dependencies.NETTY_HTTP2, 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 f26469933..93f6bfba1 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 @@ -15,7 +15,7 @@ import java.util.UUID; import java.util.concurrent.CompletableFuture; public final class SelfHost implements ResourcePackHost { - public static final ResourcePackHostFactory FACTORY = new Factory(); + public static final ResourcePackHostFactory FACTORY = new Factory(); private static final SelfHost INSTANCE = new SelfHost(); public SelfHost() { @@ -49,14 +49,14 @@ public final class SelfHost implements ResourcePackHost { } @Override - public ResourcePackHostType type() { + public ResourcePackHostType type() { return ResourcePackHosts.SELF; } - private static class Factory implements ResourcePackHostFactory { + private static class Factory implements ResourcePackHostFactory { @Override - public ResourcePackHost create(Map arguments) { + public SelfHost create(Map arguments) { SelfHostHttpServer selfHostHttpServer = SelfHostHttpServer.instance(); String ip = ResourceConfigUtils.requireNonEmptyStringOrThrow(arguments.get("ip"), () -> new LocalizedException("warning.config.host.self.missing_ip")); int port = ResourceConfigUtils.getAsInt(arguments.getOrDefault("port", 8163), "port"); 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 886b314eb..841ba7e55 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,8 +21,8 @@ import java.util.List; import java.util.Map; public final class BaseItemModel implements ItemModel { - public static final ItemModelFactory FACTORY = new Factory(); - public static final ItemModelReader READER = new Reader(); + public static final ItemModelFactory FACTORY = new Factory(); + public static final ItemModelReader READER = new Reader(); private final String path; private final List tints; private final ModelGeneration modelGeneration; @@ -78,11 +78,11 @@ public final class BaseItemModel implements ItemModel { return List.of(); } - private static class Factory implements ItemModelFactory { + private static class Factory implements ItemModelFactory { @SuppressWarnings("unchecked") @Override - public ItemModel create(Map arguments) { + public BaseItemModel create(Map arguments) { String modelPath = ResourceConfigUtils.requireNonEmptyStringOrThrow(arguments.get("path"), "warning.config.item.model.base.missing_path"); if (!ResourceLocation.isValid(modelPath)) { throw new LocalizedResourceConfigException("warning.config.item.model.base.invalid_path", modelPath); @@ -105,10 +105,10 @@ public final class BaseItemModel implements ItemModel { } } - private static class Reader implements ItemModelReader { + private static class Reader implements ItemModelReader { @Override - public ItemModel read(JsonObject json) { + public BaseItemModel read(JsonObject json) { String model = json.get("model").getAsString(); if (json.has("tints")) { JsonArray array = json.getAsJsonArray("tints"); 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 f1fddaebd..6ad021fc4 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 @@ -10,8 +10,8 @@ import java.util.Map; public final class BundleSelectedItemModel implements ItemModel { public static final BundleSelectedItemModel INSTANCE = new BundleSelectedItemModel(); - public static final ItemModelFactory FACTORY = new Factory(); - public static final ItemModelReader READER = new Reader(); + public static final ItemModelFactory FACTORY = new Factory(); + public static final ItemModelReader READER = new Reader(); private BundleSelectedItemModel() {} @@ -32,16 +32,16 @@ public final class BundleSelectedItemModel implements ItemModel { return json; } - private static class Factory implements ItemModelFactory { + private static class Factory implements ItemModelFactory { @Override - public ItemModel create(Map arguments) { + public BundleSelectedItemModel create(Map arguments) { return INSTANCE; } } - private static class Reader implements ItemModelReader { + private static class Reader implements ItemModelReader { @Override - public ItemModel read(JsonObject json) { + public BundleSelectedItemModel read(JsonObject json) { return INSTANCE; } } 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 6388373fa..7ca16d04f 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 @@ -14,8 +14,8 @@ import java.util.List; import java.util.Map; public final class CompositeItemModel implements ItemModel { - public static final ItemModelFactory FACTORY = new Factory(); - public static final ItemModelReader READER = new Reader(); + public static final ItemModelFactory FACTORY = new Factory(); + public static final ItemModelReader READER = new Reader(); private final List models; public CompositeItemModel(List models) { @@ -57,11 +57,11 @@ public final class CompositeItemModel implements ItemModel { return models; } - private static class Factory implements ItemModelFactory { + private static class Factory implements ItemModelFactory { @SuppressWarnings("unchecked") @Override - public ItemModel create(Map arguments) { + public CompositeItemModel create(Map arguments) { Object m = arguments.get("models"); if (m instanceof List list) { List models = (List) list; @@ -81,10 +81,10 @@ public final class CompositeItemModel implements ItemModel { } } - private static class Reader implements ItemModelReader { + private static class Reader implements ItemModelReader { @Override - public ItemModel read(JsonObject json) { + public CompositeItemModel read(JsonObject json) { JsonArray models = json.getAsJsonArray("models"); if (models == null) { throw new IllegalArgumentException("models is expected to be a JsonArray"); 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 8aa055094..8f36210a6 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 @@ -14,8 +14,8 @@ import java.util.List; import java.util.Map; public final class ConditionItemModel implements ItemModel { - public static final ItemModelFactory FACTORY = new Factory(); - public static final ItemModelReader READER = new Reader(); + public static final ItemModelFactory FACTORY = new Factory(); + public static final ItemModelReader READER = new Reader(); private final ConditionProperty property; private final ItemModel onTrue; private final ItemModel onFalse; @@ -70,10 +70,10 @@ public final class ConditionItemModel implements ItemModel { return json; } - private static class Factory implements ItemModelFactory { + private static class Factory implements ItemModelFactory { @Override - public ItemModel create(Map arguments) { + public ConditionItemModel create(Map arguments) { ConditionProperty property = ConditionProperties.fromMap(arguments); ItemModel onTrue = ItemModels.fromObj(ResourceConfigUtils.get(arguments, "on-true", "on_true")); if (onTrue == null) { @@ -87,10 +87,10 @@ public final class ConditionItemModel implements ItemModel { } } - private static class Reader implements ItemModelReader { + private static class Reader implements ItemModelReader { @Override - public ItemModel read(JsonObject json) { + public ConditionItemModel read(JsonObject json) { ConditionProperty property = ConditionProperties.fromJson(json); ItemModel onTrue = ItemModels.fromJson(json.getAsJsonObject("on_true")); ItemModel onFalse = ItemModels.fromJson(json.getAsJsonObject("on_false")); 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 451af629e..2189a3005 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 @@ -9,8 +9,8 @@ import java.util.List; import java.util.Map; public final class EmptyItemModel implements ItemModel { - public static final ItemModelFactory FACTORY = new Factory(); - public static final ItemModelReader READER = new Reader(); + public static final ItemModelFactory FACTORY = new Factory(); + public static final ItemModelReader READER = new Reader(); private static final EmptyItemModel INSTANCE = new EmptyItemModel(); private EmptyItemModel() {} @@ -32,16 +32,16 @@ public final class EmptyItemModel implements ItemModel { return List.of(); } - private static class Factory implements ItemModelFactory { + private static class Factory implements ItemModelFactory { @Override - public ItemModel create(Map arguments) { + public EmptyItemModel create(Map arguments) { return INSTANCE; } } - private static class Reader implements ItemModelReader { + private static class Reader implements ItemModelReader { @Override - public ItemModel read(JsonObject json) { + public EmptyItemModel read(JsonObject json) { return INSTANCE; } } diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/ItemModelFactory.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/ItemModelFactory.java index cedfb097e..a964dc009 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/ItemModelFactory.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/ItemModelFactory.java @@ -3,7 +3,7 @@ package net.momirealms.craftengine.core.pack.model.definition; import java.util.Map; @FunctionalInterface -public interface ItemModelFactory { +public interface ItemModelFactory { - ItemModel create(Map arguments); + T create(Map arguments); } diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/ItemModelReader.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/ItemModelReader.java index 6379fe7f8..ea8cf2bb3 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/ItemModelReader.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/ItemModelReader.java @@ -3,7 +3,7 @@ package net.momirealms.craftengine.core.pack.model.definition; import com.google.gson.JsonObject; @FunctionalInterface -public interface ItemModelReader { +public interface ItemModelReader { - ItemModel read(JsonObject json); + T read(JsonObject json); } diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/ItemModelType.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/ItemModelType.java index b1f22b9f1..f560a783a 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/ItemModelType.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/ItemModelType.java @@ -2,5 +2,5 @@ package net.momirealms.craftengine.core.pack.model.definition; import net.momirealms.craftengine.core.util.Key; -public record ItemModelType(Key id, ItemModelFactory factory, ItemModelReader reader) { +public record ItemModelType(Key id, ItemModelFactory factory, ItemModelReader reader) { } 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 2fdd04e14..4778dd5dd 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,20 +13,20 @@ import java.util.List; import java.util.Map; public final class ItemModels { - 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); + 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() {} - public static ItemModelType register(Key key, ItemModelFactory factory, ItemModelReader reader) { - ItemModelType type = new ItemModelType(key, factory, reader); - ((WritableRegistry) BuiltInRegistries.ITEM_MODEL_TYPE) + public static ItemModelType register(Key key, ItemModelFactory factory, ItemModelReader reader) { + ItemModelType type = new ItemModelType<>(key, factory, reader); + ((WritableRegistry>) BuiltInRegistries.ITEM_MODEL_TYPE) .register(ResourceKey.create(Registries.ITEM_MODEL_TYPE.location(), key), type); return type; } @@ -43,7 +43,7 @@ public final class ItemModels { public static ItemModel fromMap(Map map) { String type = map.getOrDefault("type", "minecraft:model").toString(); Key key = Key.withDefaultNamespace(type, "minecraft"); - ItemModelType itemModelType = BuiltInRegistries.ITEM_MODEL_TYPE.getValue(key); + ItemModelType itemModelType = BuiltInRegistries.ITEM_MODEL_TYPE.getValue(key); if (itemModelType == null) { throw new LocalizedResourceConfigException("warning.config.item.model.invalid_type", type); } @@ -53,7 +53,7 @@ public final class ItemModels { public static ItemModel fromJson(JsonObject json) { String type = json.get("type").getAsString(); Key key = Key.withDefaultNamespace(type, "minecraft"); - ItemModelType itemModelType = BuiltInRegistries.ITEM_MODEL_TYPE.getValue(key); + ItemModelType itemModelType = BuiltInRegistries.ITEM_MODEL_TYPE.getValue(key); if (itemModelType == null) { throw new IllegalArgumentException("Invalid item model type: " + key); } 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 74d15e869..fa7ec27f6 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 @@ -19,8 +19,8 @@ import java.util.Map; import java.util.TreeMap; public final class RangeDispatchItemModel implements ItemModel { - public static final ItemModelFactory FACTORY = new Factory(); - public static final ItemModelReader READER = new Reader(); + public static final ItemModelFactory FACTORY = new Factory(); + public static final ItemModelReader READER = new Reader(); private final RangeDispatchProperty property; private final float scale; private final ItemModel fallBack; @@ -101,11 +101,11 @@ public final class RangeDispatchItemModel implements ItemModel { return models; } - private static class Factory implements ItemModelFactory { + private static class Factory implements ItemModelFactory { @SuppressWarnings("unchecked") @Override - public ItemModel create(Map arguments) { + public RangeDispatchItemModel create(Map arguments) { RangeDispatchProperty property = RangeDispatchProperties.fromMap(arguments); float scale = ResourceConfigUtils.getAsFloat(arguments.getOrDefault("scale", 1.0), "scale"); Object fallback = arguments.get("fallback"); @@ -137,10 +137,10 @@ public final class RangeDispatchItemModel implements ItemModel { } } - private static class Reader implements ItemModelReader { + private static class Reader implements ItemModelReader { @Override - public ItemModel read(JsonObject json) { + public RangeDispatchItemModel read(JsonObject json) { JsonArray entriesObj = json.getAsJsonArray("entries"); if (entriesObj == null) { throw new IllegalArgumentException("entries is expected to be a JsonArray"); 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 af1a50147..e38b43aab 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 @@ -20,8 +20,8 @@ import java.util.List; import java.util.Map; public final class SelectItemModel implements ItemModel { - public static final ItemModelFactory FACTORY = new Factory(); - public static final ItemModelReader READER = new Reader(); + public static final ItemModelFactory FACTORY = new Factory(); + public static final ItemModelReader READER = new Reader(); private final SelectProperty property; private final Map>, ItemModel> whenMap; private final ItemModel fallBack; @@ -121,11 +121,11 @@ public final class SelectItemModel implements ItemModel { return models; } - private static class Factory implements ItemModelFactory { + private static class Factory implements ItemModelFactory { @SuppressWarnings("unchecked") @Override - public ItemModel create(Map arguments) { + public SelectItemModel create(Map arguments) { SelectProperty property = SelectProperties.fromMap(arguments); Object fallback = arguments.get("fallback"); Object casesObj = arguments.get("cases"); @@ -168,10 +168,10 @@ public final class SelectItemModel implements ItemModel { } } - private static class Reader implements ItemModelReader { + private static class Reader implements ItemModelReader { @Override - public ItemModel read(JsonObject json) { + public SelectItemModel read(JsonObject json) { JsonArray cases = json.getAsJsonArray("cases"); if (cases == null) { throw new IllegalArgumentException("cases is expected to be a JsonArray"); 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 dc4634518..517212881 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,8 +17,8 @@ import java.util.List; import java.util.Map; public final class SpecialItemModel implements ItemModel { - public static final ItemModelFactory FACTORY = new Factory(); - public static final ItemModelReader READER = new Reader(); + public static final ItemModelFactory FACTORY = new Factory(); + public static final ItemModelReader READER = new Reader(); private final SpecialModel specialModel; private final String base; private final ModelGeneration modelGeneration; @@ -65,10 +65,10 @@ public final class SpecialItemModel implements ItemModel { return this.specialModel.revisions(); } - private static class Factory implements ItemModelFactory { + private static class Factory implements ItemModelFactory { @Override - public ItemModel create(Map arguments) { + public SpecialItemModel create(Map arguments) { String base = ResourceConfigUtils.requireNonEmptyStringOrThrow(ResourceConfigUtils.get(arguments, "base", "path"), "warning.config.item.model.special.missing_path"); if (!ResourceLocation.isValid(base)) { throw new LocalizedResourceConfigException("warning.config.item.model.special.invalid_path", base); @@ -83,10 +83,10 @@ public final class SpecialItemModel implements ItemModel { } } - private static class Reader implements ItemModelReader { + private static class Reader implements ItemModelReader { @Override - public ItemModel read(JsonObject json) { + public SpecialItemModel read(JsonObject json) { String base = json.get("base").getAsString(); SpecialModel sm = SpecialModels.fromJson(json.getAsJsonObject("model")); return new SpecialItemModel(sm, base, null); 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 7fce40339..191ce3930 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,8 +8,8 @@ import net.momirealms.craftengine.core.util.Key; import java.util.Map; public final class BrokenConditionProperty implements ConditionProperty, LegacyModelPredicate { - public static final ConditionPropertyFactory FACTORY = new Factory(); - public static final ConditionPropertyReader READER = new Reader(); + public static final ConditionPropertyFactory FACTORY = new Factory(); + public static final ConditionPropertyReader READER = new Reader(); public static final BrokenConditionProperty INSTANCE = new BrokenConditionProperty(); private BrokenConditionProperty() {} @@ -30,16 +30,16 @@ public final class BrokenConditionProperty implements ConditionProperty, LegacyM return value ? 1 : 0; } - private static class Factory implements ConditionPropertyFactory { + private static class Factory implements ConditionPropertyFactory { @Override - public ConditionProperty create(Map arguments) { + public BrokenConditionProperty create(Map arguments) { return INSTANCE; } } - private static class Reader implements ConditionPropertyReader { + private static class Reader implements ConditionPropertyReader { @Override - public ConditionProperty read(JsonObject json) { + public BrokenConditionProperty read(JsonObject json) { return INSTANCE; } } 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 692c35152..1c2535d87 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 @@ -8,8 +8,8 @@ import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; public final class ComponentConditionProperty implements ConditionProperty { - public static final ConditionPropertyFactory FACTORY = new Factory(); - public static final ConditionPropertyReader READER = new Reader(); + public static final ConditionPropertyFactory FACTORY = new Factory(); + public static final ConditionPropertyReader READER = new Reader(); private final String predicate; private final JsonElement value; @@ -33,18 +33,18 @@ public final class ComponentConditionProperty implements ConditionProperty { jsonObject.add("value", this.value); } - private static class Factory implements ConditionPropertyFactory { + private static class Factory implements ConditionPropertyFactory { @Override - public ConditionProperty create(Map arguments) { + public ComponentConditionProperty create(Map arguments) { String predicate = ResourceConfigUtils.requireNonEmptyStringOrThrow(arguments.get("predicate"), "warning.config.item.model.condition.component.missing_predicate"); JsonElement jsonElement = GsonHelper.get().toJsonTree(ResourceConfigUtils.requireNonNullOrThrow(arguments.get("value"), "warning.config.item.model.condition.component.missing_value")); return new ComponentConditionProperty(predicate, jsonElement); } } - private static class Reader implements ConditionPropertyReader { + private static class Reader implements ConditionPropertyReader { @Override - public ConditionProperty read(JsonObject json) { + public ComponentConditionProperty read(JsonObject json) { String predicate = json.get("predicate").getAsString(); JsonElement value = json.get("value"); return new ComponentConditionProperty(predicate, 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 ca2038345..c4ec3b5ef 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,25 +12,25 @@ import net.momirealms.craftengine.core.util.ResourceKey; import java.util.Map; public final class ConditionProperties { - 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); + 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() {} - public static ConditionPropertyType register(Key id, ConditionPropertyFactory factory, ConditionPropertyReader reader) { - ConditionPropertyType type = new ConditionPropertyType(id, factory, reader); - ((WritableRegistry) BuiltInRegistries.CONDITION_PROPERTY_TYPE) + public static ConditionPropertyType register(Key id, ConditionPropertyFactory factory, ConditionPropertyReader reader) { + ConditionPropertyType type = new ConditionPropertyType<>(id, factory, reader); + ((WritableRegistry>) BuiltInRegistries.CONDITION_PROPERTY_TYPE) .register(ResourceKey.create(Registries.CONDITION_PROPERTY_TYPE.location(), id), type); return type; } @@ -38,7 +38,7 @@ public final class ConditionProperties { public static ConditionProperty fromMap(Map map) { String type = ResourceConfigUtils.requireNonEmptyStringOrThrow(map.get("property"), "warning.config.item.model.condition.missing_property"); Key key = Key.withDefaultNamespace(type, "minecraft"); - ConditionPropertyType propertyType = BuiltInRegistries.CONDITION_PROPERTY_TYPE.getValue(key); + ConditionPropertyType propertyType = BuiltInRegistries.CONDITION_PROPERTY_TYPE.getValue(key); if (propertyType == null) { throw new LocalizedResourceConfigException("warning.config.item.model.condition.invalid_property", type); } @@ -48,7 +48,7 @@ public final class ConditionProperties { public static ConditionProperty fromJson(JsonObject json) { String type = json.get("property").getAsString(); Key key = Key.withDefaultNamespace(type, "minecraft"); - ConditionPropertyType propertyType = BuiltInRegistries.CONDITION_PROPERTY_TYPE.getValue(key); + ConditionPropertyType propertyType = BuiltInRegistries.CONDITION_PROPERTY_TYPE.getValue(key); if (propertyType == null) { throw new IllegalArgumentException("Invalid condition property type: " + key); } diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/condition/ConditionPropertyFactory.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/condition/ConditionPropertyFactory.java index e22224848..866d086c9 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/condition/ConditionPropertyFactory.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/condition/ConditionPropertyFactory.java @@ -2,7 +2,7 @@ package net.momirealms.craftengine.core.pack.model.definition.condition; import java.util.Map; -public interface ConditionPropertyFactory { +public interface ConditionPropertyFactory { - ConditionProperty create(Map arguments); + T create(Map arguments); } diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/condition/ConditionPropertyReader.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/condition/ConditionPropertyReader.java index 78d844059..21e9220b2 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/condition/ConditionPropertyReader.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/condition/ConditionPropertyReader.java @@ -2,7 +2,7 @@ package net.momirealms.craftengine.core.pack.model.definition.condition; import com.google.gson.JsonObject; -public interface ConditionPropertyReader { +public interface ConditionPropertyReader { - ConditionProperty read(JsonObject json); + T read(JsonObject json); } diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/condition/ConditionPropertyType.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/condition/ConditionPropertyType.java index 4600e453b..3ce321032 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/condition/ConditionPropertyType.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/condition/ConditionPropertyType.java @@ -2,5 +2,5 @@ package net.momirealms.craftengine.core.pack.model.definition.condition; import net.momirealms.craftengine.core.util.Key; -public record ConditionPropertyType(Key id, ConditionPropertyFactory factory, ConditionPropertyReader reader) { +public record ConditionPropertyType(Key id, ConditionPropertyFactory factory, ConditionPropertyReader reader) { } 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 adf73bd4f..8f563ca2d 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 @@ -6,8 +6,8 @@ import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; public final class CustomModelDataConditionProperty implements ConditionProperty { - public static final ConditionPropertyFactory FACTORY = new Factory(); - public static final ConditionPropertyReader READER = new Reader(); + public static final ConditionPropertyFactory FACTORY = new Factory(); + public static final ConditionPropertyReader READER = new Reader(); private final int index; public CustomModelDataConditionProperty(int index) { @@ -25,17 +25,17 @@ public final class CustomModelDataConditionProperty implements ConditionProperty jsonObject.addProperty("index", this.index); } - private static class Factory implements ConditionPropertyFactory { + private static class Factory implements ConditionPropertyFactory { @Override - public ConditionProperty create(Map arguments) { + public CustomModelDataConditionProperty create(Map arguments) { int index = ResourceConfigUtils.getAsInt(arguments.getOrDefault("index", 0), "index"); return new CustomModelDataConditionProperty(index); } } - private static class Reader implements ConditionPropertyReader { + private static class Reader implements ConditionPropertyReader { @Override - public ConditionProperty read(JsonObject json) { + public CustomModelDataConditionProperty read(JsonObject json) { int index = json.has("index") ? json.get("index").getAsInt() : 0; return new CustomModelDataConditionProperty(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 98f9e277c..6a83e0ef6 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,8 +7,8 @@ import net.momirealms.craftengine.core.util.Key; import java.util.Map; public final class DamagedConditionProperty implements ConditionProperty, LegacyModelPredicate { - public static final ConditionPropertyFactory FACTORY = new Factory(); - public static final ConditionPropertyReader READER = new Reader(); + public static final ConditionPropertyFactory FACTORY = new Factory(); + public static final ConditionPropertyReader READER = new Reader(); public static final DamagedConditionProperty INSTANCE = new DamagedConditionProperty(); private DamagedConditionProperty() {} @@ -28,16 +28,16 @@ public final class DamagedConditionProperty implements ConditionProperty, Legacy return value ? 1 : 0; } - private static class Factory implements ConditionPropertyFactory { + private static class Factory implements ConditionPropertyFactory { @Override - public ConditionProperty create(Map arguments) { + public DamagedConditionProperty create(Map arguments) { return INSTANCE; } } - private static class Reader implements ConditionPropertyReader { + private static class Reader implements ConditionPropertyReader { @Override - public ConditionProperty read(JsonObject json) { + public DamagedConditionProperty read(JsonObject json) { return INSTANCE; } } 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 7793373e6..bd79119fc 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 @@ -6,8 +6,8 @@ import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; public final class HasComponentConditionProperty implements ConditionProperty { - public static final ConditionPropertyFactory FACTORY = new Factory(); - public static final ConditionPropertyReader READER = new Reader(); + public static final ConditionPropertyFactory FACTORY = new Factory(); + public static final ConditionPropertyReader READER = new Reader(); private final String component; private final boolean ignoreDefault; @@ -33,18 +33,18 @@ public final class HasComponentConditionProperty implements ConditionProperty { } } - private static class Factory implements ConditionPropertyFactory { + private static class Factory implements ConditionPropertyFactory { @Override - public ConditionProperty create(Map arguments) { + public HasComponentConditionProperty create(Map arguments) { boolean ignoreDefault = ResourceConfigUtils.getAsBoolean(arguments.getOrDefault("ignore-default", false), "ignore-default"); String componentObj = ResourceConfigUtils.requireNonEmptyStringOrThrow(arguments.get("component"), "warning.config.item.model.condition.has_component.missing_component"); return new HasComponentConditionProperty(componentObj, ignoreDefault); } } - private static class Reader implements ConditionPropertyReader { + private static class Reader implements ConditionPropertyReader { @Override - public ConditionProperty read(JsonObject json) { + public HasComponentConditionProperty read(JsonObject json) { String component = json.get("component").getAsString(); boolean ignoreDefault = json.has("ignore_default") && json.get("ignore_default").getAsBoolean(); return new HasComponentConditionProperty(component, ignoreDefault); 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 16f6a070e..f00ce9384 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 @@ -6,8 +6,8 @@ import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; public final class KeyBindDownConditionProperty implements ConditionProperty { - public static final ConditionPropertyFactory FACTORY = new Factory(); - public static final ConditionPropertyReader READER = new Reader(); + public static final ConditionPropertyFactory FACTORY = new Factory(); + public static final ConditionPropertyReader READER = new Reader(); private final String keybind; public KeyBindDownConditionProperty(String keybind) { @@ -24,17 +24,17 @@ public final class KeyBindDownConditionProperty implements ConditionProperty { jsonObject.addProperty("keybind", this.keybind); } - private static class Factory implements ConditionPropertyFactory { + private static class Factory implements ConditionPropertyFactory { @Override - public ConditionProperty create(Map arguments) { + public KeyBindDownConditionProperty create(Map arguments) { String keybindObj = ResourceConfigUtils.requireNonEmptyStringOrThrow(arguments.get("keybind"), "warning.config.item.model.condition.keybind.missing_keybind"); return new KeyBindDownConditionProperty(keybindObj); } } - private static class Reader implements ConditionPropertyReader { + private static class Reader implements ConditionPropertyReader { @Override - public ConditionProperty read(JsonObject json) { + public KeyBindDownConditionProperty read(JsonObject json) { String keybind = json.get("keybind").getAsString(); return new KeyBindDownConditionProperty(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 38fdb4955..beba75a48 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,8 +8,8 @@ import net.momirealms.craftengine.core.util.Key; import java.util.Map; public final class RodCastConditionProperty implements ConditionProperty, LegacyModelPredicate { - public static final ConditionPropertyFactory FACTORY = new Factory(); - public static final ConditionPropertyReader READER = new Reader(); + public static final ConditionPropertyFactory FACTORY = new Factory(); + public static final ConditionPropertyReader READER = new Reader(); public static final RodCastConditionProperty INSTANCE = new RodCastConditionProperty(); private RodCastConditionProperty() {} @@ -30,16 +30,16 @@ public final class RodCastConditionProperty implements ConditionProperty, Legacy return value ? 1 : 0; } - private static class Factory implements ConditionPropertyFactory { + private static class Factory implements ConditionPropertyFactory { @Override - public ConditionProperty create(Map arguments) { + public RodCastConditionProperty create(Map arguments) { return INSTANCE; } } - private static class Reader implements ConditionPropertyReader { + private static class Reader implements ConditionPropertyReader { @Override - public ConditionProperty read(JsonObject json) { + public RodCastConditionProperty read(JsonObject json) { return INSTANCE; } } diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/condition/SimpleConditionProperty.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/condition/SimpleConditionProperty.java index e97fa36ca..6e4f1adba 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/condition/SimpleConditionProperty.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/condition/SimpleConditionProperty.java @@ -6,8 +6,8 @@ import net.momirealms.craftengine.core.util.Key; import java.util.Map; public final class SimpleConditionProperty implements ConditionProperty { - public static final ConditionPropertyFactory FACTORY = new Factory(); - public static final ConditionPropertyReader READER = new Reader(); + public static final ConditionPropertyFactory FACTORY = new Factory(); + public static final ConditionPropertyReader READER = new Reader(); private final Key type; public SimpleConditionProperty(Key type) { @@ -23,17 +23,17 @@ public final class SimpleConditionProperty implements ConditionProperty { jsonObject.addProperty("property", this.type.asMinimalString()); } - private static class Factory implements ConditionPropertyFactory { + private static class Factory implements ConditionPropertyFactory { @Override - public ConditionProperty create(Map arguments) { + public SimpleConditionProperty create(Map arguments) { Key type = Key.of(arguments.get("property").toString()); return new SimpleConditionProperty(type); } } - private static class Reader implements ConditionPropertyReader { + private static class Reader implements ConditionPropertyReader { @Override - public ConditionProperty read(JsonObject json) { + public SimpleConditionProperty read(JsonObject json) { return new SimpleConditionProperty(Key.of(json.get("property").getAsString())); } } 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 457f98719..c68adf4e6 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,8 +8,8 @@ import net.momirealms.craftengine.core.util.Key; import java.util.Map; public final class UsingItemConditionProperty implements ConditionProperty, LegacyModelPredicate { - public static final ConditionPropertyFactory FACTORY = new Factory(); - public static final ConditionPropertyReader READER = new Reader(); + public static final ConditionPropertyFactory FACTORY = new Factory(); + public static final ConditionPropertyReader READER = new Reader(); public static final UsingItemConditionProperty INSTANCE = new UsingItemConditionProperty(); private UsingItemConditionProperty() {} @@ -33,16 +33,16 @@ public final class UsingItemConditionProperty implements ConditionProperty, Lega return value ? 1 : 0; } - private static class Factory implements ConditionPropertyFactory { + private static class Factory implements ConditionPropertyFactory { @Override - public ConditionProperty create(Map arguments) { + public UsingItemConditionProperty create(Map arguments) { return INSTANCE; } } - private static class Reader implements ConditionPropertyReader { + private static class Reader implements ConditionPropertyReader { @Override - public ConditionProperty read(JsonObject json) { + public UsingItemConditionProperty read(JsonObject json) { return INSTANCE; } } 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 80bae18bc..05977c832 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 @@ -6,8 +6,8 @@ import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; public final class CompassRangeDispatchProperty implements RangeDispatchProperty { - public static final RangeDispatchPropertyFactory FACTORY = new Factory(); - public static final RangeDispatchPropertyReader READER = new Reader(); + public static final RangeDispatchPropertyFactory FACTORY = new Factory(); + public static final RangeDispatchPropertyReader READER = new Reader(); private final String target; private final boolean wobble; @@ -33,18 +33,18 @@ public final class CompassRangeDispatchProperty implements RangeDispatchProperty } } - private static class Factory implements RangeDispatchPropertyFactory { + private static class Factory implements RangeDispatchPropertyFactory { @Override - public RangeDispatchProperty create(Map arguments) { + public CompassRangeDispatchProperty create(Map arguments) { String targetObj = ResourceConfigUtils.requireNonEmptyStringOrThrow(arguments.get("target"), "warning.config.item.model.range_dispatch.compass.missing_target"); boolean wobble = ResourceConfigUtils.getAsBoolean(arguments.getOrDefault("wobble", true), "wobble"); return new CompassRangeDispatchProperty(targetObj, wobble); } } - private static class Reader implements RangeDispatchPropertyReader { + private static class Reader implements RangeDispatchPropertyReader { @Override - public RangeDispatchProperty read(JsonObject json) { + public CompassRangeDispatchProperty read(JsonObject json) { String target = json.get("target").getAsString(); boolean wobble = !json.has("wobble") || json.get("wobble").getAsBoolean(); return new CompassRangeDispatchProperty(target, wobble); 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 58d76974d..f968ce0dc 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,8 +8,8 @@ import net.momirealms.craftengine.core.util.Key; import java.util.Map; public final class CrossBowPullingRangeDispatchProperty implements RangeDispatchProperty, LegacyModelPredicate { - public static final RangeDispatchPropertyFactory FACTORY = new Factory(); - public static final RangeDispatchPropertyReader READER = new Reader(); + public static final RangeDispatchPropertyFactory FACTORY = new Factory(); + public static final RangeDispatchPropertyReader READER = new Reader(); public static final CrossBowPullingRangeDispatchProperty INSTANCE = new CrossBowPullingRangeDispatchProperty(); private CrossBowPullingRangeDispatchProperty() {} @@ -30,16 +30,16 @@ public final class CrossBowPullingRangeDispatchProperty implements RangeDispatch return value; } - private static class Factory implements RangeDispatchPropertyFactory { + private static class Factory implements RangeDispatchPropertyFactory { @Override - public RangeDispatchProperty create(Map arguments) { + public CrossBowPullingRangeDispatchProperty create(Map arguments) { return INSTANCE; } } - private static class Reader implements RangeDispatchPropertyReader { + private static class Reader implements RangeDispatchPropertyReader { @Override - public RangeDispatchProperty read(JsonObject json) { + public CrossBowPullingRangeDispatchProperty read(JsonObject json) { return INSTANCE; } } 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 96ae2120d..9a57a2b3d 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,8 +8,8 @@ import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; public final class CustomModelDataRangeDispatchProperty implements RangeDispatchProperty, LegacyModelPredicate { - public static final RangeDispatchPropertyFactory FACTORY = new Factory(); - public static final RangeDispatchPropertyReader READER = new Reader(); + public static final RangeDispatchPropertyFactory FACTORY = new Factory(); + public static final RangeDispatchPropertyReader READER = new Reader(); private final int index; public CustomModelDataRangeDispatchProperty(int index) { @@ -36,17 +36,17 @@ public final class CustomModelDataRangeDispatchProperty implements RangeDispatch return value.intValue(); } - private static class Factory implements RangeDispatchPropertyFactory { + private static class Factory implements RangeDispatchPropertyFactory { @Override - public RangeDispatchProperty create(Map arguments) { + public CustomModelDataRangeDispatchProperty create(Map arguments) { int index = ResourceConfigUtils.getAsInt(arguments.getOrDefault("index", 0), "index"); return new CustomModelDataRangeDispatchProperty(index); } } - private static class Reader implements RangeDispatchPropertyReader { + private static class Reader implements RangeDispatchPropertyReader { @Override - public RangeDispatchProperty read(JsonObject json) { + public CustomModelDataRangeDispatchProperty read(JsonObject json) { int index = json.has("index") ? json.get("index").getAsInt() : 0; return new CustomModelDataRangeDispatchProperty(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 2f2eba36c..7247ccd87 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,8 +8,8 @@ import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; public final class DamageRangeDispatchProperty implements RangeDispatchProperty, LegacyModelPredicate { - public static final RangeDispatchPropertyFactory FACTORY = new Factory(); - public static final RangeDispatchPropertyReader READER = new Reader(); + public static final RangeDispatchPropertyFactory FACTORY = new Factory(); + public static final RangeDispatchPropertyReader READER = new Reader(); private final boolean normalize; public DamageRangeDispatchProperty(boolean normalize) { @@ -40,17 +40,17 @@ public final class DamageRangeDispatchProperty implements RangeDispatchProperty, throw new RuntimeException("Enable 'normalize' option if you want to use 'damage' on 1.21.3 and below"); } - private static class Factory implements RangeDispatchPropertyFactory { + private static class Factory implements RangeDispatchPropertyFactory { @Override - public RangeDispatchProperty create(Map arguments) { + public DamageRangeDispatchProperty create(Map arguments) { boolean normalize = ResourceConfigUtils.getAsBoolean(arguments.getOrDefault("normalize", true), "normalize"); return new DamageRangeDispatchProperty(normalize); } } - private static class Reader implements RangeDispatchPropertyReader { + private static class Reader implements RangeDispatchPropertyReader { @Override - public RangeDispatchProperty read(JsonObject json) { + public DamageRangeDispatchProperty read(JsonObject json) { boolean normalize = !json.has("normalize") || json.get("normalize").getAsBoolean(); return new DamageRangeDispatchProperty(normalize); } diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/rangedisptach/NormalizeRangeDispatchProperty.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/rangedisptach/NormalizeRangeDispatchProperty.java index 3b5559c70..bab27314c 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/rangedisptach/NormalizeRangeDispatchProperty.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/rangedisptach/NormalizeRangeDispatchProperty.java @@ -7,8 +7,8 @@ import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; public final class NormalizeRangeDispatchProperty implements RangeDispatchProperty { - public static final RangeDispatchPropertyFactory FACTORY = new Factory(); - public static final RangeDispatchPropertyReader READER = new Reader(); + public static final RangeDispatchPropertyFactory FACTORY = new Factory(); + public static final RangeDispatchPropertyReader READER = new Reader(); private final Key type; private final boolean normalize; @@ -33,18 +33,18 @@ public final class NormalizeRangeDispatchProperty implements RangeDispatchProper } } - private static class Factory implements RangeDispatchPropertyFactory { + private static class Factory implements RangeDispatchPropertyFactory { @Override - public RangeDispatchProperty create(Map arguments) { + public NormalizeRangeDispatchProperty create(Map arguments) { Key type = Key.of(arguments.get("property").toString()); boolean normalize = ResourceConfigUtils.getAsBoolean(arguments.getOrDefault("normalize", true), "normalize"); return new NormalizeRangeDispatchProperty(type, normalize); } } - private static class Reader implements RangeDispatchPropertyReader { + private static class Reader implements RangeDispatchPropertyReader { @Override - public RangeDispatchProperty read(JsonObject json) { + public NormalizeRangeDispatchProperty read(JsonObject json) { Key type = Key.of(json.get("property").toString()); boolean normalize = !json.has("normalize") || json.get("normalize").getAsBoolean(); return new NormalizeRangeDispatchProperty(type, normalize); 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 c449952e9..9046e1c89 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,22 +12,22 @@ import net.momirealms.craftengine.core.util.ResourceKey; import java.util.Map; public final class RangeDispatchProperties { - 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); + 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() {} - public static RangeDispatchPropertyType register(Key id, RangeDispatchPropertyFactory factory, RangeDispatchPropertyReader reader) { - RangeDispatchPropertyType type = new RangeDispatchPropertyType(id, factory, reader); - ((WritableRegistry) BuiltInRegistries.RANGE_DISPATCH_PROPERTY_TYPE) + public static RangeDispatchPropertyType register(Key id, RangeDispatchPropertyFactory factory, RangeDispatchPropertyReader reader) { + RangeDispatchPropertyType type = new RangeDispatchPropertyType<>(id, factory, reader); + ((WritableRegistry>) BuiltInRegistries.RANGE_DISPATCH_PROPERTY_TYPE) .register(ResourceKey.create(Registries.RANGE_DISPATCH_PROPERTY_TYPE.location(), id), type); return type; } @@ -35,7 +35,7 @@ public final class RangeDispatchProperties { public static RangeDispatchProperty fromMap(Map map) { String type = ResourceConfigUtils.requireNonEmptyStringOrThrow(map.get("property"), "warning.config.item.model.range_dispatch.missing_property"); Key key = Key.withDefaultNamespace(type, "minecraft"); - RangeDispatchPropertyType propertyType = BuiltInRegistries.RANGE_DISPATCH_PROPERTY_TYPE.getValue(key); + RangeDispatchPropertyType propertyType = BuiltInRegistries.RANGE_DISPATCH_PROPERTY_TYPE.getValue(key); if (propertyType == null) { throw new LocalizedResourceConfigException("warning.config.item.model.range_dispatch.invalid_property", type); } @@ -45,7 +45,7 @@ public final class RangeDispatchProperties { public static RangeDispatchProperty fromJson(JsonObject json) { String type = json.get("property").getAsString(); Key key = Key.withDefaultNamespace(type, "minecraft"); - RangeDispatchPropertyType propertyType = BuiltInRegistries.RANGE_DISPATCH_PROPERTY_TYPE.getValue(key); + RangeDispatchPropertyType propertyType = BuiltInRegistries.RANGE_DISPATCH_PROPERTY_TYPE.getValue(key); if (propertyType == null) { throw new IllegalArgumentException("Invalid range dispatch property type: " + key); } diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/rangedisptach/RangeDispatchPropertyFactory.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/rangedisptach/RangeDispatchPropertyFactory.java index bed02e697..af1436b6a 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/rangedisptach/RangeDispatchPropertyFactory.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/rangedisptach/RangeDispatchPropertyFactory.java @@ -2,7 +2,7 @@ package net.momirealms.craftengine.core.pack.model.definition.rangedisptach; import java.util.Map; -public interface RangeDispatchPropertyFactory { +public interface RangeDispatchPropertyFactory { - RangeDispatchProperty create(Map arguments); + T create(Map arguments); } diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/rangedisptach/RangeDispatchPropertyReader.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/rangedisptach/RangeDispatchPropertyReader.java index 0d0fd9a13..8463e14e7 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/rangedisptach/RangeDispatchPropertyReader.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/rangedisptach/RangeDispatchPropertyReader.java @@ -2,7 +2,7 @@ package net.momirealms.craftengine.core.pack.model.definition.rangedisptach; import com.google.gson.JsonObject; -public interface RangeDispatchPropertyReader { +public interface RangeDispatchPropertyReader { - RangeDispatchProperty read(JsonObject json); + T read(JsonObject json); } diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/rangedisptach/RangeDispatchPropertyType.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/rangedisptach/RangeDispatchPropertyType.java index 539ecec28..40b13212a 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/rangedisptach/RangeDispatchPropertyType.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/rangedisptach/RangeDispatchPropertyType.java @@ -2,5 +2,5 @@ package net.momirealms.craftengine.core.pack.model.definition.rangedisptach; import net.momirealms.craftengine.core.util.Key; -public record RangeDispatchPropertyType(Key id, RangeDispatchPropertyFactory factory, RangeDispatchPropertyReader reader) { +public record RangeDispatchPropertyType(Key id, RangeDispatchPropertyFactory factory, RangeDispatchPropertyReader reader) { } diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/rangedisptach/SimpleRangeDispatchProperty.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/rangedisptach/SimpleRangeDispatchProperty.java index 28ea5aa66..ff62f0b97 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/rangedisptach/SimpleRangeDispatchProperty.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/rangedisptach/SimpleRangeDispatchProperty.java @@ -6,8 +6,8 @@ import net.momirealms.craftengine.core.util.Key; import java.util.Map; public final class SimpleRangeDispatchProperty implements RangeDispatchProperty { - public static final RangeDispatchPropertyFactory FACTORY = new Factory(); - public static final RangeDispatchPropertyReader READER = new Reader(); + public static final RangeDispatchPropertyFactory FACTORY = new Factory(); + public static final RangeDispatchPropertyReader READER = new Reader(); private final Key type; public SimpleRangeDispatchProperty(Key type) { @@ -23,17 +23,17 @@ public final class SimpleRangeDispatchProperty implements RangeDispatchProperty jsonObject.addProperty("property", this.type.asMinimalString()); } - private static class Factory implements RangeDispatchPropertyFactory { + private static class Factory implements RangeDispatchPropertyFactory { @Override - public RangeDispatchProperty create(Map arguments) { + public SimpleRangeDispatchProperty create(Map arguments) { Key type = Key.of(arguments.get("property").toString()); return new SimpleRangeDispatchProperty(type); } } - private static class Reader implements RangeDispatchPropertyReader { + private static class Reader implements RangeDispatchPropertyReader { @Override - public RangeDispatchProperty read(JsonObject json) { + public SimpleRangeDispatchProperty read(JsonObject json) { Key type = Key.of(json.get("property").getAsString()); return new SimpleRangeDispatchProperty(type); } 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 72f611945..8a272d440 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 @@ -6,8 +6,8 @@ import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; public final class TimeRangeDispatchProperty implements RangeDispatchProperty { - public static final RangeDispatchPropertyFactory FACTORY = new Factory(); - public static final RangeDispatchPropertyReader READER = new Reader(); + public static final RangeDispatchPropertyFactory FACTORY = new Factory(); + public static final RangeDispatchPropertyReader READER = new Reader(); private final String source; private final boolean wobble; @@ -33,18 +33,18 @@ public final class TimeRangeDispatchProperty implements RangeDispatchProperty { } } - private static class Factory implements RangeDispatchPropertyFactory { + private static class Factory implements RangeDispatchPropertyFactory { @Override - public RangeDispatchProperty create(Map arguments) { + public TimeRangeDispatchProperty create(Map arguments) { String sourceObj = ResourceConfigUtils.requireNonEmptyStringOrThrow(arguments.get("source"), "warning.config.item.model.range_dispatch.time.missing_source"); boolean wobble = ResourceConfigUtils.getAsBoolean(arguments.getOrDefault("wobble", true), "wobble"); return new TimeRangeDispatchProperty(sourceObj, wobble); } } - private static class Reader implements RangeDispatchPropertyReader { + private static class Reader implements RangeDispatchPropertyReader { @Override - public RangeDispatchProperty read(JsonObject json) { + public TimeRangeDispatchProperty read(JsonObject json) { String source = json.get("source").getAsString(); boolean wobble = !json.has("wobble") || json.get("wobble").getAsBoolean(); return new TimeRangeDispatchProperty(source, wobble); 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 02991e257..39fd9b15c 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 @@ -6,8 +6,8 @@ import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; public final class UseCycleRangeDispatchProperty implements RangeDispatchProperty { - public static final RangeDispatchPropertyFactory FACTORY = new Factory(); - public static final RangeDispatchPropertyReader READER = new Reader(); + public static final RangeDispatchPropertyFactory FACTORY = new Factory(); + public static final RangeDispatchPropertyReader READER = new Reader(); private final float period; public UseCycleRangeDispatchProperty(float period) { @@ -24,17 +24,17 @@ public final class UseCycleRangeDispatchProperty implements RangeDispatchPropert jsonObject.addProperty("period", this.period); } - private static class Factory implements RangeDispatchPropertyFactory { + private static class Factory implements RangeDispatchPropertyFactory { @Override - public RangeDispatchProperty create(Map arguments) { + public UseCycleRangeDispatchProperty create(Map arguments) { float period = ResourceConfigUtils.getAsFloat(arguments.getOrDefault("period", 0), "period"); return new UseCycleRangeDispatchProperty(period); } } - private static class Reader implements RangeDispatchPropertyReader { + private static class Reader implements RangeDispatchPropertyReader { @Override - public RangeDispatchProperty read(JsonObject json) { + public UseCycleRangeDispatchProperty read(JsonObject json) { float period = json.has("period") ? json.get("period").getAsFloat() : 1.0f; return new UseCycleRangeDispatchProperty(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 9dee305ec..188a9f60c 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,8 +9,8 @@ import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; public final class UseDurationRangeDispatchProperty implements RangeDispatchProperty, LegacyModelPredicate { - public static final RangeDispatchPropertyFactory FACTORY = new Factory(); - public static final RangeDispatchPropertyReader READER = new Reader(); + public static final RangeDispatchPropertyFactory FACTORY = new Factory(); + public static final RangeDispatchPropertyReader READER = new Reader(); private final boolean remaining; public UseDurationRangeDispatchProperty(boolean remaining) { @@ -40,17 +40,17 @@ public final class UseDurationRangeDispatchProperty implements RangeDispatchProp return value; } - private static class Factory implements RangeDispatchPropertyFactory { + private static class Factory implements RangeDispatchPropertyFactory { @Override - public RangeDispatchProperty create(Map arguments) { + public UseDurationRangeDispatchProperty create(Map arguments) { boolean remaining = ResourceConfigUtils.getAsBoolean(arguments.getOrDefault("remaining", false), "remaining"); return new UseDurationRangeDispatchProperty(remaining); } } - private static class Reader implements RangeDispatchPropertyReader { + private static class Reader implements RangeDispatchPropertyReader { @Override - public RangeDispatchProperty read(JsonObject json) { + public UseDurationRangeDispatchProperty read(JsonObject json) { boolean remaining = json.has("remaining") && json.get("remaining").getAsBoolean(); return new UseDurationRangeDispatchProperty(remaining); } 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 0cff935ff..4c3e51043 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 @@ -6,8 +6,8 @@ import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; public final class BlockStateSelectProperty implements SelectProperty { - public static final SelectPropertyFactory FACTORY = new Factory(); - public static final SelectPropertyReader READER = new Reader(); + public static final SelectPropertyFactory FACTORY = new Factory(); + public static final SelectPropertyReader READER = new Reader(); private final String blockStateProperty; public BlockStateSelectProperty(String blockStateProperty) { @@ -24,17 +24,17 @@ public final class BlockStateSelectProperty implements SelectProperty { jsonObject.addProperty("block_state_property", this.blockStateProperty); } - private static class Factory implements SelectPropertyFactory { + private static class Factory implements SelectPropertyFactory { @Override - public SelectProperty create(Map arguments) { + public BlockStateSelectProperty create(Map arguments) { String property = ResourceConfigUtils.requireNonEmptyStringOrThrow(arguments.get("block-state-property"), "warning.config.item.model.select.block_state.missing_property"); return new BlockStateSelectProperty(property); } } - private static class Reader implements SelectPropertyReader { + private static class Reader implements SelectPropertyReader { @Override - public SelectProperty read(JsonObject json) { + public BlockStateSelectProperty read(JsonObject json) { String property = json.get("block_state_property").getAsString(); return new BlockStateSelectProperty(property); } 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 b0f59a816..0fdad0ed4 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,8 +8,8 @@ import net.momirealms.craftengine.core.util.Key; import java.util.Map; public final class ChargeTypeSelectProperty implements SelectProperty, LegacyModelPredicate { - public static final SelectPropertyFactory FACTORY = new Factory(); - public static final SelectPropertyReader READER = new Reader(); + public static final SelectPropertyFactory FACTORY = new Factory(); + public static final SelectPropertyReader READER = new Reader(); public static final ChargeTypeSelectProperty INSTANCE = new ChargeTypeSelectProperty(); private ChargeTypeSelectProperty() {} @@ -31,16 +31,16 @@ public final class ChargeTypeSelectProperty implements SelectProperty, LegacyMod return 0; } - private static class Factory implements SelectPropertyFactory { + private static class Factory implements SelectPropertyFactory { @Override - public SelectProperty create(Map arguments) { + public ChargeTypeSelectProperty create(Map arguments) { return INSTANCE; } } - private static class Reader implements SelectPropertyReader { + private static class Reader implements SelectPropertyReader { @Override - public SelectProperty read(JsonObject json) { + public ChargeTypeSelectProperty read(JsonObject json) { return INSTANCE; } } 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 2eed90610..8c338a99a 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 @@ -6,8 +6,8 @@ import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; public final class ComponentSelectProperty implements SelectProperty { - public static final SelectPropertyFactory FACTORY = new Factory(); - public static final SelectPropertyReader READER = new Reader(); + public static final SelectPropertyFactory FACTORY = new Factory(); + public static final SelectPropertyReader READER = new Reader(); private final String component; public ComponentSelectProperty(String component) { @@ -24,17 +24,17 @@ public final class ComponentSelectProperty implements SelectProperty { jsonObject.addProperty("component", this.component); } - private static class Factory implements SelectPropertyFactory { + private static class Factory implements SelectPropertyFactory { @Override - public SelectProperty create(Map arguments) { + public ComponentSelectProperty create(Map arguments) { String component = ResourceConfigUtils.requireNonEmptyStringOrThrow(arguments.get("component"), "warning.config.item.model.select.component.missing_component"); return new ComponentSelectProperty(component); } } - private static class Reader implements SelectPropertyReader { + private static class Reader implements SelectPropertyReader { @Override - public SelectProperty read(JsonObject json) { + public ComponentSelectProperty read(JsonObject json) { String component = json.get("component").getAsString(); return new ComponentSelectProperty(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 0d0cfbc88..63ee5a0b7 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 @@ -6,8 +6,8 @@ import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; public final class CustomModelDataSelectProperty implements SelectProperty { - public static final SelectPropertyFactory FACTORY = new Factory(); - public static final SelectPropertyReader READER = new Reader(); + public static final SelectPropertyFactory FACTORY = new Factory(); + public static final SelectPropertyReader READER = new Reader(); private final int index; public CustomModelDataSelectProperty(int index) { @@ -24,17 +24,17 @@ public final class CustomModelDataSelectProperty implements SelectProperty { jsonObject.addProperty("index", this.index); } - private static class Factory implements SelectPropertyFactory { + private static class Factory implements SelectPropertyFactory { @Override - public SelectProperty create(Map arguments) { + public CustomModelDataSelectProperty create(Map arguments) { int index = ResourceConfigUtils.getAsInt(arguments.getOrDefault("index", 0), "index"); return new CustomModelDataSelectProperty(index); } } - private static class Reader implements SelectPropertyReader { + private static class Reader implements SelectPropertyReader { @Override - public SelectProperty read(JsonObject json) { + public CustomModelDataSelectProperty read(JsonObject json) { int index = json.has("index") ? json.get("index").getAsInt() : 0; return new CustomModelDataSelectProperty(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 010418802..ceba4cc10 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 @@ -13,8 +13,8 @@ import java.util.Map; public final class DisplayContextSelectProperty implements SelectProperty { public static final DisplayContextSelectProperty INSTANCE = new DisplayContextSelectProperty(); - public static final SelectPropertyFactory FACTORY = new Factory(); - public static final SelectPropertyReader READER = new Reader(); + public static final SelectPropertyFactory FACTORY = new Factory(); + public static final SelectPropertyReader READER = new Reader(); private DisplayContextSelectProperty() {} @@ -41,16 +41,16 @@ public final class DisplayContextSelectProperty implements SelectProperty { return element; } - private static class Factory implements SelectPropertyFactory { + private static class Factory implements SelectPropertyFactory { @Override - public SelectProperty create(Map arguments) { + public DisplayContextSelectProperty create(Map arguments) { return INSTANCE; } } - private static class Reader implements SelectPropertyReader { + private static class Reader implements SelectPropertyReader { @Override - public SelectProperty read(JsonObject json) { + public DisplayContextSelectProperty read(JsonObject json) { return INSTANCE; } } 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 f81b1f570..9eee72131 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 @@ -8,8 +8,8 @@ import org.jetbrains.annotations.Nullable; import java.util.Map; public final class LocalTimeSelectProperty implements SelectProperty { - public static final SelectPropertyFactory FACTORY = new Factory(); - public static final SelectPropertyReader READER = new Reader(); + public static final SelectPropertyFactory FACTORY = new Factory(); + public static final SelectPropertyReader READER = new Reader(); private final String pattern; private final String locale; private final String timeZone; @@ -46,9 +46,9 @@ public final class LocalTimeSelectProperty implements SelectProperty { } } - private static class Factory implements SelectPropertyFactory { + private static class Factory implements SelectPropertyFactory { @Override - public SelectProperty create(Map arguments) { + public LocalTimeSelectProperty create(Map arguments) { String pattern = ResourceConfigUtils.requireNonEmptyStringOrThrow(arguments.get("pattern"), "warning.config.item.model.select.local_time.missing_pattern"); String locale = (String) arguments.get("locale"); String timeZone = (String) arguments.get("time-zone"); @@ -56,9 +56,9 @@ public final class LocalTimeSelectProperty implements SelectProperty { } } - private static class Reader implements SelectPropertyReader { + private static class Reader implements SelectPropertyReader { @Override - public SelectProperty read(JsonObject json) { + public LocalTimeSelectProperty read(JsonObject json) { String pattern = json.get("pattern").getAsString(); String locale = json.has("locale") ? json.get("locale").getAsString() : null; String timeZone = json.has("time_zone") ? json.get("time_zone").getAsString() : null; 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 d416e32da..7e21b0498 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,8 +7,8 @@ import net.momirealms.craftengine.core.util.Key; import java.util.Map; public final class MainHandSelectProperty implements SelectProperty, LegacyModelPredicate { - public static final SelectPropertyFactory FACTORY = new Factory(); - public static final SelectPropertyReader READER = new Reader(); + public static final SelectPropertyFactory FACTORY = new Factory(); + public static final SelectPropertyReader READER = new Reader(); public static final MainHandSelectProperty INSTANCE = new MainHandSelectProperty(); private MainHandSelectProperty() {} @@ -29,16 +29,16 @@ public final class MainHandSelectProperty implements SelectProperty, LegacyModel return 0; } - private static class Factory implements SelectPropertyFactory { + private static class Factory implements SelectPropertyFactory { @Override - public SelectProperty create(Map arguments) { + public MainHandSelectProperty create(Map arguments) { return INSTANCE; } } - private static class Reader implements SelectPropertyReader { + private static class Reader implements SelectPropertyReader { @Override - public SelectProperty read(JsonObject json) { + public MainHandSelectProperty read(JsonObject json) { return INSTANCE; } } 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 f7c91f1e3..84f2b1140 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,22 +12,22 @@ import net.momirealms.craftengine.core.util.ResourceKey; import java.util.Map; public final class SelectProperties { - 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); + 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() {} - public static SelectPropertyType register(Key id, SelectPropertyFactory factory, SelectPropertyReader reader) { - SelectPropertyType type = new SelectPropertyType(id, factory, reader); - ((WritableRegistry) BuiltInRegistries.SELECT_PROPERTY_TYPE) + public static SelectPropertyType register(Key id, SelectPropertyFactory factory, SelectPropertyReader reader) { + SelectPropertyType type = new SelectPropertyType<>(id, factory, reader); + ((WritableRegistry>) BuiltInRegistries.SELECT_PROPERTY_TYPE) .register(ResourceKey.create(Registries.SELECT_PROPERTY_TYPE.location(), id), type); return type; } @@ -35,7 +35,7 @@ public final class SelectProperties { public static SelectProperty fromMap(Map map) { String type = ResourceConfigUtils.requireNonEmptyStringOrThrow(map.get("property"), "warning.config.item.model.select.missing_property"); Key key = Key.withDefaultNamespace(type, "minecraft"); - SelectPropertyType selectPropertyType = BuiltInRegistries.SELECT_PROPERTY_TYPE.getValue(key); + SelectPropertyType selectPropertyType = BuiltInRegistries.SELECT_PROPERTY_TYPE.getValue(key); if (selectPropertyType == null) { throw new LocalizedResourceConfigException("warning.config.item.model.select.invalid_property", type); } @@ -45,7 +45,7 @@ public final class SelectProperties { public static SelectProperty fromJson(JsonObject json) { String type = json.get("property").getAsString(); Key key = Key.withDefaultNamespace(type, "minecraft"); - SelectPropertyType selectPropertyType = BuiltInRegistries.SELECT_PROPERTY_TYPE.getValue(key); + SelectPropertyType selectPropertyType = BuiltInRegistries.SELECT_PROPERTY_TYPE.getValue(key); if (selectPropertyType == null) { throw new IllegalArgumentException("Invalid select property type: " + key); } diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/select/SelectPropertyFactory.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/select/SelectPropertyFactory.java index 18eeb80ee..18eb289d7 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/select/SelectPropertyFactory.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/select/SelectPropertyFactory.java @@ -2,7 +2,7 @@ package net.momirealms.craftengine.core.pack.model.definition.select; import java.util.Map; -public interface SelectPropertyFactory { +public interface SelectPropertyFactory { - SelectProperty create(Map arguments); + T create(Map arguments); } diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/select/SelectPropertyReader.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/select/SelectPropertyReader.java index 288ebf241..076b986cb 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/select/SelectPropertyReader.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/select/SelectPropertyReader.java @@ -2,7 +2,7 @@ package net.momirealms.craftengine.core.pack.model.definition.select; import com.google.gson.JsonObject; -public interface SelectPropertyReader { +public interface SelectPropertyReader { - SelectProperty read(JsonObject json); + T read(JsonObject json); } diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/select/SelectPropertyType.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/select/SelectPropertyType.java index 936afc70c..b5dee9ec6 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/select/SelectPropertyType.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/select/SelectPropertyType.java @@ -2,5 +2,5 @@ package net.momirealms.craftengine.core.pack.model.definition.select; import net.momirealms.craftengine.core.util.Key; -public record SelectPropertyType(Key id, SelectPropertyFactory factory, SelectPropertyReader reader) { +public record SelectPropertyType(Key id, SelectPropertyFactory factory, SelectPropertyReader reader) { } diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/select/SimpleSelectProperty.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/select/SimpleSelectProperty.java index d61cfde1e..7605388c8 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/select/SimpleSelectProperty.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/select/SimpleSelectProperty.java @@ -6,8 +6,8 @@ import net.momirealms.craftengine.core.util.Key; import java.util.Map; public final class SimpleSelectProperty implements SelectProperty { - public static final SelectPropertyFactory FACTORY = new Factory(); - public static final SelectPropertyReader READER = new Reader(); + public static final SelectPropertyFactory FACTORY = new Factory(); + public static final SelectPropertyReader READER = new Reader(); private final Key type; public SimpleSelectProperty(Key type) { @@ -23,17 +23,17 @@ public final class SimpleSelectProperty implements SelectProperty { jsonObject.addProperty("property", this.type.asMinimalString()); } - private static class Factory implements SelectPropertyFactory { + private static class Factory implements SelectPropertyFactory { @Override - public SelectProperty create(Map arguments) { + public SimpleSelectProperty create(Map arguments) { Key type = Key.of(arguments.get("property").toString()); return new SimpleSelectProperty(type); } } - private static class Reader implements SelectPropertyReader { + private static class Reader implements SelectPropertyReader { @Override - public SelectProperty read(JsonObject json) { + public SimpleSelectProperty read(JsonObject json) { Key type = Key.of(json.get("property").getAsString()); return new SimpleSelectProperty(type); } 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 1b513625e..95d3e968c 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,8 +9,8 @@ import java.util.HashMap; import java.util.Map; public final class TrimMaterialSelectProperty implements SelectProperty, LegacyModelPredicate { - public static final SelectPropertyFactory FACTORY = new Factory(); - public static final SelectPropertyReader READER = new Reader(); + public static final SelectPropertyFactory FACTORY = new Factory(); + public static final SelectPropertyReader READER = new Reader(); public static final TrimMaterialSelectProperty INSTANCE = new TrimMaterialSelectProperty(); private static final Map LEGACY_TRIM_DATA = MiscUtils.init(new HashMap<>(), map -> { map.put("minecraft:quartz", 0.1f); @@ -48,16 +48,16 @@ public final class TrimMaterialSelectProperty implements SelectProperty, LegacyM return f; } - private static class Factory implements SelectPropertyFactory { + private static class Factory implements SelectPropertyFactory { @Override - public SelectProperty create(Map arguments) { + public TrimMaterialSelectProperty create(Map arguments) { return INSTANCE; } } - private static class Reader implements SelectPropertyReader { + private static class Reader implements SelectPropertyReader { @Override - public SelectProperty read(JsonObject json) { + public TrimMaterialSelectProperty read(JsonObject json) { return INSTANCE; } } 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 674efe7d9..65de18f0c 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 @@ -9,8 +9,8 @@ import java.util.List; import java.util.Map; public final class BannerSpecialModel implements SpecialModel { - public static final SpecialModelFactory FACTORY = new Factory(); - public static final SpecialModelReader READER = new Reader(); + public static final SpecialModelFactory FACTORY = new Factory(); + public static final SpecialModelReader READER = new Reader(); private final String color; public BannerSpecialModel(String color) { @@ -34,17 +34,17 @@ public final class BannerSpecialModel implements SpecialModel { return json; } - private static class Factory implements SpecialModelFactory { + private static class Factory implements SpecialModelFactory { @Override - public SpecialModel create(Map arguments) { + public BannerSpecialModel create(Map arguments) { String color = ResourceConfigUtils.requireNonEmptyStringOrThrow(arguments.get("color"), "warning.config.item.model.special.banner.missing_color"); return new BannerSpecialModel(color); } } - private static class Reader implements SpecialModelReader { + private static class Reader implements SpecialModelReader { @Override - public SpecialModel read(JsonObject json) { + public BannerSpecialModel read(JsonObject json) { String color = json.get("color").getAsString(); return new BannerSpecialModel(color); } 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 49171e708..700bb8521 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 @@ -9,8 +9,8 @@ import java.util.List; import java.util.Map; public final class BedSpecialModel implements SpecialModel { - public static final SpecialModelFactory FACTORY = new Factory(); - public static final SpecialModelReader READER = new Reader(); + public static final SpecialModelFactory FACTORY = new Factory(); + public static final SpecialModelReader READER = new Reader(); private final String texture; public BedSpecialModel(String texture) { @@ -34,17 +34,17 @@ public final class BedSpecialModel implements SpecialModel { return List.of(); } - private static class Factory implements SpecialModelFactory { + private static class Factory implements SpecialModelFactory { @Override - public SpecialModel create(Map arguments) { + public BedSpecialModel create(Map arguments) { String texture = ResourceConfigUtils.requireNonEmptyStringOrThrow(arguments.get("texture"), "warning.config.item.model.special.bed.missing_texture"); return new BedSpecialModel(texture); } } - private static class Reader implements SpecialModelReader { + private static class Reader implements SpecialModelReader { @Override - public SpecialModel read(JsonObject json) { + public BedSpecialModel read(JsonObject json) { String texture = json.get("texture").getAsString(); return new BedSpecialModel(texture); } 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 27897f05a..dcc6b085c 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 @@ -10,8 +10,8 @@ import java.util.List; import java.util.Map; public final class ChestSpecialModel implements SpecialModel { - public static final SpecialModelFactory FACTORY = new Factory(); - public static final SpecialModelReader READER = new Reader(); + public static final SpecialModelFactory FACTORY = new Factory(); + public static final SpecialModelReader READER = new Reader(); private final String texture; private final float openness; @@ -44,9 +44,9 @@ public final class ChestSpecialModel implements SpecialModel { return json; } - private static class Factory implements SpecialModelFactory { + private static class Factory implements SpecialModelFactory { @Override - public SpecialModel create(Map arguments) { + public ChestSpecialModel create(Map arguments) { float openness = ResourceConfigUtils.getAsFloat(arguments.getOrDefault("openness", 0), "openness"); String texture = ResourceConfigUtils.requireNonEmptyStringOrThrow(arguments.get("texture"), "warning.config.item.model.special.chest.missing_texture"); if (openness > 1 || openness < 0) { @@ -56,9 +56,9 @@ public final class ChestSpecialModel implements SpecialModel { } } - private static class Reader implements SpecialModelReader { + private static class Reader implements SpecialModelReader { @Override - public SpecialModel read(JsonObject json) { + public ChestSpecialModel read(JsonObject json) { float openness = json.has("openness") ? json.get("openness").getAsFloat() : 0; return new ChestSpecialModel(json.get("texture").getAsString(), 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 ab151078a..f1581bab9 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 @@ -9,8 +9,8 @@ import java.util.List; import java.util.Map; public final class CopperGolemStatueSpecialModel implements SpecialModel { - public static final SpecialModelFactory FACTORY = new Factory(); - public static final SpecialModelReader READER = new Reader(); + public static final SpecialModelFactory FACTORY = new Factory(); + public static final SpecialModelReader READER = new Reader(); private final String pose; private final String texture; @@ -41,18 +41,18 @@ public final class CopperGolemStatueSpecialModel implements SpecialModel { return json; } - private static class Factory implements SpecialModelFactory { + private static class Factory implements SpecialModelFactory { @Override - public SpecialModel create(Map arguments) { + public CopperGolemStatueSpecialModel create(Map arguments) { String pose = ResourceConfigUtils.requireNonEmptyStringOrThrow(arguments.get("pose"), "warning.config.item.model.special.copper_golem_statue.missing_pose"); String texture = ResourceConfigUtils.requireNonEmptyStringOrThrow(arguments.get("texture"), "warning.config.item.model.special.copper_golem_statue.missing_texture"); return new CopperGolemStatueSpecialModel(pose, texture); } } - private static class Reader implements SpecialModelReader { + private static class Reader implements SpecialModelReader { @Override - public SpecialModel read(JsonObject json) { + public CopperGolemStatueSpecialModel read(JsonObject json) { String pose = json.get("pose").getAsString(); String texture = json.get("texture").getAsString(); return new CopperGolemStatueSpecialModel(pose, texture); 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 f0e338243..360fe1f6b 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 @@ -10,8 +10,8 @@ import java.util.Map; import java.util.Optional; public final class HeadSpecialModel implements SpecialModel { - public static final SpecialModelFactory FACTORY = new Factory(); - public static final SpecialModelReader READER = new Reader(); + public static final SpecialModelFactory FACTORY = new Factory(); + public static final SpecialModelReader READER = new Reader(); private final String kind; private final String texture; private final float animation; @@ -53,9 +53,9 @@ public final class HeadSpecialModel implements SpecialModel { return json; } - private static class Factory implements SpecialModelFactory { + private static class Factory implements SpecialModelFactory { @Override - public SpecialModel create(Map arguments) { + public HeadSpecialModel create(Map arguments) { String kind = ResourceConfigUtils.requireNonEmptyStringOrThrow(arguments.get("kind"), "warning.config.item.model.special.head.missing_kind"); String texture = Optional.ofNullable(arguments.get("texture")).map(String::valueOf).orElse(null); float animation = ResourceConfigUtils.getAsFloat(arguments.getOrDefault("animation", 0), "animation"); @@ -63,9 +63,9 @@ public final class HeadSpecialModel implements SpecialModel { } } - private static class Reader implements SpecialModelReader { + private static class Reader implements SpecialModelReader { @Override - public SpecialModel read(JsonObject json) { + public HeadSpecialModel read(JsonObject json) { String kind = json.get("kind").getAsString(); String texture = json.has("texture") ? json.get("texture").getAsString() : null; float animation = json.has("animation") ? json.get("animation").getAsFloat() : 0f; 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 d543441ff..0b8785068 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 @@ -9,8 +9,8 @@ import java.util.List; import java.util.Map; public final class PlayerHeadSpecialModel implements SpecialModel { - public static final SpecialModelFactory FACTORY = new Factory(); - public static final SpecialModelReader READER = new Reader(); + public static final SpecialModelFactory FACTORY = new Factory(); + public static final SpecialModelReader READER = new Reader(); public static final PlayerHeadSpecialModel INSTANCE = new PlayerHeadSpecialModel(); private PlayerHeadSpecialModel() {} @@ -32,16 +32,16 @@ public final class PlayerHeadSpecialModel implements SpecialModel { return json; } - private static class Factory implements SpecialModelFactory { + private static class Factory implements SpecialModelFactory { @Override - public SpecialModel create(Map arguments) { + public PlayerHeadSpecialModel create(Map arguments) { return INSTANCE; } } - private static class Reader implements SpecialModelReader { + private static class Reader implements SpecialModelReader { @Override - public SpecialModel read(JsonObject json) { + public PlayerHeadSpecialModel read(JsonObject json) { return INSTANCE; } } 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 645dea798..cfd229238 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 @@ -14,8 +14,8 @@ import java.util.Map; import java.util.Optional; public final class ShulkerBoxSpecialModel implements SpecialModel { - public static final SpecialModelFactory FACTORY = new Factory(); - public static final SpecialModelReader READER = new Reader(); + public static final SpecialModelFactory FACTORY = new Factory(); + public static final SpecialModelReader READER = new Reader(); private final String texture; private final float openness; private final Direction orientation; @@ -55,9 +55,9 @@ public final class ShulkerBoxSpecialModel implements SpecialModel { return json; } - private static class Factory implements SpecialModelFactory { + private static class Factory implements SpecialModelFactory { @Override - public SpecialModel create(Map arguments) { + public ShulkerBoxSpecialModel create(Map arguments) { float openness = ResourceConfigUtils.getAsFloat(arguments.getOrDefault("openness", 0), "openness"); String texture = ResourceConfigUtils.requireNonEmptyStringOrThrow(arguments.get("texture"), "warning.config.item.model.special.shulker_box.missing_texture"); Direction orientation = Optional.ofNullable(arguments.get("orientation")).map(String::valueOf).map(s -> s.toUpperCase(Locale.ROOT)).map(Direction::valueOf).orElse(null); @@ -68,9 +68,9 @@ public final class ShulkerBoxSpecialModel implements SpecialModel { } } - private static class Reader implements SpecialModelReader { + private static class Reader implements SpecialModelReader { @Override - public SpecialModel read(JsonObject json) { + public ShulkerBoxSpecialModel read(JsonObject json) { float openness = json.has("openness") ? json.get("openness").getAsFloat() : 0f; Direction orientation = json.has("orientation") ? Direction.valueOf(json.get("orientation").getAsString().toUpperCase(Locale.ENGLISH)) : null; String texture = json.get("texture").getAsString(); diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/special/SignSpecialModel.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/special/SignSpecialModel.java index af35c579a..bff5d74fa 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/special/SignSpecialModel.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/special/SignSpecialModel.java @@ -10,8 +10,8 @@ import java.util.List; import java.util.Map; public final class SignSpecialModel implements SpecialModel { - public static final SpecialModelFactory FACTORY = new Factory(); - public static final SpecialModelReader READER = new Reader(); + public static final SpecialModelFactory FACTORY = new Factory(); + public static final SpecialModelReader READER = new Reader(); private final Key type; private final String woodType; private final String texture; @@ -48,9 +48,9 @@ public final class SignSpecialModel implements SpecialModel { return json; } - private static class Factory implements SpecialModelFactory { + private static class Factory implements SpecialModelFactory { @Override - public SpecialModel create(Map arguments) { + public SignSpecialModel create(Map arguments) { Key type = Key.of(arguments.get("type").toString()); String woodType = ResourceConfigUtils.requireNonEmptyStringOrThrow(arguments.get("wood-type"), "warning.config.item.model.special.sign.missing_wood_type"); String texture = ResourceConfigUtils.requireNonEmptyStringOrThrow(arguments.get("texture"), "warning.config.item.model.special.sign.missing_texture"); @@ -58,9 +58,9 @@ public final class SignSpecialModel implements SpecialModel { } } - private static class Reader implements SpecialModelReader { + private static class Reader implements SpecialModelReader { @Override - public SpecialModel read(JsonObject json) { + public SignSpecialModel read(JsonObject json) { Key type = Key.of(json.get("type").toString()); String woodType = json.get("wood_type").getAsString(); String texture = json.get("texture").getAsString(); diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/special/SimpleSpecialModel.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/special/SimpleSpecialModel.java index 7d36b584a..6d741b036 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/special/SimpleSpecialModel.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/special/SimpleSpecialModel.java @@ -9,8 +9,8 @@ import java.util.List; import java.util.Map; public final class SimpleSpecialModel implements SpecialModel { - public static final SpecialModelFactory FACTORY = new Factory(); - public static final SpecialModelReader READER = new Reader(); + public static final SpecialModelFactory FACTORY = new Factory(); + public static final SpecialModelReader READER = new Reader(); private final Key type; public SimpleSpecialModel(Key type) { @@ -33,17 +33,17 @@ public final class SimpleSpecialModel implements SpecialModel { return List.of(); } - private static class Factory implements SpecialModelFactory { + private static class Factory implements SpecialModelFactory { @Override - public SpecialModel create(Map arguments) { + public SimpleSpecialModel create(Map arguments) { Key type = Key.of(arguments.get("type").toString()); return new SimpleSpecialModel(type); } } - private static class Reader implements SpecialModelReader { + private static class Reader implements SpecialModelReader { @Override - public SpecialModel read(JsonObject json) { + public SimpleSpecialModel read(JsonObject json) { Key type = Key.of(json.get("type").getAsString()); return new SimpleSpecialModel(type); } diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/special/SpecialModelFactory.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/special/SpecialModelFactory.java index 861556cb0..113c89234 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/special/SpecialModelFactory.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/special/SpecialModelFactory.java @@ -2,7 +2,7 @@ package net.momirealms.craftengine.core.pack.model.definition.special; import java.util.Map; -public interface SpecialModelFactory { +public interface SpecialModelFactory { - SpecialModel create(Map arguments); + T create(Map arguments); } diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/special/SpecialModelReader.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/special/SpecialModelReader.java index 6b6c1236c..4c2f72f95 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/special/SpecialModelReader.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/special/SpecialModelReader.java @@ -2,7 +2,7 @@ package net.momirealms.craftengine.core.pack.model.definition.special; import com.google.gson.JsonObject; -public interface SpecialModelReader { +public interface SpecialModelReader { - SpecialModel read(JsonObject json); + T read(JsonObject json); } diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/special/SpecialModelType.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/special/SpecialModelType.java index 0e5bf77ac..25f7d2086 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/special/SpecialModelType.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/special/SpecialModelType.java @@ -2,5 +2,5 @@ package net.momirealms.craftengine.core.pack.model.definition.special; import net.momirealms.craftengine.core.util.Key; -public record SpecialModelType(Key id, SpecialModelFactory factory, SpecialModelReader reader) { +public record SpecialModelType(Key id, SpecialModelFactory factory, SpecialModelReader reader) { } 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 bbb5b97ff..ff5391b01 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,25 +12,25 @@ import net.momirealms.craftengine.core.util.ResourceKey; import java.util.Map; public final class SpecialModels { - 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); + 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() {} - public static SpecialModelType register(Key id, SpecialModelFactory factory, SpecialModelReader reader) { - SpecialModelType type = new SpecialModelType(id, factory, reader); - ((WritableRegistry) BuiltInRegistries.SPECIAL_MODEL_TYPE) + public static SpecialModelType register(Key id, SpecialModelFactory factory, SpecialModelReader reader) { + SpecialModelType type = new SpecialModelType<>(id, factory, reader); + ((WritableRegistry>) BuiltInRegistries.SPECIAL_MODEL_TYPE) .register(ResourceKey.create(Registries.SPECIAL_MODEL_TYPE.location(), id), type); return type; } @@ -38,7 +38,7 @@ public final class SpecialModels { public static SpecialModel fromMap(Map map) { String type = ResourceConfigUtils.requireNonEmptyStringOrThrow(map.get("type"), "warning.config.item.model.special.missing_type"); Key key = Key.withDefaultNamespace(type, "minecraft"); - SpecialModelType specialModelType = BuiltInRegistries.SPECIAL_MODEL_TYPE.getValue(key); + SpecialModelType specialModelType = BuiltInRegistries.SPECIAL_MODEL_TYPE.getValue(key); if (specialModelType == null) { throw new LocalizedResourceConfigException("warning.config.item.model.special.invalid_type", type); } @@ -48,7 +48,7 @@ public final class SpecialModels { public static SpecialModel fromJson(JsonObject json) { String type = json.get("type").getAsString(); Key key = Key.withDefaultNamespace(type, "minecraft"); - SpecialModelType specialModelType = BuiltInRegistries.SPECIAL_MODEL_TYPE.getValue(key); + SpecialModelType specialModelType = BuiltInRegistries.SPECIAL_MODEL_TYPE.getValue(key); if (specialModelType == null) { throw new IllegalArgumentException("Invalid special model type: " + key); } 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 fb64d50ef..45802d39d 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 @@ -8,8 +8,8 @@ import java.util.List; import java.util.Map; public final class ConstantTint implements Tint { - public static final TintFactory FACTORY = new Factory(); - public static final TintReader READER = new Reader(); + public static final TintFactory FACTORY = new Factory(); + public static final TintReader READER = new Reader(); private final Either> value; public ConstantTint(Either> value) { @@ -28,17 +28,17 @@ public final class ConstantTint implements Tint { return json; } - private static class Factory implements TintFactory { + private static class Factory implements TintFactory { @Override - public Tint create(Map arguments) { + public ConstantTint create(Map arguments) { Object value = ResourceConfigUtils.requireNonNullOrThrow(ResourceConfigUtils.get(arguments, "value", "default"), "warning.config.item.model.tint.constant.missing_value"); return new ConstantTint(parseTintValue(value)); } } - private static class Reader implements TintReader { + private static class Reader implements TintReader { @Override - public Tint read(JsonObject json) { + public ConstantTint read(JsonObject json) { return new ConstantTint(parseTintValue(json.get("value"))); } } 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 f855edf33..daaef221b 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 @@ -8,8 +8,8 @@ import java.util.List; import java.util.Map; public final class CustomModelDataTint implements Tint { - public static final TintFactory FACTORY = new Factory(); - public static final TintReader READER = new Reader(); + public static final TintFactory FACTORY = new Factory(); + public static final TintReader READER = new Reader(); private final Either> value; private final int index; @@ -36,18 +36,18 @@ public final class CustomModelDataTint implements Tint { return json; } - private static class Factory implements TintFactory { + private static class Factory implements TintFactory { @Override - public Tint create(Map arguments) { + public CustomModelDataTint create(Map arguments) { Object value = arguments.containsKey("default") ? arguments.getOrDefault("default", 0) : arguments.getOrDefault("value", 0); int index = ResourceConfigUtils.getAsInt(arguments.getOrDefault("index", 0), "index"); return new CustomModelDataTint(parseTintValue(value), index); } } - private static class Reader implements TintReader { + private static class Reader implements TintReader { @Override - public Tint read(JsonObject json) { + public CustomModelDataTint read(JsonObject json) { return new CustomModelDataTint( parseTintValue(json.get("default")), json.has("index") ? json.get("index").getAsInt() : 0 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 49174e6b5..eed412d76 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 @@ -7,8 +7,8 @@ import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; public final class GrassTint implements Tint { - public static final Factory FACTORY = new Factory(); - public static final Reader READER = new Reader(); + public static final TintFactory FACTORY = new Factory(); + public static final TintReader READER = new Reader(); private final float temperature; private final float downfall; @@ -34,10 +34,10 @@ public final class GrassTint implements Tint { return json; } - private static class Factory implements TintFactory { + private static class Factory implements TintFactory { @Override - public Tint create(Map arguments) { + public GrassTint create(Map arguments) { float temperature = ResourceConfigUtils.getAsFloat(arguments.getOrDefault("temperature", 0), "temperature"); float downfall = ResourceConfigUtils.getAsFloat(arguments.getOrDefault("downfall", 0), "downfall"); if (temperature > 1 || temperature < 0) { @@ -50,9 +50,9 @@ public final class GrassTint implements Tint { } } - public static class Reader implements TintReader { + private static class Reader implements TintReader { @Override - public Tint read(JsonObject json) { + public GrassTint read(JsonObject json) { float temperature = json.has("temperature") ? json.get("temperature").getAsFloat() : 0; float downfall = json.has("downfall") ? json.get("downfall").getAsFloat() : 0; return new GrassTint(temperature, downfall); diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/tint/SimpleDefaultTint.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/tint/SimpleDefaultTint.java index cd658dcda..d28ada321 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/tint/SimpleDefaultTint.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/tint/SimpleDefaultTint.java @@ -9,8 +9,8 @@ import java.util.List; import java.util.Map; public final class SimpleDefaultTint implements Tint { - public static final TintFactory FACTORY = new Factory(); - public static final TintReader READER = new Reader(); + public static final TintFactory FACTORY = new Factory(); + public static final TintReader READER = new Reader(); private final Either> defaultValue; private final Key type; @@ -35,18 +35,18 @@ public final class SimpleDefaultTint implements Tint { return json; } - private static class Factory implements TintFactory { + private static class Factory implements TintFactory { @Override - public Tint create(Map arguments) { + public SimpleDefaultTint create(Map arguments) { Object value = arguments.containsKey("default") ? arguments.getOrDefault("default", 0) : arguments.getOrDefault("value", 0); Key type = Key.of(arguments.get("type").toString()); return new SimpleDefaultTint(type, parseTintValue(value)); } } - private static class Reader implements TintReader { + private static class Reader implements TintReader { @Override - public Tint read(JsonObject json) { + public SimpleDefaultTint read(JsonObject json) { return new SimpleDefaultTint(Key.of(json.get("type").getAsString()), parseTintValue(json.get("default"))); } } diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/tint/TintFactory.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/tint/TintFactory.java index 5db297b29..dcf65bab4 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/tint/TintFactory.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/tint/TintFactory.java @@ -8,9 +8,9 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; -public interface TintFactory { +public interface TintFactory { - Tint create(Map arguments); + T create(Map arguments); default Either> parseTintValue(Object value) { if (value instanceof Number i) { diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/tint/TintReader.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/tint/TintReader.java index a8c2d49eb..c9ae67bd6 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/tint/TintReader.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/tint/TintReader.java @@ -9,9 +9,9 @@ import org.incendo.cloud.type.Either; import java.util.ArrayList; import java.util.List; -public interface TintReader { +public interface TintReader { - Tint read(JsonObject json); + T read(JsonObject json); default Either> parseTintValue(JsonElement element) { if (element instanceof JsonPrimitive jsonPrimitive) { diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/tint/TintType.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/tint/TintType.java index a192d25e5..7b8035ea5 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/tint/TintType.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/definition/tint/TintType.java @@ -2,5 +2,5 @@ package net.momirealms.craftengine.core.pack.model.definition.tint; import net.momirealms.craftengine.core.util.Key; -public record TintType(Key id, TintFactory factory, TintReader reader) { +public record TintType(Key id, TintFactory factory, TintReader reader) { } 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 1446a697f..a17d4c490 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,20 +12,20 @@ import net.momirealms.craftengine.core.util.ResourceKey; import java.util.Map; public final class Tints { - 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); + 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() {} - public static TintType register(Key id, TintFactory factory, TintReader reader) { - TintType type = new TintType(id, factory, reader); - ((WritableRegistry) BuiltInRegistries.TINT_TYPE) + public static TintType register(Key id, TintFactory factory, TintReader reader) { + TintType type = new TintType<>(id, factory, reader); + ((WritableRegistry>) BuiltInRegistries.TINT_TYPE) .register(ResourceKey.create(Registries.TINT_TYPE.location(), id), type); return type; } @@ -33,7 +33,7 @@ public final class Tints { public static Tint fromMap(Map map) { String type = ResourceConfigUtils.requireNonEmptyStringOrThrow(map.get("type"), "warning.config.item.model.tint.missing_type"); Key key = Key.withDefaultNamespace(type, "minecraft"); - TintType tintType = BuiltInRegistries.TINT_TYPE.getValue(key); + TintType tintType = BuiltInRegistries.TINT_TYPE.getValue(key); if (tintType == null) { throw new LocalizedResourceConfigException("warning.config.item.model.tint.invalid_type", type); } @@ -43,7 +43,7 @@ public final class Tints { public static Tint fromJson(JsonObject json) { String type = json.get("type").getAsString(); Key key = Key.withDefaultNamespace(type, "minecraft"); - TintType tintType = BuiltInRegistries.TINT_TYPE.getValue(key); + TintType tintType = BuiltInRegistries.TINT_TYPE.getValue(key); if (tintType == null) { throw new IllegalArgumentException("Invalid tint type: " + type); } 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 2b1c538ad..13969e157 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,7 +5,7 @@ import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; public final class ConditionTemplateArgument implements TemplateArgument { - public static final TemplateArgumentFactory FACTORY = new Factory(); + public static final TemplateArgumentFactory FACTORY = new Factory(); private final TemplateArgument result; private ConditionTemplateArgument(TemplateArgument result) { @@ -25,10 +25,10 @@ public final class ConditionTemplateArgument implements TemplateArgument { return this.result.get(arguments); } - private static class Factory implements TemplateArgumentFactory { + private static class Factory implements TemplateArgumentFactory { @Override - public TemplateArgument create(Map arguments) { + public ConditionTemplateArgument create(Map arguments) { TemplateArgument onTrue = TemplateArguments.fromObject(ResourceConfigUtils.get(arguments, "on-true", "on_true")); TemplateArgument onFalse = TemplateArguments.fromObject(ResourceConfigUtils.get(arguments, "on-false", "on_false")); return new ConditionTemplateArgument(ResourceConfigUtils.getAsBoolean(arguments.get("condition"), "condition") ? onTrue : onFalse); 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 bb0f47271..4350e4bcb 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,7 +10,7 @@ import java.util.Optional; import java.util.function.Function; public final class ExpressionTemplateArgument implements TemplateArgument { - public static final TemplateArgumentFactory FACTORY = new Factory(); + public static final TemplateArgumentFactory FACTORY = new Factory(); private final ArgumentString expression; private final ValueType valueType; @@ -50,10 +50,10 @@ public final class ExpressionTemplateArgument implements TemplateArgument { } } - private static class Factory implements TemplateArgumentFactory { + private static class Factory implements TemplateArgumentFactory { @Override - public TemplateArgument create(Map arguments) { + public ExpressionTemplateArgument create(Map arguments) { return new ExpressionTemplateArgument( arguments.getOrDefault("expression", "").toString(), ValueType.valueOf(arguments.getOrDefault("value-type", "double").toString().toUpperCase(Locale.ROOT)) 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 07ff6b0c4..b6e3261fd 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,7 +7,7 @@ import java.util.Map; import java.util.function.Supplier; public final class ListTemplateArgument implements TemplateArgument { - public static final TemplateArgumentFactory FACTORY = new Factory(); + public static final TemplateArgumentFactory FACTORY = new Factory(); private final List value; private ListTemplateArgument(List value) { @@ -23,10 +23,10 @@ public final class ListTemplateArgument implements TemplateArgument { return this.value; } - private static class Factory implements TemplateArgumentFactory { + private static class Factory implements TemplateArgumentFactory { @Override - public TemplateArgument create(Map arguments) { + public ListTemplateArgument create(Map arguments) { Object list = arguments.getOrDefault("list", List.of()); return new ListTemplateArgument(castToListOrThrow(list, () -> new LocalizedResourceConfigException("warning.config.template.argument.list.invalid_type", list.getClass().getSimpleName()))); } 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 0d0ceadb1..ef3023718 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,7 +5,7 @@ import net.momirealms.craftengine.core.util.MiscUtils; import java.util.Map; public final class MapTemplateArgument implements TemplateArgument { - public static final TemplateArgumentFactory FACTORY = new Factory(); + public static final TemplateArgumentFactory FACTORY = new Factory(); private final Map value; private MapTemplateArgument(Map value) { @@ -25,10 +25,10 @@ public final class MapTemplateArgument implements TemplateArgument { return this.value; } - private static class Factory implements TemplateArgumentFactory { + private static class Factory implements TemplateArgumentFactory { @Override - public TemplateArgument create(Map arguments) { + public MapTemplateArgument create(Map arguments) { return new MapTemplateArgument(MiscUtils.castToMap(arguments.getOrDefault("map", Map.of()), false)); } } 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 6b013fd67..6552576a1 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,7 +4,7 @@ import java.util.Map; public final class NullTemplateArgument implements TemplateArgument { public static final NullTemplateArgument INSTANCE = new NullTemplateArgument(); - public static final TemplateArgumentFactory FACTORY = new Factory(); + public static final TemplateArgumentFactory FACTORY = new Factory(); private NullTemplateArgument() { } @@ -14,10 +14,10 @@ public final class NullTemplateArgument implements TemplateArgument { return null; } - private static class Factory implements TemplateArgumentFactory { + private static class Factory implements TemplateArgumentFactory { @Override - public TemplateArgument create(Map arguments) { + public NullTemplateArgument create(Map arguments) { return NullTemplateArgument.INSTANCE; } } 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 ebb3d8ab4..537181c4d 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 @@ -3,7 +3,7 @@ package net.momirealms.craftengine.core.plugin.config.template.argument; import java.util.Map; public final class ObjectTemplateArgument implements TemplateArgument { - public static final TemplateArgumentFactory FACTORY = new Factory(); + public static final TemplateArgumentFactory FACTORY = new Factory(); private final Object value; private ObjectTemplateArgument(Object value) { @@ -19,9 +19,9 @@ public final class ObjectTemplateArgument implements TemplateArgument { return this.value; } - private static class Factory implements TemplateArgumentFactory { + private static class Factory implements TemplateArgumentFactory { @Override - public TemplateArgument create(Map arguments) { + public ObjectTemplateArgument 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 d4d4f0c68..37f5d1701 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 @@ -3,7 +3,7 @@ package net.momirealms.craftengine.core.plugin.config.template.argument; import java.util.Map; public final class PlainStringTemplateArgument implements TemplateArgument { - public static final TemplateArgumentFactory FACTORY = new Factory(); + public static final TemplateArgumentFactory FACTORY = new Factory(); private final String value; private PlainStringTemplateArgument(String value) { @@ -23,9 +23,9 @@ public final class PlainStringTemplateArgument implements TemplateArgument { return this.value; } - private static class Factory implements TemplateArgumentFactory { + private static class Factory implements TemplateArgumentFactory { @Override - public TemplateArgument create(Map arguments) { + public PlainStringTemplateArgument 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 ae9875661..7307a0e2a 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,7 +6,7 @@ import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; public final class SelfIncreaseIntTemplateArgument implements TemplateArgument { - public static final TemplateArgumentFactory FACTORY = new Factory(); + public static final TemplateArgumentFactory FACTORY = new Factory(); private final int min; private final int max; private int current; @@ -61,10 +61,10 @@ public final class SelfIncreaseIntTemplateArgument implements TemplateArgument { return this.callCount; } - private static class Factory implements TemplateArgumentFactory { + private static class Factory implements TemplateArgumentFactory { @Override - public TemplateArgument create(Map arguments) { + public SelfIncreaseIntTemplateArgument create(Map arguments) { int from = ResourceConfigUtils.getAsInt(arguments.get("from"), "from"); int to = ResourceConfigUtils.getAsInt(arguments.get("to"), "to"); int step = ResourceConfigUtils.getAsInt(arguments.getOrDefault("step", 1), "step"); diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/TemplateArgumentFactory.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/TemplateArgumentFactory.java index a5976017a..ee633ec08 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/TemplateArgumentFactory.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/TemplateArgumentFactory.java @@ -2,7 +2,7 @@ package net.momirealms.craftengine.core.plugin.config.template.argument; import java.util.Map; -public interface TemplateArgumentFactory { +public interface TemplateArgumentFactory { - TemplateArgument create(Map arguments); + T create(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 index 047e662d3..97b94dc89 100644 --- 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 @@ -2,5 +2,5 @@ package net.momirealms.craftengine.core.plugin.config.template.argument; import net.momirealms.craftengine.core.util.Key; -public record TemplateArgumentType(Key id, TemplateArgumentFactory factory) { +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 b7c13cea5..e274c8e14 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,23 +10,23 @@ import java.util.List; import java.util.Map; public final class TemplateArguments { - 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); + 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() {} - public static TemplateArgumentType register(Key key, TemplateArgumentFactory factory) { - TemplateArgumentType type = new TemplateArgumentType(key, factory); - ((WritableRegistry) BuiltInRegistries.TEMPLATE_ARGUMENT_TYPE) + 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; } @@ -47,7 +47,7 @@ public final class TemplateArguments { return MapTemplateArgument.map(map); } else { Key key = Key.withDefaultNamespace(type0, Key.DEFAULT_NAMESPACE); - TemplateArgumentType argumentType = BuiltInRegistries.TEMPLATE_ARGUMENT_TYPE.getValue(key); + TemplateArgumentType argumentType = BuiltInRegistries.TEMPLATE_ARGUMENT_TYPE.getValue(key); if (argumentType == null) { throw new IllegalArgumentException("Unknown argument type: " + type); } 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 b6666d196..22e69728e 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,7 +8,7 @@ import java.util.Locale; import java.util.Map; public final class ToLowerCaseTemplateArgument implements TemplateArgument { - public static final TemplateArgumentFactory FACTORY = new Factory(); + public static final TemplateArgumentFactory FACTORY = new Factory(); private final String result; private ToLowerCaseTemplateArgument(String result) { @@ -28,10 +28,10 @@ public final class ToLowerCaseTemplateArgument implements TemplateArgument { return this.result; } - private static class Factory implements TemplateArgumentFactory { + private static class Factory implements TemplateArgumentFactory { @Override - public TemplateArgument create(Map arguments) { + public ToLowerCaseTemplateArgument create(Map arguments) { String text = ResourceConfigUtils.requireNonEmptyStringOrThrow(arguments.get("value"), "warning.config.template.argument.to_lower_case.missing_value"); String localeName = arguments.containsKey("locale") ? arguments.get("locale").toString() : null; Locale locale = localeName != null ? TranslationManager.parseLocale(localeName) : Locale.ROOT; 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 874046ba1..52148ffa8 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,7 +8,7 @@ import java.util.Locale; import java.util.Map; public final class ToUpperCaseTemplateArgument implements TemplateArgument { - public static final TemplateArgumentFactory FACTORY = new Factory(); + public static final TemplateArgumentFactory FACTORY = new Factory(); private final String result; private ToUpperCaseTemplateArgument(String result) { @@ -28,10 +28,10 @@ public final class ToUpperCaseTemplateArgument implements TemplateArgument { return this.result; } - private static class Factory implements TemplateArgumentFactory { + private static class Factory implements TemplateArgumentFactory { @Override - public TemplateArgument create(Map arguments) { + public ToUpperCaseTemplateArgument create(Map arguments) { String text = ResourceConfigUtils.requireNonEmptyStringOrThrow(arguments.get("value"), "warning.config.template.argument.to_upper_case.missing_value"); String localeName = arguments.containsKey("locale") ? arguments.get("locale").toString() : null; Locale locale = localeName != null ? TranslationManager.parseLocale(localeName) : Locale.ROOT; 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 c9084d3ec..34ea06f4f 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,7 +5,7 @@ import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; public final class WhenTemplateArgument implements TemplateArgument { - public static final TemplateArgumentFactory FACTORY = new Factory(); + public static final TemplateArgumentFactory FACTORY = new Factory(); private final TemplateArgument result; private WhenTemplateArgument(TemplateArgument result) { @@ -25,10 +25,10 @@ public final class WhenTemplateArgument implements TemplateArgument { return this.result.get(arguments); } - private static class Factory implements TemplateArgumentFactory { + private static class Factory implements TemplateArgumentFactory { @Override - public TemplateArgument create(Map arguments) { + public WhenTemplateArgument create(Map arguments) { String source = ResourceConfigUtils.getAsStringOrNull(arguments.get("source")); TemplateArgument fallback = TemplateArguments.fromObject(arguments.get("fallback")); if (source == null) { 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 806f31c72..d82457d84 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 @@ -7,7 +7,7 @@ import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; public record BinomialNumberProvider(NumberProvider trials, NumberProvider successProbability) implements NumberProvider { - public static final NumberProviderFactory FACTORY = new Factory(); + public static final NumberProviderFactory FACTORY = new Factory(); @Override public float getFloat(Context context) { @@ -33,10 +33,10 @@ public record BinomialNumberProvider(NumberProvider trials, NumberProvider succe return successCount; } - private static class Factory implements NumberProviderFactory { + private static class Factory implements NumberProviderFactory { @Override - public NumberProvider create(Map arguments) { + public BinomialNumberProvider create(Map arguments) { Object trials = ResourceConfigUtils.requireNonNullOrThrow(arguments.get("extra"), "warning.config.number.binomial.missing_extra"); Object successProbability = ResourceConfigUtils.requireNonNullOrThrow(arguments.get("probability"), "warning.config.number.binomial.missing_probability"); return new BinomialNumberProvider(NumberProviders.fromObject(trials), NumberProviders.fromObject(successProbability)); 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 94020ae72..fc9a1d108 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,7 +11,7 @@ import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; public record ExpressionNumberProvider(String expression) implements NumberProvider { - public static final NumberProviderFactory FACTORY = new Factory(); + public static final NumberProviderFactory FACTORY = new Factory(); @Override public float getFloat(Context context) { @@ -37,10 +37,10 @@ public record ExpressionNumberProvider(String expression) implements NumberProvi } } - private static class Factory implements NumberProviderFactory { + private static class Factory implements NumberProviderFactory { @Override - public NumberProvider create(Map arguments) { + public ExpressionNumberProvider create(Map arguments) { String value = ResourceConfigUtils.requireNonEmptyStringOrThrow(arguments.get("expression"), "warning.config.number.expression.missing_expression"); return new ExpressionNumberProvider(value); } 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 735d6f9ac..58999b761 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,7 +8,7 @@ import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; public record FixedNumberProvider(double value) implements NumberProvider { - public static final NumberProviderFactory FACTORY = new Factory(); + public static final NumberProviderFactory FACTORY = new Factory(); @Override public float getFloat(Context context) { @@ -24,10 +24,10 @@ public record FixedNumberProvider(double value) implements NumberProvider { return new FixedNumberProvider(value); } - private static class Factory implements NumberProviderFactory { + private static class Factory implements NumberProviderFactory { @Override - public NumberProvider create(Map arguments) { + public FixedNumberProvider create(Map arguments) { String plainOrExpression = ResourceConfigUtils.requireNonEmptyStringOrThrow(arguments.get("value"), "warning.config.number.fixed.missing_value"); try { double value = Double.parseDouble(plainOrExpression); 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 8a0319801..1aa700f68 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,7 +9,7 @@ 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 NumberProviderFactory FACTORY = new Factory(); + public static final NumberProviderFactory FACTORY = new Factory(); public GaussianNumberProvider(double min, double max, double mean, double stdDev, int maxAttempts) { this.min = min; @@ -51,10 +51,10 @@ public record GaussianNumberProvider(double min, double max, double mean, double return MiscUtils.clamp(this.mean, this.min, this.max); } - private static class Factory implements NumberProviderFactory { + private static class Factory implements NumberProviderFactory { @Override - public NumberProvider create(Map arguments) { + public GaussianNumberProvider create(Map arguments) { double min = ResourceConfigUtils.getAsDouble(ResourceConfigUtils.requireNonNullOrThrow(arguments.get("min"), "warning.config.number.gaussian.missing_min"), "min"); double max = ResourceConfigUtils.getAsDouble(ResourceConfigUtils.requireNonNullOrThrow(arguments.get("max"), "warning.config.number.gaussian.missing_max"), "max"); double mean = ResourceConfigUtils.getAsDouble(arguments.getOrDefault("mean", (min + max) / 2.0), "mean"); diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/number/NumberProviderFactory.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/number/NumberProviderFactory.java index 3d557362a..a7dfd6ec4 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/number/NumberProviderFactory.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/number/NumberProviderFactory.java @@ -2,7 +2,7 @@ package net.momirealms.craftengine.core.plugin.context.number; import java.util.Map; -public interface NumberProviderFactory { +public interface NumberProviderFactory { - NumberProvider create(Map args); + T create(Map args); } 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 index c33392cc1..627da5984 100644 --- 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 @@ -2,5 +2,5 @@ package net.momirealms.craftengine.core.plugin.context.number; import net.momirealms.craftengine.core.util.Key; -public record NumberProviderType(Key id, NumberProviderFactory factory) { +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 27721bc9e..c9695ed97 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,18 +11,18 @@ import net.momirealms.craftengine.core.util.ResourceKey; import java.util.Map; public final class NumberProviders { - 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); + 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() {} - public static NumberProviderType register(Key key, NumberProviderFactory factory) { - NumberProviderType type = new NumberProviderType(key, factory); - ((WritableRegistry) BuiltInRegistries.NUMBER_PROVIDER_TYPE) + 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; } @@ -34,7 +34,7 @@ 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); - NumberProviderType providerType = BuiltInRegistries.NUMBER_PROVIDER_TYPE.getValue(key); + NumberProviderType providerType = BuiltInRegistries.NUMBER_PROVIDER_TYPE.getValue(key); if (providerType == null) { throw new LocalizedResourceConfigException("warning.config.number.invalid_type", type); } 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 5566228fe..3be31aff3 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,7 +7,7 @@ import net.momirealms.craftengine.core.util.ResourceConfigUtils; import java.util.Map; public record UniformNumberProvider(NumberProvider min, NumberProvider max) implements NumberProvider { - public static final NumberProviderFactory FACTORY = new Factory(); + public static final NumberProviderFactory FACTORY = new Factory(); @Override public int getInt(Context context) { @@ -24,10 +24,10 @@ public record UniformNumberProvider(NumberProvider min, NumberProvider max) impl return RandomUtils.generateRandomFloat(this.min.getFloat(context), this.max.getFloat(context)); } - private static class Factory implements NumberProviderFactory { + private static class Factory implements NumberProviderFactory { @Override - public NumberProvider create(Map arguments) { + public UniformNumberProvider create(Map arguments) { Object min = ResourceConfigUtils.requireNonNullOrThrow(arguments.get("min"), "warning.config.number.uniform.missing_min"); Object max = ResourceConfigUtils.requireNonNullOrThrow(arguments.get("max"), "warning.config.number.uniform.missing_max"); return new UniformNumberProvider(NumberProviders.fromObject(min), NumberProviders.fromObject(max)); diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/network/ModPacketType.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/network/ModPacketType.java new file mode 100644 index 000000000..24525f8ab --- /dev/null +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/network/ModPacketType.java @@ -0,0 +1,8 @@ +package net.momirealms.craftengine.core.plugin.network; + +import net.momirealms.craftengine.core.plugin.network.codec.NetworkCodec; +import net.momirealms.craftengine.core.util.FriendlyByteBuf; +import net.momirealms.craftengine.core.util.Key; + +public record ModPacketType(Key id, NetworkCodec codec) { +} 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 cafcff5ab..1f643f31d 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 @@ -1,6 +1,7 @@ package net.momirealms.craftengine.core.registry; import net.momirealms.craftengine.core.block.CustomBlock; +import net.momirealms.craftengine.core.block.behavior.BlockBehavior; import net.momirealms.craftengine.core.block.behavior.BlockBehaviorType; import net.momirealms.craftengine.core.block.entity.BlockEntity; import net.momirealms.craftengine.core.block.entity.BlockEntityType; @@ -13,6 +14,7 @@ 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.ItemBehavior; import net.momirealms.craftengine.core.item.behavior.ItemBehaviorType; import net.momirealms.craftengine.core.item.equipment.Equipment; import net.momirealms.craftengine.core.item.equipment.EquipmentType; @@ -28,20 +30,31 @@ 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.LootFunctionType; +import net.momirealms.craftengine.core.loot.function.formula.Formula; 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.Resolution; import net.momirealms.craftengine.core.pack.conflict.resolution.ResolutionType; +import net.momirealms.craftengine.core.pack.host.ResourcePackHost; import net.momirealms.craftengine.core.pack.host.ResourcePackHostType; +import net.momirealms.craftengine.core.pack.model.definition.ItemModel; import net.momirealms.craftengine.core.pack.model.definition.ItemModelType; +import net.momirealms.craftengine.core.pack.model.definition.condition.ConditionProperty; import net.momirealms.craftengine.core.pack.model.definition.condition.ConditionPropertyType; +import net.momirealms.craftengine.core.pack.model.definition.rangedisptach.RangeDispatchProperty; import net.momirealms.craftengine.core.pack.model.definition.rangedisptach.RangeDispatchPropertyType; +import net.momirealms.craftengine.core.pack.model.definition.select.SelectProperty; import net.momirealms.craftengine.core.pack.model.definition.select.SelectPropertyType; +import net.momirealms.craftengine.core.pack.model.definition.special.SpecialModel; import net.momirealms.craftengine.core.pack.model.definition.special.SpecialModelType; +import net.momirealms.craftengine.core.pack.model.definition.tint.Tint; import net.momirealms.craftengine.core.pack.model.definition.tint.TintType; +import net.momirealms.craftengine.core.plugin.config.template.argument.TemplateArgument; 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.FunctionType; +import net.momirealms.craftengine.core.plugin.context.number.NumberProvider; 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; @@ -51,26 +64,26 @@ import net.momirealms.craftengine.core.util.ResourceKey; public final class BuiltInRegistries { public static final Registry BLOCK = createDynamicBoundRegistry(Registries.BLOCK, 512); - public static final Registry BLOCK_BEHAVIOR_TYPE = createConstantBoundRegistry(Registries.BLOCK_BEHAVIOR_TYPE, 64); + 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> ITEM_BEHAVIOR_TYPE = createConstantBoundRegistry(Registries.ITEM_BEHAVIOR_TYPE, 64); 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); - 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); - 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> NUMBER_PROVIDER_TYPE = createConstantBoundRegistry(Registries.NUMBER_PROVIDER_TYPE, 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); + 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_SERIALIZER, 16); - public static final Registry FORMULA_TYPE = createConstantBoundRegistry(Registries.FORMULA_TYPE, 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_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> RESOLUTION_TYPE = createConstantBoundRegistry(Registries.RESOLUTION_TYPE, 16); + 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); 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 e07e4292d..24ce76c49 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 @@ -1,6 +1,7 @@ package net.momirealms.craftengine.core.registry; import net.momirealms.craftengine.core.block.CustomBlock; +import net.momirealms.craftengine.core.block.behavior.BlockBehavior; import net.momirealms.craftengine.core.block.behavior.BlockBehaviorType; import net.momirealms.craftengine.core.block.entity.BlockEntity; import net.momirealms.craftengine.core.block.entity.BlockEntityType; @@ -13,6 +14,7 @@ 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.ItemBehavior; import net.momirealms.craftengine.core.item.behavior.ItemBehaviorType; import net.momirealms.craftengine.core.item.equipment.Equipment; import net.momirealms.craftengine.core.item.equipment.EquipmentType; @@ -28,20 +30,31 @@ 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.LootFunctionType; +import net.momirealms.craftengine.core.loot.function.formula.Formula; 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.Resolution; import net.momirealms.craftengine.core.pack.conflict.resolution.ResolutionType; +import net.momirealms.craftengine.core.pack.host.ResourcePackHost; import net.momirealms.craftengine.core.pack.host.ResourcePackHostType; +import net.momirealms.craftengine.core.pack.model.definition.ItemModel; import net.momirealms.craftengine.core.pack.model.definition.ItemModelType; +import net.momirealms.craftengine.core.pack.model.definition.condition.ConditionProperty; import net.momirealms.craftengine.core.pack.model.definition.condition.ConditionPropertyType; +import net.momirealms.craftengine.core.pack.model.definition.rangedisptach.RangeDispatchProperty; import net.momirealms.craftengine.core.pack.model.definition.rangedisptach.RangeDispatchPropertyType; +import net.momirealms.craftengine.core.pack.model.definition.select.SelectProperty; import net.momirealms.craftengine.core.pack.model.definition.select.SelectPropertyType; +import net.momirealms.craftengine.core.pack.model.definition.special.SpecialModel; import net.momirealms.craftengine.core.pack.model.definition.special.SpecialModelType; +import net.momirealms.craftengine.core.pack.model.definition.tint.Tint; import net.momirealms.craftengine.core.pack.model.definition.tint.TintType; +import net.momirealms.craftengine.core.plugin.config.template.argument.TemplateArgument; 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.FunctionType; +import net.momirealms.craftengine.core.plugin.context.number.NumberProvider; 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; @@ -57,24 +70,24 @@ public final class Registries { 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> 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>> 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")); 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_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")); - 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>> NUMBER_PROVIDER_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("number_provider_type")); + 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")); + 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_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>> 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_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>> RESOLUTION_TYPE = ResourceKey.create(ROOT_REGISTRY, Key.withDefaultNamespace("resolution_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"));