diff --git a/src/commands/ban.js b/src/commands/ban.js index dd0e0a0..5bf1232 100644 --- a/src/commands/ban.js +++ b/src/commands/ban.js @@ -57,6 +57,15 @@ module.exports = { return } + if (interaction.guild.members.me.roles.highest.position <= member.roles.highest.position) { + await interaction.editReply("I cannot ban this member.") + return + } + + if (member.id === mod.id) { + return interaction.editReply("You cannot ban yourself.") + } + if (member.id === interaction.applicationId) { await interaction.editReply("I cannot ban myself.") return @@ -67,10 +76,6 @@ module.exports = { return } - if (member.id === mod.id) { - return interaction.editReply("You cannot ban yourself.") - } - if (memberRoles.includes(helper) || memberRoles.includes(admin)) { await interaction.editReply("I cannot ban a moderator.") return diff --git a/src/commands/guild/info.js b/src/commands/guild/info.js index ab965e7..c99a462 100644 --- a/src/commands/guild/info.js +++ b/src/commands/guild/info.js @@ -130,11 +130,16 @@ async function guildInfo(interaction) { const guildRanksUnsorted = guild.ranks.sort((a, b) => b.priority - a.priority) const guildRanks = guildRanksUnsorted.map((r) => "**➺ " + r.name + "** `[" + r.tag + "]`").join("\n") - const guildMembersDailyXP = Object.values(guildMembers).map((m) => m.expHistory[Object.keys(m.expHistory)[0]]) - const totalGuildMembersDailyXPUnformatted = guildMembersDailyXP.reduce((a, b) => a + b, 0) - const totalGuildMembersDailyXP = new Intl.NumberFormat("en-US").format(totalGuildMembersDailyXPUnformatted) - const averageGuildMembersDailyXPUnformatted = Math.round(totalGuildMembersDailyXPUnformatted / 7) - const averageGuildMembersDailyXP = new Intl.NumberFormat("en-US").format(averageGuildMembersDailyXPUnformatted) + const allGuildMembersWeeklyXP = guildMembers.map(member => member.expHistory) + const guildMembersWeeklyXP = allGuildMembersWeeklyXP.map((member) => { + return Object.values(member).reduce((a, b) => a + b, 0) + }) + + const totalGuildMembersWeeklyXPUnformatted = guildMembersWeeklyXP.reduce((a, b) => a + b, 0) + const totalGuildMembersWeeklyXP = new Intl.NumberFormat("en-US").format(totalGuildMembersWeeklyXPUnformatted) + + const averageGuildMembersWeeklyXPUnformatted = Math.round(totalGuildMembersWeeklyXPUnformatted / 7) + const averageGuildMembersWeeklyXP = new Intl.NumberFormat("en-US").format(averageGuildMembersWeeklyXPUnformatted) const footerText = interaction.guild ? interaction.guild.name : interaction.user.username const footerIcon = interaction.guild ? interaction.guild.iconURL({ dynamic: true }) : interaction.user.avatarURL({ dynamic: true }) @@ -153,8 +158,8 @@ async function guildInfo(interaction) { }, { name: "**GEXP**", - value: "**➺ Total weekly GEXP:** `" + totalGuildMembersDailyXP + "`\n" + - "**➺ Daily avarage:** `" + averageGuildMembersDailyXP + "`\n" + + value: "**➺ Total weekly GEXP:** `" + totalGuildMembersWeeklyXP + "`\n" + + "**➺ Daily avarage:** `" + averageGuildMembersWeeklyXP + "`\n" + "**➺ Total GEXP:** `" + guildExp + "`" }, {