utility: add user flags dumping command

This commit is contained in:
Cynthia Foxwell 2021-06-21 22:22:32 -06:00
parent c84d592416
commit 7b0e6fbc31
2 changed files with 59 additions and 0 deletions

View File

@ -27,5 +27,6 @@ module.exports = {
},
globals: {
hf: true,
BigInt: true, // lol eslint
},
};

View File

@ -236,3 +236,61 @@ snowflake.callback = function (msg, line) {
}
};
hf.registerCommand(snowflake);
const USER_FLAGS = [
"STAFF",
"PARTNER",
"HYPESQUAD",
"BUG_HUNTER_LEVEL_1",
"MFA_SMS",
"PREMIUM_PROMO_DISMISSED",
"HYPESQUAD_ONLINE_HOUSE_1",
"HYPESQUAD_ONLINE_HOUSE_2",
"HYPESQUAD_ONLINE_HOUSE_3",
"PREMIUM_EARLY_SUPPORTER",
"TEAM_PSEUDO_USER",
"<Internal Application (Partner, etc) Flag>",
"SYSTEM",
"HAS_UNREAD_URGENT_MESSAGES",
"BUG_HUNTER_LEVEL_2",
"UNDERAGE_DELETED",
"VERIFIED_BOT",
"VERIFIED_DEVELOPER",
"CERTIFIED_MODERATOR",
];
const flagdump = new Command("flagdump");
flagdump.category = CATEGORY;
flagdump.helpText = "Dumps Discord user flags.";
flagdump.usage = "[flags]";
flagdump.callback = function (msg, line) {
const num = parseInt(line);
if (!isNaN(num)) {
const bits = num.toString(2);
const splitBits = bits.split("").reverse();
const reassignedBits = {};
for (const shift in splitBits) {
reassignedBits[shift] = splitBits[shift];
}
const flags = Object.keys(reassignedBits).filter(
(bit) => reassignedBits[bit] == 1
);
let out = "```\n";
for (const flag of flags) {
out +=
(USER_FLAGS[flag] || "<Undocumented Flag>") +
` (1 << ${flag}, ${1n << BigInt(flag)})\n`;
}
out += "```";
return out;
} else {
return "Argument provided is not a number.";
}
};
hf.registerCommand(flagdump);