aboutsummaryrefslogtreecommitdiff
path: root/174bg/discord-bot/source/main.js
diff options
context:
space:
mode:
authorAlex Pooley (@zuedev) <zuedev@gmail.com>2026-07-22 15:32:57 +0100
committerAlex Pooley (@zuedev) <zuedev@gmail.com>2026-07-22 15:32:57 +0100
commit72487019b3f255cece40a8073bbad8bc9968a3b7 (patch)
treeb6590e63039cdc8b1820bd345cdfe83f28ff839b /174bg/discord-bot/source/main.js
parentda0509c91376f56f133872eddd2e4282d76f215e (diff)
downloadunnamed-group-72487019b3f255cece40a8073bbad8bc9968a3b7.tar
unnamed-group-72487019b3f255cece40a8073bbad8bc9968a3b7.tar.gz
unnamed-group-72487019b3f255cece40a8073bbad8bc9968a3b7.tar.bz2
unnamed-group-72487019b3f255cece40a8073bbad8bc9968a3b7.tar.xz
unnamed-group-72487019b3f255cece40a8073bbad8bc9968a3b7.zip
major code refactor, add uex lookup
Diffstat (limited to '174bg/discord-bot/source/main.js')
-rw-r--r--174bg/discord-bot/source/main.js64
1 files changed, 64 insertions, 0 deletions
diff --git a/174bg/discord-bot/source/main.js b/174bg/discord-bot/source/main.js
new file mode 100644
index 0000000..1fcf9c1
--- /dev/null
+++ b/174bg/discord-bot/source/main.js
@@ -0,0 +1,64 @@
+import {
+ Client,
+ Events,
+ GatewayIntentBits,
+ REST,
+ Routes,
+ ChannelType,
+ PermissionFlagsBits,
+ SlashCommandBuilder,
+ ActionRowBuilder,
+ ButtonBuilder,
+ ButtonStyle,
+} from "discord.js";
+
+import commands from "./commands/_index.js";
+
+const client = new Client({
+ intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildMembers],
+});
+
+client.on(Events.ClientReady, async (readyClient) => {
+ console.log(`Logged in as ${readyClient.user.tag}!`);
+
+ await registerCommands();
+});
+
+client.on(Events.InteractionCreate, async (interaction) => {
+ if (interaction.guild.id !== process.env.DISCORD_GUILD_ID) return;
+
+ if (interaction.isChatInputCommand()) {
+ if (
+ commands.some((command) => command.data.name === interaction.commandName)
+ ) {
+ const command = commands.find(
+ (command) => command.data.name === interaction.commandName,
+ );
+ await command.execute(interaction);
+ }
+ }
+});
+
+client.login(process.env.DISCORD_BOT_TOKEN);
+
+async function registerCommands() {
+ const rest = new REST({ version: "10" }).setToken(
+ process.env.DISCORD_BOT_TOKEN,
+ );
+
+ // clear global commands
+ await rest.put(Routes.applicationCommands(process.env.DISCORD_CLIENT_ID), {
+ body: [],
+ });
+
+ // register guild-scoped commands
+ await rest.put(
+ Routes.applicationGuildCommands(
+ process.env.DISCORD_CLIENT_ID,
+ process.env.DISCORD_GUILD_ID,
+ ),
+ {
+ body: commands.map((command) => command.data.toJSON()),
+ },
+ );
+} \ No newline at end of file