mirror of
https://github.com/warengroup/eximiabots-radiox.git
synced 2024-12-22 20:23:16 +00:00
Updated maintenance command
This commit is contained in:
parent
05852b99d4
commit
235a02ca60
@ -5,58 +5,156 @@ module.exports = {
|
||||
description: 'Bot Maintenance',
|
||||
permission: 'none',
|
||||
category: 'info',
|
||||
execute(interaction, client) {
|
||||
options: [
|
||||
{ type: "NUMBER", name: "action", description: "Select action", required: false}
|
||||
],
|
||||
async execute(interaction, client) {
|
||||
let message = {};
|
||||
|
||||
if(!client.funcs.isDev(client.config.devId, interaction.user.id)) return interaction.reply(client.messageEmojis["error"] + client.messages.notAllowed);
|
||||
|
||||
if(client.config.version.includes("-dev")){
|
||||
interaction.reply({
|
||||
content: "Maintenance Initiated",
|
||||
ephemeral: true
|
||||
});
|
||||
|
||||
process.emit('SIGINT');
|
||||
} else {
|
||||
if(!client.stations) {
|
||||
message.errorToGetPlaylist = client.messages.errorToGetPlaylist.replace("%client.config.supportGuild%", client.config.supportGuild);
|
||||
return interaction.reply(client.messageEmojis["error"] + message.errorToGetPlaylist);
|
||||
let action = interaction.options?.getNumber("action") ?? interaction.values?.[0];
|
||||
const options = new Array(
|
||||
{
|
||||
emoji: "🌀",
|
||||
label: "Restart Bot",
|
||||
description: "",
|
||||
value: "0"
|
||||
},
|
||||
{
|
||||
emoji: "<:RadioXStop:688541155377414168>",
|
||||
label: "Save Radios",
|
||||
description: "",
|
||||
value: "4"
|
||||
},
|
||||
{
|
||||
emoji: "<:RadioXPlay:688541155712827458>",
|
||||
label: "Restore Radios",
|
||||
description: "",
|
||||
value: "5"
|
||||
},
|
||||
{
|
||||
emoji: "#️⃣",
|
||||
label: "Reload Commands",
|
||||
description: "",
|
||||
value: "6"
|
||||
},
|
||||
{
|
||||
emoji: "<:dnd:746069698139127831>",
|
||||
label: "Enable Maintenance Mode",
|
||||
description: "",
|
||||
value: "8"
|
||||
},
|
||||
{
|
||||
emoji: "<:online:746069731836035098>",
|
||||
label: "Disable Maintenance Mode",
|
||||
description: "",
|
||||
value: "9"
|
||||
}
|
||||
|
||||
let currentRadios = client.radio.keys();
|
||||
let radio = currentRadios.next();
|
||||
let stoppedRadios = "";
|
||||
|
||||
client.user.setStatus('dnd');
|
||||
|
||||
while (!radio.done) {
|
||||
let currentRadio = client.radio.get(radio.value);
|
||||
currentRadio.guild = client.datastore.getEntry(radio.value).guild;
|
||||
|
||||
if(currentRadio){
|
||||
client.funcs.statisticsUpdate(client, currentRadio.guild, currentRadio);
|
||||
currentRadio.connection?.destroy();
|
||||
currentRadio.audioPlayer?.stop();
|
||||
currentRadio.message?.delete();
|
||||
client.radio.delete(radio.value);
|
||||
stoppedRadios += "-" + radio.value + ": " + currentRadio.guild.name + "\n";
|
||||
}
|
||||
radio = currentRadios.next();
|
||||
}
|
||||
|
||||
const embed = new Discord.MessageEmbed()
|
||||
.setTitle(client.messages.maintenanceTitle)
|
||||
.setThumbnail("https://cdn.discordapp.com/emojis/" + client.messageEmojis["maintenance"].replace(/[^0-9]+/g, ''))
|
||||
.setColor(client.config.embedColor)
|
||||
.setDescription("Stopped all radios" + "\n" + stoppedRadios)
|
||||
.setImage('https://waren.io/berriabot-temp-sa7a36a9xm6837br/images/empty-3.png')
|
||||
.setFooter(client.messages.footerText, "https://cdn.discordapp.com/emojis/" + client.messageEmojis["eximiabots"].replace(/[^0-9]+/g, ''));
|
||||
|
||||
);
|
||||
|
||||
const menu = new Discord.MessageActionRow()
|
||||
.addComponents(
|
||||
new Discord.MessageSelectMenu()
|
||||
.setCustomId('maintenance')
|
||||
.setPlaceholder('Select action')
|
||||
.addOptions(options)
|
||||
);
|
||||
|
||||
if(!action){
|
||||
interaction.reply({
|
||||
embeds: [embed],
|
||||
content: "**" + client.messages.maintenanceTitle + "**",
|
||||
components: [menu],
|
||||
ephemeral: true
|
||||
});
|
||||
}
|
||||
|
||||
client.funcs.logger('Maintenance', options.find(option => option.value == action).label);
|
||||
|
||||
const embed = new Discord.MessageEmbed()
|
||||
.setTitle(client.messages.maintenanceTitle)
|
||||
.setColor(client.config.embedColor)
|
||||
.setDescription(options.find(option => option.value == action).label)
|
||||
.setFooter(client.messages.footerText, "https://cdn.discordapp.com/emojis/" + client.messageEmojis["eximiabots"].replace(/[^0-9]+/g, ''));
|
||||
|
||||
interaction.reply({
|
||||
embeds: [embed],
|
||||
ephemeral: true
|
||||
});
|
||||
|
||||
switch(action){
|
||||
case "0":
|
||||
process.emit('SIGINT');
|
||||
break;
|
||||
case "4":
|
||||
client.user.setStatus('idle');
|
||||
setTimeout(function () {
|
||||
client.funcs.saveRadios(client);
|
||||
}, 5000);
|
||||
client.user.setStatus('online');
|
||||
break;
|
||||
case "5":
|
||||
client.user.setStatus('idle');
|
||||
let guilds = await client.guilds.fetch();
|
||||
setTimeout(function () {
|
||||
client.funcs.restoreRadios(client, guilds);
|
||||
}, 5000);
|
||||
client.user.setStatus('online');
|
||||
break;
|
||||
case "6":
|
||||
client.user.setStatus('idle');
|
||||
require(`../commands.js`).execute(client);
|
||||
client.user.setStatus('online');
|
||||
break;
|
||||
case "8":
|
||||
client.user.setStatus('dnd');
|
||||
break;
|
||||
case "9":
|
||||
client.user.setStatus('online');
|
||||
break;
|
||||
default:
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
if(!client.stations) {
|
||||
message.errorToGetPlaylist = client.messages.errorToGetPlaylist.replace("%client.config.supportGuild%", client.config.supportGuild);
|
||||
return interaction.reply(client.messageEmojis["error"] + message.errorToGetPlaylist);
|
||||
}
|
||||
|
||||
let currentRadios = client.radio.keys();
|
||||
let radio = currentRadios.next();
|
||||
let stoppedRadios = "";
|
||||
|
||||
client.user.setStatus('dnd');
|
||||
|
||||
while (!radio.done) {
|
||||
let currentRadio = client.radio.get(radio.value);
|
||||
currentRadio.guild = client.datastore.getEntry(radio.value).guild;
|
||||
|
||||
if(currentRadio){
|
||||
client.funcs.statisticsUpdate(client, currentRadio.guild, currentRadio);
|
||||
currentRadio.connection?.destroy();
|
||||
currentRadio.audioPlayer?.stop();
|
||||
currentRadio.message?.delete();
|
||||
client.radio.delete(radio.value);
|
||||
stoppedRadios += "-" + radio.value + ": " + currentRadio.guild.name + "\n";
|
||||
}
|
||||
radio = currentRadios.next();
|
||||
}
|
||||
|
||||
const embed = new Discord.MessageEmbed()
|
||||
.setTitle(client.messages.maintenanceTitle)
|
||||
.setThumbnail("https://cdn.discordapp.com/emojis/" + client.messageEmojis["maintenance"].replace(/[^0-9]+/g, ''))
|
||||
.setColor(client.config.embedColor)
|
||||
.setDescription("Stopped all radios" + "\n" + stoppedRadios)
|
||||
.setImage('https://waren.io/berriabot-temp-sa7a36a9xm6837br/images/empty-3.png')
|
||||
.setFooter(client.messages.footerText, "https://cdn.discordapp.com/emojis/" + client.messageEmojis["eximiabots"].replace(/[^0-9]+/g, ''));
|
||||
|
||||
interaction.reply({
|
||||
embeds: [embed],
|
||||
ephemeral: true
|
||||
});*/
|
||||
|
||||
}
|
||||
};
|
Loading…
Reference in New Issue
Block a user