mirror of
https://github.com/warengroup/eximiabots-radiox.git
synced 2026-03-10 04:54:26 +00:00
Typescript Continue
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import { ActionRowBuilder, ButtonInteraction, ChatInputCommandInteraction, ColorResolvable, EmbedBuilder, StringSelectMenuBuilder, StringSelectMenuInteraction } from "discord.js";
|
||||
import { ActionRowBuilder, AnyComponentBuilder, APIActionRowComponent, APISelectMenuOption, ButtonInteraction, ChatInputCommandInteraction, ColorResolvable, EmbedBuilder, StringSelectMenuBuilder, StringSelectMenuInteraction } from "discord.js";
|
||||
import RadioClient from "../../Client";
|
||||
import Streamer from "../classes/Streamer";
|
||||
import commands from "../commands";
|
||||
@@ -17,62 +17,95 @@ export default {
|
||||
content: client.messageEmojis["error"] + client.messages.notAllowed,
|
||||
ephemeral: true
|
||||
});
|
||||
let action = interaction.options?.getNumber("action") ?? interaction.values?.[0];
|
||||
const options: any = new Array(
|
||||
|
||||
let action : number | string | null = null;
|
||||
|
||||
if(interaction.isChatInputCommand()){
|
||||
action = interaction.options?.getNumber("action");
|
||||
}
|
||||
|
||||
if(interaction.isStringSelectMenu()){
|
||||
action = interaction.values?.[0];
|
||||
}
|
||||
|
||||
const options: APISelectMenuOption[] = new Array(
|
||||
{
|
||||
emoji: "🌀",
|
||||
emoji: {
|
||||
"name": "🌀",
|
||||
},
|
||||
label: "Restart Bot",
|
||||
value: "0"
|
||||
},
|
||||
{
|
||||
emoji: "<:RadioXStop:688541155377414168>",
|
||||
emoji: {
|
||||
id: "688541155377414168",
|
||||
name: "RadioXStop",
|
||||
},
|
||||
label: "Save Radios",
|
||||
value: "4"
|
||||
},
|
||||
{
|
||||
emoji: "<:RadioXPlay:688541155712827458>",
|
||||
emoji: {
|
||||
id: "688541155712827458",
|
||||
name: "RadioXPlay",
|
||||
},
|
||||
label: "Restore Radios",
|
||||
value: "5"
|
||||
},
|
||||
{
|
||||
emoji: "#️⃣",
|
||||
emoji: {
|
||||
name: "#️⃣",
|
||||
},
|
||||
label: "Reload Commands",
|
||||
value: "6"
|
||||
},
|
||||
{
|
||||
emoji: "<:RadioXList:688541155519889482>",
|
||||
emoji: {
|
||||
id: "688541155519889482",
|
||||
name: "RadioXList",
|
||||
},
|
||||
label: "Reload Stations",
|
||||
value: "7"
|
||||
},
|
||||
{
|
||||
emoji: "<:dnd:746069698139127831>",
|
||||
emoji: {
|
||||
id: "746069698139127831",
|
||||
name: "dnd",
|
||||
},
|
||||
label: "Enable Maintenance Mode",
|
||||
value: "8"
|
||||
},
|
||||
{
|
||||
emoji: "<:online:746069731836035098>",
|
||||
emoji: {
|
||||
id: "746069731836035098",
|
||||
name: "online",
|
||||
},
|
||||
label: "Disable Maintenance Mode",
|
||||
value: "9"
|
||||
},
|
||||
{
|
||||
emoji: "💤",
|
||||
emoji: {
|
||||
name: "💤",
|
||||
},
|
||||
label: "Streamer Mode - Manual",
|
||||
value: "10"
|
||||
},
|
||||
{
|
||||
emoji: "📡",
|
||||
emoji: {
|
||||
name: "📡",
|
||||
},
|
||||
label: "Streamer Mode - Auto",
|
||||
value: "11"
|
||||
}
|
||||
);
|
||||
|
||||
const menu = new ActionRowBuilder()
|
||||
.addComponents(
|
||||
new StringSelectMenuBuilder()
|
||||
.setCustomId('maintenance')
|
||||
.setPlaceholder('Select action')
|
||||
.addOptions(options)
|
||||
);
|
||||
const menu : ActionRowBuilder<any> = new ActionRowBuilder()
|
||||
.addComponents(
|
||||
new StringSelectMenuBuilder()
|
||||
.setCustomId('maintenance')
|
||||
.setPlaceholder('Select action')
|
||||
.addOptions(options)
|
||||
);
|
||||
|
||||
if(!action){
|
||||
return interaction.reply({
|
||||
@@ -82,12 +115,12 @@ export default {
|
||||
});
|
||||
}
|
||||
|
||||
client.funcs.logger('Maintenance', options.find((option: { value: any; }) => option.value == action).label);
|
||||
client.funcs.logger('Maintenance', options.find((option: APISelectMenuOption) => option.value == action)?.label);
|
||||
|
||||
const embed = new EmbedBuilder()
|
||||
.setTitle(client.messages.maintenanceTitle)
|
||||
.setColor(client.config.embedColor as ColorResolvable)
|
||||
.setDescription(options.find((option: { value: any; }) => option.value == action).label)
|
||||
.setDescription(options.find((option: APISelectMenuOption) => option.value == action)?.label || "-")
|
||||
.setFooter({
|
||||
text: client.messages.footerText,
|
||||
iconURL: "https://cdn.discordapp.com/emojis/" + client.messageEmojis["eximiabots"].replace(/[^0-9]+/g, '')
|
||||
@@ -107,43 +140,43 @@ export default {
|
||||
break;
|
||||
case "4":
|
||||
client.config.maintenanceMode = true;
|
||||
client.user.setStatus('idle');
|
||||
client.radio.save(client);
|
||||
client.user.setStatus('online');
|
||||
client.user?.setStatus('idle');
|
||||
client.radio?.save(client);
|
||||
client.user?.setStatus('online');
|
||||
client.config.maintenanceMode = false;
|
||||
break;
|
||||
case "5":
|
||||
client.config.maintenanceMode = true;
|
||||
client.user.setStatus('idle');
|
||||
client.radio.restore(client, guilds);
|
||||
client.user.setStatus('online');
|
||||
client.user?.setStatus('idle');
|
||||
client.radio?.restore(client, guilds);
|
||||
client.user?.setStatus('online');
|
||||
client.config.maintenanceMode = false;
|
||||
break;
|
||||
case "6":
|
||||
client.config.maintenanceMode = true;
|
||||
client.user.setStatus('idle');
|
||||
client.user?.setStatus('idle');
|
||||
commands.execute(client);
|
||||
client.user.setStatus('online');
|
||||
client.user?.setStatus('online');
|
||||
client.config.maintenanceMode = false;
|
||||
break;
|
||||
case "7":
|
||||
try {
|
||||
client.stations.fetch({
|
||||
client.stations?.fetch({
|
||||
url: client.config.stationslistUrl
|
||||
});
|
||||
client.streamer.refresh(client);
|
||||
client.streamer?.refresh(client);
|
||||
|
||||
} catch (error) {
|
||||
|
||||
}
|
||||
break;
|
||||
case "8":
|
||||
client.user.setStatus('dnd');
|
||||
client.user?.setStatus('dnd');
|
||||
client.funcs.logger("Maintenance Mode", "Enabled");
|
||||
client.config.maintenanceMode = true;
|
||||
break;
|
||||
case "9":
|
||||
client.user.setStatus('online');
|
||||
client.user?.setStatus('online');
|
||||
client.funcs.logger("Maintenance Mode", "Disabled");
|
||||
client.config.maintenanceMode = false;
|
||||
break;
|
||||
@@ -151,17 +184,17 @@ export default {
|
||||
client.config.streamerMode = "manual";
|
||||
client.config.maintenanceMode = true;
|
||||
|
||||
client.user.setStatus('idle');
|
||||
client.radio.save(client);
|
||||
client.user?.setStatus('idle');
|
||||
client.radio?.save(client);
|
||||
|
||||
setInterval(() => {
|
||||
if(client.radio.size == 0 && client.config.streamerMode == "manual" && client.config.maintenanceMode){
|
||||
client.streamer.leave(client);
|
||||
if(client.radio?.size == 0 && client.config.streamerMode == "manual" && client.config.maintenanceMode){
|
||||
client.streamer?.leave(client);
|
||||
client.streamer = new Streamer();
|
||||
client.streamer.init(client);
|
||||
|
||||
client.radio.restore(client, guilds);
|
||||
client.user.setStatus('online');
|
||||
client.radio?.restore(client, guilds);
|
||||
client.user?.setStatus('online');
|
||||
client.config.maintenanceMode = false;
|
||||
}
|
||||
|
||||
@@ -175,17 +208,17 @@ export default {
|
||||
client.config.streamerMode = "auto";
|
||||
client.config.maintenanceMode = true;
|
||||
|
||||
client.user.setStatus('idle');
|
||||
client.radio.save(client);
|
||||
client.user?.setStatus('idle');
|
||||
client.radio?.save(client);
|
||||
|
||||
setInterval(() => {
|
||||
if(client.radio.size == 0 && client.config.streamerMode == "auto" && client.config.maintenanceMode){
|
||||
client.streamer.leave(client);
|
||||
if(client.radio?.size == 0 && client.config.streamerMode == "auto" && client.config.maintenanceMode){
|
||||
client.streamer?.leave(client);
|
||||
client.streamer = new Streamer();
|
||||
client.streamer.init(client);
|
||||
|
||||
client.radio.restore(client, guilds);
|
||||
client.user.setStatus('online');
|
||||
client.user?.setStatus('online');
|
||||
client.config.maintenanceMode = false;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user