swapped to a new db locally hosted
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
const { SlashCommandBuilder, ActionRowBuilder, ButtonBuilder, ButtonStyle, PermissionsBitField } = require('discord.js');
|
||||
const { readDb, writeDb } = require('../../backend/db.js');
|
||||
const api = require('../api');
|
||||
|
||||
module.exports = {
|
||||
name: 'manage-commands',
|
||||
@@ -15,11 +15,9 @@ module.exports = {
|
||||
return;
|
||||
}
|
||||
|
||||
const db = readDb();
|
||||
if (!db[interaction.guildId]) db[interaction.guildId] = {};
|
||||
if (!db[interaction.guildId].commandToggles) db[interaction.guildId].commandToggles = {};
|
||||
|
||||
const toggles = db[interaction.guildId].commandToggles;
|
||||
const existingSettings = (await api.getServerSettings(interaction.guildId)) || {};
|
||||
if (!existingSettings.commandToggles) existingSettings.commandToggles = {};
|
||||
let toggles = existingSettings.commandToggles;
|
||||
// Include all loaded commands so simple command modules (no SlashCommandBuilder) like
|
||||
// `ping` are also listed. Filter for objects with a name for safety.
|
||||
const commands = Array.from(interaction.client.commands.values()).filter(cmd => cmd && cmd.name);
|
||||
@@ -67,9 +65,19 @@ module.exports = {
|
||||
|
||||
collector.on('collect', async i => {
|
||||
const cmdName = i.customId.replace('toggle_cmd_', '');
|
||||
toggles[cmdName] = !(toggles[cmdName] !== false);
|
||||
writeDb(db);
|
||||
|
||||
const newVal = !(toggles[cmdName] !== false);
|
||||
// persist via backend API
|
||||
try {
|
||||
await api.toggleCommand(interaction.guildId, cmdName, newVal);
|
||||
// fetch authoritative list to rebuild buttons
|
||||
const fresh = await api.getCommands(interaction.guildId);
|
||||
toggles = {};
|
||||
for (const c of fresh) {
|
||||
toggles[c.name] = c.enabled;
|
||||
}
|
||||
} catch (e) {
|
||||
console.error('Error persisting command toggle:', e);
|
||||
}
|
||||
// rebuild buttons to reflect new state
|
||||
const updatedRows = [];
|
||||
let r = new ActionRowBuilder();
|
||||
|
||||
Reference in New Issue
Block a user