Guild.JS 丰富的嵌入问题
Guild.JS Rich Embed Issue
我正在为我的 discord 开发一个机器人,我在 guild.js
文件中遇到了轻微的问题。该命令有效但未达到预期效果。
我试图在我的 guild.js
Rich Embed 中区分机器人用户和非机器人用户。到目前为止,它列出了所有用户而不将它们分开并将 undefined
放在 Bots
字段中。
这是我的 guild.js
文件:
const Discord = require('discord.js')
module.exports = {
name: 'guild',
description: 'Get info on the server.',
execute(message) {
console.log("embedding")
const embed = new Discord.RichEmbed()
.setTitle("Guild Details")
.setColor(0x00AE86)
.setFooter("Guardian", "https://i.imgur.com/jifYK6s.png")
.setThumbnail("https://i.imgur.com/jifYK6s.png")
.setTimestamp()
.setURL("https://newgitlab.elaztek.com/phantomdev/guardian")
.addField("Guild",
(`${message.guild.name}`), true)
.addField("Members",
(`${message.guild.memberCount}`), true)
.addField("Bots",
(`${message.guild.botCount}`), true)
message.channel.send({embed});
}};
我的 message.js
和 index.js
可以在下面找到。
这是我的 message.js
:
const { prefix } = require('./prefix.json');
module.exports = {
name: 'message',
description: 'client message event.',
execute:function(client) {
client.on('message',message => {
if (!message.content.startsWith(prefix) || message.author.bot) return;
const args = message.content.slice(prefix.length).split(/ +/);
const command = args.shift().toLowerCase();
if (!client.commands.has(command)) return;
try {
client.commands.get(command).execute(message, args);
} catch (error) {
console.error(error);
message.reply('there was an error trying to execute that command!');
}
})
}};
这是我的index.js
const fs = require('fs');
const Discord = require('discord.js');
const client = new Discord.Client();
const { token } = require('./token.json');
client.commands = new Discord.Collection();
const commandFiles = fs.readdirSync('./commands').filter(file => file.endsWith('.js'));
for (const file of commandFiles) {
const command = require(`./commands/${file}`);
client.commands.set(command.name, command);
console.log(file,command)
}
fs.readdir('./events/', (err, files) => {
if (err) return console.error(err);
files.forEach(file => {
if(!file.endsWith('.js')) return;
const eventFunction = require(`./events/${file}`);
console.log(eventFunction)
eventFunction.execute(client)
});
});
client.login(token);
如有任何帮助,我们将不胜感激。
公会 class 没有 botCount
属性 所以你需要使用其他方式:
.addField("Members",
(`${message.guild.members.filter((m) => !m.user.bot).size}`), true)
.addField("Bots",
(`${message.guild.members.filter((m) => m.user.bot).size}`), true)
第一个过滤器获取所有非机器人成员,returns 大小,第二个字段相反,它获取所有机器人成员,returns 大小.
我正在为我的 discord 开发一个机器人,我在 guild.js
文件中遇到了轻微的问题。该命令有效但未达到预期效果。
我试图在我的 guild.js
Rich Embed 中区分机器人用户和非机器人用户。到目前为止,它列出了所有用户而不将它们分开并将 undefined
放在 Bots
字段中。
这是我的 guild.js
文件:
const Discord = require('discord.js')
module.exports = {
name: 'guild',
description: 'Get info on the server.',
execute(message) {
console.log("embedding")
const embed = new Discord.RichEmbed()
.setTitle("Guild Details")
.setColor(0x00AE86)
.setFooter("Guardian", "https://i.imgur.com/jifYK6s.png")
.setThumbnail("https://i.imgur.com/jifYK6s.png")
.setTimestamp()
.setURL("https://newgitlab.elaztek.com/phantomdev/guardian")
.addField("Guild",
(`${message.guild.name}`), true)
.addField("Members",
(`${message.guild.memberCount}`), true)
.addField("Bots",
(`${message.guild.botCount}`), true)
message.channel.send({embed});
}};
我的 message.js
和 index.js
可以在下面找到。
这是我的 message.js
:
const { prefix } = require('./prefix.json');
module.exports = {
name: 'message',
description: 'client message event.',
execute:function(client) {
client.on('message',message => {
if (!message.content.startsWith(prefix) || message.author.bot) return;
const args = message.content.slice(prefix.length).split(/ +/);
const command = args.shift().toLowerCase();
if (!client.commands.has(command)) return;
try {
client.commands.get(command).execute(message, args);
} catch (error) {
console.error(error);
message.reply('there was an error trying to execute that command!');
}
})
}};
这是我的index.js
const fs = require('fs');
const Discord = require('discord.js');
const client = new Discord.Client();
const { token } = require('./token.json');
client.commands = new Discord.Collection();
const commandFiles = fs.readdirSync('./commands').filter(file => file.endsWith('.js'));
for (const file of commandFiles) {
const command = require(`./commands/${file}`);
client.commands.set(command.name, command);
console.log(file,command)
}
fs.readdir('./events/', (err, files) => {
if (err) return console.error(err);
files.forEach(file => {
if(!file.endsWith('.js')) return;
const eventFunction = require(`./events/${file}`);
console.log(eventFunction)
eventFunction.execute(client)
});
});
client.login(token);
如有任何帮助,我们将不胜感激。
公会 class 没有 botCount
属性 所以你需要使用其他方式:
.addField("Members",
(`${message.guild.members.filter((m) => !m.user.bot).size}`), true)
.addField("Bots",
(`${message.guild.members.filter((m) => m.user.bot).size}`), true)
第一个过滤器获取所有非机器人成员,returns 大小,第二个字段相反,它获取所有机器人成员,returns 大小.