Qu'est-ce qu'ExtendedMessage sur discord.js

Je suis sur v12 et après beaucoup de temps, j'ai décidé de recommencer à coder mais j'ai rencontré un problème que je ne peux pas tout à fait résoudre. Au départ je voulais ajouter une fonction au Message classe comme ça

Discord.Message.prototype.no = function(content){
  this.channel.send(`:x: - ${content}`)
};

Mais au bout d'un moment j'ai vu que certains messages que j'envoyais n'avaient pas cette fonction et m'ont renvoyé une erreur msg.no is not a function J'ai utilisé console.log pour voir ce qui n'avait pas la fonction et ce n'était pas un Message , c'était un ExtendedMessage classe.

Ma question est, qu'est-ce que ExtendedMessage ? Je n'ai rien trouvé à ce sujet dans la documentation et lors de la recherche sur Google, je n'ai trouvé que des éléments liés aux réponses en ligne, etc. Discord n'a pas de classe ExtendedMessage

J'ai essayé de supprimer node_modules et de tout réinstaller, mais cela n'a pas aidé.

Mes dépendances :

  "dependencies": {
    "@blad3mak3r/reddit-memes": "^0.2.5",
    "color": "^4.0.1",
    "discord-buttons": "^4.0.0",
    "discord.bio": "^10.1.2",
    "discord.js": "^12.5.3",
    "easier-pokemon": "^1.0.7",
    "easy-json-database": "^1.5.0",
    "figlet": "^1.5.2",
    "genshin": "^1.2.4",
    "imgur-api.js": "^2.10.6",
    "mal-scraper": "^2.11.3",
    "moment": "^2.29.1",
    "nekos.life": "^2.0.7",
    "node": "^14.17.3",
    "node-osu": "^2.2.1",
    "node-spotify-api": "^1.1.1",
    "node.js": "^0.0.1-security",
    "tiktok-scraper": "^1.4.36",
    "twitch-api-v5": "^2.0.4",
    "user-instagram": "^3.0.0",
    "ytsearcher": "^1.2.4"
  }

Répondre

Le discord-buttons le paquet utilise ExtendedMessage pour étendre le Message classer. Vous pouvez voir ici. C'est pourquoi dans la console, il apparaît comme ça. De plus, les fonctions fléchées n'ont pas leur propre this . Vous devez utiliser le function mot clé à lier this .

Cela a fonctionné pour moi

Discord.Message.prototype.no = function(content) {
  this.channel.send(`:x: - ${content}`)
}