TypeError:类扩展值Command不是构造函数或为null-node.js [英] TypeError: Class extends value Command is not a constructor or null - node.js
问题描述
我试图发出一个!warn
命令,以便我可以警告服务器中的人员,如果您有2条警告,则会发出静音等信息.
I tried to make a !warn
command, so that I can warn people in my server and if you have 2 warns you get a mute etc.
完成后,仅剩下1个错误.我尝试了很多事情,但是我无法弄清楚,每一个帮助都会很棒.
When I was done there was only 1 error left. I tried many things, but I just can't figure it out, every help would be awesome.
完整错误:
TypeError: Class extends value Command is not a constructor or null
at Object.<anonymous> (/app/server.js:297:12)
at Module._compile (internal/modules/cjs/loader.js:759:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:770:10)
at Module.load (internal/modules/cjs/loader.js:628:32)
at Function.Module._load (internal/modules/cjs/loader.js:555:12)
at Function.Module.runMain (internal/modules/cjs/loader.js:826:10)
at internal/main/run_main_module.js:17:11
代码:
const ms = require("ms");
class Warn extends ("Command") {
constructor(client) {
super(client, {
name: "warn",
description: "Command om een gebruiker te waarschuwen",
usage: "warn",
category: "System",
permLevel: "Moderator"
});
}
async run(message, args) {
try {
const warnedUser = message.guild.member(
message.mentions.users.first() || message.guild.members.get(args[0])
);
if (!warnedUser) return message.channel.send("Deze gebruiker bestaat niet");
const warnToAdd = 1;
const warnToDel = 4;
const reason = args.join(" ").slice(22);
this.client.warns.ensure(`${warnedUser.id}`, {
warnings: 0
});
let userWarnings = this.client.warns.get(`${warnedUser.id}`, "warnings");
userWarnings += warnToAdd;
this.client.warns.set(`${warnedUser.id}`, userWarnings, "warnings");
message.delete();
if (this.client.warns.get(`${warnedUser.id}`, "warnings") == 1) {
message.channel.send(`${warnedUser}, eerste waarschuwing (reden: ${reason})`);
} else if (this.client.warns.get(`${warnedUser.id}`, "warnings") == 2) {
const muteRole = message.guild.roles.find(x => x.name === "muted");
if (!muteRole) message.guild.createRole("name", "muted");
message.channel.send(
`${warnedUser}, tweede waarschuwing (reden: ${reason})`
);
const muteTime = "1h";
await warnedUser.addRole(muteRole.id);
message.channel.send(
`${warnedUser} is gemuted voor ${muteTime} (reden: ${reason})`
);
setTimeout(function() {
warnedUser.removeRole(muteRole.id);
message.channel.send(`De gebruiker ${warnedUser} is niet meer gemuted!`);
}, ms(muteTime));
} else if (this.client.warns.get(`${warnedUser.id}`, "warnings") == 3) {
message.channel.send(`${warnedUser}, derde waarschuwing (reden: ${reason})`);
message.channel.send(`:warning: Pas op ${warnedUser}, bij 4 waarschuwingen krijg je een kick`);
} else if (this.client.warns.get(`${warnedUser.id}`, "warnings") == 4) {
message.channel.send(`${warnedUser}, vierde waarschuwing, veel plezier met je kick (reden: ${reason})`);
warnedUser.kick(reason);
userWarnings -= warnToDel;
}
} catch (e) {
console.log(e);
}
}
}
module.exports = Warn;
如果有人可以帮助我,那就太好了.让我惊讶的一件事是,当我将此代码放入Visual Studio Code中时,没有错误,但是当我将其放入glitch.com中时,就会出现此错误.
If someone could help me with this it would be amazing. One thing that also surprised me is that when I put this code in Visual Studio Code, there are no errors, but when I put it in glitch.com, this error appears.
推荐答案
它应该是 class Warnextend Command
,而不是 class Warnextends("Command")
.我认为,您尝试从Discord.js Commando扩展 Command
类.
It should be class Warn extends Command
, not class Warn extends ("Command")
. I think, you try to extend the Command
class from Discord.js Commando.
您只能扩展类,不能扩展字符串.
You can only extend classes, not strings.
此外,请确保将类导入文件:
Also, make sure you import the class in your file:
const { Command } = require('discord.js-commando');
const ms = require("ms");
class Warn extends Command {
constructor(client) {
super(client, {
name: "warn",
...
这篇关于TypeError:类扩展值Command不是构造函数或为null-node.js的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!