aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/dulkirmod/config/DulkirConfig.kt
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/kotlin/dulkirmod/config/DulkirConfig.kt')
-rw-r--r--src/main/kotlin/dulkirmod/config/DulkirConfig.kt646
1 files changed, 646 insertions, 0 deletions
diff --git a/src/main/kotlin/dulkirmod/config/DulkirConfig.kt b/src/main/kotlin/dulkirmod/config/DulkirConfig.kt
new file mode 100644
index 0000000..8ea114a
--- /dev/null
+++ b/src/main/kotlin/dulkirmod/config/DulkirConfig.kt
@@ -0,0 +1,646 @@
+package dulkirmod.config
+
+import cc.polyfrost.oneconfig.config.Config
+import cc.polyfrost.oneconfig.config.annotations.*
+import cc.polyfrost.oneconfig.config.data.Mod
+import cc.polyfrost.oneconfig.config.data.ModType
+import dulkirmod.DulkirMod
+import dulkirmod.utils.Utils
+
+object DulkirConfig : Config(Mod("DulkirMod", ModType.SKYBLOCK), "dulkirmod-config.json") {
+
+
+ @Switch(
+ name = "Patch Crimson Isle memory leak",
+ description = "This is a temporary fix for the memory leak on crimson isles. It will be removed when Hypixel fixes the issue.",
+ category = "General",
+ subcategory = "General"
+ )
+ var crimsonIslesMemoryLeakPatch = true
+
+ @Property(
+ type = PropertyType.SWITCH,
+ name = "Hide Enchant Rune Particles",
+ description = "ugly go bye-bye",
+ category = "General",
+ subcategory = "General"
+ )
+ var hideEnchantRune = false
+
+ @Switch(
+ name = "Abiphone Do-Not-Disturb",
+ description = "Detects incoming calls and mutes ring audio for like 5 seconds. \nWorks as long as u don't lag particularly hard at the same time you're being called.",
+ category = "General",
+ subcategory = "General"
+ )
+ var abiDND = false
+
+ @Property(
+ type = PropertyType.SWITCH,
+ name = "Abiphone Caller ID",
+ description = "If DND is on, still give the player a quick 1 liner to tell them who is calling.",
+ category = "General",
+ subcategory = "General"
+ )
+ var abiCallerID = false
+
+ @Switch(
+ name = "Hurt Cam Slider",
+ description = "more or less ouchie",
+ category = "General",
+ subcategory = "General"
+ )
+ var hurtCamSlider = false
+
+ @Property(
+ type = PropertyType.DECIMAL_SLIDER,
+ name = "Hurt Cam Intensity",
+ description = "1 is default, make sure other mods noHurtCam stuff is off",
+ category = "General",
+ minF = 0f,
+ maxF = 2f,
+ decimalPlaces = 1
+ )
+ var hurtCamIntensity = 1f
+
+ @Switch(
+ name = "Tooltip Features",
+ description = "Turns on scrollable and (optional) scalable tooltips.",
+ category = "General",
+ subcategory = "General"
+ )
+ var scaledTooltips = false
+
+ @Slider(
+ name = "Tooltip Scale",
+ description = "1 is default",
+ category = "General",
+ subcategory = "General",
+ min = 0f,
+ max = 2f,
+ step = 0
+ )
+ var tooltipSize = 1f
+
+ @Switch(
+ name = "Hide Healer fairy",
+ description = "Now only runs in dungeons lol",
+ category = "Dungeons",
+ subcategory = "Dungeons"
+ )
+ var hideHealerFairy = false
+
+ @Switch(
+ name = "Hide Heart Particles",
+ description = "Useful for hyperion and healer bullshit",
+ category = "Dungeons",
+ subcategory = "Dungeons"
+ )
+ var hideHeartParticles = false
+
+ @Switch(
+ name = "Throttle Notifier",
+ description = "Im pretty sure this is mostly patched? Idk I'm leaving it in",
+ category = "Dungeons",
+ subcategory = "Dungeons"
+ )
+ var throttleNotifier = true
+
+ @Switch(
+ name = "Vanquisher Broadcaster",
+ description = "sends patcher sendcoords msg when you spawn a vanquisher. might make this put a waypoint later",
+ category = "Random Beta Features",
+ subcategory = "Random Beta Features"
+ )
+ var vanqBroadcast = false
+
+ @Property(
+ type = PropertyType.TEXT,
+ name = "Throttle Notifier String",
+ description = "How do you want to tell people you are throttled?",
+ category = "Dungeons",
+ subcategory = "Dungeons",
+ placeholder = "i am being throttled zzz",
+ protectedText = false
+ )
+ var customMessage: String = "i am being throttled zzz"
+
+ @Property(
+ type = PropertyType.SWITCH,
+ name = "Throttle Notifier Spam",
+ description = "LET EM KNOW!",
+ category = "Dungeons",
+ subcategory = "Dungeons"
+ )
+ var throttleNotifierSpam = true
+
+ @Property(
+ type = PropertyType.SWITCH,
+ name = "M7 Dragon Timer",
+ description = "Large in-world text timers to help you see when dragons will spawn.",
+ category = "Dungeons",
+ subcategory = "Dungeons"
+ )
+ var dragonTimer = true
+
+ @Switch(
+ name = "Better M7 Dragon Killbox",
+ description = "Mostly stolen from odin",
+ category = "Dungeons",
+ subcategory = "Dungeons"
+ )
+ var dragonKillBox = true
+
+ @Switch(
+ name = "Hide Extra Nametags",
+ description = "Prevents some nametags not covered by skytils \"Hide non-starred nametags\" from rendering.",
+ category = "General",
+ subcategory = "General"
+ )
+ var hideTags = true
+
+ // CUSTOM ANIMATIONS
+ @Property(
+ type = PropertyType.SWITCH,
+ name = "Global Toggle",
+ description = "Change the look of your held item",
+ category = "Animations",
+ subcategory = "Animations"
+ )
+ var customAnimations = false
+
+ @Property(
+ type = PropertyType.DECIMAL_SLIDER,
+ name = "Size",
+ description = "Scales the size of your currently held item. Default: 0",
+ category = "Animations",
+ subcategory = "Dungeons",
+ min = -1.5f,
+ max = 1.5f,
+ step = 0
+ )
+ var customSize = 0f
+
+ @Checkbox(
+ name = "Scale Swing",
+ description = "Also scale the size of the swing animation.",
+ category = "Animations",
+ subcategory = "Animations"
+ )
+ var doesScaleSwing = true
+
+ @Property(
+ type = PropertyType.DECIMAL_SLIDER,
+ name = "X",
+ description = "Moves the held item. Default: 0",
+ category = "Animations",
+ minF = -1.5f,
+ maxF = 1.5f,
+ decimalPlaces = 2
+ )
+ var customX = 0f
+
+ @Slider(
+ name = "Y",
+ description = "Moves the held item. Default: 0",
+ category = "Animations",
+ subcategory = "Animations",
+ min = -1.5f,
+ max = 1.5f,
+ step = 0
+ )
+ var customY = 0f
+
+ @Slider(
+ name = "Z",
+ description = "Moves the held item. Default: 0",
+ category = "Animations",
+ subcategory = "Animations",
+ min = -1.5f,
+ max = 1.5f,
+ step = 0
+ )
+ var customZ = 0f
+
+ @Slider(
+ name = "Yaw",
+ description = "Rotates your held item. Default: 0",
+ category = "Animations",
+ subcategory = "Animations",
+ min = -180f,
+ max = 180f,
+ step = 1
+ )
+ var customYaw = 0f
+
+ @Slider(
+ name = "Pitch",
+ description = "Rotates your held item. Default: 0",
+ category = "Animations",
+ subcategory = "Animations",
+ min = -180f,
+ max = 180f,
+ step = 1
+ )
+ var customPitch = 0f
+
+ @Slider(
+ name = "Roll",
+ description = "Rotates your held item. Default: 0",
+ category = "Animations",
+ subcategory = "Animations",
+ min = -180f,
+ max = 180f,
+ step = 1
+ )
+ var customRoll = 0f
+
+ @Slider(
+ name = "Speed",
+ description = "Speed of the swing animation.",
+ category = "Animations",
+ subcategory = "Animations",
+ min = -2f,
+ max = 1f,
+ step = 0
+ )
+ var customSpeed = 0f
+
+ @Property(
+ type = PropertyType.CHECKBOX,
+ name = "Ignore Haste",
+ description = "Makes the chosen speed override haste modifiers.",
+ category = "Animations",
+ subcategory = "Animations",
+ )
+ var ignoreHaste = true
+
+ @Property(
+ type = PropertyType.SELECTOR,
+ name = "Drinking Fix",
+ description = "Pick how to handle drinking animations.",
+ category = "Animations",
+ subcategory = "Fixes",
+ options = ["No fix", "Rotationless", "Fixed"]
+ )
+ var drinkingSelector = 2
+
+ @Property(
+ type = PropertyType.BUTTON,
+ name = "Reset Item Values",
+ description = "Vanilla Look! Closes Settings GUI.",
+ category = "Animations"
+ )
+ fun demoButton() {
+ customSize = 0f
+ customX = 0f
+ customY = 0f
+ customZ = 0f
+ customRoll = 0f
+ customPitch = 0f
+ customYaw = 0f
+ doesScaleSwing = true
+ ignoreHaste = true
+ customSpeed = 0f
+ DulkirMod.mc.displayGuiScreen(null)
+ }
+
+ @Property(
+ type = PropertyType.BUTTON,
+ name = "Export Preset as String",
+ description = "Base64 representation of your current config - will copy to clipboard when pressed.",
+ category = "Animations",
+ subcategory = "Presets",
+ text = "Export!"
+ )
+ fun presetString() = Utils.animationConfigToString()
+
+
+ @Button(
+ name = "Import Preset from Clipboard",
+ description = "Base64 representation of your config accepted from clipboard. Closes gui.",
+ category = "Animations",
+ subcategory = "Presets",
+ text = "Import!"
+ )
+ fun stringToConfig() = Utils.animationStringtoConfig()
+
+
+ @Property(
+ type = PropertyType.SWITCH,
+ name = "JoinDungeon Command Confirmation",
+ description = "Chat notification when you push the button. Useful if you suck at navigating a numpad.",
+ category = "Dungeons",
+ subcategory = "Dungeons"
+ )
+ var dungeonCommandConfirm = true
+
+ @Property(
+ type = PropertyType.SWITCH,
+ name = "Hide Chests that are already opened at Croesus",
+ description = "Just doesn't render the item if it has the chest opened string",
+ category = "Dungeons",
+ subcategory = "Dungeons"
+ )
+ var hideOpenedChests = false
+
+ @Property(
+ type = PropertyType.SWITCH,
+ name = "Highlight custom player for leap in menu",
+ description = "Changes texture to green wool! Use the \"/hl\" command for convenient assignment.",
+ category = "Dungeons",
+ subcategory = "Dungeons"
+ )
+ var highlightLeap = false
+
+ @Property(
+ type = PropertyType.TEXT,
+ name = "Highlighted player name",
+ description = "case-sensitive",
+ category = "Dungeons",
+ subcategory = "Dungeons",
+ placeholder = "Dilkur",
+ protectedText = false
+ )
+ var highlightLeapName: String = "Dilkur"
+
+ @Property(
+ type = PropertyType.SWITCH,
+ name = "Remove Selfie Camera",
+ description = "Get rid of pesky reverse third person!",
+ category = "General",
+ subcategory = "General"
+ )
+ var noReverse3rdPerson = false
+
+ @Property(
+ type = PropertyType.SWITCH,
+ name = "Bridge Bot Formatter",
+ description = "Global Toggle",
+ category = "Bridge",
+ subcategory = "Bridge"
+ )
+ var bridgeBot = false
+
+ @Property(
+ type = PropertyType.TEXT,
+ name = "Bridge Bot Name",
+ description = "Not case-sensitive",
+ category = "Bridge",
+ subcategory = "Bridge",
+ placeholder = "Bweefing",
+ protectedText = false
+ )
+ var botName: String = "Bweefing"
+
+ @Property(
+ type = PropertyType.SELECTOR,
+ name = "Bridge Chatter Name Color",
+ description = "Pick how the player name looks.",
+ category = "Bridge",
+ subcategory = "Bridge",
+ options = ["§0Black",
+ "§1Dark Blue",
+ "§2Dark Green",
+ "§3Dark Aqua",
+ "§4Dark Red",
+ "§5Dark Purple",
+ "§6Gold",
+ "§7Gray",
+ "§8Dark Gray",
+ "§9Blue",
+ "§aGreen",
+ "§bAqua",
+ "§cRed",
+ "§dLight Purple",
+ "§eYellow",
+ "§fWhite",
+ "§zSBA Chroma"
+ ]
+ )
+ var bridgeColor = 6
+
+ @Property(
+ type = PropertyType.SWITCH,
+ name = "Ghast Notification",
+ description = "Shows a title at 9:00pm for bestiary",
+ category = "Bestiary",
+ subcategory = "Notifications"
+ )
+ var notifyGhast = false
+
+ @Property(
+ type = PropertyType.SWITCH,
+ name = "Zombie Villager Notification",
+ description = "Shows a title at 8:00pm for bestiary",
+ category = "Bestiary",
+ subcategory = "Notifications"
+ )
+ var notifyZombieVillager = false
+
+ @Property(
+ type = PropertyType.SWITCH,
+ name = "Broken Hype Notification",
+ description = "Tells you if you are no longer getting bestiary! Requires champion and book of stats on your item. LEAVE OFF IF FISHING.",
+ category = "Bestiary",
+ subcategory = "Notifications"
+ )
+ var notifyHype = false
+
+ @Property(
+ type = PropertyType.SWITCH,
+ name = "Matcho Spawn Alert!",
+ description = "Alerts you if your lobby becomes EXPLOSIVE!",
+ category = "Bestiary",
+ subcategory = "Notifications"
+ )
+ var notifyMatcho = false
+
+ @Property(
+ type = PropertyType.SELECTOR,
+ name = "Bestiary Notification Color",
+ description = "Changes color some bestiary features.",
+ category = "Bestiary",
+ subcategory = "Notifications",
+ options = ["§0Black",
+ "§1Dark Blue",
+ "§2Dark Green",
+ "§3Dark Aqua",
+ "§4Dark Red",
+ "§5Dark Purple",
+ "§6Gold",
+ "§7Gray",
+ "§8Dark Gray",
+ "§9Blue",
+ "§aGreen",
+ "§bAqua",
+ "§cRed",
+ "§dLight Purple",
+ "§eYellow",
+ "§fWhite",
+ "§zSBA Chroma"
+ ]
+ )
+ var bestiaryNotifColor = 15
+
+ @Property(
+ type = PropertyType.SWITCH,
+ name = "Text Shadow",
+ description = "Shows text shadow for notification",
+ category = "Bestiary",
+ subcategory = "Notifications"
+ )
+ var bestiaryTextShadow = false
+
+ @Property(
+ type = PropertyType.DECIMAL_SLIDER,
+ name = "Scale",
+ description = "Size of notification!",
+ category = "Bestiary",
+ subcategory = "Notifications",
+ minF = 0f,
+ maxF = 1f,
+ decimalPlaces = 1
+ )
+ var bestiaryNotifSize = .7f
+
+
+ @Property(
+ type = PropertyType.SWITCH,
+ name = "Alert Noises",
+ description = "Uses relevant mob sounds, doesn't override audio/patcher settings",
+ category = "Bestiary",
+ subcategory = "Audio"
+ )
+ var bestiaryAlertSounds = false
+
+ @Property(
+ type = PropertyType.DECIMAL_SLIDER,
+ name = "Alert Volume",
+ description = "Volume of notification!",
+ category = "Bestiary",
+ subcategory = "Audio",
+ minF = 0f,
+ maxF = 1f,
+ decimalPlaces = 1
+ )
+ var bestiaryNotifVol = .7f
+
+ @Property(
+ type = PropertyType.BUTTON,
+ name = "Demo Volume Selection",
+ description = "Plays the Ghast Noise as Reference, Might add individual sliders later but this seems like enough",
+ category = "Bestiary",
+ subcategory = "Audio"
+ )
+ fun demoVolume() {
+ DulkirMod.mc.thePlayer.playSound("mob.ghast.scream", 1f * bestiaryNotifVol, 1f)
+ }
+
+ @Property(
+ type = PropertyType.SWITCH,
+ name = "Hide Arachne Loot Nametags",
+ description = "Useful when killing a lot of them",
+ category = "Bestiary",
+ subcategory = "Arachne"
+ )
+ var hideArachneTags = false
+
+ @Property(
+ type = PropertyType.SWITCH,
+ name = "Arachne kill timer",
+ description = "Shows in chat.",
+ category = "Bestiary",
+ subcategory = "Arachne"
+ )
+ var arachneKillTimer = false
+
+ @Property(
+ type = PropertyType.SWITCH,
+ name = "Arachne spawn countdown",
+ description = "Shows how long it takes for the arachne to spawn (in world).",
+ category = "Bestiary",
+ subcategory = "Arachne"
+ )
+ var arachneSpawnTimer = false
+
+ @Property(
+ type = PropertyType.SWITCH,
+ name = "Show Arachne Keeper Spawn Locations",
+ description = "simple text waypoints",
+ category = "Bestiary",
+ subcategory = "Arachne"
+ )
+ var keeperWaypoints = false
+
+ @Property(
+ type = PropertyType.SWITCH,
+ name = "Focus Mode",
+ description = "only show the nametags of keepers. make sure to turn off when you're done",
+ category = "Bestiary",
+ subcategory = "Arachne"
+ )
+ var keeperFocus = false
+
+ @Property(
+ type = PropertyType.SWITCH,
+ name = "Garden Visitor Alert",
+ description = "Notifies you if you have max garden visitors in queue",
+ category = "Farming",
+ subcategory = "Farming"
+ )
+ var notifyMaxVisitors = false
+
+ @Property(
+ type = PropertyType.SWITCH,
+ name = "Persistent alert",
+ description = "If turned on, the alert will continue to flash until dealt with.",
+ category = "Farming",
+ subcategory = "Farming"
+ )
+ var persistentAlert = true
+
+ @Property(
+ type = PropertyType.DECIMAL_SLIDER,
+ name = "Default Sensitivity",
+ description = "For use with the /farmcontrols command toggle",
+ category = "Farming",
+ minF = 0f,
+ maxF = 2f,
+ decimalPlaces = 2
+ )
+ var defaultSens = .7f
+
+ @Property(
+ type = PropertyType.SWITCH,
+ name = "Turn off re-equip animation",
+ description = "Will stop the spam re-equip when stuff like cultivating is updating",
+ category = "Animations",
+ subcategory = "Fixes"
+ )
+ var cancelReequip = false
+
+ fun init() {
+ initialize()
+ addDependency("customMessage", "throttleNotifier")
+ addDependency("throttleNotifierSpam", "throttleNotifier")
+ addDependency("bestiaryNotifVol", "bestiaryAlertSounds")
+ addDependency("demoVolume", "bestiaryAlertSounds")
+ addDependency("highlightLeapName", "highlightLeap")
+ addDependency("abiCallerID", "abiDND")
+ addDependency("hurtCamIntensity", "hurtCamSlider")
+ addDependency("tooltipSize", "scaledTooltips")
+ addDependency("persistentAlert", "notifyMaxVisitors")
+
+ }
+
+ private object ConfigSorting : SortingBehavior() {
+ override fun getCategoryComparator(): Comparator<in Category> = Comparator { o1, o2 ->
+ if (o1.name == "General") return@Comparator -1
+ if (o2.name == "General") return@Comparator 1
+ else compareValuesBy(o1, o2) {
+ it.name
+ }
+ }
+ }
+}