Skip to content

Commit d27c153

Browse files
committed
Clean up file-only configs
1 parent ebbd73f commit d27c153

2 files changed

Lines changed: 61 additions & 48 deletions

File tree

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package com.terraformersmc.modmenu.config;
2+
3+
import java.lang.annotation.ElementType;
4+
import java.lang.annotation.Retention;
5+
import java.lang.annotation.RetentionPolicy;
6+
import java.lang.annotation.Target;
7+
8+
@Retention(RetentionPolicy.RUNTIME)
9+
@Target(ElementType.FIELD)
10+
public @interface FileOnlyConfig {
11+
}

src/main/java/com/terraformersmc/modmenu/config/ModMenuConfig.java

Lines changed: 50 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -21,44 +21,58 @@ public class ModMenuConfig {
2121
public static final BooleanConfigOption COUNT_LIBRARIES = new BooleanConfigOption("count_libraries", true);
2222
public static final BooleanConfigOption COMPACT_LIST = new BooleanConfigOption("compact_list", false);
2323
public static final BooleanConfigOption COUNT_CHILDREN = new BooleanConfigOption("count_children", true);
24-
public static final EnumConfigOption<TitleMenuButtonStyle> MODS_BUTTON_STYLE = new EnumConfigOption<>("mods_button_style", TitleMenuButtonStyle.CLASSIC);
25-
public static final EnumConfigOption<GameMenuButtonStyle> GAME_MENU_BUTTON_STYLE = new EnumConfigOption<>("game_menu_button_style", GameMenuButtonStyle.REPLACE_BUGS);
24+
public static final EnumConfigOption<TitleMenuButtonStyle> MODS_BUTTON_STYLE = new EnumConfigOption<>(
25+
"mods_button_style",
26+
TitleMenuButtonStyle.CLASSIC);
27+
public static final EnumConfigOption<GameMenuButtonStyle> GAME_MENU_BUTTON_STYLE = new EnumConfigOption<>(
28+
"game_menu_button_style",
29+
GameMenuButtonStyle.REPLACE_BUGS);
2630
public static final BooleanConfigOption COUNT_HIDDEN_MODS = new BooleanConfigOption("count_hidden_mods", true);
27-
public static final EnumConfigOption<ModCountLocation> MOD_COUNT_LOCATION = new EnumConfigOption<>("mod_count_location", ModCountLocation.TITLE_SCREEN);
31+
public static final EnumConfigOption<ModCountLocation> MOD_COUNT_LOCATION = new EnumConfigOption<>(
32+
"mod_count_location",
33+
ModCountLocation.TITLE_SCREEN);
2834
public static final BooleanConfigOption HIDE_MOD_LINKS = new BooleanConfigOption("hide_mod_links", false);
2935
public static final BooleanConfigOption SHOW_LIBRARIES = new BooleanConfigOption("show_libraries", false);
3036
public static final BooleanConfigOption HIDE_MOD_LICENSE = new BooleanConfigOption("hide_mod_license", false);
3137
public static final BooleanConfigOption HIDE_BADGES = new BooleanConfigOption("hide_badges", false);
3238
public static final BooleanConfigOption HIDE_MOD_CREDITS = new BooleanConfigOption("hide_mod_credits", false);
3339
public static final BooleanConfigOption EASTER_EGGS = new BooleanConfigOption("easter_eggs", true);
34-
public static final BooleanConfigOption MODIFY_TITLE_SCREEN = new BooleanConfigOption("modify_title_screen", true);
35-
public static final BooleanConfigOption MODIFY_GAME_MENU = new BooleanConfigOption("modify_game_menu", true);
36-
public static final BooleanConfigOption HIDE_CONFIG_BUTTONS = new BooleanConfigOption("hide_config_buttons", false);
3740
public static final BooleanConfigOption RANDOM_JAVA_COLORS = new BooleanConfigOption("random_java_colors", false);
3841
public static final BooleanConfigOption TRANSLATE_NAMES = new BooleanConfigOption("translate_names", true);
39-
public static final BooleanConfigOption TRANSLATE_DESCRIPTIONS = new BooleanConfigOption("translate_descriptions", true);
40-
public static final BooleanConfigOption CONFIG_MODE = new BooleanConfigOption("config_mode", false);
41-
public static final BooleanConfigOption DISABLE_DRAG_AND_DROP = new BooleanConfigOption("disable_drag_and_drop", false);
42-
public static final StringSetConfigOption HIDDEN_MODS = new StringSetConfigOption("hidden_mods", new HashSet<>());
43-
public static final StringSetConfigOption HIDDEN_CONFIGS = new StringSetConfigOption("hidden_configs", new HashSet<>());
44-
public static final StringSetConfigOption DISABLE_UPDATE_CHECKER = new StringSetConfigOption("disable_update_checker", new HashSet<>());
42+
public static final BooleanConfigOption TRANSLATE_DESCRIPTIONS = new BooleanConfigOption("translate_descriptions",
43+
true);
4544
public static final BooleanConfigOption UPDATE_CHECKER = new BooleanConfigOption("update_checker", true);
4645
public static final BooleanConfigOption BUTTON_UPDATE_BADGE = new BooleanConfigOption("button_update_badge", true);
47-
public static final EnumConfigOption<UpdateChannel> UPDATE_CHANNEL = new EnumConfigOption<>("update_channel", UpdateChannel.RELEASE);
46+
public static final EnumConfigOption<UpdateChannel> UPDATE_CHANNEL = new EnumConfigOption<>("update_channel",
47+
UpdateChannel.RELEASE);
4848
public static final BooleanConfigOption QUICK_CONFIGURE = new BooleanConfigOption("quick_configure", true);
4949

50+
@FileOnlyConfig
51+
public static final BooleanConfigOption MODIFY_TITLE_SCREEN = new BooleanConfigOption("modify_title_screen", true);
52+
@FileOnlyConfig
53+
public static final BooleanConfigOption MODIFY_GAME_MENU = new BooleanConfigOption("modify_game_menu", true);
54+
@FileOnlyConfig
55+
public static final BooleanConfigOption HIDE_CONFIG_BUTTONS = new BooleanConfigOption("hide_config_buttons", false);
56+
@FileOnlyConfig
57+
public static final BooleanConfigOption CONFIG_MODE = new BooleanConfigOption("config_mode", false);
58+
@FileOnlyConfig
59+
public static final BooleanConfigOption DISABLE_DRAG_AND_DROP = new BooleanConfigOption("disable_drag_and_drop",
60+
false);
61+
@FileOnlyConfig
62+
public static final StringSetConfigOption HIDDEN_MODS = new StringSetConfigOption("hidden_mods", new HashSet<>());
63+
@FileOnlyConfig
64+
public static final StringSetConfigOption HIDDEN_CONFIGS = new StringSetConfigOption("hidden_configs",
65+
new HashSet<>());
66+
@FileOnlyConfig
67+
public static final StringSetConfigOption DISABLE_UPDATE_CHECKER = new StringSetConfigOption(
68+
"disable_update_checker",
69+
new HashSet<>());
70+
5071
public static SimpleOption<?>[] asOptions() {
5172
ArrayList<SimpleOption<?>> options = new ArrayList<>();
5273
for (Field field : ModMenuConfig.class.getDeclaredFields()) {
53-
if (Modifier.isStatic(field.getModifiers())
54-
&& Modifier.isFinal(field.getModifiers())
55-
&& OptionConvertable.class.isAssignableFrom(field.getType())
56-
&& !field.getName().equals("HIDE_CONFIG_BUTTONS")
57-
&& !field.getName().equals("MODIFY_TITLE_SCREEN")
58-
&& !field.getName().equals("MODIFY_GAME_MENU")
59-
&& !field.getName().equals("CONFIG_MODE")
60-
&& !field.getName().equals("DISABLE_DRAG_AND_DROP")
61-
) {
74+
if (Modifier.isStatic(field.getModifiers()) && Modifier.isFinal(field.getModifiers()) && OptionConvertable.class.isAssignableFrom(
75+
field.getType()) && !field.isAnnotationPresent(FileOnlyConfig.class)) {
6276
try {
6377
options.add(((OptionConvertable) field.get(null)).asOption());
6478
} catch (IllegalAccessException e) {
@@ -70,10 +84,9 @@ public static SimpleOption<?>[] asOptions() {
7084
}
7185

7286
public enum Sorting {
73-
@SerializedName("ascending")
74-
ASCENDING(Comparator.comparing(mod -> mod.getTranslatedName().toLowerCase(Locale.ROOT))),
75-
@SerializedName("descending")
76-
DESCENDING(ASCENDING.getComparator().reversed());
87+
@SerializedName("ascending") ASCENDING(Comparator.comparing(mod -> mod.getTranslatedName()
88+
.toLowerCase(Locale.ROOT))),
89+
@SerializedName("descending") DESCENDING(ASCENDING.getComparator().reversed());
7790

7891
Comparator<Mod> comparator;
7992

@@ -87,14 +100,10 @@ public Comparator<Mod> getComparator() {
87100
}
88101

89102
public enum ModCountLocation {
90-
@SerializedName("title_screen")
91-
TITLE_SCREEN(true, false),
92-
@SerializedName("mods_button")
93-
MODS_BUTTON(false, true),
94-
@SerializedName("title_screen_and_mods_button")
95-
TITLE_SCREEN_AND_MODS_BUTTON(true, true),
96-
@SerializedName("none")
97-
NONE(false, false);
103+
@SerializedName("title_screen") TITLE_SCREEN(true, false),
104+
@SerializedName("mods_button") MODS_BUTTON(false, true),
105+
@SerializedName("title_screen_and_mods_button") TITLE_SCREEN_AND_MODS_BUTTON(true, true),
106+
@SerializedName("none") NONE(false, false);
98107

99108
private final boolean titleScreen, modsButton;
100109

@@ -113,22 +122,15 @@ public boolean isOnModsButton() {
113122
}
114123

115124
public enum TitleMenuButtonStyle {
116-
@SerializedName("classic")
117-
CLASSIC(),
118-
@SerializedName("replace_realms")
119-
REPLACE_REALMS(),
120-
@SerializedName("shrink")
121-
SHRINK(),
122-
@SerializedName("icon")
123-
ICON();
125+
@SerializedName("classic") CLASSIC(),
126+
@SerializedName("replace_realms") REPLACE_REALMS(),
127+
@SerializedName("shrink") SHRINK(),
128+
@SerializedName("icon") ICON();
124129
}
125130

126131
public enum GameMenuButtonStyle {
127-
@SerializedName("replace_bugs")
128-
REPLACE_BUGS,
129-
@SerializedName("below_bugs")
130-
BELOW_BUGS,
131-
@SerializedName("icon")
132-
ICON;
132+
@SerializedName("replace_bugs") REPLACE_BUGS,
133+
@SerializedName("below_bugs") BELOW_BUGS,
134+
@SerializedName("icon") ICON;
133135
}
134136
}

0 commit comments

Comments
 (0)