Discord.js 如何摆脱;“未定义”;不和谐嵌入
我正试图使这个Discord嵌入的输出不会被嵌入的Discord.js 如何摆脱;“未定义”;不和谐嵌入,discord.js,commando,Discord.js,Commando,我正试图使这个Discord嵌入的输出不会被嵌入的Bot、Mute和Deafen部分“未定义” 我试图将一些变量更改为“let”或“const” 我篡改了aboutuser的部分,将其更改为其他内容。 我搞乱了代码的if部分 这是密码 async run(message, args){ if (message.channel instanceof discord.DMChannel) return message.channel.send('This command cannot be
Bot、Mute和Deafen部分“未定义”
我试图将一些变量更改为“let”或“const”
我篡改了aboutuser的部分,将其更改为其他内容。
我搞乱了代码的if
部分
这是密码
async run(message, args){
if (message.channel instanceof discord.DMChannel) return message.channel.send('This command cannot be executed here.')
else
var serv = message.guild
if (serv.explicitContentFilter == 0) {
var eFC = "Don't Scan Any messages";
}
if (serv.explicitContentFilter == 1) {
var eFC = "Scan for users without a role.";
}
if (serv.explicitContentFilter == 2) {
var eFC = "Scan every message";
}
///////////////////////////////////////////////////////////////////////////////////////////////////
if (serv.verificationLevel == 4) {
var verL = "Intense (Verified Account & Verified Phone linked)";
}
if (serv.verificationLevel == 3) {
var verL = "Secure (Verified Account & Guild member for 10+ minutes)";
}
if (serv.verificationLevel == 2) {
var verL = "Medium (Verified Account for 5 minutes+)";
}
if (serv.verificationLevel == 1) {
var verL = "Low (Verified Account)";
}
if (serv.verificationLevel == 0) {
var verL = "None (No Restriction)";
}
//////////////
if (serv.region == `brazil`) {
var regio = "Brazil";
}
if (serv.region == `eu-central`) {
var regio = "Central Europe";
}
if (serv.region == `hongkong`) {
var regio = "Hong Kong";
}
if (serv.region == `japan`) {
var regio = "Japan";
}
if (serv.region == `russia`) {
var regio = "Russia";
}
if (serv.region == `singapore`) {
var regio = "Singapore";
}
if (serv.region == `southafrica`) {
var regio = "South Africa";
}
if (serv.region == `sydney`) {
var regio = "Sydney";
}
if (serv.region == `us-central`) {
var regio = "Central US";
}
if (serv.region == `us-east`) {
var regio = "East US";
}
if (serv.region == `us-south`) {
var regio = "South US";
}
if (serv.region == `us-west`) {
var regio = "West US";
}
if (serv.region == `eu-west`) {
var regio = "West Europe";
}
//
if (serv.defaultMessageNotifications == `ALL`) {
var defn = "Send all Messages";
}
if (serv.defaultMessageNotifications == `MENTIONS`) {
var defn = "Only @everyone";
}
var myInfo = new discord.RichEmbed()
.setAuthor(`${serv.name}'s guild info`,`${message.guild.iconURL}`)
.addField(`AFK Channel`,`${serv.afkChannel}`,true)
.addField(`AFK Timeout`,`${serv.afkTimeout}s`,true)
.addField(`Channels`,`${serv.channels.size}`,true)
.addField(`Creation of Guild`,`${serv.createdAt}`,true)
.addField(`Default Notification`, defn,true)
.addField(`Explicit Content Filter Level`, eFC,true)
.addField(`Guild ID`,`${serv.id}`,true)
.addField(`How much members`,`${serv.memberCount}`,true)
.addField(`Owner`,`${serv.owner}`,true)
.addField(`Region`, regio,true)
.addField('Roles', `Please do s!roles to find server roles!`, true)
/* serv.roles.map(r => `${r}`).join(' | ') */
.addField(`Verification Level`, verL,true)
.setColor(0x511fdd)
.setFooter('Aboutserver command')
.setThumbnail(`${message.guild.iconURL}`)
message.channel.sendEmbed(myInfo);
}
}
预期结果:bot将说Yes或No,而不是undefined,或true或false。
实际结果:bot的输出没有定义。这里发生了一些事情,但让我们关注主要问题;如何声明变量
简单地说,只能在声明变量的范围内访问变量(范围是{}
之间的所有代码)
我将根据您的代码用一个简短的示例来解释它。在if
语句中声明变量,这意味着它们可以在if
语句的范围内使用。稍后,您希望在if
语句之外和嵌入语句中使用这些相同的变量。因为这些变量不在该范围内,所以它们是未定义的
。。。
//此时没有可用的变量“eFC”。
if(serv.explicitContentFilter==0){
//这里您创建了变量“eFC”,但它只能在此范围内使用,这意味着不能在“if”语句之外访问它。
var eFC=“不扫描任何邮件”;
}
if(serv.explicitContentFilter==1){
//在这里,您创建了另一个同名的变量,但它最终将是一个不同的变量。
var eFC=“扫描没有角色的用户。”;
}
//这里仍然没有变量“eFC”可供我们使用。
...
简单的解决方案是:在另一个作用域中声明变量,然后分配值。下面您可以看到一个示例:
。。。
//在这里,我们创建了一个名为“eFC”的新变量,它可以在这个范围内使用
var-eFC;
if(serv.explicitContentFilter==0){
//在这里,我们为先前定义的变量赋值
eFC=“不扫描任何邮件”;
}
if(serv.explicitContentFilter==1){
//在这里,我们为先前定义的变量赋值
eFC=“扫描没有角色的用户。”;
}
//这里我们可以使用变量“eFC”,它将有一个值
控制台日志(eFC);
...
如果对所有使用的变量都这样做,代码应该可以正常工作
最后,我想给你一些额外的帮助。我发现您已经创建了很多很多if
语句来检查服务器区域或服务器验证级别。Javascript(在许多其他编程语言中)有一个思想,叫做a,它基本上与所有那些if
语句做相同的事情,但是以更简洁的方式。查看链接,我认为它将帮助您使代码看起来更具可读性