From a42bb0507e870ff5b76f18bba1d9cf9f440d464a Mon Sep 17 00:00:00 2001 From: Cynthia Foxwell Date: Thu, 14 Mar 2024 19:55:37 -0600 Subject: [PATCH] Refactor config --- src/main/java/pm/c7/scout/Scout.java | 2 -- src/main/java/pm/c7/scout/ScoutConfig.java | 16 ++++++++++++++++ .../java/pm/c7/scout/config/ScoutConfig.java | 12 ------------ .../pm/c7/scout/config/ScoutConfigHandler.java | 17 ----------------- .../java/pm/c7/scout/mixin/BowItemMixin.java | 4 ++-- .../pm/c7/scout/mixin/PlayerEntityMixin.java | 4 ++-- src/main/java/pm/c7/scout/screen/BagSlot.java | 4 ++-- 7 files changed, 22 insertions(+), 37 deletions(-) create mode 100644 src/main/java/pm/c7/scout/ScoutConfig.java delete mode 100644 src/main/java/pm/c7/scout/config/ScoutConfig.java delete mode 100644 src/main/java/pm/c7/scout/config/ScoutConfigHandler.java diff --git a/src/main/java/pm/c7/scout/Scout.java b/src/main/java/pm/c7/scout/Scout.java index 00e4e52..898d9f7 100644 --- a/src/main/java/pm/c7/scout/Scout.java +++ b/src/main/java/pm/c7/scout/Scout.java @@ -12,7 +12,6 @@ import net.minecraft.util.Identifier; import org.quiltmc.loader.api.ModContainer; import org.quiltmc.qsl.base.api.entrypoint.ModInitializer; -import pm.c7.scout.config.ScoutConfigHandler; import pm.c7.scout.registry.ScoutItems; public class Scout implements ModInitializer { @@ -32,7 +31,6 @@ public class Scout implements ModInitializer { @Override public void onInitialize(ModContainer mod) { - new ScoutConfigHandler(); ScoutItems.init(); Registry.register(Registries.ITEM_GROUP, new Identifier(ScoutUtil.MOD_ID, "itemgroup"), ITEM_GROUP); } diff --git a/src/main/java/pm/c7/scout/ScoutConfig.java b/src/main/java/pm/c7/scout/ScoutConfig.java new file mode 100644 index 0000000..4b57ecb --- /dev/null +++ b/src/main/java/pm/c7/scout/ScoutConfig.java @@ -0,0 +1,16 @@ +package pm.c7.scout; + +import org.quiltmc.config.api.ReflectiveConfig; +import org.quiltmc.config.api.annotations.Comment; +import org.quiltmc.config.api.values.TrackedValue; +import org.quiltmc.loader.api.config.v2.QuiltConfig; + +public class ScoutConfig extends ReflectiveConfig { + public static final ScoutConfig CONFIG = QuiltConfig.create("", ScoutUtil.MOD_ID, ScoutConfig.class); + + @Comment("Allow shulker boxes to be placed in bags. Bags are already blacklisted from shulker boxes with no toggle.") + public final TrackedValue allowShulkers = this.value(true); + + @Comment("Allow bags to act as a quiver and pull arrows.") + public final TrackedValue useArrows = this.value(true); +} diff --git a/src/main/java/pm/c7/scout/config/ScoutConfig.java b/src/main/java/pm/c7/scout/config/ScoutConfig.java deleted file mode 100644 index ed8d5a5..0000000 --- a/src/main/java/pm/c7/scout/config/ScoutConfig.java +++ /dev/null @@ -1,12 +0,0 @@ -package pm.c7.scout.config; - -import org.quiltmc.config.api.WrappedConfig; -import org.quiltmc.config.api.annotations.Comment; - -public class ScoutConfig extends WrappedConfig { - @Comment("Allow shulker boxes to be placed in bags. Bags are already blacklisted from shulker boxes with no toggle.") - public final boolean allowShulkers = true; - - @Comment("Allow bags to act as a quiver and pull arrows.") - public final boolean useArrows = true; -} diff --git a/src/main/java/pm/c7/scout/config/ScoutConfigHandler.java b/src/main/java/pm/c7/scout/config/ScoutConfigHandler.java deleted file mode 100644 index 2e30566..0000000 --- a/src/main/java/pm/c7/scout/config/ScoutConfigHandler.java +++ /dev/null @@ -1,17 +0,0 @@ -package pm.c7.scout.config; - -import org.quiltmc.config.api.values.TrackedValue; -import org.quiltmc.loader.api.config.QuiltConfig; -import pm.c7.scout.ScoutUtil; - -import java.util.List; - -public class ScoutConfigHandler { - public static final ScoutConfig CONFIG = QuiltConfig.create("", ScoutUtil.MOD_ID, ScoutConfig.class); - - public ScoutConfigHandler() {} - - public static TrackedValue getConfigValue(String key) { - return CONFIG.getValue(List.of(key)); - } -} diff --git a/src/main/java/pm/c7/scout/mixin/BowItemMixin.java b/src/main/java/pm/c7/scout/mixin/BowItemMixin.java index 49570bb..56ebb8f 100644 --- a/src/main/java/pm/c7/scout/mixin/BowItemMixin.java +++ b/src/main/java/pm/c7/scout/mixin/BowItemMixin.java @@ -12,14 +12,14 @@ import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.LocalCapture; import pm.c7.scout.ScoutUtil; -import pm.c7.scout.config.ScoutConfigHandler; +import pm.c7.scout.ScoutConfig; import pm.c7.scout.item.BaseBagItem; @Mixin(BowItem.class) public class BowItemMixin { @Inject(method = "onStoppedUsing", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/World;playSound(Lnet/minecraft/entity/player/PlayerEntity;DDDLnet/minecraft/sound/SoundEvent;Lnet/minecraft/sound/SoundCategory;FF)V"), locals = LocalCapture.CAPTURE_FAILHARD) public void scout$arrowsFromBags(ItemStack stack, World world, LivingEntity user, int remainingUseTicks, CallbackInfo ci, PlayerEntity playerEntity, boolean bl, ItemStack itemStack, int maxTime, float f) { - if ((boolean) ScoutConfigHandler.getConfigValue("useArrows").value()) { + if (ScoutConfig.CONFIG.useArrows.value()) { boolean infinity = bl && itemStack.isOf(Items.ARROW); boolean hasRan = false; diff --git a/src/main/java/pm/c7/scout/mixin/PlayerEntityMixin.java b/src/main/java/pm/c7/scout/mixin/PlayerEntityMixin.java index 900b2b2..38fdc17 100644 --- a/src/main/java/pm/c7/scout/mixin/PlayerEntityMixin.java +++ b/src/main/java/pm/c7/scout/mixin/PlayerEntityMixin.java @@ -8,7 +8,7 @@ import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import org.spongepowered.asm.mixin.injection.callback.LocalCapture; import pm.c7.scout.ScoutUtil; -import pm.c7.scout.config.ScoutConfigHandler; +import pm.c7.scout.ScoutConfig; import pm.c7.scout.item.BaseBagItem; import java.util.function.Predicate; @@ -17,7 +17,7 @@ import java.util.function.Predicate; public class PlayerEntityMixin { @Inject(method = "getArrowType", at = @At(value = "INVOKE_ASSIGN", target = "Lnet/minecraft/item/RangedWeaponItem;getProjectiles()Ljava/util/function/Predicate;"), locals = LocalCapture.CAPTURE_FAILHARD, cancellable = true) public void scout$arrowsFromBags(ItemStack stack, CallbackInfoReturnable cir, Predicate predicate, ItemStack itemStack) { - if ((boolean) ScoutConfigHandler.getConfigValue("useArrows").value()) { + if (ScoutConfig.CONFIG.useArrows.value()) { var self = (PlayerEntity) (Object) this; var leftPouch = ScoutUtil.findBagItem(self, BaseBagItem.BagType.POUCH, false); var rightPouch = ScoutUtil.findBagItem(self, BaseBagItem.BagType.POUCH, true); diff --git a/src/main/java/pm/c7/scout/screen/BagSlot.java b/src/main/java/pm/c7/scout/screen/BagSlot.java index da1b815..564e0b3 100644 --- a/src/main/java/pm/c7/scout/screen/BagSlot.java +++ b/src/main/java/pm/c7/scout/screen/BagSlot.java @@ -6,7 +6,7 @@ import net.minecraft.inventory.Inventory; import net.minecraft.item.BlockItem; import net.minecraft.item.ItemStack; import net.minecraft.screen.slot.Slot; -import pm.c7.scout.config.ScoutConfigHandler; +import pm.c7.scout.ScoutConfig; import pm.c7.scout.item.BaseBagItem; public class BagSlot extends Slot { @@ -38,7 +38,7 @@ public class BagSlot extends Slot { if (stack.getItem() instanceof BlockItem blockItem) { if (blockItem.getBlock() instanceof ShulkerBoxBlock) - return (boolean) ScoutConfigHandler.getConfigValue("allowShulkers").value(); + return enabled && inventory != null && ScoutConfig.CONFIG.allowShulkers.value(); } return enabled && inventory != null;