Discord.js:ReferenceError:消息未定义

时间:2021-03-02 21:59:42

标签: node.js discord discord.js

我在 repl.i 上尝试编码时遇到了“消息”问题。 我去的错误:

ReferenceError: message is not defined
    at /home/runner/lifeafterbot/index.js:12:1
    at Script.runInContext (vm.js:130:18)
    at Object.<anonymous> (/run_dir/interp.js:209:20)
    at Module._compile (internal/modules/cjs/loader.js:1137:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1157:10)
    at Module.load (internal/modules/cjs/loader.js:985:32)
    at Function.Module._load (internal/modules/cjs/loader.js:878:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
    at internal/main/run_main_module.js:17:47Hint: hit control+c anytime to enter REPL.

这是我的代码:

let Discord = require ("discord.js");
let client = new Discord.Client();
    
client.on("ready", () => {
  client.user.setPresence({ activity: {name: "Minecraft" }})
});
    
if (message.content.startsWith('!ban')) {
    if(message.member.hasPermission("BAN_MEMBERS")) {
        const user = message.mentions.users.first();
         if (user) {
             const member = message.guild.member(user);
             if (member) {
                 member
                     .ban({
                         reason: 'They were bad!',
                     }).then(() => {
                         // We let the message author know we were able to ban the person
                         message.reply("Successfully banned ${user.tag}");
                     }).catch(err => {
                         message.reply("I was unable to ban the member");
                         console.error(err);
                     });
             } else {   
                 message.reply("That user isn't in this guild!");
             }
         } else { 
             message.reply("You didn't mention the user to ban!");
         }
     }
    }    
client.login

你能帮我看看有什么问题吗? 我会很感激的!

1 个答案:

答案 0 :(得分:0)

您必须使用

检查正在发送的消息
client.on("message", async message => {
})

您更正后的代码是:

let Discord = require("discord.js");
let client = new Discord.Client();

client.on("ready", () => {
  client.user.setPresence({ activity: { name: "Minecraft" } });
});

client.on("message", async (message) => {
  if (message.content.startsWith("!ban")) {
    if (message.member.hasPermission("BAN_MEMBERS")) {
      const user = message.mentions.users.first();

      if (user) {
        const member = message.guild.member(user);

        if (member) {
          member
            .ban({
              reason: "They were bad!",
            })
            .then(() => {
              // We let the message author know we were able to ban the person
              message.reply("Successfully banned ${user.tag}");
            })
            .catch((err) => {
              message.reply("I was unable to ban the member");

              console.error(err);
            });
        } else {
          message.reply("That user isn't in this guild!");
        }
      } else {
        message.reply("You didn't mention the user to ban!");
      }
    }
  }
});
client.login;