init
This commit is contained in:
commit
fb53fc6235
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
node_modules
|
||||
.env
|
2734
package-lock.json
generated
Normal file
2734
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
21
package.json
Normal file
21
package.json
Normal file
@ -0,0 +1,21 @@
|
||||
{
|
||||
"name": "discordbot_nyan9000",
|
||||
"version": "1.0.0",
|
||||
"description": "Discord Bot",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"start": "node src/index.js",
|
||||
"dev": "nodemon src/index.js",
|
||||
"deployCommands": "node src/deploy-commands.js"
|
||||
},
|
||||
"author": "Nico Jensen",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"@discordjs/builders": "^0.9.0",
|
||||
"@discordjs/rest": "^0.1.0-canary.0",
|
||||
"discord-api-types": "^0.25.2",
|
||||
"discord.js": "^13.3.1",
|
||||
"dotenv": "^10.0.0",
|
||||
"nodemon": "^2.0.15"
|
||||
}
|
||||
}
|
39
src/commands/createVC.js
Normal file
39
src/commands/createVC.js
Normal file
@ -0,0 +1,39 @@
|
||||
const {SlashCommandBuilder} = require('@discordjs/builders')
|
||||
const {MessageEmbed, Guild} = require('discord.js')
|
||||
|
||||
module.exports = {
|
||||
data: new SlashCommandBuilder()
|
||||
.setName('vc')
|
||||
.setDescription('create new voice channel')
|
||||
.addSubcommand(subCcommand => subCcommand.setName('Create').setDescription('Create new Voice Channel'))
|
||||
.addSubcommand(subCcommand => subCcommand.setName('Rename').setDescription('Rename Voice Channel'))
|
||||
.addSubcommand(subCcommand => subCcommand.setName('Delete').setDescription('Delete Voice Channel')),
|
||||
async execute(interaction) {
|
||||
switch(interaction.options.getSubcommand()) {
|
||||
case 'Create': {
|
||||
const newChannelName = `${interaction.member.displayName}'s Channel`
|
||||
interaction.guild.channels.create(`${newChannelName}`, {
|
||||
type: 'GUILD_VOICE',
|
||||
parent: '589107550520082591',
|
||||
permissionOverwrites: [{
|
||||
id: interaction.member.user,
|
||||
allow: ['MANAGE_CHANNELS']
|
||||
}]
|
||||
})
|
||||
|
||||
await Tags.create({
|
||||
name: interaction.guild.channels.getId(`${newChannelName}`),
|
||||
description: 'channelID',
|
||||
username: interaction.user.username,
|
||||
})
|
||||
break
|
||||
}
|
||||
case 'Rename': {
|
||||
break
|
||||
}
|
||||
case 'Delete': {
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
8
src/commands/ping.js
Normal file
8
src/commands/ping.js
Normal file
@ -0,0 +1,8 @@
|
||||
const {SlashCommandBuilder} = require("@discordjs/builders")
|
||||
|
||||
module.exports = {
|
||||
data: new SlashCommandBuilder().setName("ping").setDescription("Pong!"),
|
||||
async execute(interaction) {
|
||||
interaction.reply("Pong!")
|
||||
}
|
||||
}
|
17
src/deploy-commands.js
Normal file
17
src/deploy-commands.js
Normal file
@ -0,0 +1,17 @@
|
||||
require("dotenv").config()
|
||||
const fs = require("fs")
|
||||
const {REST} = require("@discordjs/rest")
|
||||
const {Routes} = require("discord-api-types/v9")
|
||||
const commands = []
|
||||
|
||||
const CommandFiles = fs.readdirSync("./src/commands").filter(file => file.endsWith(".js"))
|
||||
|
||||
CommandFiles.forEach(CommandFile => {
|
||||
const command = require(`./commands/${CommandFile}`)
|
||||
commands.push(command.data.toJSON())
|
||||
})
|
||||
|
||||
const restClient = new REST({version: "9"}).setToken(process.env.DISCORD_BOT_TOKEN)
|
||||
restClient.put(Routes.applicationGuildCommands(process.env.DISCORD_APPLICATION_ID, process.env.DISCORD_GUILD_ID),
|
||||
{body: commands})
|
||||
.then(() => console.log("Successully registerd commands"))
|
66
src/index.js
Normal file
66
src/index.js
Normal file
@ -0,0 +1,66 @@
|
||||
require("dotenv").config()
|
||||
const fs = require("fs")
|
||||
|
||||
const {Client, Collection, Intents} = require('discord.js');
|
||||
const client = new Client({intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_VOICE_STATES, Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MEMBERS]});
|
||||
|
||||
client.commands = new Collection()
|
||||
|
||||
const CommandFiles = fs.readdirSync("./src/commands").filter(file => file.endsWith(".js"))
|
||||
|
||||
CommandFiles.forEach(CommandFile => {
|
||||
const command = require(`./commands/${CommandFile}`)
|
||||
client.commands.set(command.data.name, command)
|
||||
})
|
||||
|
||||
client.once('ready', () => {
|
||||
console.log(`Ready! Logged in as ${client.user.tag}! I'm on ${client.guilds.cache.size} guild(s)!`);
|
||||
client.user.setActivity({
|
||||
name: '2001: A Space Odyssey',
|
||||
type: 'WATCHING'
|
||||
})
|
||||
});
|
||||
|
||||
client.on("interactionCreate", async(interaction) => {
|
||||
if(!interaction.isCommand()) return
|
||||
|
||||
const command = client.commands.get(interaction.commandName)
|
||||
if(command) {
|
||||
try {
|
||||
await command.execute(interaction)
|
||||
} catch(error) {
|
||||
console.error(error)
|
||||
if(interaction.deferred || interaction.replied) {
|
||||
interaction.editReply("Es ist ein fehler beim ausführen aufgetreten!")
|
||||
} else {
|
||||
interaction.reply("Es ist ein fehler beim ausführen aufgetreten!")
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
client.on('voiceStateUpdate', (oldState, newState) => {
|
||||
if(newState.channelId === '919971427673849947') {
|
||||
newState.guild.channels.create(`${newState.member.displayName}'s VC`, {
|
||||
type: 'GUILD_VOICE',
|
||||
parent: '589107550520082591',
|
||||
permissionOverwrites: [{
|
||||
id: newState.member.user,
|
||||
allow: ["MANAGE_CHANNELS"]
|
||||
}]
|
||||
}).then(vc => {
|
||||
newState.setChannel(vc);
|
||||
})
|
||||
}
|
||||
if(oldState.channelId != null) {
|
||||
if(oldState.channel.parentId == '589107550520082591') {
|
||||
if(oldState.channelId != '919971427673849947') {
|
||||
if(oldState.channel.members.size == 0) {
|
||||
oldState.channel.delete('Delete empty Channel.')
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
client.login(process.env.DISCORD_BOT_TOKEN);
|
Loading…
Reference in New Issue
Block a user