2025-08-23 23:11:53 +08:00

124 lines
4.2 KiB
Java

package org.branulf.toolbox;
import org.branulf.toolbox.autocrossbow.AutoCrossbowMode;
import me.shedaniel.autoconfig.ConfigData;
import me.shedaniel.autoconfig.annotation.Config;
import me.shedaniel.autoconfig.annotation.ConfigEntry;
import net.minecraft.client.util.InputUtil;
import org.lwjgl.glfw.GLFW;
@Config(name = Main.MOD_ID)
public class ModConfig implements ConfigData {
// 诸葛连弩
@ConfigEntry.Category("autocrossbow_settings")
@ConfigEntry.Gui.TransitiveObject
public AutoCrossbowConfig autocrossbow = new AutoCrossbowConfig();
// Scrafitipty Plus
@ConfigEntry.Category("scrafitipty_plus_settings")
@ConfigEntry.Gui.TransitiveObject
public ScrafitiptyPlusConfigPart scrafitiptyPlus = new ScrafitiptyPlusConfigPart();
// 挂机
@ConfigEntry.Category("crazylook_settings")
@ConfigEntry.Gui.TransitiveObject
public CrazyLookConfig crazyLook = new CrazyLookConfig();
// 鞘翅推进优化
@ConfigEntry.Category("elytraboost_settings")
@ConfigEntry.Gui.TransitiveObject
public ElytraBoostConfigPart elytraBoostConfig = new ElytraBoostConfigPart();
// 玩家探测器
@ConfigEntry.Category("player_detector_settings")
@ConfigEntry.Gui.TransitiveObject
public PlayerDetectorConfig playerDetector = new PlayerDetectorConfig();
// 伤害记录
@ConfigEntry.Category("damage_logger_settings")
@ConfigEntry.Gui.TransitiveObject
public DamageLoggerConfig damageLogger = new DamageLoggerConfig();
// ————————————————————分割线————————————————————
// 诸葛连弩
public static class AutoCrossbowConfig implements ConfigData {
@ConfigEntry.Gui.Tooltip(count = 0)
public boolean enabled = false;
@ConfigEntry.Gui.EnumHandler(option = ConfigEntry.Gui.EnumHandler.EnumDisplayOption.BUTTON)
@ConfigEntry.Gui.Tooltip(count = 0)
public AutoCrossbowMode currentMode = AutoCrossbowMode.NORMAL;
@ConfigEntry.Gui.Tooltip(count = 1)
public boolean compatibilityMode = false;
@ConfigEntry.Gui.Tooltip(count = 1)
public boolean ultimateCompatibilityMode = false;
}
// Scrafitipty
public static class ScrafitiptyPlusConfigPart implements ConfigData {
@ConfigEntry.Gui.Tooltip(count = 1)
public int port = 8765;
@ConfigEntry.Gui.EnumHandler(option = ConfigEntry.Gui.EnumHandler.EnumDisplayOption.BUTTON)
@ConfigEntry.Gui.Tooltip(count = 5)
public WebSocketEnableMode enableMode = WebSocketEnableMode.IN_GAME_ONLY;
@ConfigEntry.Gui.Tooltip(count = 1)
public boolean debugMode = false;
@ConfigEntry.Gui.Tooltip(count = 1)
public boolean debugChatOutput = false;
public enum WebSocketEnableMode {
ALWAYS, // 一直启用
IN_GAME_ONLY, // 仅在游戏内启用
SINGLEPLAYER_ONLY, // 仅在单机启用
DISABLED // 禁用
}
}
// 挂机
public static class CrazyLookConfig implements ConfigData {
@ConfigEntry.Gui.Tooltip(count = 0)
public boolean enabled = false;
@ConfigEntry.Gui.Tooltip(count = 1)
public int shakeFrequency = 2;
}
// 鞘翅推进优化
public static class ElytraBoostConfigPart implements ConfigData {
@ConfigEntry.Gui.Tooltip(count = 1)
public boolean modEnabled = true;
}
// 玩家探测器
public static class PlayerDetectorConfig implements ConfigData {
@ConfigEntry.Gui.Tooltip(count = 0)
public boolean enabled = false;
@ConfigEntry.Gui.Tooltip(count = 1)
@ConfigEntry.BoundedDiscrete(min = 1, max = 64)
public int detectionRange = 16;
@ConfigEntry.Gui.Tooltip(count = 1)
@ConfigEntry.BoundedDiscrete(min = 1, max = 20)
public int alertFrequency = 1;
}
// 伤害记录
public static class DamageLoggerConfig implements ConfigData {
@ConfigEntry.Gui.Tooltip(count = 0)
public boolean enabled = false;
@ConfigEntry.Gui.Tooltip(count = 1)
public boolean rememberState = false;
}
}