feat(bots/discord)!: add admin config

This commit is contained in:
PalmDevs
2024-07-26 00:53:25 +07:00
parent e86180fe29
commit d0acab1915
12 changed files with 46 additions and 38 deletions

View File

@@ -1,19 +0,0 @@
import type { Command } from '$commands/types'
import { listAllFilesRecursive } from '$utils/fs'
export const loadCommands = async (dir: string) => {
const commandsMap: Record<string, Command> = {}
const files = listAllFilesRecursive(dir)
const commands = await Promise.all(
files.map(async file => {
const command = await import(file)
return command.default
}),
)
for (const command of commands) {
if (command) commandsMap[command.data.name] = command
}
return commandsMap
}

View File

@@ -0,0 +1,11 @@
import { GuildMember, type User } from 'discord.js'
import type { Config } from 'config.schema'
export const isAdmin = (userOrMember: User | GuildMember, adminConfig: Config['admin']) => {
return adminConfig?.users?.includes(userOrMember.id) || (userOrMember instanceof GuildMember && isMemberAdmin(userOrMember, adminConfig))
}
export const isMemberAdmin = (member: GuildMember, adminConfig: Config['admin']) => {
const roles = new Set(member.roles.cache.keys())
return Boolean(adminConfig?.roles?.[member.guild.id]?.some(role => roles.has(role)))
}