如何检查用户是否提供了参数discord.py

瑞安·S

我刚刚开始尝试学习如何在discord.py中进行编码。但是,我不确定如何在命令后检查用户是否提供了意见。例如,如果用户输入!kick,但没有在其后标记用户,则应该给他们一条错误消息,例如“请标记用户”

所以我的问题是,如何在使用命令时检查用户是否标记了另一个用户,如果没有,请给他们一条错误消息

这是我的代码:

#PyBot by RYAN#2302

import discord
from discord.ext import commands
from discord.ext.commands import Bot
import asyncio
import chalk

bot = commands.Bot(command_prefix='!')

@bot.event
async def on_ready():
    print ("Ready when you are xd")
    print ("I am running on " + bot.user.name)
    print ("With the ID: " + bot.user.id)

@bot.command(pass_context=True)
async def ping(ctx):
    await bot.say(":ping_pong: Ping! :ping_pong:")
    print ("!ping")

@bot.command(pass_context=True)
async def info(ctx, user: discord.Member):
    await bot.say("The users name is: {}".format(user.name))
    await bot.say("The users ID is: {}".format(user.id))
    await bot.say("The users status is: {}".format(user.status))
    await bot.say("The users highest role is: {}".format(user.top_role))
    await bot.say("The user joined at: {}".format(user.joined_at))
    print ("!info")

@bot.command(pass_context=True)
async def kick(ctx, user: discord.Member):
    await bot.say(":boot: Cya, {}. Ya loser!".format(user.name))
    await bot.kick(user)
    print ("!kick on {}".format(user.name))

任何帮助将不胜感激,谢谢!

帕特里克·豪

user参数提供默认值None,然后检查是否使用了提交值

@bot.command(pass_context=True)
async def kick(ctx, user: discord.Member = None):
if user:    
    await bot.say(":boot: Cya, {}. Ya loser!".format(user.name))
    await bot.kick(user)
    print ("!kick on {}".format(user.name))
else:
    await bot.say("Please tag a user to kick")

所有Member对象都是真实的,因此唯一的if user:失败将是没有用户提供。如果输入内容无法与用户匹配,则该命令将不执行任何操作,除非我们也指定错误侦听器,否则该操作将自动失败

@kick.error
async def kick_error(ctx, error):
    if isinstance(error, discord.ext.commands.BadArgument):
        await bot.say('Could not recognize user')

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何检查 discord.py 中是否缺少必需的参数

检查特定用户是否执行了discord.py命令

检查.json词典是否包含用户ID discord.py

检查特定用户是否对discord.py有反应

discord.py 检查用户是否具有特定角色

如何在discord.py中检查用户是否为self_deaf

如何检查用户ID是否已注册到漫游器?[discord.py]

如何检查同一用户是否回复了我的discord.py机器人

如何检查用户是否在 discord.py 中拥有角色?

如何在discord.py中检查用户的创建日期?

如何检查触发用户的特定角色?(discord.py)

如何检查discord.py中是否已存在角色

如何检查成员是否具有角色 discord.py

如何检查命令是否在 discord.py 中的组中?

Discord.py:检查用户是否具有列表中没有的角色ID

检查用户列表是否对消息discord.py rewrite做出了反应

Discord.py 如何检查 MissingRequiredArgument 错误?

discord.py 如何检查文本通道

如何检查是否有人投票给Discord bot discord.py

discord.py Rewrite-如何检查discord.Member是否是机器人

如何使用discord.py检查用户在bot消息后输入的内容?

Discord.py使用wait_for检查用户输入

检查discord.py中的参数数量

discord.py:wait_for() 方法的检查参数阻止执行

如何在discord.py重写中检查作者是否是管理员

如何检查某人是否具有管理员权限on_message discord.py

如何在discord.py中检查消息是否由漫游器发送?

在discord.py中,如何检查服务器上是否有成员?

如何检查消息是否在特定服务器中(discord.py)