py py向频道发送消息

时间:2019-12-14 07:26:17

标签: python bots discord

我正在尝试使用discord.py库将消息从一个通道发送到另一个通道。想法-channel_1用户无权在channel_2中阅读和发送消息。我尝试编写应该发送这些消息的漫游器-例如,用户写!send“ channel2”“ hello”,然后漫游器将此消息发送到信道2。但是尝试执行此操作时我出错了

    import os
import random

import discord
from discord.ext import commands
from dotenv import load_dotenv

load_dotenv()
token = os.getenv('DISCORD_TOKEN')

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

@bot.command(pass_context=True)
async def xsend(ctx, *, message):
    await bot.delete_message(ctx.message)
    await ctx.send(discord.Object(id='652024045339934731'), message)

bot.run(token)

我得到的错误-TypeError:send()接受1到2个位置参数,但给出了3个

1 个答案:

答案 0 :(得分:0)

这不是discord.py-rewrite,对吗?因此,只需使用bot.get_channel()并通过bot.send_message()发送消息。 Link to documentation
(如果我知道的话,(顺便说一句,ctx.send()会将消息发送到被调用的通道)

@bot.command(pass_context=True)
async def xsend(ctx, *, message: str):
    await bot.delete_message(ctx.message)
    channel = bot.get_channel('652024045339934731')
    if channel:
        await bot.send_message(channel, message)


(discord.py-rewrite的版本)

@bot.command(pass_context=True)
async def xsend(ctx, *, message: str):
    await ctx.message.delete()
    channel = bot.get_channel(652024045339934731)
    if channel:
        await channel.send(message)