我已經建立了這個小腳本,讓您可以在此之上構建機器人:
index.js:
const Discord = require('discord.js');
const client = new Discord.Client();
const config = require('./config.json');
const commands = require('./commands');
const prefix = config.prefix;
const commandExecuter = new commands();
client.on("ready",() => {
client.user.setGame('Minecraft');
var servers = client.guilds.array().map(g => g.name).join('.');
console.log('Bot started');
});
client.on('message', message => {
//Check if its a command
isBotCommand(message.content, (command) => {
//If it is, lets execute it if we can
if (command) {
commandExecuter.execute(message, client, command);
}
});
});
const isBotCommand = (message, callback) => {
//Get the first char of the message
let firstChar = message.charAt(0);
//If it does not equal our prefix answer that it's not a bot command
if (firstChar !== prefix) return callback(false)
//We got here, so it seems to be a command
return callback(message.substring(1));
}
client.login(config.token);
添加文件「commands.js」到根目錄和粘貼以下內容:
const botCommandExecuter = function() {}
const findCommandFromStack = (command, callback) => {
//Find the command in the commands array
commands.some((iteratedCommand) => {
//If our keyword is inside the currently iterated command object we have a match
if (iteratedCommand.keywords.indexOf(command) > -1) {
//Call the callback and break the loop
callback(iteratedCommand.action);
return true;
}
});
}
botCommandExecuter.prototype.execute = (messageInstance, client, command) => {
//Find the command
findCommandFromStack(command, (commandToExecute) => {
//Execute the command we found
commandToExecute(messageInstance, client);
});
}
//List of commands
const commands = [
{
keywords: ['Bonjour','Salut','Hello', 'Guten tag', 'Buenos Dias'],
action: (message, client) => {
var tabAnsw = ['Bonjour votre majesté.','Salutations jeune Douzien !','Ouais, ouais. T\'es qui déjà ?', 'Bonjour ' + message.author + ', comment vas-tu aujourd\'hui ?'];
var row = Math.floor(Math.random() * tabAnsw.length);
message.channel.sendMessage(tabAnsw[row]);
}
}
];
module.exports = botCommandExecuter;
仍然有很多改進和錯誤處理的空間,但我會留給你。祝你好運!
噢,謝謝你! :) – SalakissODV