discord.py-通过控制台发送消息

时间:2018-09-23 09:49:17

标签: python discord.py

好的,我想要这样,我可以在特定的服务器中发送消息,并通过控制台发送消息。我在其他文章中看到了如何在特定的服务器和频道上发送消息,但是如何从不和谐的应用程序而不是控制台上发送消息。有人可以帮我吗?

我想要输入例如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'

2 个答案:

答案 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