186 lines
5.8 KiB
JavaScript
186 lines
5.8 KiB
JavaScript
|
const { MessageEmbed } = require("discord.js");
|
|||
|
const moment = require("moment");
|
|||
|
const filterLevels = {
|
|||
|
DISABLED: "Off",
|
|||
|
MEMBERS_WITHOUT_ROLES: "No Role",
|
|||
|
ALL_MEMBERS: "Everyone",
|
|||
|
};
|
|||
|
|
|||
|
const verificationLevels = {
|
|||
|
NONE: "None",
|
|||
|
LOW: "Low",
|
|||
|
MEDIUM: "Medium",
|
|||
|
HIGH: "High",
|
|||
|
VERY_HIGH: "Very High",
|
|||
|
};
|
|||
|
|
|||
|
const regions = {
|
|||
|
brazil: "Brazil",
|
|||
|
europe: "Europe",
|
|||
|
hongkong: "Hong Kong",
|
|||
|
india: "India",
|
|||
|
japan: "Japan",
|
|||
|
russia: "Russia",
|
|||
|
singapore: "Singapore",
|
|||
|
southafrica: "South Africa",
|
|||
|
sydeny: "Sydeny",
|
|||
|
"us-central": "US Central",
|
|||
|
"us-east": "US East",
|
|||
|
"us-west": "US West",
|
|||
|
"us-south": "US South",
|
|||
|
};
|
|||
|
|
|||
|
module.exports = {
|
|||
|
name: "serverinfo",
|
|||
|
description: "Check the info of the server",
|
|||
|
category: "Information",
|
|||
|
type: "CHAT_INPUT",
|
|||
|
options: [
|
|||
|
{
|
|||
|
type: 3,
|
|||
|
name: "server",
|
|||
|
description: "The server you want to see (Paste Server ID)",
|
|||
|
required: false,
|
|||
|
},
|
|||
|
],
|
|||
|
run: async (client, interaction, args, utils) => {
|
|||
|
try {
|
|||
|
const g = client.guilds.cache.get(args[0]) || interaction.guild;
|
|||
|
const vanityCode = g.vanityURLCode;
|
|||
|
let vanityInvite = `https://discord.gg/${vanityCode}`;
|
|||
|
if (vanityCode === null) vanityInvite = "No custom URL";
|
|||
|
const members = g.members.cache;
|
|||
|
const roles = g.roles.cache
|
|||
|
.sort((a, b) => b.position - a.position)
|
|||
|
.map(role => role.toString());
|
|||
|
const owner = await g.fetchOwner();
|
|||
|
const voiceChannel = g.channels.cache.filter(
|
|||
|
ch => ch.type === "GUILD_VOICE"
|
|||
|
).size;
|
|||
|
const textChannel = g.channels.cache.filter(
|
|||
|
ch => ch.type === "GUILD_TEXT"
|
|||
|
).size;
|
|||
|
const categoryChannel = g.channels.cache.filter(
|
|||
|
ch => ch.type === "GUILD_CATEGORY"
|
|||
|
).size;
|
|||
|
const embed = new MessageEmbed()
|
|||
|
.setTimestamp()
|
|||
|
.setTitle("**Server Information**")
|
|||
|
.setAuthor(`${g.name}`, g.iconURL({ dynamic: true }))
|
|||
|
.setColor(client.color)
|
|||
|
.setDescription(g.description || "No Description")
|
|||
|
.setThumbnail(g.iconURL({ dynamic: true, size: 1024 }))
|
|||
|
.addFields(
|
|||
|
{
|
|||
|
name: `<:nyx_owner:897418259433943120> Owner Info`,
|
|||
|
value: `
|
|||
|
**Owner ❯** ${owner}
|
|||
|
🆔 **Owner ID ❯** \`${owner.id}\`
|
|||
|
`,
|
|||
|
inline: true,
|
|||
|
},
|
|||
|
{
|
|||
|
name: `Misc Info`,
|
|||
|
value: `
|
|||
|
**🆔 Server ID ❯** \`${g.id}\`
|
|||
|
**🌐 Region ❯** ${regions[g.regions]}
|
|||
|
**🔗 Vanity Link ❯** [${vanityCode}](${vanityInvite})
|
|||
|
`,
|
|||
|
inline: true,
|
|||
|
},
|
|||
|
{
|
|||
|
name: `<a:nyx_last_update:897381474330873887> Creation Date`,
|
|||
|
value: `
|
|||
|
${moment(g.createdTimestamp).format("LL")} ${moment(
|
|||
|
g.createdTimestamp
|
|||
|
).format("LTS")} (${moment(g.createdTimestamp).fromNow()})`,
|
|||
|
inline: true,
|
|||
|
},
|
|||
|
// Row 2
|
|||
|
{
|
|||
|
name: `<:4chanluv:836623612689121320> Emojies ${g.emojis.cache}`,
|
|||
|
value: `
|
|||
|
**Static ❯** ${g.emojis.cache.size.toString()}
|
|||
|
**Animated ❯** ${g.emojis.cache
|
|||
|
.filter(emoji => emoji.animated)
|
|||
|
.size.toString()}`,
|
|||
|
inline: true,
|
|||
|
},
|
|||
|
{
|
|||
|
name: `Member Statistics`,
|
|||
|
value: `
|
|||
|
👥 **Total❯** ${g.memberCount.toString()}
|
|||
|
🚶 **Users❯** ${members
|
|||
|
.filter(member => !member.user.bot)
|
|||
|
.size.toString()}
|
|||
|
🤖 **Bots❯** ${members
|
|||
|
.filter(member => member.user.bot)
|
|||
|
.size.toString()}`,
|
|||
|
inline: true,
|
|||
|
},
|
|||
|
{
|
|||
|
name: `Channel Info`,
|
|||
|
value: `
|
|||
|
📁 **Categories ❯** ${categoryChannel}
|
|||
|
#️⃣ **Text❯** ${textChannel}
|
|||
|
🔊 **Voice❯** ${voiceChannel}`,
|
|||
|
inline: true,
|
|||
|
},
|
|||
|
// Row 3
|
|||
|
{
|
|||
|
name: `Server Specification`,
|
|||
|
value: `
|
|||
|
**<:partner:840231939944480829> Partnered ❯** ${
|
|||
|
g.partnered
|
|||
|
? "<a:nyx_checkmark:897240322411724841>"
|
|||
|
: "<a:nyx_cross:897244999211696198>"
|
|||
|
}
|
|||
|
**<:verifiedserver:897410018234728449> Verified ❯** ${
|
|||
|
g.verified
|
|||
|
? "<a:nyx_checkmark:897240322411724841>"
|
|||
|
: "<a:nyx_cross:897244999211696198>"
|
|||
|
}
|
|||
|
**🚥 Verification Level ❯** ${verificationLevels[g.verificationLevel]}
|
|||
|
**💢 Explicit Filter ❯** ${filterLevels[g.explicitContentFilter]}
|
|||
|
**Tier ❯** ${
|
|||
|
g.premiumTier == "TIER_3"
|
|||
|
? "3 <:nyx_tier3:897406181511946261>"
|
|||
|
: g.premiumTier == "TIER_2"
|
|||
|
? "2 <:nyx_tier2:897406181541281792>"
|
|||
|
: g.premiumTier == "TIER_1"
|
|||
|
? "1 <:nyx_tier1:897406181558067210>"
|
|||
|
: "0"
|
|||
|
}
|
|||
|
**Count ❯** ${g.premiumSubscriptionCount || "0"}`,
|
|||
|
inline: true,
|
|||
|
},
|
|||
|
{
|
|||
|
name: `<a:nyx_community:897419330478825512> Community Features`,
|
|||
|
value: `${
|
|||
|
utils.fixFeatures(g.features) || "No Community Features"
|
|||
|
}`,
|
|||
|
inline: true,
|
|||
|
},
|
|||
|
{
|
|||
|
name: `👔 Role Info [${roles.length}]`,
|
|||
|
value: `${
|
|||
|
roles.length < 10
|
|||
|
? roles.join(" **|** ")
|
|||
|
: roles.length > 10
|
|||
|
? `${roles.slice(0, 10).join(" **|** ")}\n+${
|
|||
|
roles.length - 10
|
|||
|
} roles...`
|
|||
|
: "None"
|
|||
|
}`,
|
|||
|
inline: true,
|
|||
|
}
|
|||
|
)
|
|||
|
.setURL(vanityCode ? vanityInvite : "https://cath.gq/")
|
|||
|
.setFooter(`Made by ${client.author}`, client.user.displayAvatarURL());
|
|||
|
interaction.followUp({ embeds: [embed] });
|
|||
|
} catch (e) {
|
|||
|
console.log(e);
|
|||
|
}
|
|||
|
},
|
|||
|
};
|