utility: add user flags dumping command
This commit is contained in:
parent
c84d592416
commit
7b0e6fbc31
|
@ -27,5 +27,6 @@ module.exports = {
|
||||||
},
|
},
|
||||||
globals: {
|
globals: {
|
||||||
hf: true,
|
hf: true,
|
||||||
|
BigInt: true, // lol eslint
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
|
@ -236,3 +236,61 @@ snowflake.callback = function (msg, line) {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
hf.registerCommand(snowflake);
|
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 New Issue