在同一个NodeJS项目中运行不同的discord.js bot示例

np8igboo  于 2023-05-06  发布在  Node.js
关注(0)|答案(1)|浏览(160)

我正在尝试创建一个项目,同时为不同的机器人(使用不同的令牌)提供服务。我的猜测是,您将不得不调用“client.login(token)”两次。我正忙碌着测试这个,还没有完成,但会回来一次完成。
有没有人对在同一个项目中的同一个文件中运行多个NodeJS bot示例有什么建议?这可能吗非常感谢您的帮助。
我也试着想象这会是什么样子:

const {Client} = require('discord.js');
const bot1 = new Client();
const bot2 = new Client();
//bot1 does something
//bot2 does something
bot1.login('token1');
bot2.login('token2');

谢谢你,祝你愉快。

v1l68za4

v1l68za41#

我可以确定这是有效的。下面是我的代码:

const Discord = require('discord.js');
const client1 = new Discord.Client();
const client2 = new Discord.Client();
const CONFIG = require('./config.json');

client1.once('ready', () => {
    console.log('Bot 1 ready.');
});

client2.once('ready', () => {
    console.log('Bot 2 ready.');
});

client1.on('message', message => {
    if (message.content === 'Hello!') {
        message.channel.send('Hello');
        console.log('Bot 1 said hello.');
    }
});

client2.on('message', message => {
    if (message.content === 'Hello!') {
        message.channel.send('world!');
        console.log('Bot 2 said hello.');
    }
});

client1.login(CONFIG.token1);
client2.login(CONFIG.token2);

下面是控制台日志:

Bot 2 ready.
Bot 1 ready.
Bot 1 said hello.
Bot 2 said hello.

有趣的是,Bot 1还是Bot 2首先响应会有所不同,因此您可能需要考虑这一点。
事实上,这甚至适用于3个机器人,它应该适用于任何数量的机器人!

const Discord = require('discord.js');
const client1 = new Discord.Client();
const client2 = new Discord.Client();
const client3 = new Discord.Client();
const CONFIG = require('./config.json');

client1.once('ready', () => {
    console.log('Bot 1 ready.');
});

client2.once('ready', () => {
    console.log('Bot 2 ready.');
});

client3.once('ready', () => {
    console.log('Bot 3 ready.');
});

client1.on('message', message => {
    if (message.content === 'Hello!') {
        message.channel.send('Hello1');
        console.log('Bot 1 said hello.');
    }
});

client2.on('message', message => {
    if (message.content === 'Hello!') {
        message.channel.send('Hello2');
        console.log('Bot 2 said hello.');
    }
});

client3.on('message', message => {
    if (message.content === 'Hello!') {
        message.channel.send('Hello3');
        console.log('Bot 3 said hello.');
    }
});

client1.login(CONFIG.token1);
client2.login(CONFIG.token2);
client3.login(CONFIG.token3);

下面是控制台日志:

Bot 1 ready.
Bot 3 ready.
Bot 2 ready.
Bot 2 said hello.
Bot 3 said hello.
Bot 1 said hello.

然而,对于一个更深入的项目,我建议(对于命令等)为2个机器人使用不同的文件,因为我认为代码会变得混乱,难以快速阅读,即使你使用相同的index.js文件。
希望这有帮助!

相关问题