This repository was archived by the owner on Feb 25, 2026. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 58
Expand file tree
/
Copy pathMightyMinerConfig.java
More file actions
895 lines (756 loc) · 29.1 KB
/
MightyMinerConfig.java
File metadata and controls
895 lines (756 loc) · 29.1 KB
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
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
package com.jelly.mightyminerv2.config;
import cc.polyfrost.oneconfig.config.Config;
import cc.polyfrost.oneconfig.config.annotations.*;
import cc.polyfrost.oneconfig.config.annotations.Number;
import cc.polyfrost.oneconfig.config.core.OneColor;
import cc.polyfrost.oneconfig.config.core.OneKeyBind;
import cc.polyfrost.oneconfig.config.data.InfoType;
import cc.polyfrost.oneconfig.config.data.Mod;
import cc.polyfrost.oneconfig.config.data.ModType;
import cc.polyfrost.oneconfig.config.data.OptionSize;
import com.jelly.mightyminerv2.feature.impl.RouteBuilder;
import com.jelly.mightyminerv2.hud.CommissionHUD;
import com.jelly.mightyminerv2.hud.DebugHUD;
import com.jelly.mightyminerv2.hud.GlacialCommissionHUD;
import com.jelly.mightyminerv2.macro.MacroManager;
import com.jelly.mightyminerv2.util.Logger;
import com.jelly.mightyminerv2.util.helper.AudioManager;
import net.minecraft.client.Minecraft;
import net.minecraft.item.ItemStack;
import net.minecraft.util.StringUtils;
import org.lwjgl.input.Keyboard;
import java.io.File;
@SuppressWarnings({"unused", "DefaultAnnotationParam"})
public class MightyMinerConfig extends Config {
// Do not remove the "transient" modifier!
private transient static final Minecraft mc = Minecraft.getMinecraft();
private transient static final File WAYPOINTS_FILE = new File(mc.mcDataDir, "mm_waypoints.json");
private transient static final String GENERAL = "General";
private transient static final String SCHEDULER = "Scheduler";
private transient static final String COMMISSION = "Dwarven Commission";
private transient static final String GLACIAL_COMMISSION = "Glacial Commission";
private transient static final String MINING_MACRO = "Mining Macro";
private transient static final String ROUTE_MINER = "Route Miner";
private transient static final String POWDER = "Gemstone Powder";
private transient static final String DELAY = "Delays";
private transient static final String AUTO_SELL = "Auto Sell";
private transient static final String FAILSAFE = "Failsafe";
private transient static final String DEBUG = "Debug";
private transient static final String DISCORD_INTEGRATION = "Discord Integration";
public MightyMinerConfig() {
super(new Mod("Mighty Miner", ModType.HYPIXEL), "/MightMinerV2.7/config.json");
initialize();
// Register keybinds
registerKeyBind(routeBuilder, () -> RouteBuilder.getInstance().toggle());
registerKeyBind(toggleMacro, () -> MacroManager.getInstance().toggle());
save();
}
// <editor-fold desc="General">
@Dropdown(
name = "Macro Type",
category = GENERAL,
description = "Select the macro type you want to use",
options = {
"Dwarven Commission", // 0
"Glacial Commissions", // 1
"Mining Macro", // 2
"Route Miner", // 3
// "Gemstone Powder"
},
subcategory = "Macro"
)
public static int macroType = 0;
@KeyBind(
name = "Toggle Macro",
category = GENERAL,
description = "The Button To Click To Toggle The Macro",
subcategory = "Macro"
)
public static OneKeyBind toggleMacro = new OneKeyBind(Keyboard.KEY_GRAVE);
@Text(
name = "Mining Tool", description = "Mining tool that you use to mine blocks",
category = GENERAL,
placeholder = "Enter here...",
subcategory = "Mining Tools"
)
public static String miningTool = "";
@Button(
name = "Set Mining Tool",
text = "Set Mining tool",
description = "Set the Mining Tool to the currently held item",
category = GENERAL,
subcategory = "Mining Tools"
)
Runnable _setMiningTool = () -> {
ItemStack currentItem = mc.thePlayer.inventory.mainInventory[mc.thePlayer.inventory.currentItem];
if (currentItem == null) {
Logger.sendMessage("Don't hold an empty hand.");
return;
}
miningTool = StringUtils.stripControlCodes(currentItem.getDisplayName());
Logger.sendMessage("Mining Tool set to: " + currentItem.getDisplayName());
};
@Switch(
name = "Sneak While Mining",
category = GENERAL,
subcategory = "Mining Behaviour"
)
public static boolean sneakWhileMining = false;
@Switch(
name = "Use pickaxe ability", description = "Only disable this if you are below HOTM 3",
category = GENERAL,
subcategory = "Mining Behaviour"
)
public static boolean usePickaxeAbility = true;
@Info(
text = "You may turn off randomized rotations if you want to maximize the efficiency of precision miner",
type = InfoType.INFO,
category = GENERAL,
subcategory = "Mining Behaviour",
size = 2
)
public static boolean precisionMinerInfo;
@Switch(
name = "Precision Miner", description = "Looks at particles spawned by precision miner perk",
category = GENERAL,
subcategory = "Mining Behaviour"
)
public static boolean precisionMiner = false;
@Switch(
name = "Randomized rotations", description = "Randomize rotations to make them look more human",
category = GENERAL,
subcategory = "Mining Behaviour"
)
public static boolean randomizedRotations = true;
@Slider(
name = "Ore Respawn Wait Threshold (seconds)",
category = GENERAL, subcategory = "Mining Behaviour",
description = "How long to wait (in seconds) when no ores are present before stopping",
min = 2, max = 10
)
public static int oreRespawnWaitThreshold = 5;
@Switch(
name = "Enabled (Requires abiphone!)",
category = GENERAL,
subcategory = "Auto Refuel"
)
public static boolean drillRefuel = false;
@Dropdown(
name = "Machine Fuel",
category = GENERAL,
subcategory = "Auto Refuel",
options = {"Volta", "Oil Barrel"}
)
public static int refuelMachineFuel = 1;
@Switch(
name = "Ungrab Mouse", description = "Does not work for some Mac players",
category = GENERAL,
subcategory = "Miscellaneous"
)
public static boolean ungrabMouse = false;
@Switch(
name = "Mute Game", description = "Mute Game",
category = GENERAL,
subcategory = "Miscellaneous"
)
public static boolean muteGame = true;
@Switch(
name = "Full Block Hitbox",
category = GENERAL,
description = "Gives a full block hitbox to blocks without a full block hitbox",
subcategory = "Miscellaneous"
)
public static boolean miscFullBlock = false;
//</editor-fold>
//<editor-fold desc="Commission">
@Info(
text = "You MUST use Royal Pigeon for Glacial Commissions!",
type = InfoType.WARNING,
category = COMMISSION,
subcategory = "General"
)
public static boolean ignored0 = true;
@Dropdown(
name = "Claim Method", category = COMMISSION,
options = {"NPC", "Royal Pigeon"},
subcategory = "General"
)
public static int commClaimMethod = 0;
@Switch(
name = "Prioritise Titanium",
description = "Always mine Titanium, even if it is not the commission",
category = COMMISSION,
subcategory = "General"
)
public static boolean prioritiseTitanium = false;
@Text(
name = "Alt. Mining Tool",
category = COMMISSION,
placeholder = "Enter here...",
subcategory = "Commission claiming"
)
public static String altMiningTool = "";
@Button(
name = "Set Alt. Mining Tool",
text = "Set Alt. Mining tool",
description = "Set the Alternative Mining Tool to the currently held item",
category = COMMISSION,
subcategory = "Commission claiming"
)
Runnable _setAltMiningTool = () -> {
ItemStack currentItem = mc.thePlayer.inventory.mainInventory[mc.thePlayer.inventory.currentItem];
if (currentItem == null) {
Logger.sendMessage("Don't hold an empty hand.");
return;
}
altMiningTool = StringUtils.stripControlCodes(currentItem.getDisplayName());
Logger.sendMessage("Alternative Mining Tool set to: " + currentItem.getDisplayName());
};
@Switch(
name = "Swap before claiming commission",
description = "Swaps to the alternative mining tool before claiming the commission",
category = COMMISSION,
subcategory = "Commission claiming"
)
public static boolean commSwapBeforeClaiming = false;
@Text(
name = "Slayer Weapon", description = "Weapon used when killing goblins",
category = COMMISSION,
subcategory = "Mob Killer",
placeholder = "Enter here..."
)
public static String slayerWeapon = "";
@Button(
name = "Set Slayer Weapon",
text = "Set Slayer Weapon",
description = "Set the Slayer Weapon to the currently held item",
category = COMMISSION,
subcategory = "Mob Killer"
)
Runnable _setSlayerWeapon = () -> {
ItemStack currentItem = mc.thePlayer.inventory.mainInventory[mc.thePlayer.inventory.currentItem];
if (currentItem == null) {
Logger.sendMessage("Don't hold an empty hand.");
return;
}
slayerWeapon = StringUtils.stripControlCodes(currentItem.getDisplayName()).replaceAll("[^\\x20-\\x7E]", "");
Logger.sendMessage("Slayer Weapon set to: " + currentItem.getDisplayName());
};
@Switch(
name = "Sprint During MobKiller", description = "Allow Sprinting while Mob Killer is active (looks sussy)",
category = COMMISSION,
subcategory = "Mob Killer"
)
public static boolean mobKillerSprint = true;
@Switch(
name = "Interpolate During MobKiller", description = "Allows more natural movement",
category = COMMISSION,
subcategory = "Mob Killer"
)
public static boolean mobKillerInterpolate = true;
@Switch(
name = "Warp to forge during pathing", description = "If next commission is closer from the forge, it will warp and path from there",
category = COMMISSION,
subcategory = "Pathing"
)
public static boolean forgePathing = true;
@Switch(
name = "Show Commission HUD outside mines", description = "Toggle HUD Visibility outside of dwarven mines",
category = COMMISSION,
subcategory = "HUD"
)
public static boolean showDwarvenCommHUDOutside = true;
@Exclude
@HUD(
name = "CommissionHUD",
category = COMMISSION,
subcategory = "HUD"
)
public static CommissionHUD commissionHUD = CommissionHUD.getInstance();
//</editor-fold>
//<editor-fold desc="Glacial Commission">
@Info(
text = "Set the threshold of coldness to where the macro will warp back to the base",
type = InfoType.INFO,
category = GLACIAL_COMMISSION,
subcategory = "General",
size = 2
)
public static boolean coldThresholdInfo;
@Slider(
name = "Cold Threshold",
category = GLACIAL_COMMISSION,
subcategory = "General",
description = "The threshold of coldness to where the macro will warp back to the base",
min = 1, max = 100
)
public static int coldThreshold = 50;
@Switch(
name = "Reset Stats When Disabled",
category = GLACIAL_COMMISSION,
subcategory = "HUD"
)
public static boolean glacialHudResetStats = false;
@Switch(
name = "Show Glacial HUD Outside Glacial Mines",
category = GLACIAL_COMMISSION,
subcategory = "HUD"
)
public static boolean showGlacialHUDOutside = true;
@Exclude
@HUD(
name = "Glacial Commission HUD",
category = GLACIAL_COMMISSION,
subcategory = "HUD"
)
public static GlacialCommissionHUD glacialCommissionHUD = GlacialCommissionHUD.getInstance();
//</editor-fold>
//<editor-fold desc="Mining Macro">
@Dropdown(
name = "Ore Type",
category = MINING_MACRO,
options = {
"Mithril",
"Diamond",
"Emerald",
"Redstone",
"Lapis",
"Gold",
"Iron",
"Coal",
"Quartz",
}
)
public static int oreType = 0;
@Switch(
name = "Mine Gray Mithril (Gray Wool)",
category = MINING_MACRO,
subcategory = "Mithril Macro"
)
public static boolean mineGrayMithril = true;
@Switch(
name = "Mine Green Mithril (Prismarine)",
category = MINING_MACRO,
subcategory = "Mithril Macro"
)
public static boolean mineGreenMithril = true;
@Switch(
name = "Mine Blue Mithril (Blue Wool)",
category = MINING_MACRO,
subcategory = "Mithril Macro"
)
public static boolean mineBlueMithril = true;
@Switch(
name = "Mine Titanium",
category = MINING_MACRO,
subcategory = "Mithril Macro"
)
public static boolean mineTitanium = true;
//</editor-fold>
//<editor-fold desc="Route Miner">
@Info(
text = "Make sure to report bugs in #bug-reports in the discord server.",
type = InfoType.ERROR,
category = ROUTE_MINER,
size = 2,
subcategory = "General"
)
public static boolean ignored1 = true;
@Info(
text = "Run /rb for more information on route building.",
type = InfoType.INFO,
category = ROUTE_MINER,
size = 2,
subcategory = "General"
)
public static boolean ignored2 = true;
//<editor-fold desc="General">
@Text(name = "Selected Route", category = ROUTE_MINER, subcategory = "General")
public static String selectedRoute = "";
//</editor-fold>
//<editor-fold desc="Targets">
@Switch(name = "Mine Gemstone", category = ROUTE_MINER, subcategory = "Targets")
public static boolean routeMineGemstone = false;
@Switch(name = "Mine Topaz", category = ROUTE_MINER, subcategory = "Targets")
public static boolean routeMineTopaz = false;
@Switch(name = "Mine Ore", category = ROUTE_MINER, subcategory = "Targets")
public static boolean routeMineOre = false;
@Switch(name = "Mine Glacite", category = ROUTE_MINER, subcategory = "Targets")
public static boolean routeMineGlacite = false;
@Switch(name = "Mine Umber", category = ROUTE_MINER, subcategory = "Targets")
public static boolean routeMineUmber = false;
@Switch(name = "Mine Tungsten", category = ROUTE_MINER, subcategory = "Targets")
public static boolean routeMineTungsten = false;
//</editor-fold>
//<editor-fold desc="Route Builder">
@KeyBind(
name = "Enable RouteBuilder",
description = "They key to click to enable RouteBuilder",
category = ROUTE_MINER,
subcategory = "Route Builder"
)
public static OneKeyBind routeBuilder = new OneKeyBind(Keyboard.KEY_LBRACKET);
@KeyBind(
name = "Add Block To Route (Walk)",
description = "The Key to click to add the block player is standing on block to the route",
category = ROUTE_MINER,
subcategory = "Route Builder"
)
public static OneKeyBind routeBuilderWalkAddKeybind = new OneKeyBind(Keyboard.KEY_P);
@KeyBind(
name = "Add Block To Route (Etherwarp)",
description = "The Key to click to add the block player is standing on block to the route",
category = ROUTE_MINER,
subcategory = "Route Builder"
)
public static OneKeyBind routeBuilderEtherwarpAddKeybind = new OneKeyBind(Keyboard.KEY_I);
@KeyBind(
name = "Remove Block From Route",
description = "The Key To Remove the block player is standing on from the route",
category = ROUTE_MINER,
subcategory = "Route Builder"
)
public static OneKeyBind routeBuilderRemoveKeybind = new OneKeyBind(Keyboard.KEY_O);
@Color(
name = "Route Node Color",
description = "The Color of The Blocks On a Route",
category = ROUTE_MINER,
subcategory = "Route Builder"
)
public static OneColor routeBuilderNodeColor = new OneColor(0, 255, 255, 100);
@Color(
name = "Route Tracer Color",
description = "The Color of The Line Between Blocks On a Route",
category = ROUTE_MINER,
subcategory = "Route Builder"
)
public static OneColor routeBuilderTracerColor = new OneColor(0, 255, 255, 100);
@KeyBind(
name = "RouteBuilder Add UNIDI",
category = ROUTE_MINER, subcategory = "Graph"
)
public static OneKeyBind routeBuilderUnidi = new OneKeyBind(Keyboard.KEY_NUMPAD7);
@KeyBind(
name = "RouteBuilder Add BIDI",
category = ROUTE_MINER, subcategory = "Graph"
)
public static OneKeyBind routeBuilderBidi = new OneKeyBind(Keyboard.KEY_NUMPAD8);
@KeyBind(
name = "RouteBuilder Select",
category = ROUTE_MINER, subcategory = "Graph"
)
public static OneKeyBind routeBuilderSelect = new OneKeyBind(Keyboard.KEY_NUMPAD4);
@KeyBind(
name = "RouteBuilder Move",
category = ROUTE_MINER, subcategory = "Graph"
)
public static OneKeyBind routeBuilderMove = new OneKeyBind(Keyboard.KEY_NUMPAD5);
@KeyBind(
name = "RouteBuilder Delete",
category = ROUTE_MINER, subcategory = "Graph"
)
public static OneKeyBind routeBuilderDelete = new OneKeyBind(Keyboard.KEY_NUMPAD6);
//</editor-fold>
//</editor-fold>
//<editor-fold desc="Powder Macro">
@Info(
text = "This feature is currently in development and currently does not function.",
type = InfoType.ERROR,
category = POWDER,
size = 2
)
public static boolean ignored3 = true;
@Switch(
name = "Great Explorer Maxed", category = POWDER, subcategory = "General",
description = "Is it maxed?"
)
public static boolean greatExplorerMaxed = false;
@Slider(
name = "Center Pitch", category = POWDER, subcategory = "Ranges",
description = "The pitch you look at the center of the screen.",
min = 0, max = 20
)
public static int gemstoneCenterPitch = 10;
@Slider(
name = "Yaw Range", category = POWDER, subcategory = "Ranges",
description = "The range of yaw you look at while mining.",
min = 0, max = 90
)
public static int gemstoneYawRange = 45;
@Slider(
name = "Pitch Range", category = POWDER, subcategory = "Ranges",
description = "The range of pitch you look at while mining.",
min = 0, max = 30
)
public static int gemstonePitchRange = 15;
@Slider(
name = "Oval Speed", category = POWDER, subcategory = "Ranges",
description = "The speed you rotate your mouse in an oval shape while mining.",
min = 1f, max = 5f
)
public static float gemstoneOvalSpeed = 2;
//</editor-fold>
//<editor-fold desc="Delays">
@Slider(
name = "Rotation Time",
category = DELAY, subcategory = "General",
description = "Time it takes to rotate to the next block while mining mithril",
min = 50, max = 1000
)
public static int rotationTime = 300;
@Slider(
name = "Rotation Time Randomization",
category = DELAY, subcategory = "General",
min = 50, max = 1000
)
public static int rotationTimeRandomizer = 300;
@Slider(
name = "Tick Glide Offset",
category = DELAY, subcategory = "General",
min = 0, max = 10
)
public static int tickGlideOffset = 4;
@Slider(
name = "Sneak Time",
category = DELAY, subcategory = "General",
min = 0, max = 2000
)
public static int sneakTime = 500;
@Slider(
name = "Sneak Time Randomizer",
category = DELAY, subcategory = "General",
min = 0, max = 2000
)
public static int sneakTimeRandomizer = 300;
@Slider(
name = "GUI Delay", description = "Time to wait in a gui",
category = DELAY, subcategory = "GUI",
min = 50, max = 2000
)
public static int delaysGuiDelay = 450;
@Slider(
name = "GUI Delay Randomizer", description = "Maximum random time to add to GUI Delay Time",
category = DELAY, subcategory = "GUI",
min = 50, max = 1000
)
public static int delaysGuiDelayRandomizer = 250;
@Slider(
name = "Aotv Look Delay (Right Click)",
description = "Rotation time to look at next block while aotving",
category = DELAY,
subcategory = "Auto Aotv",
min = 50, max = 1000
)
public static int delayAutoAotvLookDelay = 250;
@Slider(
name = "Aotv Look Delay (Etherwarp)",
description = "Rotation time to look at next block while Etherwarping",
category = DELAY,
subcategory = "Auto Aotv",
min = 50, max = 2000
)
public static int delayAutoAotvEtherwarpLookDelay = 500;
@Slider(
name = "Server Side Rotation Time",
description = "Rotation time to look at next block with client side rotation",
category = DELAY,
subcategory = "Auto Aotv",
min = 0, max = 2000
)
public static int delayAutoAotvServerRotation = 500;
//</editor-fold>
//<editor-fold desc="Debug">
@Switch(
name = "Debug Mode",
category = DEBUG,
description = "Enable debug mode"
)
public static boolean debugMode = false;
@HUD(
name = "DebugHUD",
category = DEBUG
)
@Exclude
public static DebugHUD debugHUD = DebugHUD.getInstance();
@Slider(
name = "Mining Coefficient",
category = DEBUG,
subcategory = "Block Miner",
min = 0, max = 1000
)
public static int miningCoefficient = 200;
@Slider(
name = "Angle Coefficient",
category = DEBUG,
subcategory = "Block Miner",
min = 0, max = 10
)
public static int angleCoefficient = 1;
@Slider(
name = "Distance Coefficient",
category = DEBUG,
subcategory = "Block Miner",
min = 0, max = 20
)
public static int distanceCoefficient = 10;
@Slider(
name = "MobKiller Dist Cost",
category = DEBUG,
subcategory = "MobKiller",
min = 0, max = 1000
)
public static int devMKillDist = 100;
@Slider(
name = "MobKiller Rot Cost",
category = DEBUG,
subcategory = "MobKiller",
min = 0, max = 1000
)
public static int devMKillRot = 5;
@Text(
name = "MobKiller Mob Name",
category = DEBUG,
subcategory = "MobKiller",
placeholder = "Enter Mobname Here"
)
public static String devMKillerMob = "Goblin";
@Text(
name = "MobKiller Weapon",
category = DEBUG,
subcategory = "MobKiller",
placeholder = "Enter Weapon Name Here"
)
public static String devMKillerWeapon = "Aspect of the Dragon";
@Slider(
name = "MobKiller Check Timer",
category = DEBUG,
subcategory = "MobKiller",
min = 0, max = 5000
)
public static int devMKillTimer = 1000;
@Slider(
name = "Rotation Curve",
category = DEBUG,
subcategory = "Cost",
min = 0, max = 5
)
public static int cost4 = 1;
@Switch(
name = "Use Fixed Rotation Time",
category = DEBUG,
subcategory = "Path"
)
public static boolean fixrot = false;
@Slider(
name = "Rotation time",
category = DEBUG,
subcategory = "Path",
min = 0, max = 2000
)
public static int rottime = 500;
@Slider(
name = "Rota mult",
category = DEBUG,
subcategory = "Path",
min = 0f, max = 10f
)
public static float rotmult = 2f;
//</editor-fold>
//<editor-fold desc="Failsafe">
@Switch(
name = "Enable Failsafe Trigger Sound", category = FAILSAFE, size = OptionSize.DUAL,
subcategory = "General",
description = "Makes a sound when a failsafe has been triggered"
)
public static boolean enableFailsafeSound = true;
@Slider(
name = "Time to wait before toggling failsafe(in ms)",
category = FAILSAFE,
subcategory = "General",
min = 0, max = 15000
)
public static int failsafeToggleDelay = 3000;
@Slider(
name = "Vertical Knockback Threshold",
category = FAILSAFE,
subcategory = "General",
min = 3000, max = 10000
)
public static int verticalKnockbackThreshold = 4000;
@DualOption(
name = "Name Mention Failsafe Behaviour", category = FAILSAFE, subcategory = "Failsafe Behaviour",
description = "The action Name Mention Failsafe will take when your name is mentioned in chat",
left = "Pause Macro",
right = "Change Lobby",
size = 1
)
public static boolean nameMentionFailsafeBehaviour = false;
@DualOption(
name = "Failsafe Sound Type", category = FAILSAFE, subcategory = "Failsafe Trigger Sound",
description = "The failsafe sound type to play when a failsafe has been triggered",
left = "Minecraft",
right = "Custom",
size = 2
)
public static boolean failsafeSoundType = false;
@Dropdown(
name = "Minecraft Sound", category = FAILSAFE, subcategory = "Failsafe Trigger Sound",
description = "The Minecraft sound to play when a failsafe has been triggered",
options = {
"Ping", // 0
"Anvil" // 1
}
)
public static int failsafeMcSoundSelected = 1;
@Dropdown(
name = "Custom Sound", category = FAILSAFE, subcategory = "Failsafe Trigger Sound",
description = "The custom sound to play when a failsafe has been triggered",
options = {
"Custom", // 0
"Voice", // 1
"Metal Pipe", // 2
"AAAAAAAAAA", // 3
"Loud Buzz", // 4
}
)
public static int failsafeSoundSelected = 1;
@Number(
name = "Number of times to play custom sound", category = FAILSAFE, subcategory = "Failsafe Trigger Sound",
description = "The number of times to play custom sound when a failsafe has been triggered",
min = 1, max = 10
)
public static int failsafeSoundTimes = 10;
@Slider(
name = "Failsafe Sound Volume (in %)", category = FAILSAFE, subcategory = "Failsafe Trigger Sound",
description = "The volume of the failsafe sound",
min = 0, max = 100
)
public static float failsafeSoundVolume = 50.0f;
@Switch(
name = "Max out Master category sounds while pinging", category = FAILSAFE, subcategory = "Failsafe Trigger Sound",
description = "Maxes out the sounds while failsafe"
)
public static boolean maxOutMinecraftSounds = false;
@Button(
name = "Play Sound", category = FAILSAFE, subcategory = "Failsafe Trigger Sound",
description = "Plays the selected sound",
text = "Play"
)
Runnable _playFailsafeSoundButton = () -> AudioManager.getInstance().playSound();
@Button(
name = "Stop Sound", category = FAILSAFE, subcategory = "Failsafe Trigger Sound",
description = "Stops playing the selected sound",
text = "Stop"
)
Runnable _stopFailsafeSoundButton = () -> AudioManager.getInstance().resetSound();
//</editor-fold>
public static int getRandomRotationTime() {
return rotationTime + (int) (Math.random() * rotationTimeRandomizer);
}
public static int getRandomSneakTime() {
return sneakTime + (int) (Math.random() * sneakTimeRandomizer);
}
public static int getRandomGuiWaitDelay() {
return delaysGuiDelay + (int) (Math.random() * delaysGuiDelayRandomizer);
}
}