1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
|
package at.hannibal2.skyhanni.config.features;
import at.hannibal2.skyhanni.config.FeatureToggle;
import at.hannibal2.skyhanni.config.commands.Commands;
import at.hannibal2.skyhanni.config.core.config.Position;
import at.hannibal2.skyhanni.data.GuiEditManager;
import com.google.gson.annotations.Expose;
import io.github.moulberry.moulconfig.annotations.Accordion;
import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean;
import io.github.moulberry.moulconfig.annotations.ConfigEditorButton;
import io.github.moulberry.moulconfig.annotations.ConfigEditorKeybind;
import io.github.moulberry.moulconfig.annotations.ConfigEditorSlider;
import io.github.moulberry.moulconfig.annotations.ConfigEditorText;
import io.github.moulberry.moulconfig.annotations.ConfigOption;
import io.github.moulberry.moulconfig.observer.Property;
import org.lwjgl.input.Keyboard;
public class GUIConfig {
@ConfigOption(name = "Edit GUI Locations", desc = "Change the position of SkyHanni's overlays.")
@ConfigEditorButton(buttonText = "Edit")
public Runnable positions = GuiEditManager::openGuiPositionEditor;
@Expose
@ConfigOption(name = "Open Hotkey", desc = "Press this key to open the GUI Editor.")
@ConfigEditorKeybind(defaultKey = Keyboard.KEY_NONE)
public int keyBindOpen = Keyboard.KEY_NONE;
@Expose
@ConfigOption(name = "Global GUI Scale", desc = "Globally scale all SkyHanni GUIs.")
@ConfigEditorSlider(minValue = 0.1F, maxValue = 10, minStep = 0.05F)
public float globalScale = 1F;
@Expose
@ConfigOption(name = "Modify Visual Words", desc = "")
@Accordion
public ModifyWords modifyWords = new ModifyWords();
public static class ModifyWords {
@Expose
@ConfigOption(name = "Enabled", desc = "Enables replacing all instances of a word or phrase with another word or phrase.")
@ConfigEditorBoolean
@FeatureToggle
public boolean enabled = true;
@Expose
@ConfigOption(name = "Work Outside SkyBlock", desc = "Allows modifying visual words anywhere on Hypixel.")
@ConfigEditorBoolean
@FeatureToggle
public boolean workOutside = false;
@ConfigOption(name = "Open Config", desc = "Opens the menu to setup the visual words.\n§eCommand: /shwords")
@ConfigEditorButton(buttonText = "Open")
public Runnable open = Commands::openVisualWords;
}
@Expose
@ConfigOption(name = "Custom Text Box", desc = "")
@Accordion
public TextBoxConfig customTextBox = new TextBoxConfig();
public static class TextBoxConfig {
@Expose
@ConfigOption(name = "Enabled", desc = "Enables showing the textbox while in SkyBlock.")
@ConfigEditorBoolean
public boolean enabled = false;
@Expose
@ConfigOption(name = "Text", desc = "Enter text you want to display here.\n" +
"§eUse '&' as the colour code character.\n" +
"§eUse '\\n' as the line break character.")
@ConfigEditorText
public Property<String> text = Property.of("&aYour Text Here\\n&bYour new line here");
@Expose
public Position position = new Position(10, 80, false, true);
}
@Expose
@ConfigOption(name = "Real Time", desc = "Display the current computer time, a handy feature when playing in full-screen mode.")
@ConfigEditorBoolean
@FeatureToggle
public boolean realTime = false;
@Expose
@ConfigOption(name = "Real Time 12h Format", desc = "Display the current computer time in 12hr Format rather than 24h Format.")
@ConfigEditorBoolean
public boolean realTimeFormatToggle = false;
@Expose
public Position realTimePosition = new Position(10, 10, false, true);
@Expose
@ConfigOption(name = "In-Game Date", desc = "")
@Accordion
public InGameDateConfig inGameDateConfig = new InGameDateConfig();
public static class InGameDateConfig {
@Expose
@ConfigOption(
name = "Enabled",
desc = "Show the in-game date of SkyBlock (like in Apec, §ebut with mild delays§7).\n" +
"(Though this one includes the SkyBlock year!)"
)
@ConfigEditorBoolean
@FeatureToggle
public boolean enabled = false;
@Expose
public Position position = new Position(10, 10, false, true);
@Expose
@ConfigOption(
name = "Refresh Rate",
desc = "Change the time in seconds you would like to refresh the In-Game Date Display."
)
@ConfigEditorSlider(
minValue = 1,
maxValue = 60,
minStep = 1
)
public int RefreshSeconds = 10;
}
@Expose
@ConfigOption(name = "TPS Display", desc = "Show the TPS of the current server, like in Soopy.")
@ConfigEditorBoolean
@FeatureToggle
public boolean tpsDisplay = false;
@Expose
public Position tpsDisplayPosition = new Position(10, 10, false, true);
@Expose
@ConfigOption(name = "Config Button", desc = "Add a button to the pause menu to configure SkyHanni.")
@ConfigEditorBoolean
@FeatureToggle
public boolean configButtonOnPause = true;
}
|