Add maintenance mode

This commit is contained in:
2022-09-19 09:02:42 +02:00
parent 0afedc86e5
commit fc45908419
2 changed files with 17 additions and 2 deletions

View File

@@ -20,6 +20,7 @@ module.exports = {
{ name: 'bot', value: 'bot' }, { name: 'bot', value: 'bot' },
{ name: 'reset_cd', value: 'reset_cd' }, { name: 'reset_cd', value: 'reset_cd' },
{ name: 'add_xp', value: 'add_xp' }, { name: 'add_xp', value: 'add_xp' },
{ name: 'toggle_maintenance', value: 'toggle_maintenance' },
) )
) )
.addStringOption((option) => .addStringOption((option) =>
@@ -111,6 +112,14 @@ module.exports = {
ephemeral: false ephemeral: false
}); });
break; break;
case "toggle_maintenance":
let maintenance = await GeneralUtils.getBotProperty("maintenance");
await GeneralUtils.setBotProperty("maintenance", !maintenance);
interaction.reply({
content: `Maintenance mode is now ${!maintenance}`,
ephemeral: false
});
break;
default: default:
interaction.reply({ interaction.reply({
content: `Your permission level is ${await UserUtils.getPermissionLevel(interaction.member)}`, content: `Your permission level is ${await UserUtils.getPermissionLevel(interaction.member)}`,

View File

@@ -2,11 +2,18 @@ require("dotenv").config();
const { REST } = require("@discordjs/rest"); const { REST } = require("@discordjs/rest");
const { Routes } = require("discord-api-types/v10") const { Routes } = require("discord-api-types/v10")
const { Guild, User } = require("../models"); const { Guild, User } = require("../models");
const { UserUtils } = require("../util"); const { UserUtils, GeneralUtils } = require("../util");
module.exports = { module.exports = {
name: "interactionCreate", name: "interactionCreate",
async execute (interaction) { async execute (interaction) {
let isMaintenance = await GeneralUtils.getBotProperty("maintenance");
let permissionLevel = await UserUtils.getPermissionLevel(interaction.member);
if (isMaintenance && permissionLevel < 2) {
return interaction.reply({ content: "The bot is currently undergoing maintenance. Please try again later.", ephemeral: true });
}
let isRegistered = await UserUtils.registrationCheck(interaction); let isRegistered = await UserUtils.registrationCheck(interaction);
if (!isRegistered) return; if (!isRegistered) return;
console.log("User is registered"); console.log("User is registered");
@@ -41,7 +48,6 @@ module.exports = {
//check if user has permissions to run the command //check if user has permissions to run the command
//TODO: pass down this user object to avoid duplicate queries //TODO: pass down this user object to avoid duplicate queries
let user = await UserUtils.getUserByDiscordId(interaction.member.id); let user = await UserUtils.getUserByDiscordId(interaction.member.id);
let permissionLevel = await UserUtils.getPermissionLevel(interaction.member);
if (command.permissionLevel > permissionLevel) { if (command.permissionLevel > permissionLevel) {
interaction.reply({ interaction.reply({
content: `You do not have permission to run this command`, content: `You do not have permission to run this command`,