minecraft Package

minecraft Package

Minecraft-related NBTParse modules.

The modules in this package all relate to high-level files and data structures. For instance, nbtparse.minecraft.level contains the LevelFile class, which can read and write the level.dat file in a standard Minecraft save.

block_ids Module

Module for looking up blocks, items, entities, etc. by name or number.

Lookups should be performed by whatever Namespace object is appropriate. The vanilla namespace lives in VANILLA, but some mods add their own custom blocks.

class nbtparse.minecraft.block_ids.BlockID(*, name: str=None, block_number: int=None, light: int=0, transparent: bool=False, opacity: int=None, physics: bool=False)[source]

Bases: object

Information about a block ID.

block_number

The number used internally when storing this block in terrain.

light

The amount of light this block emits.

name

The name of this ID, or None if no name was specified.

Named objects are renamed when placed into a namespace.

opacity

The amount of light this block impedes.

None if transparent is False.

physics

True if this block falls by itself.

rename(new_name: str) → 'BlockID'[source]

Duplicate this named object with a different name.

renumber(new_id: str) → 'BlockID'[source]

Duplicate this block ID with a different number

transparent

Whether this block is transparent.

class nbtparse.minecraft.block_ids.Namespace(contents: {<class 'str'>: <class 'nbtparse.minecraft.block_ids.BlockID'>}, numericals: {<class 'int'>: <class 'str'>})[source]

Bases: collections.abc.Mapping

A Minecraft namespace.

Namespaces associate block names and numbers with each other, and store additional information about blocks, items, and entities.

A namespace maps names and numbers to instances of the various FooID classes defined in the ids module. Iterating over a namespace will only produce the names, since every numbered block also has a name.

nbtparse.minecraft.block_ids.VANILLA = <Namespace (block_ids): 174 names>

The namespace containing all vanilla blocks.

May be None if the config file cannot be loaded.

nbtparse.minecraft.block_ids.main()[source]

Run this module as a script.

nbtparse.minecraft.block_ids.read_config(infile: io.TextIOBase) → nbtparse.minecraft.block_ids.Namespace[source]

Read a configuration file and produce a namespace dictionary.

Return a suitable argument to register_namespace().

Config file format is simple JSON, encoded in UTF-8:

{
    "stone": {
        "id": 1,
        "item_identifier": {
            "id": 1,
            "item_identifier": null,
            "max_stack": 64,
            "type": "item"
        }
        "light": 0,
        "opacity": null,
        "transparent": false,
        "type": "block"
    }
}

Null values may be omitted, except that id and type are mandatory and must not be null.

If the above format is not followed or the file is invalid JSON, a ParserError is raised.

nbtparse.minecraft.block_ids.write_config(outfile: io.TextIOBase, namespace: nbtparse.minecraft.block_ids.Namespace, *, pprint=False)[source]

Write a configuration file.

Use a format suitable for read_config(). Nulls are omitted.

entity Module

Classes for Minecraft entities.

class nbtparse.minecraft.entity.CoordinateField(nbt_name: str, has_y: bool, fractional: bool)[source]

Bases: nbtparse.semantics.fields.TupleListField

Field for a TAG_List of coordinates.

Pythonic equivalent is a tuple with two or three elements depending on whether or not Y is included. Elements may be ints or floats depending on the underlying datatype.

set_field_value(obj: object, field_name, value: (<class 'int'>, <class 'int'>, Ellipsis))[source]
class nbtparse.minecraft.entity.Entity(*args, **kwargs)[source]

Bases: nbtparse.semantics.nbtobject.NBTObject

A Minecraft entity.

Subclasses of Entity may be declared with an extra parameter like this:

class Foo(Entity, id='Foo'):
    pass

Such subclasses have an ID field attached to them automatically, with an appropriate default value.

Entities are hashable and compare equal if they have the same UUID (and the same type()).

air_ticks = ShortField('Air', default=0)
dimension = IntField('Dimension', default=0)
fall_distance = FloatField('FallDistance', default=0.0)
fire_ticks = ShortField('Fire', default=0)
id = UnicodeField('id', default='')
invulnerable = BooleanField('Invulnerable', default=False)
motion = CoordinateField('Motion', True, True)
mount = NBTObjectField('Riding', Entity, default=None)
on_ground = BooleanField('OnGround', default=False)
portal_cooldown = IntField('PortalCooldown', default=0)
pos = CoordinateField('Pos', True, True)
rotation = CoordinateField('Rotation', False, True)
uuid = UUIDField('UUIDMost', 'UUIDLeast', default=nbtparse.semantics.fields.NEW_UUID)
class nbtparse.minecraft.entity.EntityMeta(name, bases, dct, *args, id=None, namespace='', **kwargs)[source]

Bases: nbtparse.semantics.nbtobject.NBTMeta

Metaclass for entities.

The ID of the entity should be passed as a class keyword argument called id, as follows:

class FooEntity(Entity, id='namespace:foo'):
    pass

This will create a top-level field with the given string as its default value, for the entity’s ID. If the class is declared at the top level of its module, this will also register it via entity_ids, in the EntityNamespace called 'namespace'. If no namespace is specified, the empty string is assumed.

Note

The empty string namespace is reserved for use by application code. Third-party libraries should always specify a namespace. The namespace 'minecraft' is reserved for entities which exist in vanilla Minecraft.

entityfactory Module

Module for producing entity.Entity instances.

nbtparse.minecraft.entityfactory.from_nbt(nbt: nbtparse.syntax.tags.CompoundTag, *, default_class: nbtparse.semantics.nbtobject.NBTMeta=<class 'nbtparse.minecraft.entity.Entity'>, namespace: nbtparse.minecraft.entity_ids.Namespace=<Namespace (entity_ids): 58 entries>) → nbtparse.semantics.nbtobject.NBTObject[source]

Factory function for making entities and tile entities from raw NBT.

Uses appropriate subclasses (usually of Entity and TileEntity) where necessary. The choice of subclass is made via the entity_ids module, and may be altered by registering classes and modules with it.

Tries to defend against invalid input. If there is no ID or the ID is unrecognized, a warning will be logged on the module’s logger, and a plain instance of default_class is returned instead.

entity_ids Module

class nbtparse.minecraft.entity_ids.Namespace(*args, **kwargs)[source]

Bases: collections.abc.Mapping

Immutable namespace of entities.

Maps identifier strings to classes. Temporary classes are kept alive by being in the mapping.

nbtparse.minecraft.entity_ids.VANILLA = <Namespace (entity_ids): 58 entries>

The Namespace containing all vanilla entities.

nbtparse.minecraft.entity_ids.make_namespace(*modules: module) → nbtparse.minecraft.entity_ids.Namespace[source]

Return a Namespace created from the given modules.

All classes which have been declared at the top level or decorated with register_class() are included in the namespace.

nbtparse.minecraft.entity_ids.register_class(ident: str) → <built-in function callable>[source]

Decorator to register a class with the entity IDs system.

Usually called automatically from entity.EntityMeta; you should not need to call this yourself.

item Module

Classes for items and XP orbs.

class nbtparse.minecraft.item.DroppedItem(*args, **kwargs)[source]

Bases: nbtparse.minecraft.item.ItemEntity

An item dropped on the ground.

id = UnicodeField('id', default='Item')
item = NBTObjectField('Item', Item, default=None)
class nbtparse.minecraft.item.Item(*args, **kwargs)[source]

Bases: nbtparse.semantics.nbtobject.NBTObject

An inventory item.

Not an entity; only stores item-related information.

count = ByteField('Count', default=0)
damage = ShortField('Damage', default=0)
id = UnicodeField('id', default='')
slot = ByteField('Slot', default=0)
class nbtparse.minecraft.item.ItemEntity(*args, **kwargs)[source]

Bases: nbtparse.minecraft.entity.Entity

Superclass of dropped item and XP orbs.

age = ShortField('Age', default=0)
health = ShortField('Health', default=0)
class nbtparse.minecraft.item.XPOrb(*args, **kwargs)[source]

Bases: nbtparse.minecraft.item.ItemEntity

An experience orb.

id = UnicodeField('id', default='XPOrb')
value = ShortField('Value', default=0)

level Module

class nbtparse.minecraft.level.LevelFile(*args, **kwargs)[source]

Bases: nbtparse.semantics.filetype.GzippedNBTFile

Represents a level.dat file.

cheats = BooleanField('allowCommands', default=False)
features = BooleanField('MapFeatures', default=False)
game_type = IntField('GameType', default=0)
generator = UnicodeField('generatorName', default='')
generator_options = UnicodeField('generatorOptions', default='')
generator_version = IntField('generatorVersion', default=0)
hardcore = BooleanField('hardcore', default=False)
initialized = BooleanField('initialized', default=False)
last_played = UTCField('LastPlayed', default=datetime.datetime(1970, 1, 1, 0, 0, tzinfo=datetime.timezone.utc))
name = UnicodeField('LevelName', default='')
player = NBTObjectField('Player', Player, default=None)
static prepare_load(nbt: nbtparse.syntax.tags.CompoundTag) → nbtparse.syntax.tags.CompoundTag[source]

Unwrap the argument.

static prepare_save(nbt: nbtparse.syntax.tags.CompoundTag) → nbtparse.syntax.tags.CompoundTag[source]

Wrap the argument in a singleton CompoundTag.

rain_time = IntField('rainTime', default=0)
raining = BooleanField('raining', default=False)
rules = <SingleField: nbt_name='GameRules', default=None>
seed = LongField('RandomSeed', default=0)
size = LongField('SizeOnDisk', default=0)
spawn = <TupleMultiField: nbt_names=('SpawnX', 'SpawnY', 'SpawnZ'), default=(0, 0, 0)>
thunder_time = IntField('thunderTime', default=0)
thundering = BooleanField('thundering', default=False)
ticks = LongField('Time', default=0)
time_of_day = LongField('DayTime', default=0)
version = IntField('version', default=0)
class nbtparse.minecraft.level.RulesField(nbt_name: str, *, default: {<class 'str'>: <class 'object'>}=None)[source]

Bases: nbtparse.semantics.fields.HomogenousDictField

Field for the dictionary of game rules.

item_from_python(key, value)[source]
item_to_python(key, value)[source]

mobs Module

All the mobs in vanilla minecraft.

class nbtparse.minecraft.mobs.Abilities(*args, **kwargs)[source]

Bases: nbtparse.semantics.nbtobject.NBTObject

A set of abilities for a player.

fly_speed = FloatField('flySpeed', default=0.0)
flying = BooleanField('flying', default=False)
instabuild = BooleanField('instabuild', default=False)
invulnerable = BooleanField('invulnerable', default=False)
may_build = BooleanField('mayBuild', default=False)
may_fly = BooleanField('mayfly', default=False)
walk_speed = FloatField('walkSpeed', default=0.0)
class nbtparse.minecraft.mobs.Attribute(*args, **kwargs)[source]

Bases: nbtparse.semantics.nbtobject.NBTObject

An attribute, usually attached to a mob.

base = DoubleField('Base', default=0.0)
modifiers = ObjectListField('Modifiers', Modifier, default=())
name = UnicodeField('Name', default='')
class nbtparse.minecraft.mobs.Bat(*args, **kwargs)[source]

Bases: nbtparse.minecraft.mobs.Mob

A bat.

A small flying mob. Drops nothing.

hanging = BooleanField('BatFlags', default=False)
id = UnicodeField('id', default='Bat')
class nbtparse.minecraft.mobs.Blaze(*args, **kwargs)[source]

Bases: nbtparse.minecraft.mobs.Mob

A blaze.

Flying ranged mob that shoots fire.

id = UnicodeField('id', default='Blaze')
class nbtparse.minecraft.mobs.Breedable(*args, **kwargs)[source]

Bases: nbtparse.minecraft.mobs.Mob

A mob which can be bred.

age = IntField('Age', default=0)
in_love = IntField('InLove', default=0)
class nbtparse.minecraft.mobs.CaveSpider(*args, **kwargs)[source]

Bases: nbtparse.minecraft.mobs.Mob

A cave spider.

A small poisonous spider.

id = UnicodeField('id', default='CaveSpider')
class nbtparse.minecraft.mobs.Chicken(*args, **kwargs)[source]

Bases: nbtparse.minecraft.mobs.Breedable

A chicken.

Small mob. Lays eggs and drops feathers.

id = UnicodeField('id', default='Chicken')
class nbtparse.minecraft.mobs.Cow(*args, **kwargs)[source]

Bases: nbtparse.minecraft.mobs.Breedable

A cow.

Large mob. Produces milk. Drops leather and beef.

id = UnicodeField('id', default='Cow')
class nbtparse.minecraft.mobs.Creeper(*args, **kwargs)[source]

Bases: nbtparse.minecraft.mobs.Mob

The infamous creeper.

A 2-block tall hostile mob with an explosive attack that destroys blocks.

explosion_radius = ByteField('ExplosionRadius', default=0)
fuse = ShortField('Fuse', default=0)
id = UnicodeField('id', default='Creeper')
powered = BooleanField('powered', default=False)
class nbtparse.minecraft.mobs.EnderDragon(*args, **kwargs)[source]

Bases: nbtparse.minecraft.mobs.Mob

The Ender Dragon.

The final boss.

id = UnicodeField('id', default='EnderDragon')
class nbtparse.minecraft.mobs.Enderman(*args, **kwargs)[source]

Bases: nbtparse.minecraft.mobs.Mob

An enderman.

Endermen are 3-block tall neutral mobs that can carry blocks around.

carried = ShortField('carried', default=0)
carried_data = ShortField('carriedData', default=0)
id = UnicodeField('id', default='Enderman')
class nbtparse.minecraft.mobs.Ghast(*args, **kwargs)[source]

Bases: nbtparse.minecraft.mobs.Mob

A ghast.

A large floating mob that shoots fireballs and breaks blocks.

id = UnicodeField('id', default='Ghast')
class nbtparse.minecraft.mobs.Giant(*args, **kwargs)[source]

Bases: nbtparse.minecraft.mobs.Mob

A giant.

A very large zombie.

Doesn’t spawn naturally.

id = UnicodeField('id', default='Giant')
class nbtparse.minecraft.mobs.HealthField(short_name: str, float_name: str, default: numbers.Real=0)[source]

Bases: nbtparse.semantics.fields.MultiField

A field for a mob’s health.

static from_python(value: numbers.Real) -> (<class 'nbtparse.syntax.tags.ShortTag'>, <class 'nbtparse.syntax.tags.FloatTag'>)[source]
static to_python(short_tag: nbtparse.syntax.tags.ShortTag, float_tag: nbtparse.syntax.tags.FloatTag) → numbers.Real[source]
class nbtparse.minecraft.mobs.Horse(*args, **kwargs)[source]

Bases: nbtparse.minecraft.mobs.Breedable

A horse.

A tall rideable mob.

armor = NBTObjectField('ArmorItem', Item, default=None)
bred = BooleanField('Bred', default=False)
chested = BooleanField('ChestedHorse', default=False)
eating = BooleanField('EatingHaystack', default=False)
has_reproduced = BooleanField('HasReproduced', default=False)
id = UnicodeField('id', default='EntityHorse')
items = ObjectListField('Items', Item, default=())
owner_name = UnicodeField('OwnerName', default='')
saddle = NBTObjectField('SaddleItem', Item, default=None)
tame = BooleanField('Tame', default=False)
temper = IntField('Temper', default=0)
type = EnumField('Type', <enum 'HorseType'>, tag_type=<class 'nbtparse.syntax.tags.IntTag'>, default=<HorseType.horse: 0>)
variant = IntField('Variant', default=0)
class nbtparse.minecraft.mobs.HorseType[source]

Bases: enum.Enum

The valid values for Horse.type.

donkey = <HorseType.donkey: 1>

Indicates a donkey.

horse = <HorseType.horse: 0>

Indicates a regular horse.

mule = <HorseType.mule: 2>

Indicates a mule.

skeleton = <HorseType.skeleton: 4>

Indicates a skeleton horse; not naturally spawned.

zombie = <HorseType.zombie: 3>

Indicates a zombie horse; not naturally spawned.

class nbtparse.minecraft.mobs.IronGolem(*args, **kwargs)[source]

Bases: nbtparse.minecraft.mobs.Mob

An iron golem.

A large defensive mob that also spawns naturally to protect villages.

id = UnicodeField('id', default='VillagerGolem')
player_created = BooleanField('PlayerCreated', default=False)
class nbtparse.minecraft.mobs.Leash(*args, **kwargs)[source]

Bases: nbtparse.semantics.nbtobject.NBTObject

A leash for a mob.

Only represents one “end” of the leash

Exactly one of uuid and coords should exist.

coords = <TupleMultiField: nbt_names=('X', 'Y', 'Z'), default=(0, 0, 0)>
uuid = UUIDField('UUIDMost', 'UUIDLeast', default=None)
class nbtparse.minecraft.mobs.MagmaCube(*args, **kwargs)[source]

Bases: nbtparse.minecraft.mobs.Slime

A magma cube.

A slime from The Nether.

id = UnicodeField('id', default='LavaSlime')
class nbtparse.minecraft.mobs.Mob(*args, **kwargs)[source]

Bases: nbtparse.minecraft.entity.Entity

A mob, in minecraft terms.

Do not instantiate directly, instead use a subclass.

absorption = FloatField('AbsorptionAmount', default=0.0)
active_effects = ObjectListField('ActiveEffects', PotionEffect, default=())
attack_ticks = ShortField('AttackTime', default=0)
attributes = ObjectListField('Attributes', Attribute, default=())
can_pickup_loot = BooleanField('CanPickUpLoot', default=False)
death_ticks = ShortField('DeathTime', default=0)
drop_chances = TupleListField('DropChances', <class 'float'>, <class 'nbtparse.syntax.tags.FloatTag'>, <ids.TAG_Float: 5>, default=(0.0, 0.0, 0.0, 0.0, 0.0))
equipment = ObjectTupleField('Equipment', <class 'nbtparse.minecraft.item.Item'>, default=())
health = HealthField('Health', 'HealthF', default=0)
hurt_ticks = ShortField('HurtTime', default=0)
leash = NBTObjectField('Leash', Leash, default=None)
leashed = BooleanField('Leashed', default=False)
name = UnicodeField('CustomName', default='')
name_visible = BooleanField('CustomNameVisible', default=False)
persistent = BooleanField('PersistenceRequired', default=False)
class nbtparse.minecraft.mobs.Modifier(*args, **kwargs)[source]

Bases: nbtparse.semantics.nbtobject.NBTObject

An attribute modifier.

amount = DoubleField('Amount', default=0.0)
name = UnicodeField('Name', default='')
operation = IntField('Operation', default=0)
uuid = UUIDField('UUIDMost', 'UUIDLeast', default=None)
class nbtparse.minecraft.mobs.Mooshroom(*args, **kwargs)[source]

Bases: nbtparse.minecraft.mobs.Breedable

A Mooshroom (mushroom-cow)

Like the cow, but produces mushroom stew instead of milk. Can be shorn into a regular cow, dropping mushrooms.

id = UnicodeField('id', default='MushroomCow')
class nbtparse.minecraft.mobs.Ocelot(*args, **kwargs)[source]

Bases: nbtparse.minecraft.mobs.Tameable, nbtparse.minecraft.mobs.Breedable

An ocelot.

A tameable mob.

cat_type = IntField('CatType', default=0)
id = UnicodeField('id', default='Ozelot')
class nbtparse.minecraft.mobs.Offer(*args, **kwargs)[source]

Bases: nbtparse.semantics.nbtobject.NBTObject

An individual villager offer.

buy = NBTObjectField('buy', Item, default=None)
buy_secondary = NBTObjectField('buyB', Item, default=None)
max_uses = IntField('maxUses', default=0)
sell = NBTObjectField('sell', Item, default=None)
uses = IntField('uses', default=0)
class nbtparse.minecraft.mobs.OfferList(*args, **kwargs)[source]

Bases: nbtparse.semantics.nbtobject.NBTObject, collections.abc.MutableSequence

List of offers a villager has.

For convenience, sequence-related functionality is redirected to self.recipes.

insert(index, value)[source]
recipes = ObjectListField('Recipes', Offer, default=())
class nbtparse.minecraft.mobs.OfferListMeta[source]

Bases: abc.ABCMeta, nbtparse.semantics.nbtobject.NBTMeta

Metaclass for OfferList.

class nbtparse.minecraft.mobs.Pig(*args, **kwargs)[source]

Bases: nbtparse.minecraft.mobs.Breedable

A pig.

A short mob that drops porkchops.

id = UnicodeField('id', default='Pig')
saddle = BooleanField('Saddle', default=False)
class nbtparse.minecraft.mobs.Player(*args, **kwargs)[source]

Bases: nbtparse.minecraft.mobs.Mob, nbtparse.semantics.filetype.GzippedNBTFile

A player, and the accompanying player.dat file.

abilities = NBTObjectField('abilities', Abilities, default=None)
dimension = IntField('Dimension', default=0)
ender_items = ObjectListField('EnderItems', Item, default=())
food_exhaustion = IntField('foodExhaustionLevel', default=0)
food_level = IntField('foodLevel', default=0)
food_saturation = IntField('foodSaturationLevel', default=0)
food_timer = IntField('foodTickTimer', default=0)
inventory = ObjectListField('Inventory', Item, default=())
mode = IntField('playerGameType', default=0)
score = IntField('Score', default=0)
selected_item_slot = IntField('SelectedItemSlot', default=0)
sleep_timer = ShortField('SleepTimer', default=0)
sleeping = BooleanField('Sleeping', default=False)
spawn = <TupleMultiField: nbt_names=('SpawnX', 'SpawnY', 'SpawnZ'), default=(0, 0, 0)>
spawn_forced = BooleanField('SpawnForced', default=False)
xp_level = IntField('XpLevel', default=0)
xp_progress = IntField('XpP', default=0)
xp_total = IntField('XpTotal', default=0)
class nbtparse.minecraft.mobs.PotionEffect(*args, **kwargs)[source]

Bases: nbtparse.semantics.nbtobject.NBTObject

A potion effect, usually attached to a mob.

ambient = BooleanField('Ambient', default=False)
amplifier = ByteField('Amplifier', default=0)
duration = IntField('Duration', default=0)
id = ByteField('id', default=0)
class nbtparse.minecraft.mobs.Sheep(*args, **kwargs)[source]

Bases: nbtparse.minecraft.mobs.Breedable

A sheep.

A mob that can be shorn for wool.

color = ByteField('Color', default=0)
id = UnicodeField('id', default='Sheep')
sheared = BooleanField('Sheared', default=False)
class nbtparse.minecraft.mobs.Silverfish(*args, **kwargs)[source]

Bases: nbtparse.minecraft.mobs.Mob

A silverfish.

Small swarming mob that hides in tile entities.

id = UnicodeField('id', default='Silverfish')
class nbtparse.minecraft.mobs.Skeleton(*args, **kwargs)[source]

Bases: nbtparse.minecraft.mobs.Mob

A skeleton.

A ranged mob with a bow and arrows.

id = UnicodeField('id', default='Skeleton')
wither = BooleanField('SkeletonType', default=False)
class nbtparse.minecraft.mobs.Slime(*args, **kwargs)[source]

Bases: nbtparse.minecraft.mobs.Mob

A slime.

A variable-sized mob which divides on death.

id = UnicodeField('id', default='Slime')
size = IntField('Size', default=0)
class nbtparse.minecraft.mobs.SnowGolem(*args, **kwargs)[source]

Bases: nbtparse.minecraft.mobs.Mob

A snow golem (snowman).

A mob that throws snowballs at hostile mobs.

id = UnicodeField('id', default='SnowMan')
class nbtparse.minecraft.mobs.Spider(*args, **kwargs)[source]

Bases: nbtparse.minecraft.mobs.Mob

A spider.

A large short mob that can climb walls.

id = UnicodeField('id', default='Spider')
class nbtparse.minecraft.mobs.Squid(*args, **kwargs)[source]

Bases: nbtparse.minecraft.mobs.Mob

A squid.

An underwater mob that drops ink sacs.

id = UnicodeField('id', default='Squid')
class nbtparse.minecraft.mobs.Tameable(*args, **kwargs)[source]

Bases: nbtparse.minecraft.mobs.Mob

A mob which can be tamed.

Horses are not tamed conventionally and are not Tameable.

owner = UnicodeField('Owner', default='')
sitting = BooleanField('Sitting', default=False)
class nbtparse.minecraft.mobs.Villager(*args, **kwargs)[source]

Bases: nbtparse.minecraft.mobs.Breedable

A villager.

A passive mob that players can trade with.

id = UnicodeField('id', default='Villager')
offers = NBTObjectField('Offers', OfferList, default=None)
profession = EnumField('Profession', <enum 'VillagerProfession'>, tag_type=<class 'nbtparse.syntax.tags.IntTag'>, default=None)
riches = IntField('Riches', default=0)
class nbtparse.minecraft.mobs.VillagerProfession[source]

Bases: enum.Enum

The valid values for Villager.profession.

butcher = <VillagerProfession.butcher: 4>

A butcher, with a white apron.

farmer = <VillagerProfession.farmer: 0>

A farmer, with a brown robe.

generic = <VillagerProfession.generic: 5>

A “generic” villager, with a green robe. Not spawned naturally.

librarian = <VillagerProfession.librarian: 1>

A librarian, with a white robe.

priest = <VillagerProfession.priest: 2>

A priest, with a purple robe.

smith = <VillagerProfession.smith: 3>

A blacksmith, with a black apron.

class nbtparse.minecraft.mobs.Witch(*args, **kwargs)[source]

Bases: nbtparse.minecraft.mobs.Mob

A witch.

A ranged mob that throws potions.

id = UnicodeField('id', default='Witch')
class nbtparse.minecraft.mobs.Wither(*args, **kwargs)[source]

Bases: nbtparse.minecraft.mobs.Mob

A wither.

A boss mob the player has to construct from wither skeletons.

id = UnicodeField('id', default='WitherBoss')
invulnerable = IntField('Invul', default=0)
class nbtparse.minecraft.mobs.Wolf(*args, **kwargs)[source]

Bases: nbtparse.minecraft.mobs.Breedable, nbtparse.minecraft.mobs.Tameable

angry = BooleanField('Angry', default=False)
collar_color = ByteField('CollarColor', default=0)
id = UnicodeField('id', default='Wolf')
class nbtparse.minecraft.mobs.Zombie(*args, **kwargs)[source]

Bases: nbtparse.minecraft.mobs.Mob

A zombie.

A mob that can convert villagers into more zombies.

conversion_time = IntField('ConversionTime', default=0)
id = UnicodeField('id', default='Zombie')
is_baby = BooleanField('IsBaby', default=False)
is_villager = BooleanField('IsVillager', default=False)
class nbtparse.minecraft.mobs.ZombiePigman(*args, **kwargs)[source]

Bases: nbtparse.minecraft.mobs.Zombie

anger = ShortField('Anger', default=0)
id = UnicodeField('id', default='PigZombie')

projectile Module

Classes for projectiles, such as snowballs and arrows.

class nbtparse.minecraft.projectile.AbstractFireball(*args, **kwargs)[source]

Bases: nbtparse.minecraft.projectile.Projectile

Any fireball-like thing.

direction = TupleListField('direction', <class 'float'>, <class 'nbtparse.syntax.tags.DoubleTag'>, <ids.TAG_Double: 6>, default=(0.0, 0.0, 0.0))
class nbtparse.minecraft.projectile.Arrow(*args, **kwargs)[source]

Bases: nbtparse.minecraft.projectile.Projectile

An arrow.

Fired by a player or a skeleton.

damage = DoubleField('damage', default=0.0)
id = UnicodeField('id', default='Arrow')
in_data = ByteField('inData', default=0)
pickup = IntField('pickup', default=0)
player = BooleanField('player', default=False)
class nbtparse.minecraft.projectile.Egg(*args, **kwargs)[source]

Bases: nbtparse.minecraft.projectile.Projectile

A thrown egg.

id = UnicodeField('id', default='Egg')
class nbtparse.minecraft.projectile.Fireball(*args, **kwargs)[source]

Bases: nbtparse.minecraft.projectile.AbstractFireball

A regular fireball.

id = UnicodeField('id', default='Fireball')
class nbtparse.minecraft.projectile.Projectile(*args, **kwargs)[source]

Bases: nbtparse.minecraft.entity.Entity

A projectile.

A fast-moving entity like an arrow or snowball.

coords = <TupleMultiField: nbt_names=('xTile', 'yTile', 'zTile'), default=(0, 0, 0)>
in_ground = BooleanField('inGround', default=False)
in_tile = ByteField('inTile', default=0)
shake = ByteField('shake', default=0)
class nbtparse.minecraft.projectile.SmallFireball(*args, **kwargs)[source]

Bases: nbtparse.minecraft.projectile.AbstractFireball

A small fireball.

id = UnicodeField('id', default='SmallFireball')
class nbtparse.minecraft.projectile.Thrown(*args, **kwargs)[source]

Bases: nbtparse.minecraft.projectile.Projectile

Anything thrown by players (and only players).

owner_name = UnicodeField('ownerName', default='')
class nbtparse.minecraft.projectile.ThrownEnderpearl(*args, **kwargs)[source]

Bases: nbtparse.minecraft.projectile.Thrown

A thrown enderpearl.

Teleports the player on landing.

id = UnicodeField('id', default='ThrownEnderpearl')
class nbtparse.minecraft.projectile.ThrownExpBottle(*args, **kwargs)[source]

Bases: nbtparse.minecraft.projectile.Thrown

A thrown Bottle o’ Enchanting.

id = UnicodeField('id', default='ThrownExpBottle')
class nbtparse.minecraft.projectile.ThrownPotion(*args, **kwargs)[source]

Bases: nbtparse.minecraft.projectile.Thrown

A thrown splash potion.

id = UnicodeField('id', default='ThrownPotion')
potion = NBTObjectField('Potion', Item, default=None)
potion_value = IntField('potionValue', default=0)
class nbtparse.minecraft.projectile.ThrownSnowball(*args, **kwargs)[source]

Bases: nbtparse.minecraft.projectile.Thrown

A thrown snowball.

id = UnicodeField('id', default='Snowball')
class nbtparse.minecraft.projectile.WitherSkull(*args, **kwargs)[source]

Bases: nbtparse.minecraft.projectile.AbstractFireball

A wither skull.

id = UnicodeField('id', default='WitherSkull')