#discord #discord.js
#Discord #discord.js
Вопрос:
Я не очень хорошо разбираюсь в английском, так что извините за это, я хочу, чтобы вы могли запускать команды типа /sayEN
, но EN находится в переменной типа
const language = {
"EN": "English",
"ESP": "Espanol"
}
так, как вы можете запускать команду и с текстом, который находится в переменной
я пытался создать код, но я слишком запутанный
let messageArray = message.content.split(" ");
let cmd = messageArray[0];
let args = message.content.substring(message.content.indexOf(' ') 1);
var lang = {
"EN": "English",
"ESP": "Espanol"
}
if (cmd === (prefix `say${lang}`)) /*lol how do i make like `say${the text that are in the variable*/ {
message.reply(${lang}) /*what i mean here is the command that the user inputs,
like if i say "/sayESP" then the reply will be ESP too*/
}
пожалуйста, извините за мой плохой английский
, здесь более понятно и просто
const lang = {
"EN": "English",
"ESP": "Espanol
}
**The Discord Chat**
User: /sayEN
bot: English
User: /sayESP
bot: Espanol
Ответ №1:
Попробуйте этот код: пусть переменная хранилища будет a
[используйте массив вместо объекта: const a = ['EN','ESP'];
]:
const a = ['EN','ESP'];
const b = ['English','Espanol'];
if (command.startsWith(PREFIX 'say'){
command.slice(PREFIX.length 3);
if (a.includes(command){
message.channel.send(b[a.indexOf(command)]);
}
}
Ответ №2:
Лучший способ выполнить эту операцию — создать /commands
папку внутри папки вашего проекта и создать командные сценарии для каждой из ваших команд. Шаблон командного скрипта может быть следующим:
module.exports.run = async (bot, message, args) => {
// All Command Operations Here
};
exports.conf = {
enabled: true,
guildOnly: false,
aliases: [],
permlevel: 0
};
exports.help = {
name: 'command name',
description: 'Description',
usage: 'usage description'
};
Например, создайте файл с именем sayENG.js
и поместите его внутрь:
module.exports.run = async (bot, message, args) => {
// Code here what if you want to send when a user sends a message that starts with /sayENG
};
exports.conf = {
enabled: true,
guildOnly: false,
aliases: [],
permlevel: 0
};
exports.help = {
name: 'sayENG',
description: 'say English',
usage: '/sayENG <message>'
};
Чтобы получить доступ к этим файлам в вашем индексном файле, вы должны добавить эти команды в индексный файл.
client.commands = new Discord.Collection();
client.aliases = new Discord.Collection();
fs.readdir("./commands/", (err, files) => {
if (err) console.error(err);
log(`${files.length} commands will be uploaded.`);
files.forEach(f => {
let props = require(`./komutlar/${f}`);
log(`Uploaded command: ${props.help.name}.`);
client.commands.set(props.help.name, props);
props.conf.aliases.forEach(alias => {
client.aliases.set(alias, props.help.name);
});
}); //
});
client.reload = command => {
return new Promise((resolve, reject) => {
try {
delete require.cache[require.resolve(`./commands/${command}`)];
let cmd = require(`./commands/${command}`);
client.commands.delete(command);
client.aliases.forEach((cmd, alias) => {
if (cmd === command) client.aliases.delete(alias);
});
client.commands.set(command, cmd);
cmd.conf.aliases.forEach(alias => {
client.aliases.set(alias, cmd.help.name);
});
resolve();
} catch (e) {
reject(e);
} //L
});
};
client.load = command => {
return new Promise((resolve, reject) => {
try {
let cmd = require(`./commands/${command}`);
client.commands.set(command, cmd);
cmd.conf.aliases.forEach(alias => {
client.aliases.set(alias, cmd.help.name);
});
resolve();
} catch (e) {
reject(e); //
}
});
};
client.unload = command => {
return new Promise((resolve, reject) => {
try {
delete require.cache[require.resolve(`./komutlar/${command}`)];
let cmd = require(`./commands/${command}`);
client.commands.delete(command);
client.aliases.forEach((cmd, alias) => {
if (cmd === command) client.aliases.delete(alias);
});
resolve();
} catch (e) {
reject(e);
}
});
};