Some checks failed
continuous-integration/drone/push Build is failing
- Switch to TypeORM's DataSource API, rather than using the now deprecated ormconfig.json - This will fix stage deployment not knowing how to deploy the database migrations #297 > **NOTE:** This change requires the deployment scripts to be updated, please update them on the server before merging Co-authored-by: Ethan Lane <ethan@vylpes.com> Reviewed-on: https://gitea.vylpes.xyz/RabbitLabs/vylbot-app/pulls/299
40 lines
No EOL
1.4 KiB
TypeScript
40 lines
No EOL
1.4 KiB
TypeScript
import { CommandInteraction, PermissionsBitField, SlashCommandBuilder } from "discord.js";
|
|
import { Command } from "../../../type/command";
|
|
import { default as eLobby } from "../../../database/entities/501231711271780357/Lobby";
|
|
import BaseEntity from "../../../contracts/BaseEntity";
|
|
|
|
export default class RemoveLobby extends Command {
|
|
constructor() {
|
|
super();
|
|
|
|
super.CommandBuilder = new SlashCommandBuilder()
|
|
.setName('removelobby')
|
|
.setDescription('Remove a lobby channel')
|
|
.setDefaultMemberPermissions(PermissionsBitField.Flags.ModerateMembers)
|
|
.addChannelOption(option =>
|
|
option
|
|
.setName('channel')
|
|
.setDescription('The channel')
|
|
.setRequired(true));
|
|
}
|
|
|
|
public override async execute(interaction: CommandInteraction) {
|
|
const channel = interaction.options.get('channel');
|
|
|
|
if (!channel || !channel.channel) {
|
|
await interaction.reply('Channel is required.');
|
|
return;
|
|
}
|
|
|
|
const entity = await eLobby.FetchOneByChannelId(channel.channel.id);
|
|
|
|
if (!entity) {
|
|
await interaction.reply('Channel not found.');
|
|
return;
|
|
}
|
|
|
|
await BaseEntity.Remove<eLobby>(eLobby, entity);
|
|
|
|
await interaction.reply(`Removed <#${channel.channel.id}> from the list of lobby channels`);
|
|
}
|
|
} |