Skip to content

Commit 742c9cb

Browse files
committed
fix: Fixed addRole command and serverinfo command
1 parent 342fa7e commit 742c9cb

File tree

2 files changed

+99
-36
lines changed

2 files changed

+99
-36
lines changed

src/prefix/InfoCommands/serverInfo.js

Lines changed: 98 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,12 @@
1-
const { ActionRowBuilder, ButtonBuilder, ButtonStyle, EmbedBuilder } = require("discord.js");
1+
const { EmbedBuilder, ChannelType, GuildVerificationLevel, GuildExplicitContentFilter, GuildNSFWLevel } = require("discord.js");
22

33
module.exports = {
4-
name: 'serverinfo',
5-
description: 'Get server info/stats.',
6-
aliases: ['server', 'guild', 'guildinfo'],
7-
execute: async function (message, client, args) {
8-
const guild = (client.config.developers.includes(message.author.id) && args && args.length) ? client.guilds.cache.get(args[0]) : message.channel.guild;
4+
name: "server-info",
5+
aliases: ["serverinfo", "guildinfo", "guild", "server"],
6+
async execute(message, client, args) {
97

10-
const owner = client.users.cache.get(guild.ownerId);
11-
12-
let categories = guild.channels.cache.filter(c => c.type === 4).length;
13-
let textChannels = guild.channels.cache.filter(c => c.type === 0).length;
14-
let voiceChannels = guild.channels.cache.filter(c => c.type === 2).length;
15-
16-
const {
17-
members,
18-
emojis,
19-
roles,
20-
stickers
21-
} = guild;
8+
const { guild } = message;
9+
const { members, channels, emojis, roles, stickers } = guild;
2210

2311
const sortedRoles = roles.cache.map(role => role).slice(1, roles.cache.size).sort((a, b) => b.position - a.position);
2412
const userRoles = sortedRoles.filter(role => !role.managed);
@@ -42,23 +30,98 @@ module.exports = {
4230
return result.length;
4331
}
4432

45-
const embed = new EmbedBuilder()
46-
.setColor(client.config.embedInfo)
47-
.setAuthor({ name: guild.name, iconURL: guild.iconURL() })
48-
.setThumbnail(guild.iconURL())
49-
.setTitle(`${client.user.username} Server Info ${client.config.arrowEmoji}`)
50-
.setTimestamp(new Date(guild.createdAt))
51-
.addFields({ name: 'Owner', value: `${owner.tag}`, inline: true })
52-
.addFields({ name: 'Members', value: `${guild.memberCount.toString()}`, inline: true })
53-
.addFields({ name: `Users (${guild.memberCount})`, value: [ `👨‍👩‍👧‍👦 **Members** ${guild.memberCount - botCount}`, `🤖 **Bots** ${botCount}` ].join("\n"), inline: true })
54-
.addFields({ name: `User Roles (${maxDisplayRoles(userRoles)} of ${userRoles.length})`, value: `${userRoles.slice(0, maxDisplayRoles(userRoles)).join(" ") || "None"}`})
55-
.addFields({ name: `Managed Roles (${maxDisplayRoles(managedRoles)} of ${managedRoles.length})`, value: `${managedRoles.slice(0, maxDisplayRoles(managedRoles)).join(" ") || "None"}`})
56-
.addFields({ name: 'Category Channels', value: categories ? categories.toString() : '0', inline: true })
57-
.addFields({ name: 'Text Channels', value: textChannels ? textChannels.toString() : '0', inline: true })
58-
.addFields({ name: 'Voice Channels', value: voiceChannels ? voiceChannels.toString() : '0', inline: true })
59-
.addFields({ name: 'Emojis', value: emojis.cache.size ? emojis.cache.size.toString() : '0', inline: true })
60-
.setFooter({ text: `ID: ${guild.id} ${client.config.devBy}` })
33+
const splitPascal = (string, separator) => string.split(/(?=[A-Z])/).join(separator);
34+
const toPascalCase = (string, separator = false) => {
35+
const pascal = string.charAt(0).toUpperCase() + string.slice(1).toLowerCase().replace(/[^a-zA-Z0-9]+(.)/g, (match, chr) => chr.toUpperCase());
36+
return separator ? splitPascal(pascal, separator) : pascal;
37+
};
38+
39+
const getChannelTypeSize = type => channels.cache.filter(channel => type.includes(channel.type)).size;
40+
41+
const totalChannels = getChannelTypeSize([
42+
ChannelType.GuildText,
43+
ChannelType.GuildNews,
44+
ChannelType.GuildVoice,
45+
ChannelType.GuildStageVoice,
46+
ChannelType.GuildForum,
47+
ChannelType.GuildPublicThread,
48+
ChannelType.GuildPrivateThread,
49+
ChannelType.GuildNewsThread,
50+
ChannelType.GuildCategory
51+
]);
6152

62-
message.channel.send({ embeds: [embed] });
53+
message.channel.send({ embeds: [
54+
new EmbedBuilder()
55+
.setAuthor({ name: `Server Info Command ${client.config.devBy}`})
56+
.setColor(members.me.roles.highest.hexColor)
57+
.setTitle(`${client.user.username} Server Info ${client.config.arrowEmoji}`)
58+
.setFooter({ text: `${guild.name} | ${guild.id}`, iconURL: guild.iconURL() })
59+
.setThumbnail(guild.iconURL({ size: 1024 }))
60+
.setImage(guild.bannerURL({ size: 1024 }))
61+
.addFields(
62+
{ name: "Description", value: `📝 ${guild.description || "None"}` },
63+
{
64+
name: "General",
65+
value: [
66+
`📜 **Created** <t:${parseInt(guild.createdTimestamp / 1000)}:R>`,
67+
`💳 **ID** ${guild.id}`,
68+
`👑 **Owner** <@${guild.ownerId}>`,
69+
`🌍 **Language** ${new Intl.DisplayNames(["en"], { type: "language" }).of(guild.preferredLocale)}`,
70+
`💻 **Vanity URL** ${guild.vanityURLCode || "None"}`,
71+
].join("\n")
72+
},
73+
{ name: "Features", value: guild.features?.map(feature => `- ${toPascalCase(feature, " ")}`)?.join("\n") || "None", inline: true },
74+
{
75+
name: "Security",
76+
value: [
77+
`👀 **Explicit Filter** ${splitPascal(GuildExplicitContentFilter[guild.explicitContentFilter], " ")}`,
78+
`🔞 **NSFW Level** ${splitPascal(GuildNSFWLevel[guild.nsfwLevel], " ")}`,
79+
`🔒 **Verification Level** ${splitPascal(GuildVerificationLevel[guild.verificationLevel], " ")}`
80+
].join("\n"),
81+
inline: true
82+
},
83+
{
84+
name: `Users (${guild.memberCount})`,
85+
value: [
86+
`👨‍👩‍👧‍👦 **Members** ${guild.memberCount - botCount}`,
87+
`🤖 **Bots** ${botCount}`
88+
].join("\n"),
89+
inline: true
90+
},
91+
{ name: `User Roles (${maxDisplayRoles(userRoles)} of ${userRoles.length})`, value: `${userRoles.slice(0, maxDisplayRoles(userRoles)).join(" ") || "None"}`},
92+
{ name: `Managed Roles (${maxDisplayRoles(managedRoles)} of ${managedRoles.length})`, value: `${managedRoles.slice(0, maxDisplayRoles(managedRoles)).join(" ") || "None"}`},
93+
{
94+
name: `Channels, Threads & Categories (${totalChannels})`,
95+
value: [
96+
`💬 **Text** ${getChannelTypeSize([ChannelType.GuildText, ChannelType.GuildForum, ChannelType.GuildNews])}`,
97+
`🔊 **Voice** ${getChannelTypeSize([ChannelType.GuildVoice, ChannelType.GuildStageVoice])}`,
98+
`🧵 **Threads** ${getChannelTypeSize([ChannelType.GuildPublicThread, ChannelType.GuildPrivateThread, ChannelType.GuildNewsThread])}`,
99+
`📑 **Categories** ${getChannelTypeSize([ChannelType.GuildCategory])}`
100+
].join("\n"),
101+
inline: true
102+
},
103+
{
104+
name: `Emojis & Stickers (${emojis.cache.size + stickers.cache.size})`,
105+
value: [
106+
`📺 **Animated** ${emojis.cache.filter(emoji => emoji.animated).size}`,
107+
`🗿 **Static** ${emojis.cache.filter(emoji => !emoji.animated).size}`,
108+
`🏷 **Stickers** ${stickers.cache.size}`
109+
].join("\n"),
110+
inline: true
111+
},
112+
{
113+
name: "Nitro",
114+
value: [
115+
`📈 **Tier** ${guild.premiumTier || "None"}`,
116+
`💪🏻 **Boosts** ${guild.premiumSubscriptionCount}`,
117+
`💎 **Boosters** ${guild.members.cache.filter(member => member.roles.premiumSubscriberRole).size}`,
118+
`🏋🏻‍♀️ **Total Boosters** ${guild.members.cache.filter(member => member.premiumSince).size}`
119+
].join("\n"),
120+
inline: true
121+
},
122+
{ name: "Banner", value: guild.bannerURL() ? "** **" : "None" }
123+
)
124+
.setTimestamp()
125+
], ephemeral: false });
63126
}
64127
}

src/prefix/LightModeration/addRole.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ module.exports = {
1717
}
1818
else {
1919
user.roles.add(role).catch(err => {
20-
return interaction.reply({ content: `**Couldn't** add that role! **Check** my permissions and **role position** and try again.`, ephemeral: true });
20+
return message.channel.send({ content: `**Couldn't** add that role! **Check** my permissions and **role position** and try again.`, ephemeral: true });
2121
})
2222
}
2323

0 commit comments

Comments
 (0)