47 lines
1.7 KiB
JavaScript
47 lines
1.7 KiB
JavaScript
const { SlashCommandBuilder, SlashCommandStringOption } = require('discord.js');
|
|
const { DebugBuilder } = require("../utilities/debugBuilder");
|
|
const { BufferToJson } = require("../utilities/utils");
|
|
const log = new DebugBuilder("server", "customSlashCommandBuilder");
|
|
|
|
const { getAllNodes, getAllNodesSync } = require("../utilities/mysqlHandler");
|
|
|
|
exports.customSlashCommandBuilder = class customSlashCommandBuilder extends SlashCommandBuilder {
|
|
constructor() {
|
|
super();
|
|
}
|
|
|
|
async addAllSystemPresetOptions() {
|
|
const nodeObjects = await new Promise((recordResolve, recordReject) => {
|
|
getAllNodes((nodeRows) => {
|
|
recordResolve(nodeRows);
|
|
});
|
|
});
|
|
log.DEBUG("Node objects: ", nodeObjects);
|
|
var presetsAvailable = [];
|
|
for (const nodeObject of nodeObjects) {
|
|
log.DEBUG("Node object: ", nodeObject);
|
|
for (const presetName in nodeObject.nearbySystems) presetsAvailable.push(nodeObject.nearbySystems[presetName]);
|
|
}
|
|
|
|
log.DEBUG("All Presets available: ", presetsAvailable);
|
|
|
|
// Remove duplicates
|
|
presetsAvailable = [...new Set(presetsAvailable)];
|
|
log.DEBUG("DeDuped Presets available: ", presetsAvailable);
|
|
|
|
this.addStringOption(option => option.setName("preset").setRequired(true).setDescription("The channels"));
|
|
for (const preset of presetsAvailable){
|
|
log.DEBUG("Preset: ", preset);
|
|
this.options[0].addChoices({
|
|
'name': String(preset),
|
|
'value': String(preset)
|
|
});
|
|
}
|
|
log.DEBUG("Preset Options: ", this);
|
|
|
|
return this;
|
|
}
|
|
|
|
}
|
|
|