昨天我正在做一个简单的事情,一个受!name Barty
命令的机器人将打印回Hello Barty
@bot.command()
async def name(ctx, args):
await ctx.send("hello {}".format(args)
不过,目前我面临的问题是,该漫游器会响应我确实使用!name XXXX
的任何渠道,而我想做的就是我只想对其中的给定特定渠道做出反应不和谐。
我试图做:
@bot.event
async def on_message(message):
if message.channel.id == 1234567:
@bot.command()
async def name(ctx, args):
await ctx.send("hello {}".format(args)
但是那完全不起作用,我没主意了,我在这里。
如何将命令发送到给定的特定通道并从那里获得响应?
答案 0 :(得分:1)
嗯,将定义代码移出IF语句
@bot.command()
async def name(ctx, args):
await ctx.send("hello {}".format(args)
完成此操作后,您应该可以做到;
if (message.channel.id == 'channel id'):
await message.channel.send('message goes here')
else:
# handle your else here, such as null, or log it to ur terminal
还可以查看您知道的文档-https://discordpy.readthedocs.io
执行命令后,在其中添加IF语句。
答案 1 :(得分:1)
在这里帮助!
bot = commands.Bot(command_prefix='$')
class MyClient(discord.Client):
async def on_ready(self):
guild = discord.utils.get(client.guilds, name=GUILD)
print(
f'{client.user} is connected to the following guild:\n'
f'{guild.name}(id: {guild.id})\n'
)
@bot.command()
async def name(self, ctx, arg):
await ctx.send(arg)
我正在尝试使用$ name Test进行呼叫,但是它可以正常工作
答案 2 :(得分:0)
message.channel.id现在需要为整数,而不是字符串,因此您无需使用''
if (message.channel.id == 1234567):
await message.channel.send('message goes here')
else:
# handle your else here, such as null, or log in to ur terminal