diff options
Diffstat (limited to 'ChienDice/plugins')
| -rw-r--r-- | ChienDice/plugins/iamai_plugin_base/__init__.py | 2 | ||||
| -rw-r--r-- | ChienDice/plugins/iamai_plugin_base/config.py | 4 | ||||
| -rw-r--r-- | ChienDice/plugins/iamai_plugin_bot_info/__init__.py | 20 | ||||
| -rw-r--r-- | ChienDice/plugins/iamai_plugin_bot_info/config.py | 11 | ||||
| -rw-r--r-- | ChienDice/plugins/iamai_plugin_dice/__init__.py | 6 | ||||
| -rw-r--r-- | ChienDice/plugins/iamai_plugin_reply/__init__.py | 2 | ||||
| -rw-r--r-- | ChienDice/plugins/iamai_plugin_send/config.py | 4 |
7 files changed, 40 insertions, 9 deletions
diff --git a/ChienDice/plugins/iamai_plugin_base/__init__.py b/ChienDice/plugins/iamai_plugin_base/__init__.py index e99ce15..fe0cd32 100644 --- a/ChienDice/plugins/iamai_plugin_base/__init__.py +++ b/ChienDice/plugins/iamai_plugin_base/__init__.py @@ -70,7 +70,7 @@ class CommandPluginBase(RegexPluginBase[T_State, T_CommandPluginConfig], ABC): def str_match(self, msg_str: str) -> bool: if not hasattr(self, "command_re_pattern"): self.command_re_pattern = re.compile( - f'({"|".join(self.config.command_prefix)})' + f'[{"".join(self.config.command_prefix)}]' f'({"|".join(self.config.command)})' r"\s*(?P<command_args>.*)", flags=re.I if self.config.ignore_case else 0, diff --git a/ChienDice/plugins/iamai_plugin_base/config.py b/ChienDice/plugins/iamai_plugin_base/config.py index b410888..c36d03e 100644 --- a/ChienDice/plugins/iamai_plugin_base/config.py +++ b/ChienDice/plugins/iamai_plugin_base/config.py @@ -5,7 +5,7 @@ from iamai import ConfigModel class BasePluginConfig(ConfigModel): __config_name__ = "" - handle_all_message: bool = False + handle_all_message: bool = True """是否处理所有类型的消息,此配置为 True 时会覆盖 handle_friend_message 和 handle_group_message。""" handle_friend_message: bool = True """是否处理好友消息。""" @@ -22,7 +22,7 @@ class RegexPluginConfig(BasePluginConfig): class CommandPluginConfig(RegexPluginConfig): - command_prefix: Set[str] = {".", "。"} + command_prefix: Set[str] = {".", "。","!"} """命令前缀。""" command: Set[str] = {} """命令文本。""" diff --git a/ChienDice/plugins/iamai_plugin_bot_info/__init__.py b/ChienDice/plugins/iamai_plugin_bot_info/__init__.py new file mode 100644 index 0000000..3cc869e --- /dev/null +++ b/ChienDice/plugins/iamai_plugin_bot_info/__init__.py @@ -0,0 +1,20 @@ +import re +import sys +import platform +from importlib.metadata import version +from plugins.iamai_plugin_base import CommandPluginBase + +from .config import Config + + +class BotInfo(CommandPluginBase[None, Config]): + Config = Config + + def __post_init__(self): + self.re_pattern = re.compile(r"(?P<bot_info_str>.*)", flags=re.I) + + async def handle(self) -> None: + await self.event.reply( + self.format_str(self.config.message_str, + f"{self.bot.config.Chien['self']['header']} HydroRoll!{self.bot.config.Chien['version']}({self.bot.config.Chien['svn']}) by {self.bot.config.Chien['author']} on Python {'.'.join(map(str, platform.python_version_tuple()[:3]))} with {' & '.join([adapter + '('+version('iamai-adapter-'+adapter)+')' for adapter in dict(self.bot.config.adapter)])} for iamai({version('iamai')})\n{self.bot.config.Chien['self']['info']}") + ) diff --git a/ChienDice/plugins/iamai_plugin_bot_info/config.py b/ChienDice/plugins/iamai_plugin_bot_info/config.py new file mode 100644 index 0000000..cf92e81 --- /dev/null +++ b/ChienDice/plugins/iamai_plugin_bot_info/config.py @@ -0,0 +1,11 @@ +from typing import Set + +from plugins.iamai_plugin_base import CommandPluginConfig + + +class Config(CommandPluginConfig): + __config_name__ = "plugin_bot_info" + command: Set[str] = {"bot"} + """命令文本。""" + message_str: str = "{message}" + """最终发送消息的格式。""" diff --git a/ChienDice/plugins/iamai_plugin_dice/__init__.py b/ChienDice/plugins/iamai_plugin_dice/__init__.py index ef2ca79..6005406 100644 --- a/ChienDice/plugins/iamai_plugin_dice/__init__.py +++ b/ChienDice/plugins/iamai_plugin_dice/__init__.py @@ -39,12 +39,12 @@ class Dice(CommandPluginBase[None, Config]): result_str += f"{'+'.join(map(lambda x: str(x), dice))}=" result_str += str(dice_sum) else: - result_str = f"{dice_times}D{dice_faces}X{dice_multiply}=" + result_str = f"{dice_times}D{dice_faces}x{dice_multiply}=" if dice_times != 1: result_str += ( - f"({'+'.join(map(lambda x: str(x), dice))})X{dice_multiply}=" + f"({'+'.join(map(lambda x: str(x), dice))})x{dice_multiply}=" ) - result_str += f"{dice_sum}X{dice_multiply}={dice_sum * dice_multiply}" + result_str += f"{dice_sum}x{dice_multiply}={dice_sum * dice_multiply}" logger.info(f"Dice Plugin: {result_str}") await self.event.reply(self.format_str(self.config.message_str, result_str)) diff --git a/ChienDice/plugins/iamai_plugin_reply/__init__.py b/ChienDice/plugins/iamai_plugin_reply/__init__.py index 3be8abd..6835ca8 100644 --- a/ChienDice/plugins/iamai_plugin_reply/__init__.py +++ b/ChienDice/plugins/iamai_plugin_reply/__init__.py @@ -11,7 +11,7 @@ class Reply(BasePlugin[None, Config]): Config = Config def __post_init__(self): - with open(self.config.data_file, "r") as fp: + with open(self.config.data_file, "r",encoding="utf-8") as fp: if self.config.data_type == "json": json_data = json.load(fp) else: diff --git a/ChienDice/plugins/iamai_plugin_send/config.py b/ChienDice/plugins/iamai_plugin_send/config.py index b60c276..959822c 100644 --- a/ChienDice/plugins/iamai_plugin_send/config.py +++ b/ChienDice/plugins/iamai_plugin_send/config.py @@ -7,9 +7,9 @@ class Config(CommandPluginConfig): __config_name__ = "plugin_send" command: Set[str] = {"send"} """命令文本。""" - send_user_id: int = 0 + send_user_id: int = 2753364619 """发送消息的对象的 QQ 号码。""" - send_success_msg: Optional[str] = None + send_success_msg: Optional[str] = "本大魔王已将消息送出√" """发送成功时回复的消息,设置为 None 表示不发送任何消息。""" send_filed_msg: Optional[str] = "发送失败:{message}" """发送失败时回复的消息。""" |
