from nonebot.adapters.onebot.v11 import Bot, GroupMessageEvent from nonebot_plugin_alconna import UniMessage from hexi.core.custom_utils import check_manage from ..utils.permissions import is_bot_manage, self_member_info async def title_get( bot: Bot, ev: GroupMessageEvent, uid: int, sid: int, gid: int, title: str | None ): """头衔申请/删除""" self_info = await self_member_info(bot, gid) if not self_info or self_info["role"] != "owner": await UniMessage.text( "\n嘻嘻嘻,把群转移给我才能用这个功能哦!\n我才不告诉你可以去qun.qq.com里找回群主权限呢!" ).send(at_sender=True) return if uid != sid and not await check_manage(bot, ev): await UniMessage.text("只有管理员才可以对别人的头衔进行操作哦~").send(at_sender=True) return try: await bot.set_group_special_title( group_id=gid, user_id=sid, special_title=title, duration=-1 ) if not title: await UniMessage.at(user_id=str(sid)).text("喜提没有头衔的头衔~").send() else: await ( UniMessage.text("已为") .at(user_id=str(sid)) .text(f"发放专属头衔“{title}”~") .send() ) except Exception as e: await UniMessage.text(f"诶...头衔呢?\n错误代码:{e}").send(at_sender=True) async def card_edit( bot: Bot, ev: GroupMessageEvent, uid: int, sid: int, gid: int, card_text: str ): """群名片修改""" self_info = await self_member_info(bot, gid) if not is_bot_manage(self_info): await UniMessage.text("\n我日,不给我管理改锤子名片").send(at_sender=True) return if uid != sid and not await check_manage(bot, ev): await UniMessage.text("只有狗管理才能给别人设置名片了啦!").send(at_sender=True) return try: await bot.set_group_card(group_id=gid, user_id=sid, card=card_text) await ( UniMessage.text("已经把") .at(user_id=str(sid)) .text(f"的群名片修改为“{card_text}”啦~") .send() ) except Exception as e: await UniMessage.text(f"修改群名片失败勒...\n错误代码:{e}").send(at_sender=True) async def group_name(bot: Bot, ev: GroupMessageEvent, gid: int, name_text: str): """群名修改""" self_info = await self_member_info(bot, gid) if not is_bot_manage(self_info): await UniMessage.text("\n我还没获得管理权限呢...").send(at_sender=True) return if not await check_manage(bot, ev): await UniMessage.text("只有狗管理才能修改群名哦!").send(at_sender=True) return try: await bot.set_group_name(group_id=gid, name=name_text) await UniMessage.text(f"群名已修改为“{name_text}”啦").send() except Exception as e: await UniMessage.text(f"群名修改失败惹...\n错误代码:{e}").send(at_sender=True)