簡體   English   中英

ReferenceError:時間未定義(Discord.js)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM