-
Notifications
You must be signed in to change notification settings - Fork 65
Expand file tree
/
Copy pathPatcherConfig.java
More file actions
1371 lines (1172 loc) · 56.1 KB
/
Copy pathPatcherConfig.java
File metadata and controls
1371 lines (1172 loc) · 56.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
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
package club.sk1er.patcher.config;
import club.sk1er.patcher.Patcher;
import club.sk1er.patcher.tweaker.ClassTransformer;
import gg.essential.api.utils.GuiUtil;
import gg.essential.vigilance.Vigilant;
import gg.essential.vigilance.data.Property;
import gg.essential.vigilance.data.PropertyType;
import kotlin.jvm.functions.Function0;
import net.minecraft.client.Minecraft;
import net.minecraftforge.common.ForgeVersion;
import org.apache.commons.lang3.SystemUtils;
import java.io.File;
import java.util.Arrays;
import java.util.Objects;
import java.util.function.Consumer;
@SuppressWarnings("unused")
public class PatcherConfig extends Vigilant {
// BUG FIXES
@Property(
type = PropertyType.SWITCH, name = "Keep Shaders on Perspective Change",
description = "Resolve Vanilla shaders being cleared when changing perspective.",
category = "Bug Fixes", subcategory = "General"
)
public static boolean keepShadersOnPerspectiveChange = true;
@Property(
type = PropertyType.SWITCH, name = "Parallax Fix",
description = "Resolve the camera being too far back, seemingly making your eyes be in the back of your head.\n" +
"§cCurrently makes the F3 crosshair disappear.",
category = "Bug Fixes", subcategory = "General"
)
public static boolean parallaxFix;
@Property(
type = PropertyType.SWITCH, name = "Culling Fix",
description = "Resolve false negatives in frustum culling, creating invisible chunks in some cases.\n§cCan negatively impact performance.",
category = "Bug Fixes", subcategory = "General"
)
public static boolean cullingFix;
@Property(
type = PropertyType.SWITCH, name = "Resource Exploit Fix",
description = "Resolve an exploit in 1.8 allowing servers to look through directories.",
category = "Bug Fixes", subcategory = "Security"
)
public static boolean resourceExploitFix = true;
@Property(
type = PropertyType.SWITCH, name = "Layers In Tab",
description = "Resolve players sometimes not having a hat layer in Tab.",
category = "Bug Fixes", subcategory = "General"
)
public static boolean layersInTab = true;
@Property(
type = PropertyType.SWITCH, name = "Player Void Rendering",
description = "Resolve the black box around the player while in the void.",
category = "Bug Fixes", subcategory = "Rendering"
)
public static boolean playerVoidRendering = true;
@Property(
type = PropertyType.SWITCH, name = "Alex Arm Position",
description = "Resolve Alex-model arms being shifted down further than Steve-model arms.\n§eRequires a restart once toggled.",
category = "Bug Fixes", subcategory = "Rendering"
)
public static boolean fixedAlexArms = true;
@Property(
type = PropertyType.SWITCH, name = "Fix Actionbar Overlap",
description = "Prevents the actionbar text from rendering above the armor/health bar.",
category = "Bug Fixes", subcategory = "Rendering"
)
public static boolean fixActionbarOverlap;
@Property(
type = PropertyType.SELECTOR, name = "Keyboard Layout",
description = "The layout of your keyboard, used to fix input bugs accordingly.",
category = "Bug Fixes", subcategory = "Linux",
options = {"QWERTY", "BE AZERTY", "FR AZERTY"}
)
public static int keyboardLayout = 0;
@Property(
type = PropertyType.SWITCH, name = "Vanilla Glass Panes",
description = "Reverts a Forge change causing Glass Panes and Iron Bars to connect where they shouldn't.",
category = "Bug Fixes", subcategory = "Forge"
)
public static boolean vanillaGlassPanes;
// MISCELLANEOUS
@Property(
type = PropertyType.SWITCH, name = "Better Keybind Handling",
description = "Make keys re-register when closing a GUI, like in 1.12+.\n§cDoes not work on macOS due to LWJGL issues.",
category = "Miscellaneous", subcategory = "General"
)
public static boolean newKeybindHandling = true;
@Property(
type = PropertyType.SWITCH, name = "Separate Sound & Texture Reloading",
description = "Separate reloading resources into reloading sounds (F3+S) and reloading textures (F3+T).",
category = "Miscellaneous", subcategory = "General"
)
public static boolean separateResourceLoading;
@Property(
type = PropertyType.SWITCH, name = "Fullbright",
description = "Remove lighting updates, increasing visibility.\n§eCan positively impact performance.\n§cMay conflict with minimaps.",
category = "Miscellaneous", subcategory = "Rendering", triggerActionOnInitialization = false
)
public static boolean fullbright = true;
@Property(
type = PropertyType.SWITCH, name = "Smart Fullbright",
description = "Automatically disable the Fullbright effect when using OptiFine shaders.",
category = "Miscellaneous", subcategory = "Rendering"
)
public static boolean smartFullbright = true;
@Property(
type = PropertyType.SWITCH, name = "Nausea Effect",
description = "Remove the nether portal effect appearing when clearing nausea.",
category = "Miscellaneous", subcategory = "Overlays"
)
public static boolean nauseaEffect;
@Property(
type = PropertyType.SWITCH, name = "Disable Achievements",
description = "Remove achievement notifications.",
category = "Miscellaneous", subcategory = "Overlays"
)
public static boolean disableAchievements;
@Property(
type = PropertyType.DECIMAL_SLIDER, name = "Fire Overlay Height",
description = "Change the height of the fire overlay.",
category = "Miscellaneous", subcategory = "Overlays",
minF = -0.5F, maxF = 1.5F
)
public static float fireOverlayHeight;
@Property(
type = PropertyType.PERCENT_SLIDER, name = "Fire Overlay Opacity",
description = "Change the opacity of the fire overlay.",
category = "Miscellaneous", subcategory = "Overlays",
maxF = 1.0F
)
public static float fireOverlayOpacity = 1.0F;
@Property(
type = PropertyType.SWITCH, name = "Hide Fire Overlay with Fire Resistance",
description = "Hide the fire overlay when you have fire resistance active.\n" +
"The overlay will blink 5 seconds before your fire resistance is about to run out.",
category = "Miscellaneous", subcategory = "Overlays"
)
public static boolean hideFireOverlayWithFireResistance;
@Property(
type = PropertyType.SWITCH, name = "Disable Titles",
description = "Stop titles from appearing.",
category = "Miscellaneous", subcategory = "Overlays", i18nSubcategory = "Titles"
)
public static boolean disableTitles;
@Property(
type = PropertyType.PERCENT_SLIDER, name = "Title Scale",
description = "Set the scale for titles.",
category = "Miscellaneous", subcategory = "Titles"
)
public static float titleScale = 1.0F;
@Property(
type = PropertyType.SWITCH, name = "Automatically Scale Title",
description = "Automatically scale titles if the title goes over the screen.",
category = "Miscellaneous", subcategory = "Titles"
)
public static boolean autoTitleScale;
@Property(
type = PropertyType.PERCENT_SLIDER, name = "Title Opacity",
description = "Change the opacity of titles.",
category = "Miscellaneous", subcategory = "Titles",
maxF = 1.0F
)
public static float titleOpacity = 1.0F;
@Property(
type = PropertyType.SWITCH, name = "FOV Modifier",
description = "Allow for modifying FOV change states.",
category = "Miscellaneous", subcategory = "Field of View"
)
public static boolean allowFovModifying;
@Property(
type = PropertyType.DECIMAL_SLIDER, name = "Sprinting FOV",
description = "Modify your FOV when sprinting.",
category = "Miscellaneous", subcategory = "Field of View",
minF = -5, maxF = 5
)
public static float sprintingFovModifierFloat = 1;
@Property(
type = PropertyType.DECIMAL_SLIDER, name = "Bow FOV",
description = "Modify your FOV when pulling back a bow.",
category = "Miscellaneous", subcategory = "Field of View",
minF = -5, maxF = 5
)
public static float bowFovModifierFloat = 1;
@Property(
type = PropertyType.DECIMAL_SLIDER, name = "Speed FOV",
description = "Modify your FOV when having the speed effect.",
category = "Miscellaneous", subcategory = "Field of View",
minF = -5, maxF = 5
)
public static float speedFovModifierFloat = 1;
@Property(
type = PropertyType.DECIMAL_SLIDER, name = "Slowness FOV",
description = "Modify your FOV when having the slowness effect.",
category = "Miscellaneous", subcategory = "Field of View",
minF = -5, maxF = 5
)
public static float slownessFovModifierFloat = 1;
@Property(
type = PropertyType.SWITCH, name = "Toggle Tab",
description = "Hold tab open without needing to hold down the tab key.",
category = "Miscellaneous", subcategory = "Tab"
)
public static boolean toggleTab;
@Property(
type = PropertyType.SWITCH, name = "Disable Hotbar Scrolling",
description = "Remove the ability to scroll through your hotbar.",
category = "Miscellaneous", subcategory = "General"
)
public static boolean disableHotbarScrolling;
@Property(
type = PropertyType.SWITCH, name = "Crosshair Perspective",
description = "Remove the crosshair when in third person.",
category = "Miscellaneous", subcategory = "General"
)
public static boolean crosshairPerspective;
@Property(
type = PropertyType.PERCENT_SLIDER, name = "Unfocused Sounds",
description = "Change the volume of sounds when you're not tabbed into the window.",
category = "Miscellaneous", subcategory = "General"
)
public static float unfocusedSounds = 1.0F;
@Property(
type = PropertyType.SWITCH, name = "Unfocused FPS",
description = "Toggle changing your FPS to whatever Unfocused FPS is set to when not tabbed into the window.",
category = "Miscellaneous", subcategory = "General"
)
public static boolean unfocusedFPS;
@Property(
type = PropertyType.SLIDER, name = "Unfocused FPS Amount",
description = "Change the maximum FPS when you're not tabbed into the window, saving resources.",
category = "Miscellaneous", subcategory = "General",
min = 15, max = 240
)
public static int unfocusedFPSAmount = 60;
@Property(
type = PropertyType.NUMBER, name = "Custom FPS Limit",
description = "Change the maximum FPS to a value that Minecraft doesn't normally allow for. Setting this to 0 will go back to the value set in Minecraft.",
category = "Miscellaneous", subcategory = "General",
max = Integer.MAX_VALUE
)
public static int customFpsLimit = 0;
@Property(
type = PropertyType.SWITCH, name = "Remove Ground Foliage",
description = "Stop plants/flowers from rendering.",
category = "Miscellaneous", subcategory = "Blocks", triggerActionOnInitialization = false
)
public static boolean removeGroundFoliage;
@Property(
type = PropertyType.SWITCH, name = "Show Own Nametag",
description = "See your nametag in third person.",
category = "Miscellaneous", subcategory = "Rendering"
)
public static boolean showOwnNametag;
@Property(
type = PropertyType.SWITCH, name = "Clean Projectiles",
description = "Show projectiles 2 ticks after they're shot to stop them from obstructing your view.",
category = "Miscellaneous", subcategory = "Rendering"
)
public static boolean cleanProjectiles;
@Property(
type = PropertyType.PERCENT_SLIDER, name = "Ridden Horse Opacity",
description = "Change the opacity of the horse you're currently riding for visibility.",
category = "Miscellaneous", subcategory = "Rendering"
)
public static float riddenHorseOpacity = 1.0F;
@Property(
type = PropertyType.SWITCH, name = "Hide Aura on Invisible Withers",
description = "Don't render the aura around a wither when it is invisible.",
category = "Miscellaneous", subcategory = "Rendering"
)
public static boolean hideAuraOnInvisibleWither;
@Property(
type = PropertyType.SWITCH, name = "Zoom Adjustment",
description = "Scroll when using OptiFine's zoom to adjust the zoom level.",
category = "Miscellaneous", subcategory = "OptiFine"
)
public static boolean scrollToZoom = true;
@Property(
type = PropertyType.SWITCH, name = "Remove Smooth Camera While Zoomed",
description = "Remove the smooth camera effect when using zoom.",
category = "Miscellaneous", subcategory = "OptiFine"
)
public static boolean normalZoomSensitivity;
@Property(
type = PropertyType.SWITCH, name = "Render Hand While Zoomed",
description = "Keep your hand on screen when you zoom in.",
category = "Miscellaneous", subcategory = "OptiFine"
)
public static boolean renderHandWhenZoomed;
@Property(
type = PropertyType.PERCENT_SLIDER, name = "Zoom Sensitivity",
description = "Use a custom mouse sensitivity value when zoomed in.",
category = "Miscellaneous", subcategory = "OptiFine"
)
public static float customZoomSensitivity = 1.0F;
@Property(
type = PropertyType.SWITCH, name = "Dynamic Zoom Sensitivity",
description = "Reduce your mouse sensitivity the more you zoom in.",
category = "Miscellaneous", subcategory = "OptiFine"
)
public static boolean dynamicZoomSensitivity;
@Property(
type = PropertyType.SWITCH, name = "Smooth Zoom Animation",
description = "Add a smooth animation when you zoom in and out.",
category = "Miscellaneous", subcategory = "OptiFine"
)
public static boolean smoothZoomAnimation;
@Property(
type = PropertyType.SWITCH, name = "Smooth Scroll-to-Zoom Animation",
description = "Add a smooth animation when you scroll in and out while zoomed.",
category = "Miscellaneous", subcategory = "OptiFine"
)
public static boolean smoothZoomAnimationWhenScrolling;
@Property(
type = PropertyType.SELECTOR, name = "Smooth Zoom Function",
description = "Change the smoothing function used in the smooth zooming animation.",
category = "Miscellaneous", subcategory = "OptiFine",
options = {"In Out Quad", "In Out Circular", "Out Quint"}
)
public static int smoothZoomAlgorithm = 0;
@Property(
type = PropertyType.SWITCH, name = "Toggle to Zoom",
description = "Make OptiFine's zoom key a toggle instead of requiring you to hold it.",
category = "Miscellaneous", subcategory = "OptiFine"
)
public static boolean toggleToZoom;
@Property(
type = PropertyType.SWITCH, name = "Simplify FPS Counter",
description = "Remove the extra FPS counter added by OptiFine.",
category = "Miscellaneous", subcategory = "OptiFine"
)
public static boolean normalFpsCounter = true;
@Property(
type = PropertyType.SWITCH, name = "Use Vanilla Metrics Renderer",
description = "Replace OptiFine's ALT+F3 metrics renderer with the Vanilla renderer.",
category = "Miscellaneous", subcategory = "OptiFine"
)
public static boolean useVanillaMetricsRenderer = true;
@Property(
type = PropertyType.SWITCH, name = "Number Ping",
description = "Show a readable ping number in tab instead of bars.",
category = "Miscellaneous", subcategory = "Tab"
)
public static boolean numberPing = true;
@Property(
type = PropertyType.SWITCH, name = "Numerical Enchantments",
description = "Use readable numbers instead of Roman numerals on enchants.",
category = "Miscellaneous", subcategory = "Rendering"
)
public static boolean numericalEnchants;
@Property(
type = PropertyType.SWITCH, name = "Translate Unknown Roman Numerals",
description = "Generate Roman numeral from enchantment and potion levels instead of using language file.",
category = "Miscellaneous", subcategory = "Rendering"
)
public static boolean betterRomanNumerals = true;
@Property(
type = PropertyType.SWITCH, name = "Clean View",
description = "Stop rendering your potion effect particles.",
category = "Miscellaneous", subcategory = "Rendering"
)
public static boolean cleanView;
@Property(
type = PropertyType.SWITCH, name = "Windowed Fullscreen",
description = "Implement Windowed Fullscreen in Minecraft, allowing you to drag your mouse outside the window.",
category = "Miscellaneous", subcategory = "Window"
)
public static boolean windowedFullscreen;
@Property(
type = PropertyType.SWITCH, name = "Instant Fullscreen",
description = "Instant switching between fullscreen and non-fullscreen modes.",
category = "Miscellaneous", subcategory = "Window"
)
public static boolean instantFullscreen;
@Property(
type = PropertyType.SWITCH, name = "Remove Water Overlay",
description = "Remove the water texture overlay when underwater.",
category = "Miscellaneous", subcategory = "Overlays"
)
public static boolean removeWaterOverlay;
@Property(
type = PropertyType.SWITCH, name = "Disable Breaking Particles",
description = "Remove block-breaking particles for visibility.",
category = "Miscellaneous", subcategory = "Rendering"
)
public static boolean disableBlockBreakParticles;
@Property(
type = PropertyType.SWITCH, name = "Disable Lightning Bolts",
description = "Stop lightning bolts from appearing.",
category = "Miscellaneous", subcategory = "Rendering"
)
public static boolean disableLightningBolts;
@Property(
type = PropertyType.SWITCH, name = "Log Optimizer",
description = "Delete all files in the logs folder, as these can usually take up a lot of space.\n§cThese files are not recoverable once deleted.",
category = "Miscellaneous", subcategory = "General"
)
public static boolean logOptimizer;
@Property(
type = PropertyType.SLIDER, name = "Log Optimizer Amount",
description = "Choose how many days old a file must be before being deleted.",
category = "Miscellaneous", subcategory = "General",
min = 1, max = 90
)
public static int logOptimizerLength = 30;
@Property(
type = PropertyType.SWITCH, name = "Remove Inverted Colors from Crosshair",
description = "Remove the inverted color effect on the crosshair.",
category = "Miscellaneous", subcategory = "Overlays"
)
public static boolean removeInvertFromCrosshair;
@Property(
type = PropertyType.SWITCH, name = "1.12 Farm Selection Boxes",
description = "Replaces the selection box for crops with the 1.12 variant.\n§eOnly works on Hypixel & Singleplayer.",
category = "Miscellaneous", subcategory = "Blocks"
)
public static boolean futureHitBoxes = true;
@Property(
type = PropertyType.SWITCH, name = "Alternate Text Shadow",
description = "Change the text-shadow to only move down rather than move to the side.",
category = "Miscellaneous", subcategory = "Rendering"
)
public static boolean alternateTextShadow;
@Property(
type = PropertyType.SWITCH, name = "Add Text Shadow to Nametags",
description = "Render nametags with shadowed text.",
category = "Miscellaneous", subcategory = "Rendering"
)
public static boolean shadowedNametagText;
@Property(
type = PropertyType.SWITCH, name = "Add Text Shadow to Actionbar",
description = "Render actionbar messages with shadowed text.",
category = "Miscellaneous", subcategory = "Rendering"
)
public static boolean shadowedActionbarText;
@Property(
type = PropertyType.SWITCH, name = "Add Background to Actionbar",
description = "Render a background behind the actionbar.",
category = "Miscellaneous", subcategory = "Rendering"
)
public static boolean actionbarBackground;
@Property(
type = PropertyType.SWITCH, name = "Disable Text Shadow",
description = "Remove shadows from text.\n§eCan positively impact performance.",
category = "Miscellaneous", subcategory = "Rendering"
)
public static boolean disableShadowedText;
@Property(
type = PropertyType.SWITCH, name = "Left Hand in First Person",
description = "Render the first-person hand on the left of the screen.",
category = "Miscellaneous", subcategory = "Rendering"
)
public static boolean leftHandInFirstPerson;
@Property(
type = PropertyType.SWITCH, name = "Better Camera",
description = "Stop tall grass, plants, reeds, etc. from affecting your FOV as done in 1.14+.",
category = "Miscellaneous", subcategory = "General"
)
public static boolean betterCamera = true;
@Property(
type = PropertyType.SWITCH, name = "Better F1",
description = "Hide nametags when in F1 mode.",
category = "Miscellaneous", subcategory = "General"
)
public static boolean betterHideGui;
@Property(
type = PropertyType.SWITCH, name = "Remove Screen Bobbing",
description = "While using View Bobbing, only remove the view aspect but have the hand still bounce around.",
category = "Miscellaneous", subcategory = "General"
)
public static boolean removeViewBobbing;
@Property(
type = PropertyType.SWITCH, name = "Remove Vertical Bobbing",
description = "While using View Bobbing, remove the vertical bobbing like in 1.14+.",
category = "Miscellaneous", subcategory = "General"
)
public static boolean removeVerticalViewBobbing;
@Property(
type = PropertyType.SWITCH, name = "Remove Map Bobbing",
description = "While using View Bobbing, remove the hand bobbing when holding a map.",
category = "Miscellaneous", subcategory = "General"
)
public static boolean mapBobbing;
@Property(
type = PropertyType.SWITCH, name = "Static Items",
description = "Stop items from bobbing up and down when dropped on the ground.",
category = "Miscellaneous", subcategory = "General"
)
public static boolean staticItems;
@Property(
type = PropertyType.BUTTON, name = "Modify Every Sound",
description = "Open a separate GUI allowing you to mute or amplify individual sounds.",
category = "Miscellaneous", subcategory = "General"
)
public static void modifyEverySound() {
GuiUtil.open(Objects.requireNonNull(Patcher.instance.getPatcherSoundConfig().gui()));
}
// PERFORMANCE
@Property(
type = PropertyType.SWITCH, name = "Optimized World Swapping",
description = "Remove unnecessary garbage collection & screen displaying to make world swapping feel nearly instant.",
category = "Performance", subcategory = "World"
)
public static boolean optimizedWorldSwapping = true;
@Property(
type = PropertyType.SWITCH, name = "Limit Chunk Updates",
description = "Limit the number of chunk updates that happen a second.",
category = "Performance", subcategory = "World"
)
public static boolean limitChunks;
@Property(
type = PropertyType.SLIDER, name = "Chunk Update Limit",
description = "Specify the number of updates that can happen a second.",
category = "Performance", subcategory = "World",
min = 5, max = 250
)
public static int chunkUpdateLimit = 50;
@Property(
type = PropertyType.SWITCH, name = "Downscale Pack Images",
description = "Change all pack icons to 64x64 to reduce memory usage.",
category = "Performance", subcategory = "Resources"
)
public static boolean downscalePackImages = true;
@Property(
type = PropertyType.SWITCH, name = "Low Animation Tick",
description = "Lowers the number of animations that happen a second from 1000 to 500.",
category = "Performance", subcategory = "World"
)
public static boolean lowAnimationTick = true;
@Property(
type = PropertyType.SWITCH, name = "Batch Model Rendering",
description = "Render models in a single draw call.",
category = "Performance", subcategory = "World"
)
public static boolean batchModelRendering = true;
@Property(
type = PropertyType.SWITCH, name = "Static Particle Color",
description = "Disable particle lighting checks each frame.",
category = "Performance", subcategory = "Particles"
)
public static boolean staticParticleColor = true;
@Property(
type = PropertyType.SLIDER, name = "Max Particle Limit",
description = "Stop additional particles from appearing when there are too many at once.",
category = "Performance", subcategory = "Particles",
min = 1, max = 10000
)
public static int maxParticleLimit = 4000;
@Property(
type = PropertyType.SWITCH, name = "Optimized Font Renderer",
description = "Use modern rendering techniques to improve the font renderer performance.",
category = "Performance", subcategory = "Text Rendering"
)
public static boolean optimizedFontRenderer = true;
@Property(
type = PropertyType.SWITCH, name = "Cache Font Data",
description = "Cache font data, allowing for it to be reused multiple times before needing recalculation.",
category = "Performance", subcategory = "Text Rendering"
)
public static boolean cacheFontData = true;
@Property(
type = PropertyType.SWITCH, name = "Disable Armorstands",
description = "Stop armor stands from rendering.\n§cArmor stands are commonly used for NPC nametags. Enabling this will stop those from rendering as well.",
category = "Performance", subcategory = "Entity Rendering"
)
public static boolean disableArmorstands;
@Property(
type = PropertyType.SWITCH, name = "Disable Semitransparent Players",
description = "Stop semitransparent players from rendering.",
category = "Performance", subcategory = "Entity Rendering"
)
public static boolean disableSemitransparentEntities;
@Property(
type = PropertyType.SWITCH, name = "Disable Enchantment Books",
description = "Stop enchantment table books from rendering.",
category = "Performance", subcategory = "Entity Rendering"
)
public static boolean disableEnchantmentBooks;
@Property(
type = PropertyType.SWITCH, name = "Disable Item Frames",
description = "Stop item frames from rendering.",
category = "Performance", subcategory = "Entity Rendering"
)
public static boolean disableItemFrames;
@Property(
type = PropertyType.SWITCH, name = "Disable Mapped Item Frames",
description = "Stop item frames only with maps as their item from rendering.",
category = "Performance", subcategory = "Entity Rendering"
)
public static boolean disableMappedItemFrames;
@Property(
type = PropertyType.SWITCH, name = "Disable Grounded Arrows",
description = "Stop arrows that are in the ground from rendering.",
category = "Performance", subcategory = "Entity Rendering"
)
public static boolean disableGroundedArrows;
@Property(
type = PropertyType.SWITCH, name = "Disable Attached Arrows",
description = "Stop arrows that are attached to a player from rendering.",
category = "Performance", subcategory = "Entity Rendering"
)
public static boolean disableAttachedArrows;
@Property(
type = PropertyType.SWITCH, name = "Disable Moving Arrows",
description = "Stop arrows that are airborne from rendering.",
category = "Performance", subcategory = "Entity Rendering"
)
public static boolean disableMovingArrows;
@Property(
type = PropertyType.SWITCH, name = "Disable Skulls",
description = "Stop skulls from rendering.",
category = "Performance", subcategory = "Entity Rendering"
)
public static boolean disableSkulls;
@Property(
type = PropertyType.SWITCH, name = "Disable End Portals",
description = "Stop end portals from rendering.",
category = "Performance", subcategory = "General"
)
public static boolean disableEndPortals;
@Property(
type = PropertyType.SWITCH, name = "Disable Nametag Boxes",
description = "Remove the transparent box around the nametag.",
category = "Performance", subcategory = "Entity Rendering"
)
public static boolean disableNametagBoxes;
@Property(
type = PropertyType.SWITCH, name = "Unstacked Items",
description = "Render stacks of items on the ground as just one instead of having up to 5 copies in one stack.",
category = "Performance", subcategory = "Entity Rendering"
)
public static boolean unstackedItems;
@Property(
type = PropertyType.SWITCH, name = "Entity Culling",
description = "Check to see if an entity is visible to the player before attempting to render them.",
category = "Performance", subcategory = "Culling"
)
public static boolean entityCulling = true;
@Property(
type = PropertyType.SELECTOR, name = "Entity Culling Interval",
description = "The amount of time in ms between performing visibility checks for entities.\nShorter periods are more costly toward performance but provide the most accurate information.\nLower values are recommended in competitive environments.",
category = "Performance", subcategory = "Culling",
options = {"50", "25", "10"}
)
public static int cullingInterval = 0;
@Property(
type = PropertyType.SWITCH, name = "Smart Entity Culling",
description = "Disable Entity Culling effect when using OptiFine shaders.\n§cDue to the way OptiFine shaders work, we are unable to make Entity Culling compatible.",
category = "Performance", subcategory = "Culling"
)
public static boolean smartEntityCulling = true;
@Property(
type = PropertyType.SWITCH, name = "Don't Cull Player Nametags",
description = "Continue to render Player Nametags when the entity is being occluded.",
category = "Performance", subcategory = "Culling"
)
public static boolean dontCullNametags = true;
@Property(
type = PropertyType.SWITCH, name = "Don't Cull Entity Nametags",
description = "Continue to render Entity Nametags when the entity is being occluded.",
category = "Performance", subcategory = "Culling"
)
public static boolean dontCullEntityNametags = true;
@Property(
type = PropertyType.SWITCH, name = "Don't Cull Armorstand Nametags",
description = "Continue to render Armorstand Nametags when the entity is being occluded.",
category = "Performance", subcategory = "Culling"
)
public static boolean dontCullArmorStandNametags = true;
@Property(
type = PropertyType.SWITCH, name = "Check Armorstand Rules",
description = "Don't cull armor stands that have a specific rule assigned to them." +
"\nThis will result in a lot of non-occluded armor stands in places like Hypixel Skyblock, " +
"but will resolve special entities being occluded when they typically shouldn't be.",
category = "Performance", subcategory = "Culling"
)
public static boolean checkArmorstandRules;
@Property(
type = PropertyType.SWITCH, name = "Disable Enchantment Glint",
description = "Disable the enchantment glint.",
category = "Performance", subcategory = "General"
)
public static boolean disableEnchantmentGlint;
@Property(
type = PropertyType.SWITCH, name = "Entity Back-face Culling",
description = "Stop rendering sides of entities that you cannot see.\n" +
"Being inside an entity will cause that body part to be invisible.\n" +
"§cSome models may have a transparent face and will cause the back face to not show, such as Wither Skeletons.",
category = "Performance", subcategory = "Culling"
)
public static boolean entityBackFaceCulling;
@Property(
type = PropertyType.SWITCH, name = "Player Back-face Culling",
description = "Stop rendering sides of players that you cannot see.\n" +
"Being inside a player will cause that body part to be invisible.",
category = "Performance", subcategory = "Culling"
)
public static boolean playerBackFaceCulling;
@Property(
type = PropertyType.SWITCH, name = "Entity Render Distance Toggle",
description = "Toggle allowing a custom entity render distance.",
category = "Performance", subcategory = "Entity Rendering"
)
public static boolean entityRenderDistanceToggle;
@Property(
type = PropertyType.SLIDER, name = "Global Entity Render Distance",
description = "Stop rendering all entities outside of a specified radius.\n" +
"This will ignore the distance of other entity render distances if smaller.",
category = "Performance", subcategory = "Entity Rendering",
min = 1, max = 64
)
public static int entityRenderDistance = 64;
@Property(
type = PropertyType.SLIDER, name = "Player Render Distance",
description = "Stop rendering players outside of a specified radius.",
category = "Performance", subcategory = "Entity Rendering",
min = 1, max = 64
)
public static int playerRenderDistance = 64;
@Property(
type = PropertyType.SLIDER, name = "Passive Entity Render Distance",
description = "Stop rendering passive entities outside of a specified radius.",
category = "Performance", subcategory = "Entity Rendering",
min = 1, max = 64
)
public static int passiveEntityRenderDistance = 64;
@Property(
type = PropertyType.SLIDER, name = "Hostile Entity Render Distance",
description = "Stop rendering hostile entities outside of a specified radius.",
category = "Performance", subcategory = "Entity Rendering",
min = 1, max = 64
)
public static int hostileEntityRenderDistance = 64;
// SCREENS
@Property(
type = PropertyType.SWITCH, name = "Inventory Position",
description = "Stop potion effects from shifting your inventory to the right.",
category = "Screens", subcategory = "Inventory"
)
public static boolean inventoryPosition = true;
@Property(
type = PropertyType.SWITCH, name = "Click Out of Containers",
description = "Click outside a container to close the menu.",
category = "Screens", subcategory = "Inventory"
)
public static boolean clickOutOfContainers;
@Property(
type = PropertyType.SELECTOR, name = "Inventory Scale",
description = "Change the scale of your inventory independent of your GUI scale.",
category = "Screens", subcategory = "Inventory",
options = {"Off", "1 (Small)", "2 (Normal)", "3 (Large)", "4", "5 (Auto)"}
)
public static int inventoryScale = 0;
public static int getInventoryScale() {
return inventoryScale == 0 ? -1 : inventoryScale;
}
@Property(
type = PropertyType.SWITCH, name = "Remove Container Background",
description = "Remove the dark background inside a container.",
category = "Screens", subcategory = "General"
)
public static boolean removeContainerBackground = false;
@Property(
type = PropertyType.PERCENT_SLIDER, name = "Container Opacity",
description = "Change the opacity of supported containers.\nIncludes Chests & Survival Inventory.",
category = "Screens", subcategory = "General"
)
public static float containerOpacity = 1.0f;
@Property(
type = PropertyType.PERCENT_SLIDER, name = "Tab Opacity",
description = "Change the tab list opacity.",
category = "Screens", subcategory = "Tab"
)
public static float tabOpacity = 1.0F;
@Property(
type = PropertyType.SLIDER, name = "Tab Player Count",
description = "Change how many players can display on tab.",
category = "Screens", subcategory = "Tab",
min = 10, max = 120
)
public static int tabPlayerCount = 80;
@Property(
type = PropertyType.SWITCH, name = "GUI Crosshair",
description = "Stop rendering the crosshair when in a GUI.",
category = "Screens", subcategory = "General"
)
public static boolean guiCrosshair;
@Property(
type = PropertyType.SWITCH, name = "1.11 Chat Length",
description = "Extend the number of characters you can type from 100 to 256 on supported servers." +
"\n§eSupported servers are servers that support 1.11 or above." +
"\n§cSome servers may kick you for this despite supporting 1.11 or above.",
category = "Screens", subcategory = "Chat"
)
public static boolean extendedChatLength = true;
@Property(
type = PropertyType.SWITCH, name = "Transparent Chat",
description = "Remove the background from chat.\n§eCan positively impact performance.",
category = "Screens", subcategory = "Chat"
)
public static boolean transparentChat;
@Property(
type = PropertyType.SWITCH, name = "Chat Background When Open",
description = "Add back the background when chat is open.",
category = "Screens", subcategory = "Chat"
)
public static boolean transparentChatOnlyWhenClosed;
@Property(
type = PropertyType.SWITCH, name = "Transparent Chat Input Field",
description = "Remove the background from chat's input field.\n§eCan positively impact performance.",
category = "Screens", subcategory = "Chat"
)
public static boolean transparentChatInputField;
@Property(
type = PropertyType.SWITCH, name = "Extend Chat Background",
description = "Extend the chat background all the way to the left of the screen.",
category = "Screens", subcategory = "Chat"
)
public static boolean extendChatBackground = true;
@Property(
type = PropertyType.SWITCH, name = "Tab Height",
description = "Move the tab overlay down the selected amount of pixels when there's an active bossbar.",
category = "Screens", subcategory = "Tab"
)
public static boolean tabHeightAllow = true;
@Property(
type = PropertyType.SLIDER, name = "Set Tab Height",
description = "Choose how many pixels tab will move down when there's an active bossbar.",
category = "Screens", subcategory = "Tab",
max = 24
)
public static int tabHeight = 10;
@Property(
type = PropertyType.SWITCH, name = "Compact Chat",
description = "Clean up the chat by stacking duplicate messages.",
category = "Screens", subcategory = "Chat"
)
public static boolean compactChat = true;
@Property(
type = PropertyType.SWITCH, name = "Consecutive Compact Chat",
description = "Only compact messages if they're consecutive.",
category = "Screens", subcategory = "Chat"
)
public static boolean consecutiveCompactChat;
@Property(
type = PropertyType.SLIDER, name = "Compact Chat Time",
description = "Change the amount of time old messages take to stop being compacted.\n§eMeasured in seconds.",
category = "Screens", subcategory = "Chat",
min = 1, max = 120
)
public static int compactChatTime = 60;
@Property(
type = PropertyType.SWITCH, name = "Remove Blank Messages",
description = "Stop messages with no content from showing up in chat.",
category = "Screens", subcategory = "Chat"
)
public static boolean removeBlankMessages;
@Property(