好的,我想要这样,我可以在特定的服务器中发送消息,并通过控制台发送消息。我在其他文章中看到了如何在特定的服务器和频道上发送消息,但是如何从不和谐的应用程序而不是控制台上发送消息。有人可以帮我吗?
我想要输入例如msg [server-id-here] [channel-name] [message]
msg 493121776402825219您好
我有验证码,但有错误
@bot.event
async def on_ready(ch, *, msg):
while msg:
channel = bot.get_channel(ch)
msg=input("Mensagem: ")
if channel:
await bot.send_message(channel, msg)
else:
await bot.say("I can't find that channel")
输出错误
TypeError: on_message() missing 1 required positional argument: 'ch'
答案 0 :(得分:0)
我不认为这实际上是可能的,但是您可以实现一个新命令来执行此操作,这是我用于欢迎程序的命令
@bot.command(description="Echos, developers only", pass_context=True)
async def echo(ctx, echowords:str):
if ctx.message.author.id in []: #put in id's in a list or replace it with one string
await bot.say(echowords)
else:
await bot.say("Bot developers only :<")
这会使漫游器在您所说的地方重复您所说的内容,但是如果您想通过ID将消息发送到特定频道,则可以这样做
@bot.command(description="Echos, developers only", pass_context=True)
async def echo(ctx, id, echowords:str):
if ctx.message.author.id in []: #put in id's in a list or replace it with one string
sendchannel = bot.get_channel(id)
await bot.send_message(sendchannel, echowords)
else:
await bot.say("Bot developers only :<")
答案 1 :(得分:0)
使用say命令。
@bot.command()
async def say(ctx, *,message):
if not ctx.author.bot:
else:
pass