from nonebot.typing import T_State
from nonebot.permission import SUPERUSER
from nonebot.adapters.cqhttp import Bot, MessageEvent

from ATRI.service import Service as sv


__doc__ = """
紧急停机
权限组:维护者
用法:
  @ 关机
"""

shutdown = sv.on_command(
    cmd="关机",
    docs=__doc__,
    permission=SUPERUSER
)

@shutdown.handle()
async def _shutdown(bot: Bot, event: MessageEvent, state: T_State) -> None:
    msg = str(event.message).strip()
    if msg:
        state["msg"] = msg

@shutdown.got("msg", prompt="[WARNING]此项操作将强行终止bot运行,是否继续(y/n)")
async def __shutdown(bot: Bot, event: MessageEvent, state: T_State) -> None:
    t = ['y', 'Y', '是']
    if state["msg"] in t:
        await bot.send(event, "咱还会醒来的,一定")
        exit(0)
    else:
        await shutdown.finish("再考虑下吧 ;w;")