const fs = require("fs");
const { SlashCommandBuilder, EmbedBuilder } = require("discord.js");
function filtrarDadosComPalavraChave(objetos, palavraChave, resultados) {
objetos.forEach((objeto) => {
if (objeto.children) {
filtrarDadosComPalavraChave(objeto.children, palavraChave, resultados);
} else {
// Verifique se as propriedades 'text' e 'reference' existem antes de acessá-las
if (
objeto.text &&
objeto.reference &&
(objeto.text.includes(palavraChave) ||
objeto.reference.includes(palavraChave))
) {
resultados.push(objeto);
}
}
});
}
function carregarDados() {
const dadosPadrao = require("../JSONS/rules.json");
const dadosMas = require("../JSONS/rules_ma.json");
const dadosMagic = require("../JSONS/rules_m.json");
const dadosCombinados = [
...dadosPadrao.rows,
...dadosMas.rows,
...dadosMagic.rows,
];
return dadosCombinados;
}
module.exports = {
data: new SlashCommandBuilder()
.setName("rules")
.setDescription("Verificar página relacionada com a regra.")
.addStringOption((option) =>
option
.setName("rule")
.setDescription("A palavra-chave para pesquisa.")
.setRequired(true)
),
async execute(interaction) {
const palavraChave = interaction.options.getString("rule");
const dados = carregarDados();
const resultados = [];
filtrarDadosComPalavraChave(dados, palavraChave, resultados);
if (resultados.length === 0) {
const embed = new EmbedBuilder()