Доброго времени суток, я работаю над системой предупреждений к примеру одна из главных комманд /warn @user.
Теперь к проблеме, у меня команды отдельно, главный файл отдельно.
Главный файл смотрит, начинается ли сообщение с префикса, если да, ищет его в папке commands.
Передаю я эту переменную примерно так:
index.js:
const commandFiles = readdirSync(join(__dirname, "commands")).filter((file) => file.endsWith(".js"));
for (const file of commandFiles) {
const command = require(join(__dirname, "commands", `${file}`));
client.commands.set(command.name, command);
}
client.on("message", async (message) => {
if (message.author.bot) return;
if (!message.guild) return;
const prefixRegex = new RegExp(`^(<@!?${client.user.id}>|${escapeRegex(PREFIX)})\\s*`);
if (!prefixRegex.test(message.content)) return;
const [, matchedPrefix] = message.content.match(prefixRegex);
const args = message.content.slice(matchedPrefix.length).trim().split(/ +/);
const commandName = args.shift().toLowerCase();
const pingedUser = message.mentions.members.first();
const pingedUserTag = pingedUser.user.tag;
console.log(pingedUserTag);
const command =
client.commands.get(commandName) ||
client.commands.find((cmd) => cmd.aliases && cmd.aliases.includes(commandName));
if (!command) return;
warn.js:
module.exports = {
name: "warn",
description: "Give players warn points and then kick/ban them",
execute(message, pingedUserTag) {
. . .
}
};
pingedUserTag - это как раз то что я передаю через execute.
const pingedUser = message.mentions.members.first();
const pingedUserTag = pingedUser.user.tag;
Переменую я передаю, потому что в самом warn.js файле это у меня не получилось.
На картинке ниже представленно разное поведение одной и тойже переменной в index.js и в warn.js:
Почему переменная поменялась? В чем причина?