Minecraftstats is an API wrapper for the Minecraft server Hypixel. The library only currently allows the user to get duel and bedwars stats.
using pip
pip install minecraftstats
using setup.py to install
git clone https://github.com/justbennnn/minecraftstats.git
cd minecraftstats
python setup.py install
Important: An API key can be obtained by logging onto the Hypixel server, and typing /api new
.
Note: The main framework for this project is Pydantic.
Side Note: Any stats that return hearts are measured in halves.
This example shows how to access general data from the Hypixel lobby.
import minecraftstats as ms
ms.set_username("username") #the username for the account that you want to get the stats from
ms.set_api_key("your_api_key")
stats = ms.get_user_stats()
print(list(stats.general.__fields__.keys())) #show all available attributes for general stats
first_login = stats.general.first_login #returns a datetime object
print("First login (day/month/year):", str(first_login.day) + "/" + str(first_login.month) + "/" + str(first_login.year))
print("Achievements:", stats.general.achievement_points)
print("Hypixel level:", stats.general.level)
The next set of examples will show how to get stats from different game modes.
import minecraftstats as ms
ms.set_username("username") #the username for the account that you want to get the stats from
ms.set_api_key("your_api_key")
stats = ms.get_user_stats()
print(list(stats.overall_duels.__fields__.keys())) #show all available functions for overall_duels
print("Total wins:", stats.overall_duels.wins)
print("Total kills:", stats.overall_duels.kills)
print("Most recent game mode played:", stats.overall_duels.recent_games[0])
The best way to retrieve stats is by creating a variable which uses ms.get_user_stats()
to get the Hypixel
user's data, and then accessing different stats as attributes to the variable.
The next examples show how those attributes can be accessed.
print(list(stats.uhc_duels.__fields__.keys())) #show all available stats for uhc_duels
print("UHC wins:", stats.uhc_duels.wins)
print("Best UHC winstreak:", stats.uhc_duels.best_winstreak)
print("UHC golden apples eaten", stats.uhc_duels.golden_apples_eaten)
print(list(stats.overall_bedwars.__fields__.keys())) #show all available functions for overall_bedwars
print("Total wins:", stats.overall_bedwars.wins)
print("Total kills:", stats.overall_bedwars.kills)
print("Total beds broken:", stats.overall_bedwars.beds_broken)
As shown above, all of the key concepts are the same as the duels stats example.
print(list(stats.practice_bedwars.__fields__.keys())) #show all available functions for practice_bedwars
print("Bridging record:", stats.practice_bedwars.records.bridging_record)
print("Bridging blocks placed:", stats.practice_bedwars.bridging.blocks_placed)
print("Successful MLG attempts:",stats.practice_bedwars.mlg.successful_attempts)
print(list(stats.overall_skywars.__fields__.keys()))
print("Wins:", stats.overall_skywars.wins)
print("Games played:", stats.overall_skywars.games_played)
print("Coins:", stats.overall_skywars.coins)
- Capture The Flag Trios Duels stats added.
-
Skywars stats updates:
- Created a Solo Skywars stats class.
- Added a Skywars level stat.
-
Added more stats to the General stats file.
-
Created more efficient models.
-
Added the following Bedwars stats classes:
- Solo
- Duos
- Trios
- Squads
- Four Versus Four
-
Added the following Duels stats classes:
- OP Doubles
- UHC Meetup(Deathmatch)
-
The API link now uses the user's uuid instead of player name.
-
Created a General Hypixel stats file.
-
Removed unnecessary imports from
__init__.py
. -
Updated annotations on several files.
-
Added
mojang
library torequirements.txt
.
- Fixed Practice stats bug.
- Added UHC and Bridge double stats.
- Added Bedwars cosmetic stats.
- Added Bedwars practice stats.
- Small changes to
utils.py
.
- Added
StatsModel
class toutils.py
.
- The user no longer has to create an instance of the class model.
- Fixed bridge_duel suffix typo.
- Fixed kwarg filter error.
- Created stats model and kwarg filter(for prefixes/suffixes).
- Created requirements.txt.
- Created CHANGELOG.
- Added SkyWars duel stats.
- Changed mainframe to
Pydantic
. - Removed the
available_functions
variables.