aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/examples/main.py
diff options
context:
space:
mode:
Diffstat (limited to 'examples/main.py')
-rw-r--r--examples/main.py77
1 files changed, 0 insertions, 77 deletions
diff --git a/examples/main.py b/examples/main.py
deleted file mode 100644
index e7dffc1c..00000000
--- a/examples/main.py
+++ /dev/null
@@ -1,77 +0,0 @@
-# main.py
-import os
-import importlib
-
-# --- 配置区 ---
-# 在这里指定你想要加载的规则包文件名 (不含 .py)
-# 你可以随时修改这个列表来开启或关闭不同的规则包
-ENABLED_RULE_PACKS = [
- "basic_roller",
- "coc",
-]
-
-
-class DiceBotCore:
- def __init__(self, rule_pack_names):
- self.loaded_packs = []
- self.load_rule_packs(rule_pack_names)
-
- def load_rule_packs(self, rule_pack_names):
- """动态加载指定的规则包"""
- print("正在加载规则包...")
- for name in rule_pack_names:
- try:
- # 动态导入模块
- module = importlib.import_module(f"rule_packs.{name}")
- # 检查模块是否符合我们的结构要求
- if hasattr(module, "handle_command"):
- self.loaded_packs.append(module)
- print(f" - 规则包 '{name}' 加载成功。")
- else:
- print(
- f" - 警告: 规则包 '{name}'缺少 'handle_command' 函数,已跳过。"
- )
- except ImportError:
- print(f" - 错误: 找不到名为 '{name}' 的规则包。")
- print("-" * 20)
-
- def process_command(self, command):
- """将指令传递给所有加载的规则包"""
- for pack in self.loaded_packs:
- result = pack.handle_command(command)
- if result is not None:
- return result # 一旦有规则包处理了指令,就立即返回结果
- return "无法识别的指令。输入 'help' 查看可用指令。"
-
- def get_all_help(self):
- """收集所有已加载规则包的帮助信息"""
- help_texts = ["--- 欢迎使用模块化骰子机器人 ---"]
- for pack in self.loaded_packs:
- if hasattr(pack, "get_help"):
- help_texts.append(pack.get_help())
- return "\n".join(help_texts)
-
-
-def main():
- """程序主循环"""
- bot = DiceBotCore(ENABLED_RULE_PACKS)
-
- print("机器人已启动。输入 'exit' 退出。")
- print(bot.get_all_help()) # 启动时显示帮助信息
-
- while True:
- user_input = input("\n> ")
-
- if user_input.lower() == "exit":
- print("感谢使用,再见!")
- break
- elif user_input.lower() == "help":
- print(bot.get_all_help())
- continue
-
- result = bot.process_command(user_input)
- print(result)
-
-
-if __name__ == "__main__":
- main()