diff options
Diffstat (limited to 'src/main/kotlin/dulkirmod/config/DulkirConfig.kt')
-rw-r--r-- | src/main/kotlin/dulkirmod/config/DulkirConfig.kt | 646 |
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 + } + } + } +} |