#javascript #node.js #discord #discord.js #bots
#javascript #node.js #Discord #discord.js #боты
Вопрос:
мой друг использовал аналогичную вещь в своем боте discord, это мой код, и независимо от того, что бот всегда находится в режиме приостановки:
const { Client, Collection } = require("discord.js");
const { TOKEN, PREFIX, DEV_ID, DEV_PREFIX } = require("./config.json");
client.login(TOKEN);
client.suspend = false
//other client.on code
client.on("message", async (message) => {
if (message.content.startsWith(DEV_PREFIX) amp;amp; message.author.id == DEV_ID amp;amp; message.content.includes("suspend")) {
if (client.suspend = false) {
client.suspend = true;
message.channel.send("Suspend mode on!")
} else if (client.suspend = true) {
client.suspend = false;
message.channel.send("Suspend mode off!")
} else {
message.channel.send("AHH THERE WAS AN ERROR!!")
client.suspend = false;
}
}
if (client.suspend = false) {
//bot's commands and other functions of the bot that can be turned off during suspend.
}
ожидаемый результат, //suspend
переключает режим приостановки, текущий результат, бот не слушает команды, режим приостановки всегда.
Ответ №1:
Вы не проверяете в своих ifs, вы присваиваете: В JavaScript вы сравниваете, используя ==
, в то время как =
используется для присвоения значения: вы не проверяете, является ли оно false, вы устанавливаете для него значение false. Правильные назначения будут выглядеть следующим образом:
const { Client, Collection } = require("discord.js");
const { TOKEN, PREFIX, DEV_ID, DEV_PREFIX } = require("./config.json");
client.login(TOKEN);
client.suspend = false
//other client.on code
client.on("message", async (message) => {
if (message.content.startsWith(DEV_PREFIX) amp;amp; message.author.id == DEV_ID amp;amp; message.content.includes("suspend")) {
if (!client.suspend) {
client.suspend = true;
message.channel.send("Suspend mode on!")
} else {
client.suspend = false;
message.channel.send("Suspend mode off!")
}
}
if (!client.suspend) { //shorthand for == false
//bot's commands and other functions of the bot that can be turned off during suspend.
}
});
Ответ №2:
Это потому, что вы не указали, кто является владельцем бота или разработчиком, поэтому, даже если вы являетесь владельцем бота, вы не сможете запустить команду, любую команду, кроме suspend, поскольку вы ее установили. Кроме того, вы пытаетесь проверить, можете ли вы назначить переменную с помощью =
вместо сравнения с помощью ==
или ===
. Попробуйте проверить этот код ниже:
const { Client, Collection } = require("discord.js");
const { TOKEN, PREFIX, DEV_ID, DEV_PREFIX } = require("./config.json");
client.login(TOKEN);
client.suspend = false
// other client.on code
client.on("message", async (message) => {
if (message.content.startsWith(DEV_PREFIX) amp;amp; message.author.id == DEV_ID amp;amp; message.content.includes("suspend")) {
// Quick Tip : You can use `client.suspend` to
// check if it's true and `!client.suspend` to check if it's false.
if (!client.suspend) {
client.suspend = true;
message.channel.send("Suspend mode on!")
} else if (client.suspend) {
client.suspend = false;
message.channel.send("Suspend mode off!")
} // You don't need else again.
}
// Allow the dev to run the command in or out of suspension, and
// allow all users to use the command if it's not suspended.
if ((client.suspend amp;amp; message.author.id == DEV_ID) || (!client.suspend)) {
// Your commands here, all of it... Only Devs can use it, otherwise, separate
// all of your commands into ones that can be used by devs in suspension, and
// ones that can be used by users during suspension.
}
});