取消对所有人的命令



我制作了这段代码来解除每个人的绑定。但它不起作用。这是怎么回事?我是个初学者。

let discord = require("discord.js")
let client = new discord.Client()
client.on('message', message => {
const member = message.member;
switch (message.content.toLowerCase()) {
case (PREFIX + "-unban all"):
if (member.hasPermission('MANAGE_SERVER')) {
async function ubAll() {
const users = await message.guild.fetchBans()
for (const user of users.array()) {
await message.guild.unban(user)
}
}
let embed = new discord.MessageEmbed()
.setTitle("Done!")
.setDescription("Successfully Unbanned everyone.")
.setColor("Green")
.setThumbnail("https://riyazapp.com/wp-content/uploads/2020/04/checkmark.gif")
}
if (!member.hasPermission('MANAGE_SERVER')) {
message.reply("You do not have enough permissions for this command!")
}
}
})
client.login("not showing")

let discord = require("discord.js");
let client = new discord.Client();
client.on('message', message => {
const member = message.member;
switch (message.content.toLowerCase()) {
case ("-unban all"):
if (member.hasPermission('MANAGE_SERVER')) {
async function ubAll() {
let users = await message.guild.fetchBans();
let userArr = users.array();
let unbanUsers = [];
for(var i = 0; i < userArr.length; i++) {
unbanUsers.push(userArr[i].user.id);
}
for(var j = 0; j < unbanUsers.length; j++) {
message.guild.members.unban(unbanUsers[j]);
}
}
ubAll();
let embed = new discord.MessageEmbed()
.setTitle("Done!")
.setDescription("Successfully Unbanned everyone.")
.setColor("Green")
.setThumbnail("https://riyazapp.com/wp-content/uploads/2020/04/checkmark.gif")
message.channel.send(embed);
}
else {
message.reply("You do not have enough permissions for this command!")
}
break;
}
})
client.login("not showing")

你好,你的代码中有很多错误。你使用了PREFIX,但没有定义它。我猜你的前缀是-,就像我在switch案例的第一个案例中看到的那样。无论如何,我也修复了你的ubAll函数。现在看起来有点复杂了,但别担心,这并不难理解。由于我是经典for循环的粉丝,所以我在新函数中使用了它们。

那么函数是什么
users中存储了来自被禁止用户的所有信息。在userArr中,我们只是将从users获得的所有信息存储在一个数组中。然后,我创建了一个空数组unbanUsers,如果我们想存储所有要取消登录的用户(在我们的案例中的每个人(。然后在第一个for循环中,我们遍历users数组中的所有值,并将用户ID推送到unbanUsers数组中(因为我们需要用户的ID来解除绑定(。现在,我们在第一个for循环中找到的每个用户的ID都存储在unbanUsers中。在第二个for循环中,我们通过unbanUsers数组进行迭代,并取消对每个用户的绑定。

然后你必须调用这个函数,因为如果你不这样做,它根本无法工作。您还忘记了break;。对于交换机案例中的每个案例,您都需要一个break;,因为否则它将搜索,直到他找到第一个break;,如果没有,它将创建一个无休止的循环。在,你必须将你创建的嵌入发送到频道中。

最新更新