Add list lobby command
This commit is contained in:
parent
0d63bd120d
commit
f6a85314dc
2 changed files with 51 additions and 0 deletions
48
src/commands/501231711271780357/Lobby/list.ts
Normal file
48
src/commands/501231711271780357/Lobby/list.ts
Normal file
|
@ -0,0 +1,48 @@
|
|||
import { CacheType, CommandInteraction, EmbedBuilder, GuildBasedChannel, PermissionsBitField, SlashCommandBuilder } from "discord.js";
|
||||
import { Command } from "../../../type/command";
|
||||
import { default as eLobby } from "../../../entity/501231711271780357/Lobby";
|
||||
import EmbedColours from "../../../constants/EmbedColours";
|
||||
|
||||
export default class ListLobby extends Command {
|
||||
constructor() {
|
||||
super();
|
||||
|
||||
super.CommandBuilder = new SlashCommandBuilder()
|
||||
.setName('listlobby')
|
||||
.setDescription('Lists all channels set up as lobbies')
|
||||
.setDefaultMemberPermissions(PermissionsBitField.Flags.ModerateMembers);
|
||||
}
|
||||
|
||||
public override async execute(interaction: CommandInteraction<CacheType>) {
|
||||
if (!interaction.guild) {
|
||||
await interaction.reply('Guild not found.');
|
||||
return;
|
||||
}
|
||||
|
||||
const channels: eLobby[] = [];
|
||||
|
||||
interaction.guild.channels.cache.forEach(async (channel) => {
|
||||
const lobby = await eLobby.FetchOneByChannelId(channel.id);
|
||||
|
||||
if (lobby) {
|
||||
channels.push(lobby);
|
||||
}
|
||||
});
|
||||
|
||||
const embed = new EmbedBuilder()
|
||||
.setColor(EmbedColours.Ok)
|
||||
.setTitle("Lobbies")
|
||||
.setDescription(`Channels: ${channels.length}`);
|
||||
|
||||
channels.forEach(lobby => {
|
||||
embed.addFields([
|
||||
{
|
||||
name: `<#${lobby.ChannelId}>`,
|
||||
value: `Last Used: ${lobby.LastUsed}`
|
||||
}
|
||||
]);
|
||||
});
|
||||
|
||||
await interaction.reply({ embeds: [ embed ]});
|
||||
}
|
||||
}
|
|
@ -25,6 +25,7 @@ import Entry from "./commands/501231711271780357/entry";
|
|||
import Lobby from "./commands/501231711271780357/Lobby/lobby";
|
||||
import AddLobby from "./commands/501231711271780357/Lobby/add";
|
||||
import RemoveLobby from "./commands/501231711271780357/Lobby/remove";
|
||||
import ListLobby from "./commands/501231711271780357/Lobby/list";
|
||||
|
||||
// Event Imports
|
||||
import GuildMemberAdd from "./events/MemberEvents/GuildMemberAdd";
|
||||
|
@ -59,12 +60,14 @@ export default class Registry {
|
|||
CoreClient.RegisterCommand("lobby", new Lobby(), "501231711271780357");
|
||||
CoreClient.RegisterCommand("lobbyAdd", new AddLobby(), "501231711271780357");
|
||||
CoreClient.RegisterCommand("lobbyRemove", new RemoveLobby(), "501231711271780357");
|
||||
CoreClient.RegisterCommand("listlobby", new ListLobby(), "501231711271780357");
|
||||
CoreClient.RegisterCommand("entry", new Entry(), "501231711271780357");
|
||||
|
||||
// Add Exclusive Commands to Test Server
|
||||
CoreClient.RegisterCommand("lobby", new Lobby(), "442730357897429002");
|
||||
CoreClient.RegisterCommand("addlobby", new AddLobby(), "442730357897429002");
|
||||
CoreClient.RegisterCommand("removelobby", new RemoveLobby(), "442730357897429002");
|
||||
CoreClient.RegisterCommand("listlobby", new ListLobby(), "442730357897429002");
|
||||
CoreClient.RegisterCommand("entry", new Entry(), "442730357897429002");
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue