refactor(permission): 将权限节点定义从命令类移至插件主类

将 `permission_nodes` 的定义从 `PermissionCommand` 类移动到 `PermissionManagerPlugin` 类。

这样的结构更加合理,因为权限节点是插件级别的概念,而非特定于某个命令。此更改提高了代码的可读性和可维护性,将插件的核心定义集中在一起。
This commit is contained in:
minecraft1024a
2025-11-02 10:49:52 +08:00
parent 4b26c12f50
commit 55f114061c

View File

@@ -38,17 +38,6 @@ class PermissionCommand(PlusCommand):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
permission_nodes: ClassVar[list[PermissionNodeField]] = [
PermissionNodeField(
node_name="manage",
description="权限管理:可以授权和撤销其他用户的权限",
),
PermissionNodeField(
node_name="view",
description="权限查看:可以查看权限节点和用户权限信息",
),
]
async def execute(self, args: CommandArgs) -> tuple[bool, str | None, bool]:
"""执行权限管理命令"""
if args.is_empty:
@@ -57,7 +46,7 @@ class PermissionCommand(PlusCommand):
subcommand = args.get_first.lower()
remaining_args = args.get_args()[1:] # 获取除第一个参数外的所有参数
chat_stream = self.message.chat_stream
chat_stream = self.message.chat_info.stream_id
if subcommand in ["grant", "授权", "give"]:
await self._grant_permission(chat_stream, remaining_args)
@@ -396,3 +385,14 @@ class PermissionManagerPlugin(BasePlugin):
def get_plugin_components(self) -> list[tuple[PlusCommandInfo, type[PlusCommand]]]:
"""返回插件的PlusCommand组件"""
return [(PermissionCommand.get_plus_command_info(), PermissionCommand)]
permission_nodes: ClassVar[list[PermissionNodeField]] = [
PermissionNodeField(
node_name="manage",
description="权限管理:可以授权和撤销其他用户的权限",
),
PermissionNodeField(
node_name="view",
description="权限查看:可以查看权限节点和用户权限信息",
),
]