aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/rosegoldaddons/Config.java
blob: bee9391437abb685dc478c7a705e04b3fc054182 (plain)
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
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
package rosegoldaddons;

import gg.essential.vigilance.Vigilant;
import gg.essential.vigilance.data.*;
import org.jetbrains.annotations.NotNull;

import java.io.File;
import java.util.Comparator;


public class Config extends Vigilant {
    public static Config INSTANCE = new Config();

    @Property(type = PropertyType.SWITCH, name = "Auto Start Dungeon + Ready", description = "Automatically starts the dungeon and gets ready.",
            category = "Dungeons", subcategory = "General")
    public boolean AutoReady = true;

    public boolean autoArrowAlign = true;

    @Property(type = PropertyType.SWITCH, name = "Party Untransfer", description = "When you really dont wanna be party leader.",
            category = "RoseGoldAddons", subcategory = "General")
    public boolean AutoUntransfer = false;

    @Property(type = PropertyType.SWITCH, name = "Enderman ESP", description = "**NOT** Needed for enderman macro.",
            category = "RoseGoldAddons", subcategory = "General")
    public boolean EndermanESP = false;

    @Property(type = PropertyType.SWITCH, name = "Use Utility Items when Swapping", description = "Automatically use Tuba / Orb / Wand when AOTS or Whip swap are enabled",
            category = "RoseGoldAddons", subcategory = "General")
    public boolean UseUtility = false;

    @Property(type = PropertyType.SWITCH, name = "Entity Reach", description = "Interact with entities from far away",
            category = "RoseGoldAddons", subcategory = "General")
    public boolean entityReach = false;

    @Property(type = PropertyType.SWITCH, name = "Entity Reach Sticky Mode", description = "Remember last entity looked at",
            category = "RoseGoldAddons", subcategory = "General")
    public boolean sticky = false;

    @Property(type = PropertyType.SLIDER, name = "Sword Swap Delay", description = "How often to swap swords (in miliseconds)",
            category = "RoseGoldAddons", subcategory = "General", max = 2000)
    public int swapFrequency = 500;

    @Property(type = PropertyType.SLIDER, name = "Smooth Look Velocity", description = "How fast should head rotation changes be (in miliseconds)",
            category = "RoseGoldAddons", subcategory = "General", min = 1, max = 200)
    public int smoothLookVelocity = 50;

    @Property(type = PropertyType.SLIDER, name = "Macro Range", description = "Look for entities only in radius of the player, 0 = unlimited",
            category = "RoseGoldAddons", subcategory = "General", max = 300)
    public int macroRadius = 0;

    @Property(type = PropertyType.SWITCH, name = "Ping on world change", description = "Send a message to a Discord Webhook to ping on world change",
            category = "Discord", subcategory = "General")
    public boolean pingworldchange = false;

    @Property(type = PropertyType.TEXT, name = "Discord ID", description = "Discord ID to ping",
            category = "Discord", subcategory = "General")
    public String discordid = "";

    @Property(type = PropertyType.TEXT, name = "Webhook URL", description = "Webhook URL to use when pinging",
            category = "Discord", subcategory = "General")
    public String hookurl = "";

    @Property(type = PropertyType.SLIDER, name = "Delay Before Breaking Tree", description = "Miliseconds to wait before breaking tree",
             category = "Foraging", subcategory = "General", max = 2000)
    public int treecapDelay = 1000;

    @Property(type = PropertyType.SLIDER, name = "Delay Before Using Rod", description = "Miliseconds to wait before using rod",
            category = "Foraging", subcategory = "General", max = 500)
    public int prerodDelay = 150;

    @Property(type = PropertyType.SLIDER, name = "Delay After Using Rod", description = "Miliseconds to wait after using rod (before starting over)",
            category = "Foraging", subcategory = "General", max = 500)
    public int postrodDelay = 150;

    @Property(type = PropertyType.SWITCH, name = "Radomize Delay", description = "Add slight randomization to delay",
            category = "Foraging", subcategory = "General")
    public boolean randomizeForaging = true;

    @Property(type = PropertyType.SWITCH, name = "Admin Antisus", description = "Act as if you're there when you get AFK checked (not recommended to leave on)",
            category = "Foraging", subcategory = "General")
    public boolean forageantisus = false;

    @Property(type = PropertyType.SWITCH, name = "Prioritize Gemstone Blocks", description = "Will first search for full blocks, then panes",
            category = "Mining", subcategory = "General")
    public boolean prioblocks = false;

    @Property(type = PropertyType.SLIDER, name = "Hardstone Nuker Height", description = "Range to break above the player",
            category = "Mining", subcategory = "General", max = 5)
    public int hardrange = 0;

    @Property(type = PropertyType.SELECTOR, name = "Actions", description = "Type of action to perform when opening a brewing stand",
            category = "Alchemy", subcategory = "General", options = {"Collect + Sell", "Insert Water Bottles", "Insert Nether Wart", "Insert Cane / Eye", "Insert Glowstone"})
    public int alchindex = 0;

    @Property(type = PropertyType.SWITCH, name = "Auto Open Brewing Stand", description = "Only for Collecting + Selling, use with an auto brewer",
            category = "Alchemy", subcategory = "General")
    public boolean openstand = false;

    @Property(type = PropertyType.SWITCH, name = "Close GUI When Done", description = "Automatically close the GUI when done",
            category = "Alchemy", subcategory = "General")
    public boolean alchclose = true;

    @Property(type = PropertyType.SLIDER, name = "Action Delay", description = "Millisecond delay between actions",
            category = "Alchemy", subcategory = "General", max = 1000)
    public int alchsleep = 300;

    @Property(type = PropertyType.SELECTOR, name = "Nuker Crop Type", description = "Select the type of crop you want to nuke",
            category = "Farming", subcategory = "General", options = {"Any Crop Except Cane or Cactus", "Cane or Cactus", "Nether Wart", "Wheat", "Carrot", "Potato", "Pumpkin", "Melon", "Mushroom", "Cocoa"})
    public int farmNukeIndex = 0;

    @Property(type = PropertyType.SWITCH, name = "Look at nuked block", description = "Looks at currently nuked block to look less sus",
            category = "Mining", subcategory = "General")
    public boolean mithrilLook = false;

    @Property(type = PropertyType.SWITCH, name = "Skip Titanium", description = "Mithril nuker will ignore titanium",
            category = "Mining", subcategory = "General")
    public boolean ignoreTitanium = false;

    @Property(type = PropertyType.SWITCH, name = "Include Ores", description = "Hardstone Nuker will also nuke ores",
            category = "Mining", subcategory = "General")
    public boolean includeOres = false;

    @Property(type = PropertyType.SWITCH, name = "Auto Slayer", description = "Automatically use batphone",
            category = "RoseGoldAddons", subcategory = "General")
    public boolean autoSlayer = false;

    @Property(type = PropertyType.SWITCH, name = "Click Maddox", description = "Automatically click maddox on boss kill",
            category = "RoseGoldAddons", subcategory = "General")
    public boolean clickMaddox = false;

    @Property(type = PropertyType.SELECTOR, name = "Slayer Type", description = "Type of slayer to auto start",
            category = "RoseGoldAddons", subcategory = "General", options = {"None", "Zombie 3", "Zombie 4", "Zombie 5", "Spider 3", "Spider 4", "Sven 3", "Sven 4", "Enderman 2", "Enderman 3", "Enderman 4"})
    public int slayerTypeIndex = 0;

    @Property(type = PropertyType.SWITCH, name = "Potato Mode", description = "This brings back memories...",
            category = "RoseGoldAddons", subcategory = "General")
    public boolean guilag = false;

    @Property(type = PropertyType.SWITCH, name = "Hilarity", description = "Those pesky admins!",
            category = "RoseGoldAddons", subcategory = "General")
    public boolean funnyStuff = true;

    @Property(type = PropertyType.SWITCH, name = "Nucleus ESP", description = "ESP for rare items dropped from nucleus",
            category = "ESP", subcategory = "General")
    public boolean nucleusESP = false;

    public Config() {
        super(new File("./config/rosegoldaddons/config.toml"), "RoseGoldAddons", new JVMAnnotationPropertyCollector(), new ConfigSorting());
        initialize();
    }

    public static class ConfigSorting extends SortingBehavior {
        @NotNull
        @Override
        public Comparator<Category> getCategoryComparator() {
            return (o1, o2) -> {
                if(o1.getName().equals("RoseGoldAddons")) {
                    return -1;
                } else if(o2.getName().equals("RoseGoldAddons")) {
                    return 1;
                } else {
                    return o1.getName().compareTo(o2.getName());
                }
            };
        }
    }
}