【问题标题】:ReferenceError: message is not defined, please resolve thisReferenceError:消息未定义,请解决此问题
【发布时间】:2020-10-22 13:53:39
【问题描述】:

我是javascript新手,也有discord js,运行我的discord bot时出现错误,在这里,请修复代码并告诉我我做错了什么,谢谢。

我一直在制作一个全功能的不和谐机器人,这是我发现的第一个我无法修复的错误,如果你们能提供帮助,我将不胜感激。

let args = message.content.slice(prefix.length).trim().split(' ');

ReferenceError: 消息未定义

// Constant Variables
const Discord = require("discord.js");
const prefix = "!";
const client = new Discord.Client();

// Startup 1 Below Listener Events
client.once("ready", () => {
  console.log("Countless Is Up And Running, Wooohooo");
});

// Moderation 2 Below
client.on("Message", (Message) => {
  if (Message.member.hasPermission(["KICK_MEMBERS"])) {
    //console.log(message.content);

    if (Message.content.startsWith(`${prefix}kick`)) {
      //message.channel.send("Kick")

      let member = Message.mentions.members.first();
      member.kick().then((member) => {
        Message.channel.send(
          "https://gph.is/2iBA79h :wave: " +
            member.displayName +
            " has been kicked!"
        );
      });
    }
  }
});

client.on("Message", (Message) => {
  if (Message.member.hasPermission(["BAN_MEMBERS"])) {
    //console.log(message.content);

    if (Message.content.startsWith(`${prefix}ban`)) {
      //message.channel.send("Ban")

      let member = Message.mentions.members.first();
      member.ban().then((member) => {
        Message.channel.send(
          "https://gph.is/29507Ei :wave: " +
            member.displayName +
            " has been banned!"
        );
      });
    }
  }
});

// Variables
let args = message.content.slice(prefix.length).trim().split(" ");
let cmd = args.shift().toLowerCase();

// Return Statements
if (Message.author.bot) return; // Ignores All Bots
if (!Message.content.startWith(prefix)) return; // Returns Messages if doesnt start with the prefix

// Command Handler
try {
  // Bonus: Auto-Reload ()
  delete require.cache[require.resolve(`./commands/${cmd}.js`)];

  let commandFile = require(`./commands/${cmd}.js`);
  commandFile.run(client, Message, args);
} catch (e) {
  // Will catch any errors within code or commands
  console.log(e.stack);
}

client.login(token);

【问题讨论】:

  • 错误信息很清楚;在您的代码中,message 没有在任何地方定义。你期望它是什么?
  • 我看了这个视频,我说过我是 javascript 和 discordjs 的新手。我将如何定义它youtube.com/watch?v=Ygc04PcjoLk&t=223s
  • 这是错字吗? JavaScript 区分大小写,并且您的代码在任何地方都使用Message,但出现错误的行除外(在某些 cmets 中......)是否应该将出现错误的行改为 let args = Message.content.slice(prefix.length).trim().split(' ');
  • 还是不行
  • 好吧,Message 仍然需要定义,因此您可能希望将代码移动到已定义 Message 的范围内。 IE。 client.on('Message', Message => {... let args = Message.content.slice(prefix.length).trim().split(' '); }

标签: javascript discord discord.js


【解决方案1】:

这个错误是不言自明的。你在一行上有message,在另一行上有Message。 JavaScript 变量区分大小写。您也不能将message 定义在范围之外client.on() 在这种情况下。我建议将所有需要消息的内容放入您的 client.on('Message', Message => {} 范围内。

您也应该只使用一个范围。

【讨论】:

  • Venk,请在 discord 上加我,我需要更多帮助。 (如果可以的话)Gelvey.#0001
  • 只需将不在范围内的所有内容移动到Client.On('message') {}
【解决方案2】:

JavaScript 区分大小写。

clinet.on("message", Message => {});

在下文中,您使用大写“M”定义了消息参数。

所以你需要用大写的 M 来提及 Message。

这是 args V 的修复方法

let args = Message.content.slice(prefix.length).trim().split(' ');

希望这会有所帮助。 ?

【讨论】:

    【解决方案3】:

    确保将“args”变量保留在 client.on 回调中。

    像这样:

    client.on('message', message => {
         let args = message.content.slice(prefix.length).trim().split(' ');
    })
    

    【讨论】:

      猜你喜欢
      • 2013-10-12
      • 1970-01-01
      • 2020-02-22
      • 2021-06-03
      • 2016-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多