49 lines
2.0 KiB
Python
49 lines
2.0 KiB
Python
from asyncio import TimeoutError
|
||
from defs.need_char import get_character
|
||
import pyromod
|
||
from pyrogram import Client, filters
|
||
from pyrogram.types import Message
|
||
|
||
|
||
@Client.on_message(filters.incoming &
|
||
filters.regex("我想要角色"))
|
||
async def need_char(client: Client, message: Message):
|
||
# uid
|
||
msg = await message.reply("请输入您的游戏 uid 纯数字\n\n例如:10001", quote=True)
|
||
try:
|
||
answer = await client.listen(message.chat.id, filters=filters.user(message.from_user.id)) # noqa
|
||
uid = int(answer.text)
|
||
except TimeoutError:
|
||
return await msg.edit("会话超时,请重试")
|
||
except ValueError:
|
||
await answer.safe_delete() # noqa
|
||
return await msg.edit("请输入正确的 uid")
|
||
await msg.safe_delete() # noqa
|
||
await answer.safe_delete() # noqa
|
||
# char
|
||
msg = await message.reply("请输入角色名称", quote=True)
|
||
try:
|
||
answer = await client.listen(message.chat.id, filters=filters.user(message.from_user.id)) # noqa
|
||
except TimeoutError:
|
||
return await msg.edit("会话超时,请重试")
|
||
await msg.safe_delete() # noqa
|
||
await answer.safe_delete() # noqa
|
||
char = get_character(answer.text)
|
||
if not char:
|
||
return await message.reply("没有找到这个角色")
|
||
# level
|
||
msg = await message.reply("请输入角色等级 纯数字\n\n例如:90", quote=True)
|
||
try:
|
||
answer = await client.listen(message.chat.id, filters=filters.user(message.from_user.id)) # noqa
|
||
level = int(answer.text)
|
||
except TimeoutError:
|
||
return await msg.edit("会话超时,请重试")
|
||
except ValueError:
|
||
return await msg.edit("请输入正确的等级")
|
||
if level < 0 or level > 90:
|
||
return await msg.edit("请输入正确的等级")
|
||
await msg.safe_delete() # noqa
|
||
await answer.safe_delete() # noqa
|
||
# answer
|
||
await message.reply(f"您的角色生成命令为:`/givechar {uid} {char} {level}`", quote=True)
|