64 lines
2.1 KiB
JavaScript
64 lines
2.1 KiB
JavaScript
const { SlashCommandBuilder } = require('discord.js');
|
|
const { readDb, writeDb } = require('../../backend/db.js');
|
|
|
|
module.exports = {
|
|
name: 'config-leave',
|
|
description: 'Configure the leave message for this server.',
|
|
enabled: true,
|
|
builder: new SlashCommandBuilder()
|
|
.setName('config-leave')
|
|
.setDescription('Configure the leave message for this server.')
|
|
.addSubcommand(subcommand =>
|
|
subcommand
|
|
.setName('set-channel')
|
|
.setDescription('Set the channel for leave messages.')
|
|
.addChannelOption(option =>
|
|
option.setName('channel')
|
|
.setDescription('The channel to send leave messages to.')
|
|
.setRequired(true)
|
|
)
|
|
)
|
|
.addSubcommand(subcommand =>
|
|
subcommand
|
|
.setName('set-message')
|
|
.setDescription('Set the leave message.')
|
|
.addStringOption(option =>
|
|
option.setName('message')
|
|
.setDescription('The leave message. Use {user} for username and {server} for server name.')
|
|
.setRequired(true)
|
|
)
|
|
)
|
|
.addSubcommand(subcommand =>
|
|
subcommand
|
|
.setName('disable')
|
|
.setDescription('Disable leave messages.')
|
|
),
|
|
async execute(interaction) {
|
|
const db = readDb();
|
|
const guildId = interaction.guildId;
|
|
const subcommand = interaction.options.getSubcommand();
|
|
|
|
if (!db[guildId]) {
|
|
db[guildId] = {};
|
|
}
|
|
|
|
if (subcommand === 'set-channel') {
|
|
const channel = interaction.options.getChannel('channel');
|
|
db[guildId].leaveChannel = channel.id;
|
|
db[guildId].leaveEnabled = true;
|
|
writeDb(db);
|
|
await interaction.reply(`Leave channel set to ${channel}.`);
|
|
} else if (subcommand === 'set-message') {
|
|
const message = interaction.options.getString('message');
|
|
db[guildId].leaveMessage = message;
|
|
db[guildId].leaveEnabled = true;
|
|
writeDb(db);
|
|
await interaction.reply(`Leave message set to: "${message}"`);
|
|
} else if (subcommand === 'disable') {
|
|
db[guildId].leaveEnabled = false;
|
|
writeDb(db);
|
|
await interaction.reply('Leave messages disabled.');
|
|
}
|
|
},
|
|
};
|