diff --git a/src/main/java/com/atsuishio/superbwarfare/compat/clothconfig/ClothConfigHelper.java b/src/main/java/com/atsuishio/superbwarfare/compat/clothconfig/ClothConfigHelper.java index 00b0a61d2..fc987656c 100644 --- a/src/main/java/com/atsuishio/superbwarfare/compat/clothconfig/ClothConfigHelper.java +++ b/src/main/java/com/atsuishio/superbwarfare/compat/clothconfig/ClothConfigHelper.java @@ -11,8 +11,11 @@ import net.minecraft.client.gui.screens.Screen; import net.minecraft.network.chat.Component; import net.neoforged.fml.ModLoadingContext; import net.neoforged.neoforge.client.gui.IConfigScreenFactory; +import net.neoforged.neoforge.common.ModConfigSpec; import org.jetbrains.annotations.Nullable; +import java.util.function.Consumer; + public class ClothConfigHelper { public static ConfigBuilder getConfigBuilder() { @@ -39,4 +42,13 @@ public class ClothConfigHelper { public static Screen getConfigScreen(@Nullable Screen parent) { return ClothConfigHelper.getConfigBuilder().setParentScreen(parent).build(); } + + public static void setAndSave(ModConfigSpec.ConfigValue spec, T value) { + spec.set(value); + spec.save(); + } + + public static Consumer save(ModConfigSpec.ConfigValue spec) { + return value -> setAndSave(spec, value); + } } diff --git a/src/main/java/com/atsuishio/superbwarfare/compat/clothconfig/client/DisplayClothConfig.java b/src/main/java/com/atsuishio/superbwarfare/compat/clothconfig/client/DisplayClothConfig.java index d1ae3d0d5..808df6b15 100644 --- a/src/main/java/com/atsuishio/superbwarfare/compat/clothconfig/client/DisplayClothConfig.java +++ b/src/main/java/com/atsuishio/superbwarfare/compat/clothconfig/client/DisplayClothConfig.java @@ -6,6 +6,8 @@ import me.shedaniel.clothconfig2.api.ConfigCategory; import me.shedaniel.clothconfig2.api.ConfigEntryBuilder; import net.minecraft.network.chat.Component; +import static com.atsuishio.superbwarfare.compat.clothconfig.ClothConfigHelper.save; + public class DisplayClothConfig { public static void init(ConfigBuilder root, ConfigEntryBuilder entryBuilder) { @@ -14,7 +16,7 @@ public class DisplayClothConfig { category.addEntry(entryBuilder .startBooleanToggle(Component.translatable("config.superbwarfare.client.display.enable_gun_lod"), DisplayConfig.ENABLE_GUN_LOD.get()) .setDefaultValue(false) - .setSaveConsumer(DisplayConfig.ENABLE_GUN_LOD::set) + .setSaveConsumer(save(DisplayConfig.ENABLE_GUN_LOD)) .setTooltip(Component.translatable("config.superbwarfare.client.display.enable_gun_lod.des")) .build() ); @@ -23,7 +25,7 @@ public class DisplayClothConfig { .startIntSlider(Component.translatable("config.superbwarfare.client.display.weapon_hud_x_offset"), DisplayConfig.WEAPON_HUD_X_OFFSET.get(), -1000, 1000) .setDefaultValue(0) - .setSaveConsumer(DisplayConfig.WEAPON_HUD_X_OFFSET::set) + .setSaveConsumer(save(DisplayConfig.WEAPON_HUD_X_OFFSET)) .setTooltip(Component.translatable("config.superbwarfare.client.display.weapon_hud_x_offset.des")) .build() ); @@ -32,7 +34,7 @@ public class DisplayClothConfig { .startIntSlider(Component.translatable("config.superbwarfare.client.display.weapon_hud_y_offset"), DisplayConfig.WEAPON_HUD_Y_OFFSET.get(), -1000, 1000) .setDefaultValue(0) - .setSaveConsumer(DisplayConfig.WEAPON_HUD_Y_OFFSET::set) + .setSaveConsumer(save(DisplayConfig.WEAPON_HUD_Y_OFFSET)) .setTooltip(Component.translatable("config.superbwarfare.client.display.weapon_hud_y_offset.des")) .build() ); @@ -40,7 +42,7 @@ public class DisplayClothConfig { category.addEntry(entryBuilder .startBooleanToggle(Component.translatable("config.superbwarfare.client.display.kill_indication"), DisplayConfig.KILL_INDICATION.get()) .setDefaultValue(true) - .setSaveConsumer(DisplayConfig.KILL_INDICATION::set) + .setSaveConsumer(save(DisplayConfig.KILL_INDICATION)) .setTooltip(Component.translatable("config.superbwarfare.client.display.kill_indication.des")) .build() ); @@ -48,7 +50,7 @@ public class DisplayClothConfig { category.addEntry(entryBuilder .startBooleanToggle(Component.translatable("config.superbwarfare.client.display.ammo_hud"), DisplayConfig.AMMO_HUD.get()) .setDefaultValue(true) - .setSaveConsumer(DisplayConfig.AMMO_HUD::set) + .setSaveConsumer(save(DisplayConfig.AMMO_HUD)) .setTooltip(Component.translatable("config.superbwarfare.client.display.ammo_hud.des")) .build() ); @@ -56,7 +58,7 @@ public class DisplayClothConfig { category.addEntry(entryBuilder .startBooleanToggle(Component.translatable("config.superbwarfare.client.display.vehicle_info"), DisplayConfig.VEHICLE_INFO.get()) .setDefaultValue(true) - .setSaveConsumer(DisplayConfig.VEHICLE_INFO::set) + .setSaveConsumer(save(DisplayConfig.VEHICLE_INFO)) .setTooltip(Component.translatable("config.superbwarfare.client.display.vehicle_info.des")) .build() ); @@ -64,7 +66,7 @@ public class DisplayClothConfig { category.addEntry(entryBuilder .startBooleanToggle(Component.translatable("config.superbwarfare.client.display.float_cross_hair"), DisplayConfig.FLOAT_CROSS_HAIR.get()) .setDefaultValue(true) - .setSaveConsumer(DisplayConfig.FLOAT_CROSS_HAIR::set) + .setSaveConsumer(save(DisplayConfig.FLOAT_CROSS_HAIR)) .setTooltip(Component.translatable("config.superbwarfare.client.display.float_cross_hair.des")) .build() ); @@ -72,7 +74,7 @@ public class DisplayClothConfig { category.addEntry(entryBuilder .startBooleanToggle(Component.translatable("config.superbwarfare.client.display.camera_rotate"), DisplayConfig.CAMERA_ROTATE.get()) .setDefaultValue(true) - .setSaveConsumer(DisplayConfig.CAMERA_ROTATE::set) + .setSaveConsumer(save(DisplayConfig.CAMERA_ROTATE)) .setTooltip(Component.translatable("config.superbwarfare.client.display.camera_rotate.des")) .build() ); @@ -80,7 +82,7 @@ public class DisplayClothConfig { category.addEntry(entryBuilder .startBooleanToggle(Component.translatable("config.superbwarfare.client.display.armor_plate_hud"), DisplayConfig.ARMOR_PLATE_HUD.get()) .setDefaultValue(true) - .setSaveConsumer(DisplayConfig.ARMOR_PLATE_HUD::set) + .setSaveConsumer(save(DisplayConfig.ARMOR_PLATE_HUD)) .setTooltip(Component.translatable("config.superbwarfare.client.display.armor_plate_hud.des")) .build() ); @@ -88,7 +90,7 @@ public class DisplayClothConfig { category.addEntry(entryBuilder .startBooleanToggle(Component.translatable("config.superbwarfare.client.display.stamina_hud"), DisplayConfig.STAMINA_HUD.get()) .setDefaultValue(true) - .setSaveConsumer(DisplayConfig.STAMINA_HUD::set) + .setSaveConsumer(save(DisplayConfig.STAMINA_HUD)) .setTooltip(Component.translatable("config.superbwarfare.client.display.stamina_hud.des")) .build() ); @@ -96,7 +98,7 @@ public class DisplayClothConfig { category.addEntry(entryBuilder .startBooleanToggle(Component.translatable("config.superbwarfare.client.display.dog_tag_name_visible"), DisplayConfig.DOG_TAG_NAME_VISIBLE.get()) .setDefaultValue(true) - .setSaveConsumer(DisplayConfig.DOG_TAG_NAME_VISIBLE::set) + .setSaveConsumer(save(DisplayConfig.DOG_TAG_NAME_VISIBLE)) .setTooltip(Component.translatable("config.superbwarfare.client.display.dog_tag_name_visible.des")) .build() ); @@ -104,7 +106,7 @@ public class DisplayClothConfig { category.addEntry(entryBuilder .startBooleanToggle(Component.translatable("config.superbwarfare.client.display.dog_tag_icon_visible"), DisplayConfig.DOG_TAG_ICON_VISIBLE.get()) .setDefaultValue(false) - .setSaveConsumer(DisplayConfig.DOG_TAG_ICON_VISIBLE::set) + .setSaveConsumer(save(DisplayConfig.DOG_TAG_ICON_VISIBLE)) .setTooltip(Component.translatable("config.superbwarfare.client.display.dog_tag_icon_visible.des")) .build() ); @@ -113,7 +115,7 @@ public class DisplayClothConfig { .startIntSlider(Component.translatable("config.superbwarfare.client.display.weapon_screen_shake"), DisplayConfig.WEAPON_SCREEN_SHAKE.get(), 0, 100) .setDefaultValue(100) - .setSaveConsumer(DisplayConfig.WEAPON_SCREEN_SHAKE::set) + .setSaveConsumer(save(DisplayConfig.WEAPON_SCREEN_SHAKE)) .setTooltip(Component.translatable("config.superbwarfare.client.display.weapon_screen_shake.des")) .build()); @@ -121,7 +123,7 @@ public class DisplayClothConfig { .startIntSlider(Component.translatable("config.superbwarfare.client.display.explosion_screen_shake"), DisplayConfig.EXPLOSION_SCREEN_SHAKE.get(), 0, 100) .setDefaultValue(100) - .setSaveConsumer(DisplayConfig.EXPLOSION_SCREEN_SHAKE::set) + .setSaveConsumer(save(DisplayConfig.EXPLOSION_SCREEN_SHAKE)) .setTooltip(Component.translatable("config.superbwarfare.client.display.explosion_screen_shake.des")) .build()); @@ -129,7 +131,7 @@ public class DisplayClothConfig { .startIntSlider(Component.translatable("config.superbwarfare.client.display.shock_screen_shake"), DisplayConfig.SHOCK_SCREEN_SHAKE.get(), 0, 100) .setDefaultValue(100) - .setSaveConsumer(DisplayConfig.SHOCK_SCREEN_SHAKE::set) + .setSaveConsumer(save(DisplayConfig.SHOCK_SCREEN_SHAKE)) .setTooltip(Component.translatable("config.superbwarfare.client.display.shock_screen_shake.des")) .build()); } diff --git a/src/main/java/com/atsuishio/superbwarfare/compat/clothconfig/client/KillMessageClothConfig.java b/src/main/java/com/atsuishio/superbwarfare/compat/clothconfig/client/KillMessageClothConfig.java index 352414577..53192632e 100644 --- a/src/main/java/com/atsuishio/superbwarfare/compat/clothconfig/client/KillMessageClothConfig.java +++ b/src/main/java/com/atsuishio/superbwarfare/compat/clothconfig/client/KillMessageClothConfig.java @@ -6,6 +6,8 @@ import me.shedaniel.clothconfig2.api.ConfigCategory; import me.shedaniel.clothconfig2.api.ConfigEntryBuilder; import net.minecraft.network.chat.Component; +import static com.atsuishio.superbwarfare.compat.clothconfig.ClothConfigHelper.save; + public class KillMessageClothConfig { public static void init(ConfigBuilder root, ConfigEntryBuilder entryBuilder) { @@ -14,7 +16,7 @@ public class KillMessageClothConfig { category.addEntry(entryBuilder .startBooleanToggle(Component.translatable("config.superbwarfare.client.kill_message.show_kill_message"), KillMessageConfig.SHOW_KILL_MESSAGE.get()) .setDefaultValue(false) - .setSaveConsumer(KillMessageConfig.SHOW_KILL_MESSAGE::set) + .setSaveConsumer(save(KillMessageConfig.SHOW_KILL_MESSAGE)) .setTooltip(Component.translatable("config.superbwarfare.client.kill_message.show_kill_message.des")) .build() ); @@ -24,7 +26,7 @@ public class KillMessageClothConfig { .setDefaultValue(10) .setMin(1) .setMax(20) - .setSaveConsumer(KillMessageConfig.KILL_MESSAGE_COUNT::set) + .setSaveConsumer(save(KillMessageConfig.KILL_MESSAGE_COUNT)) .setTooltip(Component.translatable("config.superbwarfare.client.kill_message.kill_message_count.des")) .build() ); @@ -44,7 +46,7 @@ public class KillMessageClothConfig { default -> Component.translatable("config.superbwarfare.client.kill_message.kill_message_position.left_top"); }) - .setSaveConsumer(KillMessageConfig.KILL_MESSAGE_POSITION::set) + .setSaveConsumer(save(KillMessageConfig.KILL_MESSAGE_POSITION)) .setTooltip(Component.translatable("config.superbwarfare.client.kill_message.kill_message_position.des")) .build() ); @@ -54,7 +56,7 @@ public class KillMessageClothConfig { .setDefaultValue(0) .setMin(-1000) .setMax(1000) - .setSaveConsumer(KillMessageConfig.KILL_MESSAGE_MARGIN_X::set) + .setSaveConsumer(save(KillMessageConfig.KILL_MESSAGE_MARGIN_X)) .setTooltip(Component.translatable("config.superbwarfare.client.kill_message.kill_message_margin_x.des")) .build() ); @@ -64,7 +66,7 @@ public class KillMessageClothConfig { .setDefaultValue(5) .setMin(-1000) .setMax(1000) - .setSaveConsumer(KillMessageConfig.KILL_MESSAGE_MARGIN_Y::set) + .setSaveConsumer(save(KillMessageConfig.KILL_MESSAGE_MARGIN_Y)) .setTooltip(Component.translatable("config.superbwarfare.client.kill_message.kill_message_margin_y.des")) .build() ); diff --git a/src/main/java/com/atsuishio/superbwarfare/compat/clothconfig/client/ReloadClothConfig.java b/src/main/java/com/atsuishio/superbwarfare/compat/clothconfig/client/ReloadClothConfig.java index 3f309d2ee..1700a9f11 100644 --- a/src/main/java/com/atsuishio/superbwarfare/compat/clothconfig/client/ReloadClothConfig.java +++ b/src/main/java/com/atsuishio/superbwarfare/compat/clothconfig/client/ReloadClothConfig.java @@ -6,6 +6,8 @@ import me.shedaniel.clothconfig2.api.ConfigCategory; import me.shedaniel.clothconfig2.api.ConfigEntryBuilder; import net.minecraft.network.chat.Component; +import static com.atsuishio.superbwarfare.compat.clothconfig.ClothConfigHelper.save; + public class ReloadClothConfig { public static void init(ConfigBuilder root, ConfigEntryBuilder entryBuilder) { @@ -14,7 +16,7 @@ public class ReloadClothConfig { category.addEntry(entryBuilder .startBooleanToggle(Component.translatable("config.superbwarfare.client.reload.left_click_reload"), ReloadConfig.LEFT_CLICK_RELOAD.get()) .setDefaultValue(true) - .setSaveConsumer(ReloadConfig.LEFT_CLICK_RELOAD::set) + .setSaveConsumer(save(ReloadConfig.LEFT_CLICK_RELOAD)) .setTooltip(Component.translatable("config.superbwarfare.client.reload.left_click_reload.des")).build() ); } diff --git a/src/main/java/com/atsuishio/superbwarfare/compat/clothconfig/client/VehicleControlClothConfig.java b/src/main/java/com/atsuishio/superbwarfare/compat/clothconfig/client/VehicleControlClothConfig.java index e6238b380..5ef23cff6 100644 --- a/src/main/java/com/atsuishio/superbwarfare/compat/clothconfig/client/VehicleControlClothConfig.java +++ b/src/main/java/com/atsuishio/superbwarfare/compat/clothconfig/client/VehicleControlClothConfig.java @@ -6,8 +6,9 @@ import me.shedaniel.clothconfig2.api.ConfigCategory; import me.shedaniel.clothconfig2.api.ConfigEntryBuilder; import net.minecraft.network.chat.Component; -public class VehicleControlClothConfig { +import static com.atsuishio.superbwarfare.compat.clothconfig.ClothConfigHelper.save; +public class VehicleControlClothConfig { public static void init(ConfigBuilder root, ConfigEntryBuilder entryBuilder) { ConfigCategory category = root.getOrCreateCategory(Component.translatable("config.superbwarfare.client.vehicle")); @@ -15,10 +16,8 @@ public class VehicleControlClothConfig { category.addEntry(entryBuilder .startBooleanToggle(Component.translatable("config.superbwarfare.client.vehicle.invert_aircraft_control"), VehicleControlConfig.INVERT_AIRCRAFT_CONTROL.get()) .setDefaultValue(true) - .setSaveConsumer(VehicleControlConfig.INVERT_AIRCRAFT_CONTROL::set) + .setSaveConsumer(save(VehicleControlConfig.INVERT_AIRCRAFT_CONTROL)) .setTooltip(Component.translatable("config.superbwarfare.client.vehicle.left_click_reload.des")).build() ); } - - } diff --git a/src/main/java/com/atsuishio/superbwarfare/compat/clothconfig/common/GameplayClothConfig.java b/src/main/java/com/atsuishio/superbwarfare/compat/clothconfig/common/GameplayClothConfig.java index a342ce01b..1a1ffd02a 100644 --- a/src/main/java/com/atsuishio/superbwarfare/compat/clothconfig/common/GameplayClothConfig.java +++ b/src/main/java/com/atsuishio/superbwarfare/compat/clothconfig/common/GameplayClothConfig.java @@ -6,6 +6,8 @@ import me.shedaniel.clothconfig2.api.ConfigCategory; import me.shedaniel.clothconfig2.api.ConfigEntryBuilder; import net.minecraft.network.chat.Component; +import static com.atsuishio.superbwarfare.compat.clothconfig.ClothConfigHelper.save; + public class GameplayClothConfig { public static void init(ConfigBuilder root, ConfigEntryBuilder entryBuilder) { @@ -14,7 +16,7 @@ public class GameplayClothConfig { category.addEntry(entryBuilder .startBooleanToggle(Component.translatable("config.superbwarfare.common.gameplay.respawn_reload"), GameplayConfig.RESPAWN_RELOAD.get()) .setDefaultValue(true) - .setSaveConsumer(GameplayConfig.RESPAWN_RELOAD::set) + .setSaveConsumer(save(GameplayConfig.RESPAWN_RELOAD)) .setTooltip(Component.translatable("config.superbwarfare.common.gameplay.respawn_reload.des")) .build() ); @@ -22,7 +24,7 @@ public class GameplayClothConfig { category.addEntry(entryBuilder .startBooleanToggle(Component.translatable("config.superbwarfare.common.gameplay.global_indication"), GameplayConfig.GLOBAL_INDICATION.get()) .setDefaultValue(false) - .setSaveConsumer(GameplayConfig.GLOBAL_INDICATION::set) + .setSaveConsumer(save(GameplayConfig.GLOBAL_INDICATION)) .setTooltip(Component.translatable("config.superbwarfare.common.gameplay.global_indication.des")) .build() ); @@ -30,7 +32,7 @@ public class GameplayClothConfig { category.addEntry(entryBuilder .startBooleanToggle(Component.translatable("config.superbwarfare.common.gameplay.respawn_auto_armor"), GameplayConfig.RESPAWN_AUTO_ARMOR.get()) .setDefaultValue(true) - .setSaveConsumer(GameplayConfig.RESPAWN_AUTO_ARMOR::set) + .setSaveConsumer(save(GameplayConfig.RESPAWN_AUTO_ARMOR)) .setTooltip(Component.translatable("config.superbwarfare.common.gameplay.respawn_auto_armor.des")) .build() );