nageyqma·git
HTTPS https://git.nageyqma.icu/nageyqma/odin_next.git SSH git@git.nageyqma.icu:nageyqma/odin_next.git

HTTPS 链接可直接 git clone;推送代码请使用 SSH。

1.3 KB · 39 行raw
123456789101112131415161718192021222324252627282930313233343536373839
package com.odtheking.odin.utils

import com.odtheking.odin.clickgui.settings.impl.MapSetting
import com.odtheking.odin.features.Module
import com.odtheking.odin.features.ModuleManager

class PersonalBest(module: Module, name: String) {

    private val mapSetting = module.registerSetting(MapSetting(name, mutableMapOf<String, Float>()))
    /**
     * Updates the personal best for a specific puzzle
     * 
     * @param name The name of the puzzle
     * @param time The new time achieved
     * @param unit The unit of measurement for display
     * @param message The message prefix to display
     */
    fun time(name: String, time: Float, unit: String = "s§7!", message: String, sendMessage: Boolean = true) {
        val oldPB = mapSetting.value[name] ?: 9999f

        val msg = if (oldPB > time) {
            set(name, time)
            "§7(§d§lNew PB§r§7) Old PB was §8$oldPB"
        } else "§8(§7$oldPB§8)"
        if (sendMessage) modMessage("$message$time$unit $msg")
    }

    fun get(index: String): Float? = mapSetting.value[index]

    fun set(index: String, time: Float) {
        mapSetting.value[index] = time
        ModuleManager.saveConfigurations()
    }

    fun reset() {
        mapSetting.value.clear()
        ModuleManager.saveConfigurations()
    }
}