[英]ReferenceError: time is not defined (Discord.js)
module.exports = {
name: "mute",
aliases: ["mutes", "muted"],
category: "moderation",
description: "mute",
run: async(client, message, args) => {
const Discord = require('discord.js');
setTimeout(() => {
if(!message.member.hasPermission("MANAGE_ROLES")) return message.channel.send("You do not have sufficient permissions to perform this command. Please try again");
let muteMember = message.mentions.members.first() || message.members.get(args[0]);
if(!muteMember) return message.channel.send("You did not provide a member to mute. Please provide a user to mute");
let time = parseInt(args[2]) * 60000;
let reason = args.slice(2).join(" ");
if (!reason) reason = "No reason provided";
if(!message.guild.me.hasPermission("MANAGE_ROLES")) return message.channel.send("I do not have sufficient permissions to mute this member. Please try again");
let muteRole = message.guild.roles.find(role => role.name === "Muted");
if(!muteRole) {
try {
muteRole = message.guild.createRole({
name: "Muted",
permissions: []
})
message.guild.channels.forEach(async (channel, id) => {
await channel.overwritePermissions(muteRole, {
SEND_MESSAGE: false,
ADD_REACTIONS: false,
SEND_TTS_MESSAGES: false,
ATTACH_FILES: false,
SPEAK: false
})
})
} catch (e) {
console.log(e.stack);
}
}
muteMember.addRole(muteRole.id). then(() => {
message.delete();
muteMember.send(`You have been muted in ${message.guild.name} for ${reason}`).catch(err =>console.log(err));
message.channel.send(`${muteMember.user.username} has been successfully muted`);
let muteEmbed = new RichEmbed()
.setColor("#FF0000")
.addField("Moderation Action", "mute")
.addField("Muted Member", muteMember.user.username)
.addField("Moderator", message.author.username)
.addField("Reason", reason)
.addField("Date:", message.createdAt.toLocaleAString());
let modChannel = message.guild.channels.find(channel => channel.name === "mod-log");
modChannel.send(muteEmbed);
})
}, time)
},
};
ReferenceError: time is not defined
at Object.run (C:\Users\gamel\Moderation-Bot-MK-I\commands\moderation\mute.js:63:17)
at Client.<anonymous> (C:\Users\gamel\Moderation-Bot-MK-I\server.js:56:24)
at Client.emit (node:events:402:35)
at MessageCreateAction.handle (C:\Users\gamel\Moderation-Bot-MK-I\node_modules\discord.js\src\client\actions\MessageCreate.js:31:14)
at Object.module.exports [as MESSAGE_CREATE] (C:\Users\gamel\Moderation-Bot-MK-I\node_modules\discord.js\src\client\websocket\handlers\MESSAGE_CREATE.js:4:32)
at WebSocketManager.handlePacket (C:\Users\gamel\Moderation-Bot-MK-I\node_modules\discord.js\src\client\websocket\WebSocketManager.js:384:31)
at WebSocketShard.onPacket (C:\Users\gamel\Moderation-Bot-MK-I\node_modules\discord.js\src\client\websocket\WebSocketShard.js:444:22)
at WebSocketShard.onMessage (C:\Users\gamel\Moderation-Bot-MK-I\node_modules\discord.js\src\client\websocket\WebSocketShard.js:301:10)
at WebSocket.onMessage (C:\Users\gamel\Moderation-Bot-MK-I\node_modules\ws\lib\event-target.js:132:16)
at WebSocket.emit (node:events:390:28)
at Receiver.receiverOnMessage (C:\Users\gamel\Moderation-Bot-MK-I\node_modules\ws\lib\websocket.js:983:20)
at Receiver.emit (node:events:390:28)
at Receiver.dataMessage (C:\Users\gamel\Moderation-Bot-MK-I\node_modules\ws\lib\receiver.js:517:14)
at Receiver.getData (C:\Users\gamel\Moderation-Bot-MK-I\node_modules\ws\lib\receiver.js:435:17)
at Receiver.startLoop (C:\Users\gamel\Moderation-Bot-MK-I\node_modules\ws\lib\receiver.js:143:22)
at Receiver._write (C:\Users\gamel\Moderation-Bot-MK-I\node_modules\ws\lib\receiver.js:78:10) Promise {
<rejected> ReferenceError: time is not defined
at Object.run (C:\Users\gamel\Moderation-Bot-MK-I\commands\moderation\mute.js:63:17)
at Client.<anonymous> (C:\Users\gamel\Moderation-Bot-MK-I\server.js:56:24)
at Client.emit (node:events:402:35)
at MessageCreateAction.handle (C:\Users\gamel\Moderation-Bot-MK-I\node_modules\discord.js\src\client\actions\MessageCreate.js:31:14)
at Object.module.exports [as MESSAGE_CREATE] (C:\Users\gamel\Moderation-Bot-MK-I\node_modules\discord.js\src\client\websocket\handlers\MESSAGE_CREATE.js:4:32)
at WebSocketManager.handlePacket (C:\Users\gamel\Moderation-Bot-MK-I\node_modules\discord.js\src\client\websocket\WebSocketManager.js:384:31)
at WebSocketShard.onPacket (C:\Users\gamel\Moderation-Bot-MK-I\node_modules\discord.js\src\client\websocket\WebSocketShard.js:444:22)
at WebSocketShard.onMessage (C:\Users\gamel\Moderation-Bot-MK-I\node_modules\discord.js\src\client\websocket\WebSocketShard.js:301:10)
at WebSocket.onMessage (C:\Users\gamel\Moderation-Bot-MK-I\node_modules\ws\lib\event-target.js:132:16)
at WebSocket.emit (node:events:390:28)
at Receiver.receiverOnMessage (C:\Users\gamel\Moderation-Bot-MK-I\node_modules\ws\lib\websocket.js:983:20)
at Receiver.emit (node:events:390:28)
at Receiver.dataMessage (C:\Users\gamel\Moderation-Bot-MK-I\node_modules\ws\lib\receiver.js:517:14)
at Receiver.getData (C:\Users\gamel\Moderation-Bot-MK-I\node_modules\ws\lib\receiver.js:435:17)
at Receiver.startLoop (C:\Users\gamel\Moderation-Bot-MK-I\node_modules\ws\lib\receiver.js:143:22)
at Receiver._write (C:\Users\gamel\Moderation-Bot-MK-I\node_modules\ws\lib\receiver.js:78:10)
}
我對 js 完全陌生,我似乎無法弄清楚這里是什么問題
您在 setTimeout() 中定義的回調 function 中定義時間:
let time = parseInt(args[2]) * 60000;
然后,您將它用作同一 setTimeout() 的參數,我可以看到它在 scope 中不存在。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.