Skip to content

Commit

Permalink
fix: current guild premium verification
Browse files Browse the repository at this point in the history
  • Loading branch information
web-flow committed Oct 18, 2024
1 parent 16199b3 commit 5fa4151
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 7 deletions.
8 changes: 5 additions & 3 deletions events/interactionCreate.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ const { getTranslation } = require('../languages/setup')
const errorHandler = require('../functions/error')
const Interaction = require('../database/interaction')
const { updateCard } = require('../templates/loadingCard')
const { getActiveGuildsEntitlements } = require('../functions/utility')
const { currentGuildIsPremium } = require('../functions/utility')
const premiumCard = require('../templates/premiumCard')
const { creator } = require('../config')

Expand Down Expand Up @@ -34,6 +34,8 @@ const expiredInteraction = (interaction) => {
module.exports = {
name: 'interactionCreate',
async execute(interaction) {
if (!!parseInt(process.env.TEST) && interaction.user.id !== creator) return

/**
* Checking if the user is temporary banned
* when the interaction is command or context menu
Expand Down Expand Up @@ -148,13 +150,13 @@ module.exports = {
*/
else if (interaction.client.commands.has(interaction.commandName)) {
const command = interaction.client.commands.get(interaction.commandName)
const premiumGuilds = await getActiveGuildsEntitlements(interaction.client)
const currentSubCommand = command.options
.filter(option =>
option.type === ApplicationCommandOptionType.Subcommand && option.premium && option.name === interaction.options.getSubcommand()
)
const isPremium = await currentGuildIsPremium(interaction.client, interaction.guildId)

if (currentSubCommand.length > 0 && !premiumGuilds.has(interaction.guildId)) {
if (currentSubCommand.length > 0 && !isPremium) {
interaction.deferReply({ ephemeral: true })
.then(() => {
interaction.followUp({
Expand Down
6 changes: 3 additions & 3 deletions functions/roles.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ const GuildCustomRole = require('../database/guildCustomRole')
const GuildRoles = require('../database/guildRoles')
const User = require('../database/user')
const { getStats } = require('./apiHandler')
const { getActiveGuildsEntitlements } = require('./utility')
const { getActiveGuildsEntitlements, currentGuildIsPremium } = require('./utility')

const REMOVE = 'REMOVE', ADD = 'ADD'

Expand Down Expand Up @@ -32,8 +32,8 @@ const setupRoles = async (client, user, guildId, remove) => {
if (user && user.length > 0) members = [await guildDatas.members.fetch({ user: user.at(0).discordId, cache: false }).catch(() => null)]
else members = await guildDatas.members.fetch({ cache: false })

const activeGuildSubscriptions = await getActiveGuildsEntitlements(client)
const roles = activeGuildSubscriptions.has(guildDatas.id) ? await GuildCustomRole.getRolesOf(guildDatas.id) : await getCustomRoles(guildDatas.id)
const isPremium = await currentGuildIsPremium(client, guildId)
const roles = isPremium ? await GuildCustomRole.getRolesOf(guildDatas.id) : await getCustomRoles(guildDatas.id)
if (!roles) return

members?.forEach(async (member) => {
Expand Down
9 changes: 8 additions & 1 deletion functions/utility.js
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,12 @@ const getActiveGuildsEntitlements = async (client) => {
return activeGuildEntitlements
}

const currentGuildIsPremium = async (client, guildId) => {
const premiumGuilds = await getActiveGuildsEntitlements(client)
const isPremium = premiumGuilds.map(g => g.guildId).includes(guildId)
return isPremium
}

module.exports = {
generateOption,
updateDefaultOption,
Expand All @@ -68,5 +74,6 @@ module.exports = {
getInteractionOption,
getGameOption,
getCurrentEloString,
getActiveGuildsEntitlements
getActiveGuildsEntitlements,
currentGuildIsPremium
}

0 comments on commit 5fa4151

Please sign in to comment.