aboutsummaryrefslogtreecommitdiff
path: root/data-code-generator/main.py
diff options
context:
space:
mode:
authormat <github@matdoes.dev>2022-05-07 16:54:02 -0500
committermat <github@matdoes.dev>2022-05-07 16:54:02 -0500
commit9f496a89b5af63fef1a60276d6f7cf4d79c315e2 (patch)
treeea5716049ab6c23f0d39a46565ef524e39df9c9f /data-code-generator/main.py
parent71acb5b3363fe8a7a9ac09691de01d7342db3ad1 (diff)
downloadazalea-drasl-9f496a89b5af63fef1a60276d6f7cf4d79c315e2.tar.xz
basic code generator
Diffstat (limited to 'data-code-generator/main.py')
-rw-r--r--data-code-generator/main.py41
1 files changed, 41 insertions, 0 deletions
diff --git a/data-code-generator/main.py b/data-code-generator/main.py
new file mode 100644
index 00000000..50550d76
--- /dev/null
+++ b/data-code-generator/main.py
@@ -0,0 +1,41 @@
+from mappings import Mappings
+import packetcodegen
+import requests
+import json
+import os
+
+# enable this if you already have the burger.json and don't want to wait
+SKIP_BURGER = True
+
+print(
+ f'\033[92mFinding Minecraft version...\033[m')
+version_manifest_data = requests.get(
+ 'https://launchermeta.mojang.com/mc/game/version_manifest.json').json()
+minecraft_version = version_manifest_data['latest']['snapshot']
+print(
+ f'\033[92mUsing \033[1m{minecraft_version}..\033[m')
+package_url = next(
+ filter(lambda v: v['id'] == minecraft_version, version_manifest_data['versions']))['url']
+package_data = requests.get(package_url).json()
+client_jar_url = package_data['downloads']['client']['url']
+
+if not SKIP_BURGER:
+ print('\033[92mDownloading Burger...\033[m')
+ r = os.system('git clone https://github.com/pokechu22/Burger')
+ os.system('git pull')
+ print('\033[92mDownloading client jar...\033[m')
+ with open('client.jar', 'wb') as f:
+ f.write(requests.get(client_jar_url).content)
+
+ print(f'\033[92mExtracting data with Burger...\033[m')
+ os.system('cd Burger && python munch.py ../client.jar --output ../burger.json')
+
+client_mappings_url = package_data['downloads']['client_mappings']['url']
+mappings = Mappings.parse(requests.get(client_mappings_url).text)
+
+
+with open('burger.json', 'r') as f:
+ burger_data = json.load(f)
+
+burger_packets_data = burger_data[0]['packets']['packet']
+packetcodegen.generate(burger_packets_data, mappings)