Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将消息发送到特定的discord频道?_Javascript_Discord_Discord.io - Fatal编程技术网

Javascript 如何将消息发送到特定的discord频道?

Javascript 如何将消息发送到特定的discord频道?,javascript,discord,discord.io,Javascript,Discord,Discord.io,你好,我刚刚开始创建一个discord机器人。我有一段代码,是我从网上的教程中复制的,当我输入!在我的discord服务器上的任何地方播放,它都会有一个机器人说:“@我们正在玩的每个人!:)” 我希望它能在我输入时正常工作!在bot频道中播放,它会提示正在查找游戏频道。我将粘贴我的全部代码,但我认为重要的部分是: bot.sendMessage({ to: channelID, message: '@everyone The Owner, Admins and The OGs are p

你好,我刚刚开始创建一个discord机器人。我有一段代码,是我从网上的教程中复制的,当我输入
!在我的discord服务器上的任何地方播放
,它都会有一个机器人说:“@我们正在玩的每个人!:)”

我希望它能在我输入
时正常工作!在bot频道中播放
,它会提示
正在查找游戏频道
。我将粘贴我的全部代码,但我认为重要的部分是:

bot.sendMessage({
  to: channelID,
  message: '@everyone The Owner, Admins and The OGs are playing Mass Effect Andromeda! Come play with them! :smiley:'
});
有没有办法让它发送到特定频道而不是
channelID

下面是解决方案需要的全部代码

var Discord = require('discord.io');
var logger = require('winston');
var auth = require('./auth.json');
// Configure logger settings
logger.remove(logger.transports.Console);
logger.add(new logger.transports.Console, {
  colorize: true
});
logger.level = 'debug';
// Initialize Discord Bot
var bot = new Discord.Client({
  token: auth.token,
  autorun: true
});
bot.on('ready', function(evt) {
  logger.info('Connected');
  logger.info('Logged in as: ');
  logger.info(bot.username + ' - (' + bot.id + ')');
});
bot.on('message', function(user, userID, channelID, message, evt) {
  // Our bot needs to know if it will execute a command
  // It will listen for messages that will start with `!`
  if (message.substring(0, 1) == '!') {
    var args = message.substring(1).split(' ');
    var cmd = args[0];

    args = args.splice(1);
    switch (cmd) {
      // !play
      case 'play':
        bot.sendMessage({
          to: channelID,
          message: '@everyone The Owner, Admins and The OGs are playing Mass Effect Andromeda! Come play with them! :smiley:'

        });
        break;
        // Just add any case commands if you want to..
    }
  }
});

你必须获得公会对象,然后从中获得通道对象,然后向其发送消息

如果是一个命令触发了这一点,而你在你的
bot.on(“消息”)
,如果启用,您可以执行
message.channel.send(“message”)
!您希望它发送到特定频道的命令,可以执行
message.guild.channel.get(“channel-ID”).send(“message”)

你也可以做
message.guild.channel.find(“name”,“channel name”).send(“message”)虽然通常不这样做,但最好按ID查找

如果你不是,你必须这样做:
你必须获得公会对象,然后从中获得通道对象,然后向其发送消息

如果是一个命令触发了这一点,而你在你的
bot.on(“消息”)
,如果启用,您可以执行
message.channel.send(“message”)
!您希望它发送到特定频道的命令,可以执行
message.guild.channel.get(“channel-ID”).send(“message”)

你也可以做
message.guild.channel.find(“name”,“channel name”).send(“message”)虽然通常不这样做,但最好按ID查找

如果你不是,你必须这样做: 可能的重复可能的重复
bot.guilds.get('GUILD-ID').channels.get('CHANNEL-ID').send("Message");