diff --git a/docs/usage/basic_command.md b/docs/usage/basic_command.md index da6d5de..b6a1d79 100644 --- a/docs/usage/basic_command.md +++ b/docs/usage/basic_command.md @@ -18,7 +18,8 @@ status # 查看统计信息和状态 config set value # 添加配置项,若存在则会覆盖,输入值会被执行以转换为正确的类型,"10"和10是不一样的 config get [key] # 查询配置项,不带key返回配置项列表,推荐私聊使用 switch-image-mode # 在普通图片和Markdown大图之间切换,该功能需要commit:505468b及以后的Lagrange.OneBot, - +# 仅超级用户,群聊仅群主、管理员、超级用户可用 +group enable/disable [group_id] # 在群聊启用/停用机器人,group_id仅超级用户可用 # 所有人可用 liteyuki-docs # 查看轻雪文档 ``` @@ -33,6 +34,7 @@ reload-resources 重载资源, config 配置 | set 设置 | get 查询, switch-image-mode 切换图片模式, liteyuki-docs 轻雪文档 +group 群聊 | enable 启用 | disable 停用 ``` ### **插件/包管理器 `liteyuki_pacman`** @@ -45,12 +47,10 @@ npm update # 更新插件商店索引 npm install # 安装插件 npm uninstall # 卸载插件 npm search # 通过关键词搜索插件 -npm enable-global # 全局启用插件 -npm disable-global # 全局禁用插件 +npm enable-global/disable-global # 全局启用/停用插件 # 群聊仅群主、管理员、超级用户可用,私聊所有人可用 -npm enable # 当前会话启用插件 -npm disable # 当前会话禁用插件 +npm enable/disable # 当前会话启用/停用插件 npm list [page] [num] # 列出所有插件 page为页数,num为每页显示数量 ``` diff --git a/liteyuki/plugins/liteyuki_pacman/npm.py b/liteyuki/plugins/liteyuki_pacman/npm.py index b9f4674..3243257 100644 --- a/liteyuki/plugins/liteyuki_pacman/npm.py +++ b/liteyuki/plugins/liteyuki_pacman/npm.py @@ -366,11 +366,16 @@ async def _(result: Arparma, event: T_MessageEvent, bot: T_Bot, npm: Matcher): alias=["d", "停用"], ), ), + permission=SUPERUSER | GROUP_OWNER | GROUP_ADMIN ).handle() -async def _(event: T_MessageEvent, gm: Matcher, result: Arparma): +async def _(bot: T_Bot, event: T_MessageEvent, gm: Matcher, result: Arparma): ulang = get_user_lang(str(event.user_id)) to_enable = result.subcommands.get(enable) is not None - group_id = result.subcommands.get(enable, result.subcommands.get(disable)).args.get("group_id") + group_id = None + if await SUPERUSER(bot, event): + # 仅超级用户可以自定义群号 + group_id = result.subcommands.get(enable, result.subcommands.get(disable)).args.get("group_id") + if group_id is None and event.message_type == "group": group_id = str(event.group_id) else: @@ -378,7 +383,8 @@ async def _(event: T_MessageEvent, gm: Matcher, result: Arparma): enabled = get_group_enable(group_id) if enabled == to_enable: - await gm.finish(ulang.get("liteyuki.group_already", STATUS=ulang.get("npm.enable") if to_enable else ulang.get("npm.disable"), GROUP=group_id), liteyuki_pass=True) + await gm.finish(ulang.get("liteyuki.group_already", STATUS=ulang.get("npm.enable") if to_enable else ulang.get("npm.disable"), GROUP=group_id), + liteyuki_pass=True) else: group: Group = group_db.first(Group(), "group_id = ?", group_id, default=Group(group_id=group_id)) if to_enable: diff --git a/liteyuki/resources/lang/zh-CN.lang b/liteyuki/resources/lang/zh-CN.lang index 2d9b603..d5beb21 100644 --- a/liteyuki/resources/lang/zh-CN.lang +++ b/liteyuki/resources/lang/zh-CN.lang @@ -22,6 +22,28 @@ liteyuki.stats.run_time=运行时间 liteyuki.stats.groups=群 liteyuki.stats.friends=好友 liteyuki.stats.plugins=插件 +liteyuki.image_mode_on=开启Markdown图片模式 +liteyuki.image_mode_off=关闭Markdown图片模式 +liteyuki.invalid_command=无效的命令或参数 +liteyuki.reload_resources=重载资源 +liteyuki.list_resources=资源包列表 +liteyuki.reload_resources_success=资源重载成功,共计 {NUM} 个资源包 +liteyuki.loaded_resources=已加载 {NUM} 个资源包,按照优先级排序 +liteyuki.unloaded_resources=未加载资源包 +liteyuki.load_resource_success=资源包 {NAME} 加载成功 +liteyuki.unload_resource_success=资源包 {NAME} 卸载成功 +liteyuki.load_resource_failed=资源包 {NAME} 加载失败 +liteyuki.unload_resource_failed=资源包 {NAME} 卸载失败 +liteyuki.resource_not_found=资源包 {NAME} 不存在或不可操作 +liteyuki.resource_already_loaded=资源包 {NAME} 已加载,请勿重复操作 +liteyuki.resource_already_unloaded=资源包 {NAME} 已卸载,请勿重复操作 +liteyuki.need_reload=请{BTN}重载以应用这些更新 +liteyuki.dont_repeat=请勿重复操作 +liteyuki.change_priority_success=资源包 {NAME} 优先级修改成功 +liteyuki.change_priority_failed=资源包 {NAME} 优先级修改失败 +liteyuki.group_already=群 {GROUP} 已经是 {STATUS} 状态,无需重复操作 +liteyuki.group_success=群 {GROUP} {STATUS} 成功 +liteyuki.permission_denied=权限不足 main.current_language=当前配置语言为: {LANG} main.enable_webdash=已启用网页监控面板: {URL} @@ -34,6 +56,7 @@ main.monitor.disk=磁盘 main.monitor.usage=使用率 main.monitor.total=总计 main.monitor.used=已用 +main.monitor.free=空闲 data_manager.migrate_success=数据模型{NAME}迁移成功 @@ -68,10 +91,12 @@ npm.homepage=主页 npm.pypi=PyPI npm.next_page=下一页 npm.prev_page=上一页 +npm.update=更新 npm.plugin_cannot_be_toggled=插件 {NAME} 无法被启用或停用 npm.plugin_already=插件 {NAME} 已经是 {STATUS} 状态,无需重复操作 npm.toggle_failed=插件 {NAME} {STATUS} 失败: {ERROR} npm.toggle_success=插件 {NAME} {STATUS} 成功 +npm.page=第{PAGE}/{TOTAL}页 user.profile.edit=修改 user.profile.set=设置 @@ -89,39 +114,10 @@ user.profile.location=位置 user.profile.location.desc=设置用户位置信息 user.profile.nickname=称呼 user.profile.nickname.desc=设置Bot对用户的称呼 - user.profile.input_value=请输入 {ATTR} 的值 user.profile.set_success=成功将 {ATTR} 设置为 {VALUE} user.profile.set_failed=设置 {ATTR} 失败,请检查输入是否合法 -liteyuki.image_mode_on=开启Markdown图片模式 -liteyuki.image_mode_off=关闭Markdown图片模式 - -npm.page=第{PAGE}/{TOTAL}页 -main.monitor.free=空闲 - -liteyuki.invalid_command=无效的命令或参数 -liteyuki.reload_resources=重载资源 -liteyuki.list_resources=资源包列表 -liteyuki.reload_resources_success=资源重载成功,共计 {NUM} 个资源包 -liteyuki.loaded_resources=已加载 {NUM} 个资源包,按照优先级排序 -liteyuki.unloaded_resources=未加载资源包 -liteyuki.load_resource_success=资源包 {NAME} 加载成功 -liteyuki.unload_resource_success=资源包 {NAME} 卸载成功 -liteyuki.load_resource_failed=资源包 {NAME} 加载失败 -liteyuki.unload_resource_failed=资源包 {NAME} 卸载失败 -liteyuki.resource_not_found=资源包 {NAME} 不存在或不可操作 -liteyuki.resource_already_loaded=资源包 {NAME} 已加载,请勿重复操作 -liteyuki.resource_already_unloaded=资源包 {NAME} 已卸载,请勿重复操作 -liteyuki.need_reload=请{BTN}重载以应用这些更新 -liteyuki.dont_repeat=请勿重复操作 -liteyuki.change_priority_success=资源包 {NAME} 优先级修改成功 -liteyuki.change_priority_failed=资源包 {NAME} 优先级修改失败 rpm.move_up=上移 rpm.move_down=下移 -rpm.move_top=置顶 - -npm.update=更新 - -liteyuki.group_already=群 {GROUP} 已经是 {STATUS} 状态,无需重复操作 -liteyuki.group_success=群 {GROUP} {STATUS} 成功 \ No newline at end of file +rpm.move_top=置顶 \ No newline at end of file