【问题标题】:How to create a Discord Cross server relay bot in JavaScript如何在 JavaScript 中创建 Discord Cross 服务器中继机器人
【发布时间】:2020-06-17 15:41:16
【问题描述】:

我一直在开发一个新的 Discord Bot,它能够将通知从原始服务器中继到该 bot 所在的所有其他服务器。我对编程非常陌生,所以我的想法有希望吗?我现在就发送我当前的代码。

const discord = require('discord.js');
const bot = new discord.Client();

const token = '<token>';

const PREFIX = '&';

const server;
const DChannel;

bot.on('ready', () =>{
    console.log('Milsim Network Online');

    server = bot.guilds.get(719415100221554688);
    DChannel = server.channels.get(719424622633680906);
    console.log('--------------------\n\n\nREADY: '+ new Date() +'\n\n\n--------------------');
})

bot.on('message', message=> {

    let args = message.content.substring(PREFIX.length).split(" "); // Single Argument Commands //

    switch(args[0]) {
        case 'ping': 
            message.channel.send('pong!');
        break;
        case 'UMA':
            message.channel.send('website link here');
        break;
        case 'info':
            message.channel.send('Please select: **PMC**, **MILSIM**, or **UMA** to learn more about them');
        break;
    }

    if (message.channel.type.toLowerCase() == 'dm' || message.channel.type.toLowerCase() == 'group') {
            var embed = new Discord.RichEmbed()
            .setAuthor(message.author.username, message.author.avatarURL)
            .setDescription(message.content)
            .setTimestamp(new Date())
            .setColor('#C735D4');
            DChannel.send(embed);
        }
})

bot.login (token);

我知道它可能看起来非常杂乱无章,对此我深表歉意。

【问题讨论】:

  • 我希望那不是您的实际令牌。如果是,您将需要尽快重新生成它。为了以防万一,我将它从你的问题中编辑了出来,但是......任何有足够声誉的人仍然可以看到它。
  • 哦,别担心,那是我的旧令牌
  • 值得一试。你不会相信我见过的数字或 real 代币。尤其是在云计算存储和数据库方面。
  • 哦,当他们意识到自己的所作所为时,这一定会伤害他们很多。但无论如何感谢您删除旧令牌。如果我放入真正的,那会很快向南走。

标签: javascript discord discord.js


【解决方案1】:

这是朝着所需方向迈出的一步。我的示例获取消息的其余内容(不包括命令)并将其发送到客户端所在的每个公会的第一个频道。请注意,“第一个”频道表示频道列表中最低的一个。

let announcement = args.slice(1).join(' ');
bot.guilds.cache.forEach(guild => {
  let channel = guild.channels.cache.first();
  channel.send(announcement);
});

看来您没有使用 discord.js v12,因此上述代码仅在您删除所有 cache 实例时才有效,例如 bot.guilds.cache.forEach() --> bot.guilds.forEach()

【讨论】:

  • 我尝试了脚本,但终端似乎无法识别命令 channel.send(announcement);
猜你喜欢
  • 2020-05-22
  • 2018-06-16
  • 1970-01-01
  • 2018-10-10
  • 2020-10-11
  • 1970-01-01
  • 2020-11-10
  • 2021-07-01
  • 2021-04-03
相关资源
最近更新 更多