mirror of
https://github.com/zhenxun-org/zhenxun_bot.git
synced 2025-12-15 14:22:55 +08:00
✨ 添加开启/关闭所有群被动命令
This commit is contained in:
parent
50d8059e9f
commit
45ad5d8e4e
@ -24,6 +24,7 @@ __plugin_meta__ = PluginMetadata(
|
|||||||
开启/关闭[功能名称] : 开关功能
|
开启/关闭[功能名称] : 开关功能
|
||||||
开启/关闭群被动[被动名称] : 群被动开关
|
开启/关闭群被动[被动名称] : 群被动开关
|
||||||
开启/关闭所有插件 : 开启/关闭当前群组所有插件状态
|
开启/关闭所有插件 : 开启/关闭当前群组所有插件状态
|
||||||
|
开启/关闭所有群被动 : 开启/关闭当前群组所有群被动
|
||||||
群被动状态 : 查看被动技能开关状态
|
群被动状态 : 查看被动技能开关状态
|
||||||
醒来 : 结束休眠
|
醒来 : 结束休眠
|
||||||
休息吧 : 群组休眠, 不会再响应命令
|
休息吧 : 群组休眠, 不会再响应命令
|
||||||
@ -107,8 +108,14 @@ async def _(
|
|||||||
if gid:
|
if gid:
|
||||||
"""群组中使用命令"""
|
"""群组中使用命令"""
|
||||||
if task.result:
|
if task.result:
|
||||||
result = await PluginManage.unblock_group_task(name, gid)
|
if all.result:
|
||||||
logger.info(f"开启群组被动 {name}", arparma.header_result, session=session)
|
result = await PluginManage.unblock_group_all_task(gid)
|
||||||
|
logger.info(f"开启所有群组被动", arparma.header_result, session=session)
|
||||||
|
else:
|
||||||
|
result = await PluginManage.unblock_group_task(name, gid)
|
||||||
|
logger.info(
|
||||||
|
f"开启群组被动 {name}", arparma.header_result, session=session
|
||||||
|
)
|
||||||
else:
|
else:
|
||||||
if session.id1 in bot.config.superusers and default_status.result:
|
if session.id1 in bot.config.superusers and default_status.result:
|
||||||
"""单个插件的进群默认修改"""
|
"""单个插件的进群默认修改"""
|
||||||
@ -195,7 +202,14 @@ async def _(
|
|||||||
gid = session.id3 or session.id2
|
gid = session.id3 or session.id2
|
||||||
if gid:
|
if gid:
|
||||||
if task.result:
|
if task.result:
|
||||||
result = await PluginManage.block_group_task(name, gid)
|
if all.result:
|
||||||
|
result = await PluginManage.block_group_all_task(gid)
|
||||||
|
logger.info(f"开启所有群组被动", arparma.header_result, session=session)
|
||||||
|
else:
|
||||||
|
result = await PluginManage.block_group_task(name, gid)
|
||||||
|
logger.info(
|
||||||
|
f"关闭群组被动 {name}", arparma.header_result, session=session
|
||||||
|
)
|
||||||
else:
|
else:
|
||||||
if session.id1 in bot.config.superusers and default_status.result:
|
if session.id1 in bot.config.superusers and default_status.result:
|
||||||
"""单个插件的进群默认修改"""
|
"""单个插件的进群默认修改"""
|
||||||
|
|||||||
@ -286,6 +286,18 @@ class PluginManage:
|
|||||||
"""
|
"""
|
||||||
return await cls._change_group_task(task_name, group_id, False)
|
return await cls._change_group_task(task_name, group_id, False)
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
async def unblock_group_all_task(cls, group_id: str) -> str:
|
||||||
|
"""启用被动技能
|
||||||
|
|
||||||
|
参数:
|
||||||
|
group_id: 群组id
|
||||||
|
|
||||||
|
返回:
|
||||||
|
str: 返回信息
|
||||||
|
"""
|
||||||
|
return await cls._change_group_task("", group_id, False, True)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
async def block_group_task(cls, task_name: str, group_id: str) -> str:
|
async def block_group_task(cls, task_name: str, group_id: str) -> str:
|
||||||
"""禁用被动技能
|
"""禁用被动技能
|
||||||
@ -299,6 +311,18 @@ class PluginManage:
|
|||||||
"""
|
"""
|
||||||
return await cls._change_group_task(task_name, group_id, True)
|
return await cls._change_group_task(task_name, group_id, True)
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
async def block_group_all_task(cls, group_id: str) -> str:
|
||||||
|
"""禁用被动技能
|
||||||
|
|
||||||
|
参数:
|
||||||
|
group_id: 群组id
|
||||||
|
|
||||||
|
返回:
|
||||||
|
str: 返回信息
|
||||||
|
"""
|
||||||
|
return await cls._change_group_task("", group_id, True, True)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
async def unblock_group_plugin(cls, plugin_name: str, group_id: str) -> str:
|
async def unblock_group_plugin(cls, plugin_name: str, group_id: str) -> str:
|
||||||
"""启用群组插件
|
"""启用群组插件
|
||||||
@ -314,7 +338,7 @@ class PluginManage:
|
|||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
async def _change_group_task(
|
async def _change_group_task(
|
||||||
cls, task_name: str, group_id: str, status: bool
|
cls, task_name: str, group_id: str, status: bool, is_all: bool = False
|
||||||
) -> str:
|
) -> str:
|
||||||
"""改变群组被动技能状态
|
"""改变群组被动技能状态
|
||||||
|
|
||||||
@ -322,21 +346,35 @@ class PluginManage:
|
|||||||
task_name: 被动技能名称
|
task_name: 被动技能名称
|
||||||
group_id: 群组Id
|
group_id: 群组Id
|
||||||
status: 状态
|
status: 状态
|
||||||
|
is_all: 所有群被动
|
||||||
|
|
||||||
返回:
|
返回:
|
||||||
str: 返回信息
|
str: 返回信息
|
||||||
"""
|
"""
|
||||||
if task := await TaskInfo.get_or_none(name=task_name):
|
status_str = "关闭" if status else "开启"
|
||||||
status_str = "关闭" if status else "开启"
|
if is_all:
|
||||||
group, _ = await GroupConsole.get_or_create(
|
modules = await TaskInfo.annotate().values_list("module", flat=True)
|
||||||
group_id=group_id, channel_id__isnull=True
|
if modules:
|
||||||
)
|
group, _ = await GroupConsole.get_or_create(
|
||||||
if status:
|
group_id=group_id, channel_id__isnull=True
|
||||||
group.block_task += f"{task.module},"
|
)
|
||||||
else:
|
if status:
|
||||||
group.block_task = group.block_task.replace(f"{task.module},", "")
|
group.block_task = ",".join(modules) + "," # type: ignore
|
||||||
await group.save(update_fields=["block_task"])
|
else:
|
||||||
return f"已成功{status_str} {task_name} 被动技能!"
|
group.block_task = ""
|
||||||
|
await group.save(update_fields=["block_task"])
|
||||||
|
return f"已成功{status_str}全部被动技能!"
|
||||||
|
else:
|
||||||
|
if task := await TaskInfo.get_or_none(name=task_name):
|
||||||
|
group, _ = await GroupConsole.get_or_create(
|
||||||
|
group_id=group_id, channel_id__isnull=True
|
||||||
|
)
|
||||||
|
if status:
|
||||||
|
group.block_task += f"{task.module},"
|
||||||
|
else:
|
||||||
|
group.block_task = group.block_task.replace(f"{task.module},", "")
|
||||||
|
await group.save(update_fields=["block_task"])
|
||||||
|
return f"已成功{status_str} {task_name} 被动技能!"
|
||||||
return "没有找到这个被动技能喔..."
|
return "没有找到这个被动技能喔..."
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
|||||||
@ -15,7 +15,7 @@ _status_matcher = on_alconna(
|
|||||||
"switch",
|
"switch",
|
||||||
Option("-t|--task", action=store_true, help_text="被动技能"),
|
Option("-t|--task", action=store_true, help_text="被动技能"),
|
||||||
Option("-df|--default", action=store_true, help_text="进群默认开关"),
|
Option("-df|--default", action=store_true, help_text="进群默认开关"),
|
||||||
Option("--all", action=store_true, help_text="全部插件"),
|
Option("--all", action=store_true, help_text="全部插件/被动"),
|
||||||
Subcommand(
|
Subcommand(
|
||||||
"open",
|
"open",
|
||||||
Args["plugin_name?", [str, int]],
|
Args["plugin_name?", [str, int]],
|
||||||
@ -73,6 +73,20 @@ _status_matcher.shortcut(
|
|||||||
prefix=True,
|
prefix=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
_status_matcher.shortcut(
|
||||||
|
r"开启(所有|全部)群被动",
|
||||||
|
command="switch",
|
||||||
|
arguments=["open", "--task", "--all"],
|
||||||
|
prefix=True,
|
||||||
|
)
|
||||||
|
|
||||||
|
_status_matcher.shortcut(
|
||||||
|
r"关闭(所有|全部)群被动",
|
||||||
|
command="switch",
|
||||||
|
arguments=["close", "--task", "--all"],
|
||||||
|
prefix=True,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
_status_matcher.shortcut(
|
_status_matcher.shortcut(
|
||||||
r"开启所有(插件|功能)",
|
r"开启所有(插件|功能)",
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user