Spot/model/messages.js
2021-10-20 11:45:50 -04:00

52 lines
1.2 KiB
JavaScript

let names = {};
let messages = {};
const genRandomId = () => Math.ceil(Math.random() * 1000);
const load = () => require("../messages").forEach(msg => {
let id = genRandomId();
while (messages[id])
id = genRandomId();
msg.names.forEach(name => names[name] = id);
messages[id] = msg;
});
load();
// interface Message {
// names string[];
// description string;
// title string;
// text string;
// }
module.exports = {
get names() {
return names;
},
get messages() {
return messages;
},
get: (name) => messages[names[name]],
getList: () => Object.keys(messages).map(msg => ({ name: messages[msg].names[0], value: messages[msg].description })),
getEmbed: (name) => {
let msg = messages[names[name]];
if (!msg) return;
return {
color: "A95B44",
author: {
name: msg.title,
iconURL: bot.user.displayAvatarURL({ dynamic: true }),
},
description: msg.text,
}
},
reload: () => {
names = {};
messages = {};
delete require.cache[require.resolve("../messages")];
load();
}
}