utility: add user flags dumping command
This commit is contained in:
parent
c84d592416
commit
7b0e6fbc31
2 changed files with 59 additions and 0 deletions
|
@ -27,5 +27,6 @@ module.exports = {
|
|||
},
|
||||
globals: {
|
||||
hf: true,
|
||||
BigInt: true, // lol eslint
|
||||
},
|
||||
};
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in a new issue