HiddenPhox/src/lib/guildSettings.js

49 lines
982 B
JavaScript

const {getGuildData, setGuildData} = require("./guildData.js");
const flags = Object.freeze({
codePreviews: 1 << 0,
tweetUnrolling: 1 << 1,
fedimbed: 1 << 2,
});
async function getFlags(guildId) {
const value = await getGuildData(guildId, "settings_flags", 0);
const out = {};
for (const key in flags) {
out[key] = (value & flags[key]) !== 0;
}
return out;
}
async function hasFlag(guildId, key) {
return (
((await getGuildData(guildId, "settings_flags", 0)) & flags[key]) !== 0
);
}
async function enableFlag(guildId, key) {
let value = await getGuildData(guildId, "settings_flags", 0);
value |= flags[key];
await setGuildData(guildId, "settings_flags", value);
}
async function disableFlag(guildId, key) {
let value = await getGuildData(guildId, "settings_flags", 0);
value ^= flags[key];
await setGuildData(guildId, "settings_flags", value);
}
module.exports = {
flags,
getFlags,
hasFlag,
enableFlag,
disableFlag,
};