如何向频道发送消息

时间:2018-10-24 17:07:18

标签: javascript discord.js

我花了3个小时来构建和调整Node.js Web爬虫,并花了4个小时来尝试寻找一种怪异的方式来向Discord上的频道广播消息。我现在已经失去了所有希望...

这是我的代码,某些部分可以正常工作,例如回复邮件。但是我找不到任何可能的方式来发送一条消息,而不会将该消息作为答复。

   [ 
        {
            "id" : "5bcebb6efeaea3147b7a22f0",
            "imgId" : "12710.png",
            "visible" : "all"
        }, 
        {
            "id" : "5bcebbf0feaea3147b7a22f1",
            "imgId" : "62818.png",
            "visible" : "fav"
        }, 
        {
            "id" : "5bcec010feaea3147b7a22f2",
            "imgId" : "36740.png",
            "visible" : "none"
        }
    ],

2 个答案:

答案 0 :(得分:1)

这可能是由于您在登录僵尸程序之前运行代码所致。
在漫游器发出ready事件之后,必须执行所有操作,在ready事件之外,您唯一可以做的就是定义其他事件侦听器。

尝试将您的部分代码放在ready事件侦听器中,或将该事件调用的函数中:

client.on('ready', () => {
  console.log("Your stuff...");
});

// OR

function partA () {...}
function partB () {...}
client.on('ready', () => {
  partA();
  console.log("Your stuff...");
  partB();
});

// OR

function load() {...}
client.on('ready', load);

根据您的情况:

client.on('ready', () => { // once the client is ready...
  let guild = client.guilds.get('guild id here'); // ...get the guild.
  if (!guild) throw new Error("The guild does not exist.");  // if the guild doesn't exist, exit.

  let channel = guild.channels.get('channel id here'); // if it does, get the channel
  if (!channel) throw new Error("That channel does not exist in this guild."); // if it doesn't exist, exit.

  channel.send("Your message here.") // if it does, send the message.
});

client.login('your token here')

答案 1 :(得分:0)

尝试:

bot.channels.find(channel => channel.id === '504658757419270144').send('Your-message');

此外,如果您要向其发送消息的频道位于机器人公会中,则可以使用:

bot.on('message' (msg) => {
    msg.guild.channels.find(channel => channel.name === 'your-channel-name').send('your-message');
});