Converts usernames into UUIDs using the Mojang API and records it. Generates a list of the latest usernames based on those UUIDs.
This project was last updated in March 2022. Some packages/services such as DiscordJS or the Mojang API may have changed. To reproduce, changes may be needed. Moreover, this project is designed for Minecraft Java Edition. Using this in other games or versions of MC may not work.
- Proxy Support: Requests are sent out via proxy to mitigate API IP rate limits.
- Efficient Generation: Requests leverage async promises to reduce generation time. Custom three-level system handles proxies, batches, and individual requests.
- Configurations: Set API limits, concurrency limits, error thresholds, etc. depending on current specs of providers/systems.
All services are either free or offer freemium.
All variables, including Config variables, MUST be specified or else the system will not start at all.
- MONGODB_URI - Database URI provided by MongoDB
- WEBSHARE_PROXY_API_KEY - API Key provided by Webshare
- DISCORD_TOKEN - Application Token provided by Discord
- MONGODB_DATABASE_NAME - Name of the MongoDB Database
- MONGODB_COLLECTION_NAME - Name of the Collection inside the Database
- DISCORD_FILE_CHANNEL_ID - Name of the Channel inside of a Discord Server for the Generated list to be sent to.
- GENERATE_FILE_NAME - Name of the file containing the generated list.
- WEBSHARE_PROXY_CONCURRENCY_LIMIT - # of Simultaenous Requests for a each proxy (should be 50 by default)
- MOJANG_API_LIMIT - # of Allowed requests per IP
- MOJANG_API_TIMEOUT - Time in seconds of timeout when requests are reached.
- GENERATE_ERROR_LIMIT - Threshold for # of allowable errors before the list generation stops.
Run the following commands:
npm install
npm start
/a {player: username/uuid}
- Adds a player; can be a plain username or direct uuid.
/d {player: username/uuid}
- Deletes a player; can be a plain username or direct uuid.
/c
- Generates a list based on the current database.