refactor: onmyoji gacha plugin overhaul (gacha-refactor)
This commit is contained in:
@@ -1,115 +1,118 @@
|
||||
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", "onmyoji_admin_token_2024")
|
||||
WEB_ADMIN_PORT: int = int(os.getenv("WEB_ADMIN_PORT", "8080"))
|
||||
|
||||
# 时区
|
||||
"""\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"
|
||||
Reference in New Issue
Block a user