fix(bots/discord)!: remove guilds config in favor of upcoming impl

This commit is contained in:
PalmDevs
2024-07-26 01:24:29 +07:00
parent 27662ed91a
commit bd906fbf54
3 changed files with 43 additions and 48 deletions

View File

@@ -4,19 +4,12 @@
* @type {import('./config.schema').Config} * @type {import('./config.schema').Config}
*/ */
export default { export default {
/**
* ? ADMIN CONFIGURATION
* Bot administrators can run destructive commands like /stop, or /register.
*
* ! The match condition is `any`: If the user ID matches or the member has a specific role in the list, it considers that user as admin.
*/
admin: { admin: {
users: ['USER_ID_HERE'], users: ['USER_ID_HERE'],
roles: { roles: {
GUILD_ID_HERE: ['ROLE_ID_HERE'], GUILD_ID_HERE: ['ROLE_ID_HERE'],
}, },
}, },
guilds: ['GUILD_ID_HERE'],
moderation: { moderation: {
cure: { cure: {
defaultName: 'Server member', defaultName: 'Server member',

View File

@@ -5,7 +5,6 @@ export type Config = {
users?: string[] users?: string[]
roles?: Record<string, string[]> roles?: Record<string, string[]>
} }
guilds: string[]
moderation?: { moderation?: {
roles: string[] roles: string[]
cure?: { cure?: {

View File

@@ -1,50 +1,53 @@
import { REST } from '@discordjs/rest' console.log('Deprecated. New implementation to be done.')
import { getMissingEnvironmentVariables } from '@revanced/bot-shared' process.exit(1)
import { Routes } from 'discord-api-types/v9'
import type {
RESTGetCurrentApplicationResult,
RESTPutAPIApplicationCommandsResult,
RESTPutAPIApplicationGuildCommandsResult,
} from 'discord.js'
import { config, discord, logger } from '../src/context'
// Check if token exists // import { REST } from '@discordjs/rest'
// import { getMissingEnvironmentVariables } from '@revanced/bot-shared'
// import { Routes } from 'discord-api-types/v9'
// import type {
// RESTGetCurrentApplicationResult,
// RESTPutAPIApplicationCommandsResult,
// RESTPutAPIApplicationGuildCommandsResult,
// } from 'discord.js'
// import { config, discord, logger } from '../src/context'
const missingEnvs = getMissingEnvironmentVariables(['DISCORD_TOKEN']) // // Check if token exists
if (missingEnvs.length) {
for (const env of missingEnvs) logger.fatal(`${env} is not defined in environment variables`)
process.exit(1)
}
// Group commands by global and guild // const missingEnvs = getMissingEnvironmentVariables(['DISCORD_TOKEN'])
// if (missingEnvs.length) {
// for (const env of missingEnvs) logger.fatal(`${env} is not defined in environment variables`)
// process.exit(1)
// }
const { global: globalCommands = [], guild: guildCommands = [] } = Object.groupBy(Object.values(discord.commands), c => // // Group commands by global and guild
c.global ? 'global' : 'guild',
)
// Set commands // const { global: globalCommands = [], guild: guildCommands = [] } = Object.groupBy(Object.values(discord.commands), c =>
// c.global ? 'global' : 'guild',
// )
const rest = new REST({ version: '10' }).setToken(process.env['DISCORD_TOKEN']!) // // Set commands
try { // const rest = new REST({ version: '10' }).setToken(process.env['DISCORD_TOKEN']!)
const app = (await rest.get(Routes.currentApplication())) as RESTGetCurrentApplicationResult
const data = (await rest.put(Routes.applicationCommands(app.id), {
body: globalCommands.map(({ data }) => {
if (!data.dm_permission) data.dm_permission = true
logger.warn(`Command ${data.name} has no dm_permission set, forcing to true as it is a global command`)
return data
}),
})) as RESTPutAPIApplicationCommandsResult
logger.info(`Reloaded ${data.length} global commands`) // try {
// const app = (await rest.get(Routes.currentApplication())) as RESTGetCurrentApplicationResult
// const data = (await rest.put(Routes.applicationCommands(app.id), {
// body: globalCommands.map(({ data }) => {
// if (!data.dm_permission) data.dm_permission = true
// logger.warn(`Command ${data.name} has no dm_permission set, forcing to true as it is a global command`)
// return data
// }),
// })) as RESTPutAPIApplicationCommandsResult
for (const guildId of config.guilds) { // logger.info(`Reloaded ${data.length} global commands`)
const data = (await rest.put(Routes.applicationGuildCommands(app.id, guildId), {
body: guildCommands.map(x => x.data),
})) as RESTPutAPIApplicationGuildCommandsResult
logger.info(`Reloaded ${data.length} guild commands for guild ${guildId}`) // for (const guildId of config.guilds) {
} // const data = (await rest.put(Routes.applicationGuildCommands(app.id, guildId), {
} catch (e) { // body: guildCommands.map(x => x.data),
logger.fatal(e) // })) as RESTPutAPIApplicationGuildCommandsResult
}
// logger.info(`Reloaded ${data.length} guild commands for guild ${guildId}`)
// }
// } catch (e) {
// logger.fatal(e)
// }