aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/config/features
diff options
context:
space:
mode:
authorHiZe <super@hize.be>2024-02-24 17:25:08 +0100
committerGitHub <noreply@github.com>2024-02-24 17:25:08 +0100
commit8dfbcf2a67f0a8207e49d8a97e18c4e80f8fbb96 (patch)
tree786c4cf47b06f7ac2990e2a62967492d0a5511a5 /src/main/java/at/hannibal2/skyhanni/config/features
parentbc239065f94548814717e2d07588696ee261c1e3 (diff)
downloadskyhanni-8dfbcf2a67f0a8207e49d8a97e18c4e80f8fbb96.tar.gz
skyhanni-8dfbcf2a67f0a8207e49d8a97e18c4e80f8fbb96.tar.bz2
skyhanni-8dfbcf2a67f0a8207e49d8a97e18c4e80f8fbb96.zip
Feature: Skill progress display (#957)
Co-authored-by: Thunderblade73 <gaidermarkus@gmail.com> Co-authored-by: superhize <superhize@gmail.com> Co-authored-by: Cal <cwolfson58@gmail.com> Co-authored-by: hannibal2 <24389977+hannibal00212@users.noreply.github.com>
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/config/features')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/features/skillprogress/AllSkillDisplayConfig.java37
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/features/skillprogress/CustomGoalConfig.java39
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/features/skillprogress/SkillETADisplayConfig.java44
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/features/skillprogress/SkillOverflowConfig.java46
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/features/skillprogress/SkillProgressBarConfig.java107
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/features/skillprogress/SkillProgressConfig.java117
6 files changed, 390 insertions, 0 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/skillprogress/AllSkillDisplayConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/skillprogress/AllSkillDisplayConfig.java
new file mode 100644
index 000000000..081a022db
--- /dev/null
+++ b/src/main/java/at/hannibal2/skyhanni/config/features/skillprogress/AllSkillDisplayConfig.java
@@ -0,0 +1,37 @@
+package at.hannibal2.skyhanni.config.features.skillprogress;
+
+import at.hannibal2.skyhanni.config.FeatureToggle;
+import at.hannibal2.skyhanni.features.skillprogress.SkillType;
+import com.google.gson.annotations.Expose;
+import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean;
+import io.github.moulberry.moulconfig.annotations.ConfigEditorDraggableList;
+import io.github.moulberry.moulconfig.annotations.ConfigOption;
+import io.github.moulberry.moulconfig.observer.Property;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+public class AllSkillDisplayConfig {
+
+ @Expose
+ @ConfigOption(name = "Enabled", desc = "Show a display with all skills progress.")
+ @ConfigEditorBoolean
+ @FeatureToggle
+ public Property<Boolean> enabled = Property.of(false);
+
+ @Expose
+ @ConfigOption(name = "Text", desc = "Choose what skills you want to see in the display.")
+ @ConfigEditorDraggableList
+ public List<SkillType> skillEntryList = new ArrayList<>(Arrays.asList(
+ SkillType.COMBAT,
+ SkillType.FARMING,
+ SkillType.FISHING,
+ SkillType.MINING,
+ SkillType.FORAGING,
+ SkillType.ENCHANTING,
+ SkillType.ALCHEMY,
+ SkillType.CARPENTRY,
+ SkillType.TAMING
+ ));
+}
diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/skillprogress/CustomGoalConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/skillprogress/CustomGoalConfig.java
new file mode 100644
index 000000000..9d645c8c7
--- /dev/null
+++ b/src/main/java/at/hannibal2/skyhanni/config/features/skillprogress/CustomGoalConfig.java
@@ -0,0 +1,39 @@
+package at.hannibal2.skyhanni.config.features.skillprogress;
+
+import com.google.gson.annotations.Expose;
+import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean;
+import io.github.moulberry.moulconfig.annotations.ConfigOption;
+
+public class CustomGoalConfig {
+
+ @Expose
+ @ConfigOption(name = "Display", desc = "Enable the custom goal in the progress display.")
+ @ConfigEditorBoolean
+ public boolean enableInDisplay = true;
+
+ @Expose
+ @ConfigOption(name = "All Skill Display", desc = "Enable the custom goal in the all skill display.")
+ @ConfigEditorBoolean
+ public boolean enableInAllDisplay = false;
+
+ @Expose
+ @ConfigOption(name = "ETA Display", desc = "Enable the custom goal in the ETA skill display.")
+ @ConfigEditorBoolean
+ public boolean enableInETADisplay = false;
+
+ @Expose
+ @ConfigOption(name = "Progress Bar", desc = "Enable the custom goal in the progress bar.")
+ @ConfigEditorBoolean
+ public boolean enableInProgressBar = true;
+
+ @Expose
+ @ConfigOption(name = "Skill Menu Tooltips", desc = "Enable the custom goal in the tooltip of items in skills menu.")
+ @ConfigEditorBoolean
+ public boolean enableInSkillMenuTooltip = false;
+
+ @Expose
+ @ConfigOption(name = "Chat", desc = "Send a message when you reach your goal.")
+ @ConfigEditorBoolean
+ public boolean enableInChat = false;
+
+}
diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/skillprogress/SkillETADisplayConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/skillprogress/SkillETADisplayConfig.java
new file mode 100644
index 000000000..37ea0430c
--- /dev/null
+++ b/src/main/java/at/hannibal2/skyhanni/config/features/skillprogress/SkillETADisplayConfig.java
@@ -0,0 +1,44 @@
+package at.hannibal2.skyhanni.config.features.skillprogress;
+
+import at.hannibal2.skyhanni.config.FeatureToggle;
+import com.google.gson.annotations.Expose;
+import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean;
+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;
+
+public class SkillETADisplayConfig {
+
+ @Expose
+ @ConfigOption(name = "Enabled", desc = "Show a display of your current active skill\n" +
+ "with the XP/hour rate, ETA to the next level and current session time.")
+ @ConfigEditorBoolean
+ @FeatureToggle
+ public Property<Boolean> enabled = Property.of(false);
+
+ @Expose
+ @ConfigOption(name = "Farming", desc = "After how much seconds the Farming session timer should pause.")
+ @ConfigEditorSlider(minStep = 1, minValue = 3, maxValue = 60)
+ public int farmingPauseTime = 3;
+
+ @Expose
+ @ConfigOption(name = "Mining", desc = "After how much seconds the Mining session timer should pause.")
+ @ConfigEditorSlider(minStep = 1, minValue = 3, maxValue = 60)
+ public int miningPauseTime = 3;
+
+ @Expose
+ @ConfigOption(name = "Combat", desc = "After how much seconds the Combat session timer should pause.")
+ @ConfigEditorSlider(minStep = 1, minValue = 3, maxValue = 60)
+ public int combatPauseTime = 30;
+
+ @Expose
+ @ConfigOption(name = "Foraging", desc = "After how much seconds the Foraging session timer should pause.")
+ @ConfigEditorSlider(minStep = 1, minValue = 3, maxValue = 60)
+ public int foragingPauseTime = 3;
+
+ @Expose
+ @ConfigOption(name = "Fishing", desc = "After how much seconds the Fishing session timer should pause.")
+ @ConfigEditorSlider(minStep = 1, minValue = 3, maxValue = 60)
+ public int fishingPauseTime = 15;
+}
diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/skillprogress/SkillOverflowConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/skillprogress/SkillOverflowConfig.java
new file mode 100644
index 000000000..cf6118158
--- /dev/null
+++ b/src/main/java/at/hannibal2/skyhanni/config/features/skillprogress/SkillOverflowConfig.java
@@ -0,0 +1,46 @@
+package at.hannibal2.skyhanni.config.features.skillprogress;
+
+import com.google.gson.annotations.Expose;
+import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean;
+import io.github.moulberry.moulconfig.annotations.ConfigOption;
+import io.github.moulberry.moulconfig.observer.Property;
+
+public class SkillOverflowConfig {
+
+ @Expose
+ @ConfigOption(name = "Display", desc = "Enable the overflow calculation in the progress display.")
+ @ConfigEditorBoolean
+ public Property<Boolean> enableInDisplay = Property.of(false);
+
+ @Expose
+ @ConfigOption(name = "All Skill Display", desc = "Enable the overflow calculation in the all skill progress display.")
+ @ConfigEditorBoolean
+ public Property<Boolean> enableInAllDisplay = Property.of(false);
+
+ @Expose
+ @ConfigOption(name = "ETA Display", desc = "Enable the overflow calculation in the ETA skill display.")
+ @ConfigEditorBoolean
+ public Property<Boolean> enableInEtaDisplay = Property.of(false);
+
+ @Expose
+ @ConfigOption(name = "Progress Bar", desc = "Enable the overflow calculation in the progress bar of the display.")
+ @ConfigEditorBoolean
+ public Property<Boolean> enableInProgressBar = Property.of(false);
+
+ @Expose
+ @ConfigOption(name = "Skill Menu Stack Size", desc = "Enable the overflow calculation when the 'Skill Level' Item Number is enabled.")
+ @ConfigEditorBoolean
+ public boolean enableInSkillMenuAsStackSize = false;
+
+ @Expose
+ @ConfigOption(name = "Skill Menu Tooltips", desc = "Enable the overflow calculation in the tooltip of items in skills menu.")
+ @ConfigEditorBoolean
+ public boolean enableInSkillMenuTooltip = false;
+
+ @Expose
+ @ConfigOption(name = "Chat", desc = "Enable the overflow level up message when you gain an overflow level.")
+ @ConfigEditorBoolean
+ public boolean enableInChat = false;
+
+
+}
diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/skillprogress/SkillProgressBarConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/skillprogress/SkillProgressBarConfig.java
new file mode 100644
index 000000000..80fe33148
--- /dev/null
+++ b/src/main/java/at/hannibal2/skyhanni/config/features/skillprogress/SkillProgressBarConfig.java
@@ -0,0 +1,107 @@
+package at.hannibal2.skyhanni.config.features.skillprogress;
+
+import at.hannibal2.skyhanni.SkyHanniMod;
+import at.hannibal2.skyhanni.config.FeatureToggle;
+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.ConfigEditorColour;
+import io.github.moulberry.moulconfig.annotations.ConfigEditorDropdown;
+import io.github.moulberry.moulconfig.annotations.ConfigEditorSlider;
+import io.github.moulberry.moulconfig.annotations.ConfigOption;
+import io.github.moulberry.moulconfig.observer.Property;
+
+public class SkillProgressBarConfig {
+
+ @Expose
+ @ConfigOption(name = "Enabled", desc = "Enable/Disable the progress bar.")
+ @ConfigEditorBoolean
+ @FeatureToggle
+ public Property<Boolean> enabled = Property.of(false);
+
+ @Expose
+ @ConfigOption(name = "Textured Bar", desc = "Use a textured progress bar.\n§eCan be changed with a resource pack.")
+ @ConfigEditorBoolean
+ public Property<Boolean> useTexturedBar = Property.of(false);
+
+ @Expose
+ @ConfigOption(name = "Chroma", desc = "Use the SBA like chroma effect on the bar.\n§eIf enabled, ignore the Bar Color setting.")
+ @ConfigEditorBoolean
+ public Property<Boolean> useChroma = Property.of(false);
+
+ @Expose
+ @ConfigOption(name = "Bar Color", desc = "Color of the progress bar.\n§eIgnored if Chroma is enabled.")
+ @ConfigEditorColour
+ public String barStartColor = "0:255:255:0:0";
+
+ @Expose
+ @ConfigOption(name = "Textured Bar", desc = "")
+ @Accordion
+ public TexturedBar texturedBar = new TexturedBar();
+
+ public static class TexturedBar {
+
+ @Expose
+ @ConfigOption(name = "Used Texture", desc = "Choose what texture to use.")
+ @ConfigEditorDropdown
+ public Property<UsedTexture> usedTexture = Property.of(UsedTexture.MATCH_PACK);
+
+ public enum UsedTexture {
+ MATCH_PACK("Match Resource Pack", "minecraft:textures/gui/icons.png"),
+ CUSTOM_1("Texture 1", SkyHanniMod.MODID + ":bars/1.png"),
+ CUSTOM_2("Texture 2", SkyHanniMod.MODID + ":bars/2.png"),
+ CUSTOM_3("Texture 3", SkyHanniMod.MODID + ":bars/3.png"),
+ CUSTOM_4("Texture 4", SkyHanniMod.MODID + ":bars/4.png"),
+ CUSTOM_5("Texture 5", SkyHanniMod.MODID + ":bars/5.png"),
+ ;
+
+ private final String str;
+ private final String path;
+
+ UsedTexture(String str, String path) {
+ this.str = str;
+ this.path = path;
+ }
+
+ public String getPath() {
+ return path;
+ }
+
+ @Override
+ public String toString() {
+ return str;
+ }
+ }
+
+ @Expose
+ @ConfigOption(name = "Width", desc = "Modify the width of the bar.\n" +
+ "§eDefault: 182\n" +
+ "§c!!Do not work for now!!")
+ @ConfigEditorSlider(minStep = 1, minValue = 16, maxValue = 1024)
+ public int width = 182;
+
+ @Expose
+ @ConfigOption(name = "Height", desc = "Modify the height of the bar.\n" +
+ "§eDefault: 5\n" +
+ "§c!!Do not work for now!!")
+ @ConfigEditorSlider(minStep = 1, minValue = 3, maxValue = 16)
+ public int height = 5;
+ }
+
+ @Expose
+ @ConfigOption(name = "Regular Bar", desc = "")
+ @Accordion
+ public RegularBar regularBar = new RegularBar();
+
+ public static class RegularBar {
+ @Expose
+ @ConfigOption(name = "Width", desc = "Modify the width of the bar.")
+ @ConfigEditorSlider(minStep = 1, minValue = 100, maxValue = 1000)
+ public int width = 182;
+
+ @Expose
+ @ConfigOption(name = "Height", desc = "Modify the height of the bar.")
+ @ConfigEditorSlider(minStep = 1, minValue = 3, maxValue = 15)
+ public int height = 6;
+ }
+}
diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/skillprogress/SkillProgressConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/skillprogress/SkillProgressConfig.java
new file mode 100644
index 000000000..77d459b6e
--- /dev/null
+++ b/src/main/java/at/hannibal2/skyhanni/config/features/skillprogress/SkillProgressConfig.java
@@ -0,0 +1,117 @@
+package at.hannibal2.skyhanni.config.features.skillprogress;
+
+import at.hannibal2.skyhanni.config.FeatureToggle;
+import at.hannibal2.skyhanni.config.core.config.Position;
+import at.hannibal2.skyhanni.utils.RenderUtils;
+import com.google.gson.annotations.Expose;
+import io.github.moulberry.moulconfig.annotations.Category;
+import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean;
+import io.github.moulberry.moulconfig.annotations.ConfigEditorDropdown;
+import io.github.moulberry.moulconfig.annotations.ConfigOption;
+import io.github.moulberry.moulconfig.observer.Property;
+
+public class SkillProgressConfig {
+
+ @Expose
+ @ConfigOption(name = "Enabled", desc = "Show the Skill Progress Display.")
+ @ConfigEditorBoolean
+ @FeatureToggle
+ public Property<Boolean> enabled = Property.of(false);
+
+ @Expose
+ @ConfigOption(name = "Text Alignment", desc = "Align the display text with the progress bar.")
+ @ConfigEditorDropdown
+ public Property<TextAlignment> textAlignmentProperty = Property.of(TextAlignment.CENTERED);
+
+ public enum TextAlignment {
+ NONE("None", null),
+ CENTERED("Centered", RenderUtils.HorizontalAlignment.CENTER),
+ LEFT("Left", RenderUtils.HorizontalAlignment.LEFT),
+ RIGHT("Right", RenderUtils.HorizontalAlignment.RIGHT),
+ ;
+
+ private final String str;
+ private final RenderUtils.HorizontalAlignment alignment;
+
+ TextAlignment(String str, RenderUtils.HorizontalAlignment alignment) {
+ this.str = str;
+ this.alignment = alignment;
+ }
+
+ public RenderUtils.HorizontalAlignment getAlignment() {
+ return alignment;
+ }
+
+ @Override
+ public String toString() {
+ return str;
+ }
+ }
+
+ @Expose
+ @ConfigOption(name = "Hide In Action Bar", desc = "Hide the skill progress in the Hypixel action bar.")
+ @ConfigEditorBoolean
+ public boolean hideInActionBar = false;
+
+ @Expose
+ @ConfigOption(name = "Always Show", desc = "Always show the skill progress.")
+ @ConfigEditorBoolean
+ public Property<Boolean> alwaysShow = Property.of(false);
+
+ @Expose
+ @ConfigOption(name = "Show Action left", desc = "Show action left until you reach the next level.")
+ @ConfigEditorBoolean
+ public Property<Boolean> showActionLeft = Property.of(false);
+
+ @Expose
+ @ConfigOption(name = "Use percentage", desc = "Use percentage instead of XP.")
+ @ConfigEditorBoolean
+ public Property<Boolean> usePercentage = Property.of(false);
+
+ @Expose
+ @ConfigOption(name = "Use Icon", desc = "Show the skill icon in the display.")
+ @ConfigEditorBoolean
+ public Property<Boolean> useIcon = Property.of(true);
+
+ @Expose
+ @ConfigOption(name = "Use Skill Name", desc = "Show the skill name in the display.")
+ @ConfigEditorBoolean
+ public Property<Boolean> useSkillName = Property.of(false);
+
+ @Expose
+ @ConfigOption(name = "Show Level", desc = "Show your current level in the display.")
+ @ConfigEditorBoolean
+ public Property<Boolean> showLevel = Property.of(true);
+
+ @Expose
+ @Category(name = "Progress Bar", desc = "Progress Bar Config.")
+ public SkillProgressBarConfig skillProgressBarConfig = new SkillProgressBarConfig();
+
+ @Expose
+ @Category(name = "Overflow", desc = "Overflow Config.")
+ public SkillOverflowConfig overflowConfig = new SkillOverflowConfig();
+
+ @Expose
+ @Category(name = "Custom Goal", desc = "Define a custom goal for each skills.")
+ public CustomGoalConfig customGoalConfig = new CustomGoalConfig();
+
+ @Expose
+ @Category(name = "All Skill Display", desc = "All Skill Display Config.")
+ public AllSkillDisplayConfig allSkillDisplayConfig = new AllSkillDisplayConfig();
+
+ @Expose
+ @Category(name = "ETA Display", desc = "ETA Display Config.")
+ public SkillETADisplayConfig skillETADisplayConfig = new SkillETADisplayConfig();
+
+ @Expose
+ public Position displayPosition = new Position(384, -105, false, true);
+
+ @Expose
+ public Position barPosition = new Position(384, -87, false, true);
+
+ @Expose
+ public Position allSkillPosition = new Position(5, 209, false, true);
+
+ @Expose
+ public Position etaPosition = new Position(5, 155, false, true);
+}