discord-bot-shared 0.7.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
1
  function registerInteractionCreate(bot, commands, interactionCheck) {
2
2
  bot.on("interactionCreate", async (interaction) => {
3
3
  if (!interaction.isChatInputCommand()) return
4
- const command = commands.get(interaction.commandName)
4
+ const command = commands[interaction.commandName]
5
5
  if (!command) return interactionReply(interaction, "Unable to get command.")
6
6
  if (!(await checkRoles(command, interaction)))
7
7
  return interactionReply(interaction, "You do not have one of the required roles to run this command.")
@@ -30,4 +30,4 @@ function interactionReply(interaction, message) {
30
30
  : void interaction.reply({ content: message, ephemeral: true }).catch(console.error)
31
31
  }
32
32
  export default registerInteractionCreate
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3Rpb24tY3JlYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2ludGVyYWN0aW9uLWNyZWF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxTQUFTLHlCQUF5QixDQUFDLEdBQVcsRUFBRSxRQUE0QixFQUFFLGdCQUFtQztJQUMvRyxHQUFHLENBQUMsRUFBRSxDQUFDLG1CQUFtQixFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsRUFBRTtRQUNoRCxJQUFJLENBQUMsV0FBVyxDQUFDLGtCQUFrQixFQUFFO1lBQUUsT0FBTTtRQUU3QyxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQTtRQUNyRCxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU8sZ0JBQWdCLENBQUMsV0FBVyxFQUFFLHdCQUF3QixDQUFDLENBQUE7UUFFNUUsSUFBSSxDQUFDLENBQUMsTUFBTSxVQUFVLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1lBQzNDLE9BQU8sZ0JBQWdCLENBQUMsV0FBVyxFQUFFLGdFQUFnRSxDQUFDLENBQUE7UUFFeEcsSUFBSTtZQUNGLE1BQU0sc0JBQXNCLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLE1BQU0sZ0JBQWdCLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQTtZQUM1RixJQUFJLENBQUMsc0JBQXNCO2dCQUFFLE9BQU07WUFFbkMsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFBO1NBQy9CO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDZCxNQUFNLFlBQVksR0FBRyxLQUFLLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUE7WUFDaEUsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLG1EQUFtRCxZQUFZLEVBQUUsQ0FBQyxDQUFBO1NBQ2pHO0lBQ0gsQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDO0FBRUQsS0FBSyxVQUFVLFVBQVUsQ0FBQyxPQUFnQixFQUFFLFdBQXdDO0lBQ2xGLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYTtRQUFFLE9BQU8sSUFBSSxDQUFBO0lBRXZDLElBQUksT0FBTyxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQ3BDLE1BQU0sTUFBTSxHQUFHLE1BQU0sV0FBVyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQzVGLElBQUksQ0FBQyxNQUFNO1lBQUUsT0FBTTtRQUVuQixPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7S0FDdEg7SUFFRCxPQUFPLEtBQUssQ0FBQTtBQUNkLENBQUM7QUFFRCxTQUFTLGdCQUFnQixDQUFDLFdBQXdDLEVBQUUsT0FBZTtJQUNqRixXQUFXLENBQUMsUUFBUTtRQUNsQixDQUFDLENBQUMsS0FBSyxXQUFXLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQzFELENBQUMsQ0FBQyxLQUFLLFdBQVcsQ0FBQyxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7QUFDeEYsQ0FBQztBQUVELGVBQWUseUJBQXlCLENBQUEifQ==
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3Rpb24tY3JlYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2V2ZW50cy9pbnRlcmFjdGlvbi1jcmVhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsU0FBUyx5QkFBeUIsQ0FBQyxHQUFXLEVBQUUsUUFBa0IsRUFBRSxnQkFBbUM7SUFDckcsR0FBRyxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEVBQUU7UUFDaEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsRUFBRTtZQUFFLE9BQU07UUFFN0MsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQTtRQUNqRCxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU8sZ0JBQWdCLENBQUMsV0FBVyxFQUFFLHdCQUF3QixDQUFDLENBQUE7UUFFNUUsSUFBSSxDQUFDLENBQUMsTUFBTSxVQUFVLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1lBQzNDLE9BQU8sZ0JBQWdCLENBQUMsV0FBVyxFQUFFLGdFQUFnRSxDQUFDLENBQUE7UUFFeEcsSUFBSTtZQUNGLE1BQU0sc0JBQXNCLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLE1BQU0sZ0JBQWdCLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQTtZQUM1RixJQUFJLENBQUMsc0JBQXNCO2dCQUFFLE9BQU07WUFFbkMsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFBO1NBQy9CO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDZCxNQUFNLFlBQVksR0FBRyxLQUFLLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUE7WUFDaEUsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLG1EQUFtRCxZQUFZLEVBQUUsQ0FBQyxDQUFBO1NBQ2pHO0lBQ0gsQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDO0FBRUQsS0FBSyxVQUFVLFVBQVUsQ0FBQyxPQUFnQixFQUFFLFdBQXdDO0lBQ2xGLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYTtRQUFFLE9BQU8sSUFBSSxDQUFBO0lBRXZDLElBQUksT0FBTyxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQ3BDLE1BQU0sTUFBTSxHQUFHLE1BQU0sV0FBVyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQzVGLElBQUksQ0FBQyxNQUFNO1lBQUUsT0FBTTtRQUVuQixPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7S0FDdEg7SUFFRCxPQUFPLEtBQUssQ0FBQTtBQUNkLENBQUM7QUFFRCxTQUFTLGdCQUFnQixDQUFDLFdBQXdDLEVBQUUsT0FBZTtJQUNqRixXQUFXLENBQUMsUUFBUTtRQUNsQixDQUFDLENBQUMsS0FBSyxXQUFXLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQzFELENBQUMsQ0FBQyxLQUFLLFdBQVcsQ0FBQyxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7QUFDeEYsQ0FBQztBQUVELGVBQWUseUJBQXlCLENBQUEifQ==
@@ -0,0 +1,7 @@
1
+ function registerReady(bot) {
2
+ bot.once("ready", () => {
3
+ console.log("Client is ready.")
4
+ })
5
+ }
6
+ export default registerReady
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXZlbnRzL3JlYWR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLFNBQVMsYUFBYSxDQUFDLEdBQVc7SUFDaEMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFO1FBQ3JCLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtJQUNqQyxDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUM7QUFFRCxlQUFlLGFBQWEsQ0FBQSJ9
package/dist/guild.js ADDED
@@ -0,0 +1,30 @@
1
+ class Guild {
2
+ id
3
+ guild
4
+ constructor(id, guild) {
5
+ this.id = id
6
+ this.guild = guild
7
+ }
8
+ get members() {
9
+ return this.guild.members.fetch()
10
+ }
11
+ get channels() {
12
+ return this.guild.channels.fetch()
13
+ }
14
+ get roles() {
15
+ return this.guild.roles.fetch()
16
+ }
17
+ get emojis() {
18
+ return this.guild.emojis.fetch()
19
+ }
20
+ async getChannel(channelNameOrId, channelType) {
21
+ const channels = await this.channels
22
+ let channel
23
+ channel = channels.find((channel) => (channel ? channel.name === channelNameOrId : false))
24
+ if (channel) return channel.type === channelType ? channel : undefined
25
+ channel = channels.get(channelNameOrId)
26
+ if (channel) return channel.type === channelType ? channel : undefined
27
+ }
28
+ }
29
+ export default Guild
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3VpbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZ3VpbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBU0EsTUFBTSxLQUFLO0lBQ0EsRUFBRSxDQUFRO0lBQ1YsS0FBSyxDQUFVO0lBRXhCLFlBQVksRUFBVSxFQUFFLEtBQWU7UUFDckMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUE7UUFDWixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtJQUNwQixDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQTtJQUNuQyxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtJQUNwQyxDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQTtJQUNqQyxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQTtJQUNsQyxDQUFDO0lBRUQsS0FBSyxDQUFDLFVBQVUsQ0FDZCxlQUF1QixFQUN2QixXQUEyQztRQUUzQyxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUE7UUFFcEMsSUFBSSxPQUFzRCxDQUFBO1FBQzFELE9BQU8sR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxlQUFlLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7UUFDMUYsSUFBSSxPQUFPO1lBQUUsT0FBTyxPQUFPLENBQUMsSUFBSSxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUUsT0FBYSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUE7UUFFN0UsT0FBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUE7UUFDdkMsSUFBSSxPQUFPO1lBQUUsT0FBTyxPQUFPLENBQUMsSUFBSSxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUUsT0FBYSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUE7SUFDL0UsQ0FBQztDQUNGO0FBRUQsZUFBZSxLQUFLLENBQUEifQ==
package/dist/index.js CHANGED
@@ -1,23 +1,28 @@
1
- import { Client } from "discord.js"
2
- import registerCommands from "./commands.js"
3
- import registerEvents from "./events.js"
4
- import { setBot } from "./guild-cache.js"
5
- import registerInteractionCreate from "./interaction-create.js"
6
- import registerReady from "./ready.js"
1
+ import { Client, Collection } from "discord.js"
2
+ import registerInteractionCreate from "./events/interaction-create.js"
3
+ import registerReady from "./events/ready.js"
4
+ import Guild from "./guild.js"
5
+ import registerCommands from "./register-commands.js"
6
+ import registerEvents from "./register-events.js"
7
7
  const botToken = process.env.BOT_TOKEN || ""
8
8
  const clientId = process.env.CLIENT_ID || ""
9
- const guildId = process.env.GUILD_ID || ""
10
- async function login(botIntents, projectMetaURL, interactionCheck) {
9
+ async function login(botIntents, commands, events, interactionCheck) {
10
+ console.log("Logging in...")
11
11
  const bot = new Client(botIntents)
12
- const commands = await registerCommands(botToken, clientId, projectMetaURL, guildId)
12
+ await registerCommands(botToken, clientId, commands)
13
+ registerEvents(bot, events)
14
+ // Register default/built-in events
13
15
  registerReady(bot)
14
16
  registerInteractionCreate(bot, commands, interactionCheck)
15
- void registerEvents(projectMetaURL)
16
- setBot(bot)
17
- void bot.login(botToken)
18
- return bot
17
+ await bot.login(botToken)
18
+ console.log("Logged in.")
19
+ const partialGuilds = await bot.guilds.fetch()
20
+ const guildPromises = partialGuilds.map((guildPartial) => guildPartial.fetch())
21
+ const guilds = await Promise.all(guildPromises)
22
+ const GuildCollection = new Collection()
23
+ for (const guild of guilds) GuildCollection.set(guild.id, new Guild(guild.id, guild))
24
+ return { GuildCollection, bot }
19
25
  }
20
26
  export default login
21
- export { default as getGuildCache } from "./guild-cache.js"
22
- export { getChannel, isCategoryChannel, isTextChannel, throwError } from "./util.js"
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBaUIsTUFBTSxZQUFZLENBQUE7QUFDbEQsT0FBTyxnQkFBZ0IsTUFBTSxlQUFlLENBQUE7QUFDNUMsT0FBTyxjQUFjLE1BQU0sYUFBYSxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUN6QyxPQUFPLHlCQUErQyxNQUFNLHlCQUF5QixDQUFBO0FBQ3JGLE9BQU8sYUFBYSxNQUFNLFlBQVksQ0FBQTtBQUV0QyxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUE7QUFDNUMsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFBO0FBQzVDLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQTtBQUUxQyxLQUFLLFVBQVUsS0FBSyxDQUFDLFVBQXlCLEVBQUUsY0FBc0IsRUFBRSxnQkFBbUM7SUFDekcsTUFBTSxHQUFHLEdBQUcsSUFBSSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDbEMsTUFBTSxRQUFRLEdBQUcsTUFBTSxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxPQUFPLENBQUMsQ0FBQTtJQUVwRixhQUFhLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDbEIseUJBQXlCLENBQUMsR0FBRyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFBO0lBQzFELEtBQUssY0FBYyxDQUFDLGNBQWMsQ0FBQyxDQUFBO0lBRW5DLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUVYLEtBQUssR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUN4QixPQUFPLEdBQUcsQ0FBQTtBQUNaLENBQUM7QUFFRCxlQUFlLEtBQUssQ0FBQTtBQUVwQixPQUFPLEVBQUUsT0FBTyxJQUFJLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBRTNELE9BQU8sRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxNQUFNLFdBQVcsQ0FBQSJ9
27
+ export { isCategoryChannel, isTextChannel, throwError } from "./util.js"
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBaUIsVUFBVSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQzlELE9BQU8seUJBQStDLE1BQU0sZ0NBQWdDLENBQUE7QUFDNUYsT0FBTyxhQUFhLE1BQU0sbUJBQW1CLENBQUE7QUFDN0MsT0FBTyxLQUFLLE1BQU0sWUFBWSxDQUFBO0FBQzlCLE9BQU8sZ0JBQThCLE1BQU0sd0JBQXdCLENBQUE7QUFDbkUsT0FBTyxjQUEwQixNQUFNLHNCQUFzQixDQUFBO0FBRTdELE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQTtBQUM1QyxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUE7QUFFNUMsS0FBSyxVQUFVLEtBQUssQ0FBQyxVQUF5QixFQUFFLFFBQWtCLEVBQUUsTUFBYyxFQUFFLGdCQUFtQztJQUNySCxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFBO0lBRTVCLE1BQU0sR0FBRyxHQUFHLElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBQ2xDLE1BQU0sZ0JBQWdCLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQTtJQUNwRCxjQUFjLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFBO0lBRTNCLG1DQUFtQztJQUNuQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDbEIseUJBQXlCLENBQUMsR0FBRyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFBO0lBRTFELE1BQU0sR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUN6QixPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFBO0lBRXpCLE1BQU0sYUFBYSxHQUFHLE1BQU0sR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQTtJQUM5QyxNQUFNLGFBQWEsR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQTtJQUMvRSxNQUFNLE1BQU0sR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUE7SUFDL0MsTUFBTSxlQUFlLEdBQUcsSUFBSSxVQUFVLEVBQWlCLENBQUE7SUFDdkQsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFNO1FBQUUsZUFBZSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQTtJQUVyRixPQUFPLEVBQUUsZUFBZSxFQUFFLEdBQUcsRUFBRSxDQUFBO0FBQ2pDLENBQUM7QUFFRCxlQUFlLEtBQUssQ0FBQTtBQUdwQixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxNQUFNLFdBQVcsQ0FBQSJ9
@@ -0,0 +1,10 @@
1
+ import { REST } from "@discordjs/rest"
2
+ import { Routes } from "discord-api-types/v10"
3
+ async function registerCommands(botToken, clientId, commands) {
4
+ const commandData = Object.values(commands).map((command) => command.command.toJSON())
5
+ const rest = new REST().setToken(botToken)
6
+ await rest.put(Routes.applicationCommands(clientId), { body: commandData })
7
+ console.log("Registered (/) commands.")
8
+ }
9
+ export default registerCommands
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXItY29tbWFuZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcmVnaXN0ZXItY29tbWFuZHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQ3RDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQWE5QyxLQUFLLFVBQVUsZ0JBQWdCLENBQUMsUUFBZ0IsRUFBRSxRQUFnQixFQUFFLFFBQWtCO0lBQ3BGLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUE7SUFFdEYsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDMUMsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFBO0lBQzNFLE9BQU8sQ0FBQyxHQUFHLENBQUMsMEJBQTBCLENBQUMsQ0FBQTtBQUN6QyxDQUFDO0FBRUQsZUFBZSxnQkFBZ0IsQ0FBQSJ9
@@ -0,0 +1,6 @@
1
+ function registerEvents(bot, events) {
2
+ for (const registerEvent of Object.values(events)) registerEvent(bot)
3
+ console.log("Registered events.")
4
+ }
5
+ export default registerEvents
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXItZXZlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3JlZ2lzdGVyLWV2ZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxTQUFTLGNBQWMsQ0FBQyxHQUFXLEVBQUUsTUFBYztJQUNqRCxLQUFLLE1BQU0sYUFBYSxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQUUsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ3JFLE9BQU8sQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQTtBQUNuQyxDQUFDO0FBRUQsZUFBZSxjQUFjLENBQUEifQ==
@@ -1,6 +1,6 @@
1
1
  import { ChatInputCommandInteraction, Client } from "discord.js"
2
- import { CommandsCollection } from "./commands.js"
2
+ import { Commands } from "../register-commands.js"
3
3
  type InteractionCheck = (interaction: ChatInputCommandInteraction) => Promise<boolean | void>
4
- declare function registerInteractionCreate(bot: Client, commands: CommandsCollection, interactionCheck?: InteractionCheck): void
4
+ declare function registerInteractionCreate(bot: Client, commands: Commands, interactionCheck?: InteractionCheck): void
5
5
  export default registerInteractionCreate
6
6
  export { InteractionCheck }
File without changes
@@ -0,0 +1,21 @@
1
+ import { ChannelType, Guild as djsGuild, NonThreadGuildBasedChannel } from "discord.js"
2
+ type NonThreadGuildBasedChannelType =
3
+ | ChannelType.GuildText
4
+ | ChannelType.GuildVoice
5
+ | ChannelType.GuildNews
6
+ | ChannelType.GuildStageVoice
7
+ | ChannelType.GuildCategory
8
+ declare class Guild {
9
+ readonly id: string
10
+ readonly guild: djsGuild
11
+ constructor(id: string, guild: djsGuild)
12
+ get members(): Promise<import("@discordjs/collection").Collection<string, import("discord.js").GuildMember>>
13
+ get channels(): Promise<import("@discordjs/collection").Collection<string, NonThreadGuildBasedChannel | null>>
14
+ get roles(): Promise<import("@discordjs/collection").Collection<string, import("discord.js").Role>>
15
+ get emojis(): Promise<import("@discordjs/collection").Collection<string, import("discord.js").GuildEmoji>>
16
+ getChannel<T extends NonThreadGuildBasedChannel>(
17
+ channelNameOrId: string,
18
+ channelType: NonThreadGuildBasedChannelType,
19
+ ): Promise<T | undefined>
20
+ }
21
+ export default Guild
@@ -1,8 +1,18 @@
1
- import { Client, ClientOptions } from "discord.js"
2
- import { InteractionCheck } from "./interaction-create.js"
3
- declare function login(botIntents: ClientOptions, projectMetaURL: string, interactionCheck?: InteractionCheck): Promise<Client>
1
+ import { Client, ClientOptions, Collection } from "discord.js"
2
+ import { InteractionCheck } from "./events/interaction-create.js"
3
+ import Guild from "./guild.js"
4
+ import { Commands } from "./register-commands.js"
5
+ import { Events } from "./register-events.js"
6
+ declare function login(
7
+ botIntents: ClientOptions,
8
+ commands: Commands,
9
+ events: Events,
10
+ interactionCheck?: InteractionCheck,
11
+ ): Promise<{
12
+ GuildCollection: Collection<string, Guild>
13
+ bot: Client<boolean>
14
+ }>
4
15
  export default login
5
- export { Command } from "./commands.js"
6
- export { default as getGuildCache } from "./guild-cache.js"
7
- export { InteractionCheck } from "./interaction-create.js"
8
- export { getChannel, isCategoryChannel, isTextChannel, throwError } from "./util.js"
16
+ export { InteractionCheck } from "./events/interaction-create.js"
17
+ export { Command } from "./register-commands.js"
18
+ export { isCategoryChannel, isTextChannel, throwError } from "./util.js"
@@ -0,0 +1,12 @@
1
+ import { ChatInputCommandInteraction, SlashCommandBuilder } from "discord.js"
2
+ interface Command {
3
+ requiredRoles?: string[]
4
+ command: SlashCommandBuilder
5
+ run: (interaction: ChatInputCommandInteraction) => void | Promise<void>
6
+ }
7
+ interface Commands {
8
+ [name: string]: Command
9
+ }
10
+ declare function registerCommands(botToken: string, clientId: string, commands: Commands): Promise<void>
11
+ export default registerCommands
12
+ export { Command, Commands }
@@ -0,0 +1,8 @@
1
+ import { Client } from "discord.js"
2
+ type Event = (bot: Client) => void
3
+ interface Events {
4
+ [name: string]: Event
5
+ }
6
+ declare function registerEvents(bot: Client, events: Events): void
7
+ export default registerEvents
8
+ export { Event, Events }
@@ -1,24 +1,5 @@
1
- import {
2
- APIPartialChannel,
3
- BaseChannel,
4
- CategoryChannel,
5
- ChannelType,
6
- GuildResolvable,
7
- NonThreadGuildBasedChannel,
8
- TextChannel,
9
- } from "discord.js"
10
- type NonThreadGuildBasedChannelType =
11
- | ChannelType.GuildText
12
- | ChannelType.GuildVoice
13
- | ChannelType.GuildNews
14
- | ChannelType.GuildStageVoice
15
- | ChannelType.GuildCategory
16
- declare function getChannel<T extends NonThreadGuildBasedChannel>(
17
- channelNameOrId: string,
18
- channelType: NonThreadGuildBasedChannelType,
19
- guildResolvable: GuildResolvable,
20
- ): Promise<T | undefined>
1
+ import { APIPartialChannel, BaseChannel, CategoryChannel, TextChannel } from "discord.js"
21
2
  declare function isTextChannel(channel: BaseChannel | APIPartialChannel): channel is TextChannel
22
3
  declare function isCategoryChannel(channel: BaseChannel): channel is CategoryChannel
23
4
  declare function throwError(error: string): never
24
- export { getChannel, isTextChannel, isCategoryChannel, throwError }
5
+ export { isTextChannel, isCategoryChannel, throwError }
package/dist/util.js CHANGED
@@ -1,13 +1,4 @@
1
1
  import { ChannelType } from "discord.js"
2
- import getGuildCache from "./guild-cache.js"
3
- async function getChannel(channelNameOrId, channelType, guildResolvable) {
4
- const { channels } = (await getGuildCache(guildResolvable)) || throwError("Unable to get guild cache.")
5
- let channel
6
- channel = channels.find((channel) => (channel ? channel.name === channelNameOrId : false))
7
- if (channel) return channel.type === channelType ? channel : undefined
8
- channel = channels.get(channelNameOrId)
9
- if (channel) return channel.type === channelType ? channel : undefined
10
- }
11
2
  function isTextChannel(channel) {
12
3
  return channel.type === ChannelType.GuildText
13
4
  }
@@ -17,5 +8,5 @@ function isCategoryChannel(channel) {
17
8
  function throwError(error) {
18
9
  throw new Error(error)
19
10
  }
20
- export { getChannel, isTextChannel, isCategoryChannel, throwError }
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFJTCxXQUFXLEdBSVosTUFBTSxZQUFZLENBQUE7QUFDbkIsT0FBTyxhQUFhLE1BQU0sa0JBQWtCLENBQUE7QUFTNUMsS0FBSyxVQUFVLFVBQVUsQ0FDdkIsZUFBdUIsRUFDdkIsV0FBMkMsRUFDM0MsZUFBZ0M7SUFFaEMsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLENBQUMsTUFBTSxhQUFhLENBQUMsZUFBZSxDQUFDLENBQUMsSUFBSSxVQUFVLENBQUMsNEJBQTRCLENBQUMsQ0FBQTtJQUV2RyxJQUFJLE9BQXNELENBQUE7SUFDMUQsT0FBTyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLGVBQWUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtJQUMxRixJQUFJLE9BQU87UUFBRSxPQUFPLE9BQU8sQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBRSxPQUFhLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQTtJQUU3RSxPQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQTtJQUN2QyxJQUFJLE9BQU87UUFBRSxPQUFPLE9BQU8sQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBRSxPQUFhLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQTtBQUMvRSxDQUFDO0FBRUQsU0FBUyxhQUFhLENBQUMsT0FBd0M7SUFDN0QsT0FBTyxPQUFPLENBQUMsSUFBSSxLQUFLLFdBQVcsQ0FBQyxTQUFTLENBQUE7QUFDL0MsQ0FBQztBQUVELFNBQVMsaUJBQWlCLENBQUMsT0FBb0I7SUFDN0MsT0FBTyxPQUFPLENBQUMsSUFBSSxLQUFLLFdBQVcsQ0FBQyxhQUFhLENBQUE7QUFDbkQsQ0FBQztBQUVELFNBQVMsVUFBVSxDQUFDLEtBQWE7SUFDL0IsTUFBTSxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQTtBQUN4QixDQUFDO0FBRUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsVUFBVSxFQUFFLENBQUEifQ==
11
+ export { isTextChannel, isCategoryChannel, throwError }
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBbUQsV0FBVyxFQUFlLE1BQU0sWUFBWSxDQUFBO0FBRXRHLFNBQVMsYUFBYSxDQUFDLE9BQXdDO0lBQzdELE9BQU8sT0FBTyxDQUFDLElBQUksS0FBSyxXQUFXLENBQUMsU0FBUyxDQUFBO0FBQy9DLENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUFDLE9BQW9CO0lBQzdDLE9BQU8sT0FBTyxDQUFDLElBQUksS0FBSyxXQUFXLENBQUMsYUFBYSxDQUFBO0FBQ25ELENBQUM7QUFFRCxTQUFTLFVBQVUsQ0FBQyxLQUFhO0lBQy9CLE1BQU0sSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUE7QUFDeEIsQ0FBQztBQUVELE9BQU8sRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsVUFBVSxFQUFFLENBQUEifQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "discord-bot-shared",
3
- "version": "0.7.0",
3
+ "version": "0.8.0",
4
4
  "type": "module",
5
5
  "description": "Modules for creating discord bots.",
6
6
  "repository": "github:adamhl8/discord-bot-shared",
@@ -19,7 +19,7 @@
19
19
  "discord.js": "^14.7.1"
20
20
  },
21
21
  "devDependencies": {
22
- "@types/node": "^18.11.13",
22
+ "@types/node": "^18.11.15",
23
23
  "@typescript-eslint/eslint-plugin": "^5.46.1",
24
24
  "@typescript-eslint/parser": "^5.46.1",
25
25
  "eslint": "^8.29.0",
package/dist/commands.js DELETED
@@ -1,26 +0,0 @@
1
- import { REST } from "@discordjs/rest"
2
- import { Routes } from "discord-api-types/v10"
3
- import { Collection } from "discord.js"
4
- import { readdir } from "node:fs/promises"
5
- import { fileURLToPath } from "node:url"
6
- async function registerCommands(botToken, clientId, projectMetaURL, guildId) {
7
- const commands = new Collection()
8
- const commandData = []
9
- const commandsDirectory = fileURLToPath(new URL("commands", projectMetaURL))
10
- const commandFiles = await readdir(commandsDirectory)
11
- if (!commandFiles) return commands
12
- for (const file of commandFiles) {
13
- const { default: command } = await import(`${commandsDirectory}/${file}`)
14
- if (!command) continue
15
- commands.set(command.command.name, command)
16
- commandData.push(command.command.toJSON())
17
- }
18
- const rest = new REST().setToken(botToken)
19
- guildId
20
- ? await rest.put(Routes.applicationGuildCommands(clientId, guildId), { body: commandData })
21
- : await rest.put(Routes.applicationCommands(clientId), { body: commandData })
22
- console.log("Registered application (/) commands.")
23
- return commands
24
- }
25
- export default registerCommands
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY29tbWFuZHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQ3RDLE9BQU8sRUFBMEMsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFDdEYsT0FBTyxFQUErQixVQUFVLEVBQXVCLE1BQU0sWUFBWSxDQUFBO0FBQ3pGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBY3hDLEtBQUssVUFBVSxnQkFBZ0IsQ0FBQyxRQUFnQixFQUFFLFFBQWdCLEVBQUUsY0FBc0IsRUFBRSxPQUFnQjtJQUMxRyxNQUFNLFFBQVEsR0FBdUIsSUFBSSxVQUFVLEVBQUUsQ0FBQTtJQUNyRCxNQUFNLFdBQVcsR0FBNkMsRUFBRSxDQUFBO0lBRWhFLE1BQU0saUJBQWlCLEdBQUcsYUFBYSxDQUFDLElBQUksR0FBRyxDQUFDLFVBQVUsRUFBRSxjQUFjLENBQUMsQ0FBQyxDQUFBO0lBQzVFLE1BQU0sWUFBWSxHQUFHLE1BQU0sT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUE7SUFDckQsSUFBSSxDQUFDLFlBQVk7UUFBRSxPQUFPLFFBQVEsQ0FBQTtJQUVsQyxLQUFLLE1BQU0sSUFBSSxJQUFJLFlBQVksRUFBRTtRQUMvQixNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUMsTUFBTSxNQUFNLENBQUMsR0FBRyxpQkFBaUIsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFrQixDQUFBO1FBQzVGLElBQUksQ0FBQyxPQUFPO1lBQUUsU0FBUTtRQUN0QixRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFBO1FBQzNDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFBO0tBQzNDO0lBRUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDMUMsT0FBTztRQUNMLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLHdCQUF3QixDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQztRQUMzRixDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFBO0lBQy9FLE9BQU8sQ0FBQyxHQUFHLENBQUMsc0NBQXNDLENBQUMsQ0FBQTtJQUVuRCxPQUFPLFFBQVEsQ0FBQTtBQUNqQixDQUFDO0FBRUQsZUFBZSxnQkFBZ0IsQ0FBQSJ9
package/dist/events.js DELETED
@@ -1,12 +0,0 @@
1
- import { readdir } from "node:fs/promises"
2
- import { fileURLToPath } from "node:url"
3
- async function registerEvents(projectMetaURL) {
4
- const eventsDirectory = fileURLToPath(new URL("events", projectMetaURL))
5
- const eventFiles = await readdir(eventsDirectory).catch(console.error)
6
- if (!eventFiles) return
7
- for (const file of eventFiles) {
8
- await import(`${eventsDirectory}/${file}`)
9
- }
10
- }
11
- export default registerEvents
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2V2ZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDMUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUV4QyxLQUFLLFVBQVUsY0FBYyxDQUFDLGNBQXNCO0lBQ2xELE1BQU0sZUFBZSxHQUFHLGFBQWEsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxRQUFRLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQTtJQUN4RSxNQUFNLFVBQVUsR0FBRyxNQUFNLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3RFLElBQUksQ0FBQyxVQUFVO1FBQUUsT0FBTTtJQUN2QixLQUFLLE1BQU0sSUFBSSxJQUFJLFVBQVUsRUFBRTtRQUM3QixNQUFNLE1BQU0sQ0FBQyxHQUFHLGVBQWUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFBO0tBQzNDO0FBQ0gsQ0FBQztBQUVELGVBQWUsY0FBYyxDQUFBIn0=
@@ -1,27 +0,0 @@
1
- let bot
2
- function setBot(botClient) {
3
- bot = botClient
4
- }
5
- async function getGuildCache(guildResolvable) {
6
- if (!bot) return
7
- const guild = await bot.guilds.fetch({ guild: guildResolvable })
8
- if (!guild) return
9
- const channels = await guild.channels.fetch()
10
- if (!channels) return
11
- const emojis = await guild.emojis.fetch()
12
- if (!emojis) return
13
- const members = await guild.members.fetch()
14
- if (!members) return
15
- const roles = await guild.roles.fetch()
16
- if (!roles) return
17
- return {
18
- guild,
19
- channels,
20
- emojis,
21
- members,
22
- roles,
23
- }
24
- }
25
- export default getGuildCache
26
- export { setBot }
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3VpbGQtY2FjaGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZ3VpbGQtY2FjaGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsSUFBSSxHQUFXLENBQUE7QUFFZixTQUFTLE1BQU0sQ0FBQyxTQUFpQjtJQUMvQixHQUFHLEdBQUcsU0FBUyxDQUFBO0FBQ2pCLENBQUM7QUFFRCxLQUFLLFVBQVUsYUFBYSxDQUFDLGVBQWdDO0lBQzNELElBQUksQ0FBQyxHQUFHO1FBQUUsT0FBTTtJQUVoQixNQUFNLEtBQUssR0FBRyxNQUFNLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUE7SUFDaEUsSUFBSSxDQUFDLEtBQUs7UUFBRSxPQUFNO0lBRWxCLE1BQU0sUUFBUSxHQUFHLE1BQU0sS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtJQUM3QyxJQUFJLENBQUMsUUFBUTtRQUFFLE9BQU07SUFFckIsTUFBTSxNQUFNLEdBQUcsTUFBTSxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFBO0lBQ3pDLElBQUksQ0FBQyxNQUFNO1FBQUUsT0FBTTtJQUVuQixNQUFNLE9BQU8sR0FBRyxNQUFNLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUE7SUFDM0MsSUFBSSxDQUFDLE9BQU87UUFBRSxPQUFNO0lBRXBCLE1BQU0sS0FBSyxHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQTtJQUN2QyxJQUFJLENBQUMsS0FBSztRQUFFLE9BQU07SUFFbEIsT0FBTztRQUNMLEtBQUs7UUFDTCxRQUFRO1FBQ1IsTUFBTTtRQUNOLE9BQU87UUFDUCxLQUFLO0tBQ04sQ0FBQTtBQUNILENBQUM7QUFFRCxlQUFlLGFBQWEsQ0FBQTtBQUM1QixPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUEifQ==
package/dist/ready.js DELETED
@@ -1,7 +0,0 @@
1
- function registerReady(bot) {
2
- bot.once("ready", () => {
3
- console.log("I am ready!")
4
- })
5
- }
6
- export default registerReady
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcmVhZHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsU0FBUyxhQUFhLENBQUMsR0FBVztJQUNoQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUU7UUFDckIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQTtJQUM1QixDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUM7QUFFRCxlQUFlLGFBQWEsQ0FBQSJ9
@@ -1,10 +0,0 @@
1
- import { ChatInputCommandInteraction, Collection, SlashCommandBuilder } from "discord.js"
2
- interface Command {
3
- requiredRoles?: string[]
4
- command: SlashCommandBuilder
5
- run: (interaction: ChatInputCommandInteraction) => void | Promise<void>
6
- }
7
- type CommandsCollection = Collection<string, Command>
8
- declare function registerCommands(botToken: string, clientId: string, projectMetaURL: string, guildId?: string): Promise<CommandsCollection>
9
- export default registerCommands
10
- export { Command, CommandsCollection }
@@ -1,2 +0,0 @@
1
- declare function registerEvents(projectMetaURL: string): Promise<void>
2
- export default registerEvents
@@ -1,14 +0,0 @@
1
- import { Client, GuildResolvable } from "discord.js"
2
- declare function setBot(botClient: Client): void
3
- declare function getGuildCache(guildResolvable: GuildResolvable): Promise<
4
- | {
5
- guild: import("discord.js").Guild
6
- channels: import("@discordjs/collection").Collection<string, import("discord.js").NonThreadGuildBasedChannel | null>
7
- emojis: import("@discordjs/collection").Collection<string, import("discord.js").GuildEmoji>
8
- members: import("@discordjs/collection").Collection<string, import("discord.js").GuildMember>
9
- roles: import("@discordjs/collection").Collection<string, import("discord.js").Role>
10
- }
11
- | undefined
12
- >
13
- export default getGuildCache
14
- export { setBot }