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: {
 | 
					  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…
	
	Add table
		Add a link
		
	
		Reference in a new issue