Channel Set/Get added

This commit is contained in:
DeSqBlocki
2025-02-08 23:45:55 +01:00
parent f978dbdf2e
commit e74aef15b9
8 changed files with 134 additions and 53 deletions
+123
View File
@@ -0,0 +1,123 @@
const { SlashCommandBuilder, ChannelType, MessageFlags } = require('discord.js')
const { mClient } = require('../..')
async function setChannel(interaction) {
const event = interaction.options.getString('event')
const channel = interaction.options.getChannel('channel')
const db = mClient.db('guilds')
const coll = db.collection(interaction.guild.id)
try {
const res = await coll.findOneAndUpdate({
event: event
}, {
$set: {
channel: channel.id
}
}, {
upsert: true
})
return interaction.editReply({
content: `${channel} now set for Event: ${event}`,
flags: MessageFlags.Ephemeral
})
} catch (error) {
return interaction.editReply({
content: `**[ERROR]:** There was an error updating the database: ${error}`,
flags: MessageFlags.Ephemeral
}).then(setTimeout(() => {
interaction.deleteReply()
}, 5000))
}
}
async function getChannel(interaction) {
const event = interaction.options.getString('event')
const db = mClient.db('guilds')
const coll = db.collection(interaction.guild.id)
try {
const res = await coll.findOne({
event: event
})
return interaction.editReply({
content: `#${res.channel} previously set for Event: ${event}`,
flags: MessageFlags.Ephemeral
})
} catch (error) {
return interaction.editReply({
content: `**[ERROR]:** There was an error updating the database: ${error}`,
flags: MessageFlags.Ephemeral
}).then(setTimeout(() => {
interaction.deleteReply()
}, 5000))
}
}
module.exports = {
data: new SlashCommandBuilder()
.setName('channel')
.setDescription('channel manager')
.addSubcommand(s =>
s
.setName('set')
.setDescription('set channel for certain events')
.addStringOption(o =>
o
.setName('event')
.setDescription('choose the event')
.addChoices([
{ "name": "When a user joins this server", "value": "GuildMemberAdd" },
{ "name": "When a user left this server", "value": "GuildMemberRemove" },
{ "name": "When it's a users birthday", "value": "Discord/Birthday" },
{ "name": "When debug logs are sent", "value": "Discord/Logs" },
{ "name": "When stream is live", "value": "Twitch/Live" }
])
.setRequired(true)
)
.addChannelOption(o =>
o
.setName('channel')
.setDescription('where should it be sent to')
.setRequired(true)
.addChannelTypes(ChannelType.GuildText)
)
)
.addSubcommand(s =>
s
.setName('get')
.setDescription('get channel for certain events')
.addStringOption(o =>
o
.setName('event')
.setDescription('choose the event')
.addChoices([
{ "name": "When a user joins this server", "value": "GuildMemberAdd" },
{ "name": "When a user left this server", "value": "GuildMemberRemove" },
{ "name": "When it's a users birthday", "value": "Discord/Birthday" },
{ "name": "When debug logs are sent", "value": "Discord/Logs" },
{ "name": "When stream is live", "value": "Twitch/Live" }
])
.setRequired(true)
)
),
async execute(interaction) {
if (!interaction.member.permissions.has("ADMINISTRATOR")) {
return await interaction.reply({
content: "Unprivileged Access!",
flags: MessageFlags.Ephemeral
})
}
await interaction.deferReply({ flags: MessageFlags.Ephemeral })
switch (interaction.options._subcommand) {
case "set":
setChannel(interaction)
break;
case "get":
getChannel(interaction)
break;
default:
break;
}
}
}
+4 -4
View File
@@ -1,4 +1,4 @@
const { SlashCommandBuilder, Events } = require('discord.js')
const { SlashCommandBuilder, Events, MessageFlags } = require('discord.js')
module.exports = {
data: new SlashCommandBuilder()
.setName('simjoin')
@@ -10,7 +10,7 @@ module.exports = {
if(!interaction.member.permissions.has("ADMINISTRATOR")){
return await interaction.reply({
content: "Unprivileged Access!",
ephemeral: true
flags: MessageFlags.Ephemeral
})
}
@@ -23,13 +23,13 @@ module.exports = {
interaction.client.emit(Events.GuildMemberAdd, target)
await interaction.reply({
content: "Done!",
ephemeral: true
flags: MessageFlags.Ephemeral
})
}
} catch (error) {
await interaction.reply({
content: "Invalid Mentionable!",
ephemeral: true
flags: MessageFlags.Ephemeral
})
}
+3 -3
View File
@@ -1,4 +1,4 @@
const { SlashCommandBuilder, Events } = require('discord.js')
const { SlashCommandBuilder, Events, MessageFlags } = require('discord.js')
module.exports = {
data: new SlashCommandBuilder()
@@ -8,7 +8,7 @@ module.exports = {
if(!interaction.member.permissions.has("ADMINISTRATOR")){
return await interaction.reply({
content: "Unprivileged Access!",
ephemeral: true
flags: MessageFlags.Ephemeral
})
}
@@ -16,7 +16,7 @@ module.exports = {
interaction.client.emit('TwitchLive', streamer)
await interaction.reply({
content: "Done!",
ephemeral: true
flags: MessageFlags.Ephemeral
})
}
-42
View File
@@ -1,42 +0,0 @@
const { SlashCommandBuilder } = require('discord.js')
const { mClient } = require('../..')
module.exports = {
data: new SlashCommandBuilder()
.setName('simshoutout')
.setDescription('simulates a shoutout event'),
async execute(interaction) {
await interaction.deferReply()
if (!interaction.member.permissions.has("ADMINISTRATOR")) {
return await interaction.editReply({
content: "Unprivileged Access!",
ephemeral: true
})
}
let channel = '#desq_blocki'
let username = 'desq_blocki'
let db = mClient.db("shoutouts")
let col = db.collection(channel)
let query = { user: username }
let status = await col.findOne(query)
if (!status) {
interaction.client.emit("TwitchShoutout", "TEST", channel, username)
await col.insertOne({
user: username
})
await interaction.editReply({
content: "Done!",
ephemeral: true
})
} else {
await interaction.editReply({
content: "Already in Database",
ephemeral: true
})
}
}
}
View File
View File
+3 -3
View File
@@ -1,4 +1,4 @@
const { Events } = require('discord.js')
const { Events, MessageFlags } = require('discord.js')
module.exports = {
name: Events.InteractionCreate,
@@ -17,9 +17,9 @@ module.exports = {
} catch (error) {
console.error(error);
if (interaction.replied || interaction.deferred) {
await interaction.followUp({ content: 'There was an error while executing this command!', ephemeral: true });
await interaction.followUp({ content: 'There was an error while executing this command!', flags: MessageFlags.Ephemeral });
} else {
await interaction.reply({ content: 'There was an error while executing this command!', ephemeral: true });
await interaction.reply({ content: 'There was an error while executing this command!', flags: MessageFlags.Ephemeral });
}
}
}
+1 -1
View File
@@ -1,6 +1,6 @@
const fs = require('node:fs')
const path = require('node:path');
const { dClient, mClient, tClient } = require('..');
var { dClient, mClient, tClient } = require('..');
const { refreshAccessToken } = require('../functions');
const tmi = require('tmi.js')