当前位置: 首页 > 知识库问答 >
问题:

不和谐.js向特定通道发送消息

南宫森
2023-03-14

我一直在四处寻找,似乎找不到我用Typescript制作的不和谐机器人的这个问题的答案。我的所有命令都放在它们自己的文件夹中,每个命令都有一个单独的文件。有助于保持井井有条。

我见过有人说客户端。“频道ID”)。

但这给了我对象可能是“未定义的”,并且属性“send”在类型“通道”上不存在。

实际上,每当有人运行重启命令时,我会尝试在每个文本频道(从列表中给出)发送一条机器人消息,因为不管出于什么原因,人们总是重启机器人。我把它实现为一件有趣的事情,如果有人需要使用它,我会时不时地以巨魔的身份去做。机器人离线3分钟,但我不喜欢有人发垃圾邮件,几乎让机器人无法使用。

我正在使用< code > client . channels . get(channels . channel names[5])。send("这是一条消息。")

共有3个答案

郑声
2023-03-14

假设您的频道是文本频道,这应该有效。

client.on('ready',(e)=>{


    let channel_ids = ['123','456','789'];

    // loop through the list of channel ids.
    for(let i=0, l=channel_ids.length; i<l; i++){
        let channel_id = channel_ids[i];

        let this_channel = client.channels.get( channel_id );

        // if exists, and type in list send message
        if(this_channel && ['dm', 'group', 'text'].indexOf( this_channel.type ) != -1){
            this_channel.send('a cool message')
            .then(message => console.log(`Sent message: ${message.content}`))
            .catch(console.error);
        }

    }

});
曹季同
2023-03-14

根据 https://discord.js.org/#/docs/main/stable/class/Collection 似乎没有get方法。

尝试< code > client . channels[channels . channel names[5]]。send("这是一条消息。")

换句话说,尝试替换。用方括号括起来。

编辑:对不起,我有点快,我认为问题是类型转换,如果你知道它是一个文本通道,请尝试将频道转换为文本频道。

裴华荣
2023-03-14

解决方案:

if(msgObject.member.guild.channels.find(channel => channel.name === channels.channelnames[5]) as Discord.TextChannel) {
    var txtchannel = msgObject.member.guild.channels.find(channel => channel.name === channels.channelnames[5]) as Discord.TextChannel
    txtchannel.send("This is a message in a channel. Don't know why you read this.")
}

所以我大部分时间都走在正确的轨道上。只是不得不做不和谐的文本频道,我想这就是为什么辛西娅说要把这个变量作为一个文本频道

此代码有效。谢谢你所有的帮助家伙!

 类似资料:
  • 正如标题中提到的,我正在尝试使用我使用discord构建的discord bot向特定频道发送消息。js和Node。js。我正在使用以下代码将消息发送到特定频道:

  • 我有一个Discord Python bot,我正在尝试运行一个后台任务,该任务将持续每隔X秒向一个通道发送一条消息—无需任何命令。当前有任意5秒的测试时间。 这是有问题的齿轮文件(为了效率而删除了进口和诸如此类的东西) 我有一种感觉,这是因为self参数是唯一传递的参数,但我在阅读API文档时有点困惑,不知道在这里到底要做什么。 我尝试了而不是,我尝试了定义(但就我所读的内容而言,我不应该使用我

  • 我在Discord.py上做了一个机器人,我试图设置我想用参数发送消息的频道。代码是这样的: 当我键入通道id而不是arg1时,它可以工作,但是当我键入命令时,不和谐(!发送282772187812)它不工作,我得到这个错误:discord.ext.commands.errors.命令InvokeError:命令引发了一个异常:属性错误:'NoneType'对象没有属性'发送' 提前谢谢。

  • 我做了很多关于如何阻止一个频道使用命令的研究,比如Rythm的黑名单,但是我没有找到,有人能帮我吗?

  • 我目前正在使用Java和jda为discord制作一个机器人。我想让机器人向特定的通道发送消息。我该怎么做?

  • 在不和谐中发送私人消息的问题。以下是两个代码示例(简化)。 此代码块将消息(cookie表情符号)发回给用户,无论它是私人聊天(与机器人)还是频道 这段代码私下向用户发送了一条消息,如果用户在通道中发送了命令,它就可以工作了,我对此很满意。 问题是,我希望用户能够在频道或私人消息中向bot发送一条消息“.cookie”,并获取私人消息(cookie表情符号)。 最后一段代码。如果我发出命令。coo