修复config无法保存的问题
This commit is contained in:
parent
431fc24450
commit
ed448d3ad4
6 changed files with 47 additions and 28 deletions
|
@ -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 <T> void setAndSave(ModConfigSpec.ConfigValue<T> spec, T value) {
|
||||
spec.set(value);
|
||||
spec.save();
|
||||
}
|
||||
|
||||
public static <T> Consumer<T> save(ModConfigSpec.ConfigValue<T> spec) {
|
||||
return value -> setAndSave(spec, value);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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());
|
||||
}
|
||||
|
|
|
@ -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()
|
||||
);
|
||||
|
|
|
@ -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()
|
||||
);
|
||||
}
|
||||
|
|
|
@ -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()
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -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()
|
||||
);
|
||||
|
|
Loading…
Add table
Reference in a new issue