Implementing ~85 features across existing classes and new modules.
Excluded (already exist): Hologram, Menu/MenuItem, Sidebar, ActionBar, Cooldown, Config, Paginator, shorthand event decorators.
New extensions to add: TabList, State Machine, Scheduler, Placeholder, Loot Table.
All use reflection fallback — no Java changes needed.
Add to Entity class in wrappers.py:
gravity(get/set) —hasGravity()/setGravity()glowing(get/set) —isGlowing()/setGlowing()invisible(get/set) —isInvisible()/setInvisible()invulnerable(get/set) —isInvulnerable()/setInvulnerable()silent(get/set) —isSilent()/setSilent()persistent(get/set) —isPersistent()/setPersistent()collidable(get/set) —isCollidable()/setCollidable()portal_cooldown(get/set) —getPortalCooldown()/setPortalCooldown()max_fire_ticks(get) —getMaxFireTicks()freeze_ticks(get/set) —getFreezeTicks()/setFreezeTicks()height/width(get) —getHeight()/getWidth()bounding_box(get) —getBoundingBox()(returns dict)
Add to Player class in wrappers.py:
absorption(get/set) —getAbsorptionAmount()/setAbsorptionAmount()saturation(get/set) —getSaturation()/setSaturation()exhaustion(get/set) —getExhaustion()/setExhaustion()max_health(get/set) — uses getAttribute(GENERIC_MAX_HEALTH)attack_cooldown(get) —getAttackCooldown()allow_flight(get/set) —getAllowFlight()/setAllowFlight()locale(get) —getLocale()ping(get) —getPing()client_brand(get) —getClientBrandName()
Add to World class in wrappers.py:
seed(get) —getSeed()pvp(get/set) —getPVP()/setPVP()
Add to Block class:
hardness(get) — reflection:getType().getHardness()blast_resistance(get) — reflection:getType().getBlastResistance()is_passable(get) —isPassable()is_liquid(get) —isLiquid()
Add to Inventory class:
viewers(get) —getViewers()type(get) —getType()
Add Java handlers in invokePlayerMethod + Python wrappers:
bed_spawn_location(get/set) — needs Location serializationcompass_target(get/set) — needs Location serializationget_cooldown(material)/set_cooldown(material, ticks)— needs Material enum resolutionget_statistic(stat, material?, entity_type?)/set_statistic(...)— needs Statistic enum + overloadssend_block_change(location, material)— needs Location + Materialhide_player(other)/show_player(other)— needs plugin referencesend_particle(particle, location, count, ...)— needs Location constructionopen_book(item)— needs ItemStack handle
Add Java handlers in invokeWorldMethod + Python wrappers:
get_game_rule(rule)/set_game_rule(rule, value)— needs GameRule enum resolution + typed valuesworld_border— needs new WorldBorder wrapper class + Java serializationget_highest_block_at(x, z)— needs Block serializationgenerate_tree(location, tree_type)— needs Location + TreeTypenearby_entities(location, dx, dy, dz)— needs Location constructionget_chunk_at_async(x, z)— needs async callback pattern
get_drops(tool=None)— needs optional ItemStack + returns List<ItemStack>
Add to invokeItemStackMethod + Item wrapper:
durability(get/set) — needs Damageable meta castmax_durability(get) — needs Material lookupenchantments(get) — needs enchantment map serializationitem_flags(get/set) — needs ItemFlag enum handlingis_unbreakable(get/set) — needs ItemMeta cast
- Python: WorldBorder class in wrappers.py with properties (center, size, damage_amount, damage_buffer, warning_distance, warning_time) and methods (set_size, set_center, lerp)
- Java: Serialize WorldBorder in BridgeSerializer, add handler in invokeWorldMethod for getWorldBorder()
- Python: ArmorStand, Villager, ItemFrame, FallingBlock, AreaEffectCloud classes in wrappers.py
- Mostly reflection-based, some Java handler additions for complex operations
- Python: Painting class, Boat/Minecart classes (via Entity subtype detection)
- GameRule enum in enums.py
- Enchantment query class
- Java: New handler for PDC get/set/has/remove on entities and blocks
- Python:
entity.data/block.datadict-like wrapper
- Java: Handler for structure loading/saving, world creation
- Python: StructureManager and WorldCreator classes
- Java: Handler for map creation, pixel setting
- Python: Map class with draw methods
- Python:
custom_event(name, data)function + decorator registration - Java: CustomEvent dispatcher in EventDispatcher
- Python: TextComponent builder class with click/hover/gradient
- Java: Handler to convert component JSON to Adventure
- Python: BookBuilder class with pages, open_book()
- Java: Handler for book ItemStack creation + player.openBook()
- Java: Handler to add/remove/list AI goals
- Python: AIGoal wrapper class
- Python: async_fill(), async_replace() that chunk operations across ticks
- Uses existing region facade with tick-spread batching
- Java: Handler for batch spawn with single round-trip
- Python: world.batch_spawn() method
- Python: BlockSnapshot class that saves/restores regions to memory
- Java: Region facade extension for capture + paste
- Python: entity.metadata dict-like storage (Python-side, not PDC)
- No Java needed — stored in Python dict keyed by UUID
- Python: world.find_entities(type, radius, predicate) that filters client-side
- Builds on existing entities_near
- Java: Handler for structured NBT read/write
- Python: NBTCompound dict-like class
- Java: Extend raycast facade with world-level traces
- Python: world.ray_trace() method
- Inventory
__getitem__/__setitem__/__iter__/__len__ - Player/Entity
__bool__truthiness - World
__contains__for entity check - Location
__mul__,__truediv__,normalize(),midpoint() - Context manager for inventories
- Hot reload
@preservedecorator - Type-safe event fields (typed dataclass events)
- Full tab list customization with templates, fake entries, groups
- Per-entity/player state machines for game phases
- Cron-like real-world-time scheduling, named tasks
- Register
%placeholder%expansions for messages
- Custom loot tables with weights, conditions, rolls
- Update
__init__.pyiwith all new classes/methods - Update/create docs/src/*.md for all new features
- Update docs/src/index.md with new content
Phase 1 (parallel):
- Group 1A-1E (Python-only properties — all independent)
- Group 5 (QoL — Python-only, independent)
Phase 2 (parallel):
- Group 2A (Player Java handlers)
- Group 2B (World Java handlers)
- Group 2C-2D (Block + Item Java handlers)
- Group 3A (WorldBorder)
- Group 3D (PDC)
Phase 3 (parallel):
- Group 3B (Entity subtypes)
- Group 3C (Supporting classes)
- Group 4A (Custom events)
- Group 4B (Component text)
- Group 4E (Async world edit)
- Group 4H (Entity metadata)
- Group 4I (Predicate queries)
Phase 4 (parallel):
- Group 3E (StructureManager + WorldCreator)
- Group 3F (Map renderer)
- Group 4C (Book builder)
- Group 4D (AI Goals)
- Group 4F (Batch spawn)
- Group 4G (Block snapshot)
- Group 4J (NBT)
- Group 4K (World ray trace)
Phase 5 (parallel):
- Group 6A-6E (New extensions)
Phase 6:
- Group 7 (Documentation + type stubs)
Total: ~85 features across 6 phases.