Skip to content

Instantly share code, notes, and snippets.

@crabdancing
Created October 17, 2020 12:01
Show Gist options
  • Select an option

  • Save crabdancing/37125dad2ef81f00f5face5cef811737 to your computer and use it in GitHub Desktop.

Select an option

Save crabdancing/37125dad2ef81f00f5face5cef811737 to your computer and use it in GitHub Desktop.
NBT inventory scanner
#!/usr/bin/env python3
# Copyleft (C) Alexandria Pettit 2020
# Bit of trash code to automatically scan a collection of minecraft world directories
# for a NBT item in all player inventories.
# Pretty simple :)
import nbtlib
from pathlib import Path
def scanPlayerNBT(path):
nbt = nbtlib.load(path)
for item in nbt.root['Inventory']:
if 'computer' in item['id']:
print(f'Item {item["id"]} found in {path}!!!!!')
def main():
for world_path in Path('.').iterdir():
print(f'Scanning world {world_path}')
try:
try:
for player_dat_file in (world_path / 'playerdata').iterdir():
scanPlayerNBT(player_dat_file)
except NotADirectoryError:
print('Path is not a directory! Skipping...')
continue
except FileNotFoundError:
print('Couldn\'t find file! Skipping...')
continue
if __name__ == '__main__':
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment