Bots Can';t仅针对特定通道发出命令

Bots Can';t仅针对特定通道发出命令,bots,discord,discord.py-rewrite,Bots,Discord,Discord.py Rewrite,disoccord.py重写 错误:否 下面的命令未按预期工作 p/是机器人程序的前缀,上面的代码告诉(用{}格式编写这个命令(er.idention))当在正确的通道中使用p/时,机器人程序什么也不说,但我使用任何类似于p/help的命令,它不起作用。实际上,事件应该允许成员使用机器人程序命令(@bot.command)仅在指定的通道中,而不是在任何其他通道中,但问题是没有命令在指定的通道中工作,也没有命令在服务器的任何通道中工作。任何帮助都会很好:)编辑:(指定了我的问题并让它变得有点清楚)

disoccord.py重写
错误:
下面的命令未按预期工作

p/是机器人程序的前缀,上面的代码告诉(用{}格式编写这个命令(er.idention))当在正确的通道中使用p/时,机器人程序什么也不说,但我使用任何类似于p/help的命令,它不起作用。实际上,事件应该允许成员使用机器人程序命令(@bot.command)仅在指定的通道中,而不是在任何其他通道中,但问题是没有命令在指定的通道中工作,也没有命令在服务器的任何通道中工作。任何帮助都会很好:)编辑:(指定了我的问题并让它变得有点清楚)

编辑:
从评论中,你可能真的想要

@bot.event
异步def on_消息(消息):
cmdChannel=bot.get_通道(559253532759425044)
如果message.content.lower().startswith('p/'):
如果message.channel.id==cmdChannel.id:
#在命令通道中调用的命令-执行它
等待bot.process_命令(消息)
其他:
#尝试在非命令通道中执行命令-重定向用户
wait message.channel.send('以{}格式编写此命令(cmdChannel.antify))
编辑:
从评论中,你可能真的想要

@bot.event
异步def on_消息(消息):
cmdChannel=bot.get_通道(559253532759425044)
如果message.content.lower().startswith('p/'):
如果message.channel.id==cmdChannel.id:
#在命令通道中调用的命令-执行它
等待bot.process_命令(消息)
其他:
#尝试在非命令通道中执行命令-重定向用户
wait message.channel.send('以{}格式编写此命令(cmdChannel.antify))


如果不是message.channel.id!=x:
这里有一个双负数,而不是
message.channel.id
不等于
x
。如果message.channel.id!=x-删除not。也不需要将频道id放在括号中,
x
不明白你说的话,先生,你能更深入地解释一下吗?我也希望这样,我不必在我做的每个命令中都写东西。当你说命令时,这是否意味着
命令
扩展名,例如,用
@bot.command
装饰的协同程序?是的,我的意思是@bot.command
,如果不是message.channel.id!=x:
这里有一个双负数,而不是
message.channel.id
不等于
x
。如果message.channel.id!=x-删除not。也不需要将频道id放在括号中,
x
不明白你说的话,先生,你能更深入地解释一下吗?我也希望这样,我不必在我做的每个命令中都写东西。当你说命令时,这是否意味着
命令
扩展名,例如,用
@bot.command
装饰的协同程序?是的,我的意思是@bot.commands可以工作,但我的其他命令,如/help和其他命令在任何渠道都不能工作。我想你需要澄清你的问题。据我所知,您希望所有命令仅在特定通道中工作。您的问题指出“该命令不应允许成员在除指定通道外的任何通道中使用bot命令,但当成员在右侧通道中使用该命令时,该命令必须工作”。提出的解决方案正是这样做的。它使所有命令只能在指定的通道中执行。是的,我的意思是,那么“帮助”在任何通道中都不起作用是什么意思?它根本不起作用吗?它在特定通道中不工作,在任何其他通道中也不工作?是的,帮助命令根本不工作,我的其他命令也不工作,当我删除上面的命令时,我给了命令重新开始工作,我的意思是不是说我所有的命令都起作用了,但我的其他命令,如/help和其他命令在任何渠道都不起作用,我想你需要澄清你的问题。据我所知,您希望所有命令仅在特定通道中工作。您的问题指出“该命令不应允许成员在除指定通道外的任何通道中使用bot命令,但当成员在右侧通道中使用该命令时,该命令必须工作”。提出的解决方案正是这样做的。它使所有命令只能在指定的通道中执行。是的,我的意思是,那么“帮助”在任何通道中都不起作用是什么意思?它根本不起作用吗?它在特定通道中不起作用,在任何其他通道中也不起作用?是的,帮助命令根本不起作用,我的其他命令也不起作用,当我删除上面的命令时,我给了这些命令重新开始起作用,我的意思是,我的所有命令都不起作用
@bot.event
async def on_message(message):
    x = (559253532759425044)
    er = bot.get_channel(559253532759425044)
    if not message.channel.id != x:
        return
    else:
        if "p/" in message.content.lower():
            await message.channel.send('Write this command in {}'.format(er.mention))