Files
DanDingNoneBot/danding_bot/plugins/onmyoji_gacha/config.py

118 lines
3.9 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""\n阴阳师抽卡插件 - 配置管理模块\n\n集中管理插件所有配置项,包括:\n- 权限配置(群组白名单、管理员)\n- 抽卡参数(池子、概率、每日上限)\n- 成就系统配置\n- 路径配置\n"""
from pydantic_settings import BaseSettings, SettingsConfigDict
import os
class Config(BaseSettings):
"""阴阳师抽卡插件配置模型"""
model_config = SettingsConfigDict(extra="ignore")
# 抽卡概率配置
RARITY_PROBABILITY: dict = {
"R": 78.75,
"SR": 20.0,
"SSR": 1.0,
"SP": 0.25
}
# 每日抽卡限制
DAILY_LIMIT: int = 3
# 数据文件路径
DB_FILE: str = "data/onmyoji_gacha/gacha.db"
# 式神图片目录
SHIKIGAMI_IMG_DIR: str = "data/chouka/"
# 触发指令
GACHA_COMMANDS: list = ["抽卡","抽奖", "召唤"]
STATS_COMMANDS: list = ["我的抽卡","我的抽奖", "我的图鉴"]
DAILY_STATS_COMMANDS: list = ["今日抽卡", "今日统计", "抽卡统计"]
TRIPLE_GACHA_COMMANDS: list = ["三连", "三连抽"]
ACHIEVEMENT_COMMANDS: list = ["查询成就", "抽卡成就"]
INTRO_COMMANDS: list = ["抽卡介绍", "抽卡说明", "抽卡帮助"]
# 成就系统配置
ACHIEVEMENTS: dict = {
"consecutive_days_30_1": {
"name": "勤勤恳恳Ⅰ",
"description": "连续抽卡30天",
"reward": "天卡",
"threshold": 30,
"type": "consecutive_days",
"level": 1,
"repeatable": True
},
"consecutive_days_30_2": {
"name": "勤勤恳恳Ⅱ",
"description": "连续抽卡60天",
"reward": "天卡",
"threshold": 60,
"type": "consecutive_days",
"level": 2,
"repeatable": True
},
"consecutive_days_30_3": {
"name": "勤勤恳恳Ⅲ",
"description": "连续抽卡90天",
"reward": "天卡",
"threshold": 90,
"type": "consecutive_days",
"level": 3,
"repeatable": True
},
"consecutive_days_30_4": {
"name": "勤勤恳恳Ⅳ",
"description": "连续抽卡120天",
"reward": "周卡",
"threshold": 120,
"type": "consecutive_days",
"level": 4,
"repeatable": True
},
"consecutive_days_30_5": {
"name": "勤勤恳恳Ⅴ",
"description": "连续抽卡150天",
"reward": "周卡",
"threshold": 150,
"type": "consecutive_days",
"level": 5,
"repeatable": True,
"repeat_reward": "天卡"
},
"no_ssr_60": {
"name": "非酋",
"description": "连续60次未抽到SSR/SP",
"reward": "天卡",
"threshold": 60,
"type": "no_ssr_streak"
},
"no_ssr_120": {
"name": "顶级非酋",
"description": "连续120次未抽到SSR/SP",
"reward": "周卡",
"threshold": 120,
"type": "no_ssr_streak"
},
"no_ssr_180": {
"name": "月见黑",
"description": "连续180次未抽到SSR/SP",
"reward": "月卡",
"threshold": 180,
"type": "no_ssr_streak"
}
}
# 权限配置
ALLOWED_GROUP_ID: int = 621016172
ALLOWED_USER_ID: int = 1424473282
# 特殊概率用户配置
SPECIAL_PROBABILITY_USERS: list = [] # 100%抽到SSR或SP的用户列表
# Web后台管理配置
WEB_ADMIN_TOKEN: str = os.getenv("WEB_ADMIN_TOKEN", "") # 空字符串=未配置web_api启动时校验
WEB_ADMIN_PORT: int = int(os.getenv("WEB_ADMIN_PORT", "8080"))
# 时区
TIMEZONE: str = "Asia/Shanghai"