From 5899f9602f8c98d320faf668a561883d9d715cc1 Mon Sep 17 00:00:00 2001 From: Bene Date: Fri, 17 May 2024 23:31:06 +0200 Subject: [PATCH] Initial --- Dockerfile | 17 +++++++++++++++++ gitignore | 1 + index.js | 27 +++++++++++++++++++++++++++ package.json | 13 +++++++++++++ 4 files changed, 58 insertions(+) create mode 100644 Dockerfile create mode 100644 gitignore create mode 100644 index.js create mode 100644 package.json diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..831b297 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,17 @@ +# Verwende die neueste LTS-Version von Node.js +FROM node:18 + +# Erstelle und setze das Arbeitsverzeichnis +WORKDIR /usr/src/app + +# Kopiere package.json und package-lock.json (falls vorhanden) +COPY package*.json ./ + +# Installiere die Abhängigkeiten +RUN npm install + +# Kopiere den Rest des Anwendungsverzeichnisses +COPY . . + +# Definiere die Startkommandozeile für den Container +CMD [ "npm", "start" ] diff --git a/gitignore b/gitignore new file mode 100644 index 0000000..2eea525 --- /dev/null +++ b/gitignore @@ -0,0 +1 @@ +.env \ No newline at end of file diff --git a/index.js b/index.js new file mode 100644 index 0000000..675e0b6 --- /dev/null +++ b/index.js @@ -0,0 +1,27 @@ +const { Client, GatewayIntentBits, ChannelType } = require('discord.js'); +const client = new Client({ intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildVoiceStates] }); + +const token = process.env.BOT_TOKEN; +const joinToCreateChannelId = process.env.JOINTOCREATE_CHANNEL_ID; + +client.once('ready', () => { + console.log('Ready!'); +}); + +client.on('voiceStateUpdate', (oldState, newState) => { + if (newState.channelId === joinToCreateChannelId) { + newState.guild.channels.create({ + name: `🔊 ${newState.member.displayName}'s Channel`, + type: ChannelType.GuildVoice, + parent: newState.channel.parentId, + }).then(channel => { + newState.member.voice.setChannel(channel); + }).catch(console.error); + } + + if (oldState.channel && oldState.channel.members.size === 0 && oldState.channelId !== joinToCreateChannelId) { + oldState.channel.delete().catch(console.error); + } +}); + +client.login(token); diff --git a/package.json b/package.json new file mode 100644 index 0000000..4820c26 --- /dev/null +++ b/package.json @@ -0,0 +1,13 @@ +{ + "name": "join2create", + "version": "1.0.0", + "description": "Simple Discord bot with join to create feature", + "main": "index.js", + "scripts": { + "start": "node index.js" + }, + "dependencies": { + "discord.js": "^14.0.0" + } + } + \ No newline at end of file