Skip to main content

releaseschangelog

Changelog

  1. 3.0.1

    latest3 days ago

    📦 PowerNukkitX 3.0.1

    PowerNukkitX Version3.0.1
    API Version3.0.1
    Protocol Version1001

    Commit: bc3f83bb1f530ed2ad9fab23a351f0c5efd6ebf0

    ✨ Changes since 3.0.0

    • chore(deps): bump com.github.oshi:oshi-core from 7.4.1 to 7.4.2 in the minor-and-patch group (#2900)
    • chore(docs): improve contributing guidelines and restrict AI usage (#2899)
    • chore: move bedrock connection to "api" field (#2912)
    • chore: release 3.0.1 (#2932)
    • chore: remove unused game data files and update experiments list (#2846)
    • ci: upload jacoco coverage to codecov (#2894)
    • feat: PlayerLoginFailEvent and player login failure logging (#2727)
    • feat: improve codecov tests (#2788)
    • feat: recipe unlocking full implementation (#2918)
    • fix: Patch getCreationMapIDs() NPE (#2895)
    • fix: Show damage for custom tools (#2725)
    • fix: Sync mounted passenger movement and rotation (#2913)
    • fix: add canBeActivated() on BlockShortGrass (#2885)
    • fix: add mooshroom variant logic and prevent lightning bolt from striking entities multiple times (#2889)
    • fix: attack sensor not checking if data is valid (#2927)
    • fix: cauldron ignoring filled buckets (#2886)
    • fix: correct explosion block density to reduce damage when shielded (#2904)
    • fix: correct tool type for warped wart block to hoe (#2888)
    • fix: defer comparator update out of block entity loadNBT (#2890)
    • fix: keep pitcher crop at final stage instead of growing into plant (#2908)
    • fix: memory leak of freezable array dead references (#2903)
    • fix: player invisible after respawn when killed with UI open (#2849)
    • fix: prevent grass block left on top of generated sand discs (#2897)
    • fix: prevent grass vegetation generating on coarse dirt (#2896)
    • fix: prevent torch placement on dirt path (#2893)
    • fix: pumpkin carving uses clicked face instead of player direction (#2887)
    • fix: register camera preset definitions on the session codec helper (#2917)
    • fix: respawn at world spawn and resync viewers (#2929)
    • fix: retry chunk load on async failure to prevent missing chunks (#2809)
    • fix: server crash caused by CME with weather (#2919)
    • fix: shield crafting not working (#2922)
    • fix: skeleton arrows should not be collectible in survival (#2884)
    • fix: spider drops String instead of Tripwire (#2892)
    • fix: sync saturation attribute to client to prevent hunger bar desync (#2855)
    • perf!: optimize hot paths in level, entity, village and inventory systems (#2851)
    • perf: dedupe loader positions in tick-all chunk cache (#2909)
    • perf: remove per-tick allocation from player chunk streaming (#2910)
    • perf: skip per-chunk event allocation when no listener is registered (#2907)
    • perf: stop materialising empty chunk sections on send (#2930)
    • perf: update tick-chunk coverage incrementally (#2931)
    • perf: validate logins off the network thread (#2916)
    • test: add JMH benchmarks for math, nbt, hash, item and recipe lookups (#2898)
  2. 3.0.0

    6 days ago

    📦 PowerNukkitX 3.0.0

    PowerNukkitX Version3.0.0
    API Version3.0.0
    Protocol Version1001

    Commit: 2976731a8f7ee385f88e31717ce773aece5e8481

    ✨ Changes since 2.0.0

    • Add @SuppressWarnings and @SafeVarargs annotations (#2462)
    • Cleanup of some files (#2882)
    • Enhanced flower generation (#2541)
    • Final migration PRs (#2610)
    • Fix compile errors due to protocol lib update (#2761)
    • Fix loading of images into ItemFilledMap. (#2686)
    • Fix memory leaks, stability bugs and hot path performance (#2818)
    • Fix missing command request permission check (#2692)
    • Fix: chest block entity pairing corruption on chunk unload (#2565)
    • Fixed build issue (#2612)
    • Fixed bundles (#2577)
    • Fixed getTicksPerSecond (#2621)
    • Harden setup wizard for CI and non-Unicode (#2689)
    • Implemented Village System (#2826)
    • Improved Command Routes (#2735)
    • Improved village generation (#2842)
    • Made the base TPS customizable (#2628)
    • Package rename (cn.nukkit -> org.powernukkitx) (#2710)
    • Protocol Migration (#2580)
    • Update Dockerfile to Temurin and CI-safe build (#2688)
    • Update pnx.yml version to 3.0.0 (#2663)
    • Updated block mappings (#2615)
    • Upgrade Gradle wrapper to 9.6.1 (#2592)
    • chore(ci): add gradle folder into build workflow (#2793)
    • chore(ci): bump actions/cache from 5 to 6 (#2782)
    • chore(ci): bump actions/checkout from 6 to 7 (#2768)
    • chore(ci): bump actions/configure-pages from 5 to 6 (#2767)
    • chore(ci): bump actions/deploy-pages from 4 to 5 (#2770)
    • chore(ci): bump actions/download-artifact from 4 to 8 (#2769)
    • chore(ci): bump actions/upload-artifact from 6 to 7 (#2783)
    • chore(ci): bump actions/upload-pages-artifact from 4 to 5 (#2781)
    • chore(ci): bump docker/build-push-action from 7.1.0 to 7.3.0 (#2784)
    • chore(ci): bump docker/login-action from 4.4.0 to 4.5.1 (#2869)
    • chore(deps): bump com.github.ben-manes.caffeine:caffeine from 3.1.8 to 3.2.4 in the minor-and-patch group (#2834)
    • chore(deps): bump com.github.oshi:oshi-core from 6.4.10 to 7.4.0 (#2775)
    • chore(deps): bump com.gorylenko.gradle-git-properties from 2.5.5 to 4.0.1 (#2773)
    • chore(deps): bump io.freefair.lombok from 8.4 to 9.5.0 (#2778)
    • chore(deps): bump it.unimi.dsi:fastutil from 8.5.18 to 8.5.19 in the minor-and-patch group (#2844)
    • chore(deps): bump org-junit-jupiter-junit-jupiter from 5.10.1 to 6.1.2 (#2776)
    • chore(deps): bump org.jline:jline-reader from 3.25.0 to 4.3.1 (#2774)
    • chore(deps): bump org.junit.platform:junit-platform-launcher from 1.10.1 to 6.1.2 (#2777)
    • chore(deps): bump org.xerial.snappy:snappy-java from 1.1.10.5 to 1.1.10.8 (#2772)
    • chore(deps): bump the minor-and-patch group across 1 directory with 19 updates (#2771)
    • chore(deps): bump the minor-and-patch group with 4 updates (#2803)
    • chore: Sort changelog alphabetically (#2744)
    • chore: Translate all Chinese comments to English (#2779)
    • chore: move docker stuff into "docker" folder (#2786)
    • chore: remove unused nbt max depth config field (#2674)
    • chore: replace shield links with img tags in README (#2795)
    • docs: add changelog for PowerNukkitX 3.0.0 [skip ci]
    • enhancement: Add beforeStop plugin lifecycle hook (#2583)
    • enhancement: Add block sight transparent option (#2716)
    • enhancement: Expose PlayerInfo in PlayerCreationEvent (#2649)
    • feat(legacy): added 1.26.30 version support (#2601)
    • feat: CommandTree (#2645)
    • feat: Gameplay Toggles, performance optimizations & ticking areas (#2721)
    • feat: Implemented Sniffer (#2642)
    • feat: InventoryPickupItemEvent being fired for entities (#2614)
    • feat: Made critical hits vanilla (#2636)
    • feat: Move Terra and WDPE support to an external plugin (#2763)
    • feat: Move game data into a seperate dependency (#2420)
    • feat: PNX Annotation Processing Tool (#2618)
    • feat: Sulfur Caves (#2620)
    • feat: add FoodEatEvent with interact bypass support (#2702)
    • feat: add disconnectScreenMessage to Player.kick and Player.close (#2751)
    • feat: add dependabot workflow (#2765)
    • feat: add hit miss sound (#2787)
    • feat: add setGravity API that affects actual entity gravity (#2708)
    • feat: configurable RakNet packet pacing and connection-cookie mode (#2675)
    • feat: convert behavior group to builders (#2807)
    • feat: custom trim API (#2811)
    • feat: default generator optimisations (#2794)
    • feat: docker image publish and CI workflows (#2736)
    • feat: implement wind charged, weaving, oozing and infested effects (#2709)
    • feat: multiple collision boxes (#2857)
    • feat: prevent duplicate instances and startup on an occupied port (#2800)
    • feat: primitive shapes API (#2808)
    • feat: spiders can climb walls now (#2728)
    • feat: structures in terra (#2719)
    • feat: unified beardifer (#2868)
    • fix nautilus armor max stack size (#2748)
    • fix voxelshapepacket not triggering packetsentevent (#2694)
    • fix(command-tree): suggestion (#2802)
    • fix: Add critical hit particles (#2724)
    • fix: Allow float coordinates in teleport command (#2737)
    • fix: ArrayIndexOutOfBoundsException in Amethyst Cluster (#2739)
    • fix: Block Heads that was not possible to place back after broken (#2682)
    • fix: Block breaking with high Haste levels (#2762)
    • fix: Block heads not persisting rotation on chunk reloads (#2699)
    • fix: Brewing packets (#2651)
    • fix: CUSTOM_DISPLAY not cast as byte (#2743)
    • fix: ClassCastException in BookEditHandler when editing book pages (#2734)
    • fix: Custom spawn eggs in creative inventory not showing (#2613)
    • fix: Dockerfile port expose (#2752)
    • fix: DummyBossBar not updating (#2626)
    • fix: Entity home initialization deadlock after chunk loading changes (#2871)
    • fix: Entity properties not syncing with different types registered (#2564)
    • fix: Error when interacting with half door (#2705)
    • fix: Fire protection stacking not preventing ignite on players (#2693)
    • fix: Furnace drops xp when item is removed by hopper (#2633)
    • fix: Furnace not working (#2627)
    • fix: Harden server-side validation for crafting (#2750)
    • fix: Infinite loop in limited chunk ticking with overlapping loaders (#2664)
    • fix: Lingering Potion's particle datatype (#2632)
    • fix: Made pendingClose protected (#2653)
    • fix: Make BlockBubbleColumn motion modifier vanilla (#2726)
    • fix: Minecart issues (#2650)
    • fix: NPE in Ore Generation (#2622)
    • fix: NPE on block entity setting dirty (#2850)
    • fix: NPE risk in login token check when xboxAuth is disabled (#2733)
    • fix: NPE when a player kicks themselves during tick (#2766)
    • fix: NPE when encoding NpcDialoguePacket (#2878)
    • fix: NPE when fossil structure is not registered (#2629)
    • fix: Noteblock playing w/ block on top and skull priority (#2561)
    • fix: Null vehicle data handling (#2805)
    • fix: Packet Ratelimiter not resetting (#2661)
    • fix: Placement of some blocks (#2638)
    • fix: Player bug when waking up and not playing sleeping pose (#2698)
    • fix: Player not broadcasting movement while riding (#2625)
    • fix: Player sleep illegal exception (#2624)
    • fix: README logo being so big (#2789)
    • fix: Rabbit not being vanilla (#2755)
    • fix: Race condition between network and main thread (#2635)
    • fix: Regression in synced entity property indexes (#2665)
    • fix: Some blocks can be lit but not consumed by fire (#2659)
    • fix: Some nether wooden blocks that was able to burn (#2657)
    • fix: Stale client movement after teleport (#2828)
    • fix: Visual bugs & loss of items in frames (#2503)
    • fix: Warden sharing DARKNESS effect for all nearby players (#2619)
    • fix: Workflow pinned to old folder structure (#2711)
    • fix: actionbar ignoring parameters (#2780)
    • fix: actually save normal block updates and fixed deserialization of chunk extradata (#2666)
    • fix: added note that metrics do not affect performance (#2872)
    • fix: allow org.powernukkitx package (#2715)
    • fix: applied changes in protocol library (#2742)
    • fix: armor stand friction (#2749)
    • fix: armor stands being in air (#2729)
    • fix: bee spawning (#2837)
    • fix: block activations not working when holding (#2853)
    • fix: blockBreakHandle (#2723)
    • fix: bush not checking for support (#2720)
    • fix: cannot interact with entities when you should be able to (#2707)
    • fix: changed metrics text (#2859)
    • fix: chest item duplication on chunk unload/reload (#2792)
    • fix: chunks sent while not being initiated (#2845)
    • fix: codacy issues (#2785)
    • fix: correct signed byte overflow when loading effect amplifier from NBT (#2804)
    • fix: creaking not spawning and console errors and vanilla parity (#2640)
    • fix: dead mobs fly into the sky during death animation (#2681)
    • fix: deadlock in player chunk manager when teleporting or joining (#2841)
    • fix: deadlock when lectern tries to update block in uninitiated chunk (#2875)
    • fix: derive player UUID from XUID instead of deprecated identity claim (#2641)
    • fix: domobloot not working (#2877)
    • fix: drowned throw arrows while target not being visible (#2876)
    • fix: effect-driven actor flags lost on init (#2678)
    • fix: enable metrics by default (#2852)
    • fix: end portal spawning in every dimension when defeating the ender dragon (#2730)
    • fix: enderpearl teleportation (#2866)
    • fix: enforce trade maxUses for two-input villager trades (#2696)
    • fix: explosion not breaking double size blocks sometimes (#2706)
    • fix: fertilizer spam & ping showing 0 ms (#2670)
    • fix: fixed compile errors caused by protocol (#2863)
    • fix: flower generating on grass path (#2816)
    • fix: food not consumed when release lands on completion tick (#2791)
    • fix: forget a lowerCase on ProfessionShepherd (#2880)
    • fix: generate shipwrecks with random wood type like vanilla (#2835)
    • fix: heal stale name->UUID index for returning players (#2676)
    • fix: iOS client hangs loading with many filled maps (#2677)
    • fix: improve give command to match vanilla behavior (#2829)
    • fix: kicking when typing "/status full" (#2764)
    • fix: level config is ignored by default (#2746)
    • fix: level threads, being in air (#2687)
    • fix: load vanilla voxel shapes (#2790)
    • fix: made pistons vanilla (#2658)
    • fix: made simulation distance vanilla (#2655)
    • fix: make BlockEntity.getCleanedNBT return a non-destructive copy (#2820)
    • fix: make EntityEnderDragon immune to fire (#2654)
    • fix: missing enums code for ITEM_COMMAND_ONLY (#2801)
    • fix: missing fields for BossEventPacket (#2656)
    • fix: mounted rider state sync and ride seat metadata updates (#2611)
    • fix: now using zombie_villager_v2 (#2646)
    • fix: observer ticking (#2660)
    • fix: overlapping trim recipe and trade recipes (#2652)
    • fix: patch dripstone potion farming (#2643)
    • fix: pillars in spruce villages (#2722)
    • fix: piston creating ghost blocks (#2667)
    • fix: players stuck on "locating server" when joining (#2714)
    • fix: preserve BDS entity motion during translation (#2881)
    • fix: preserve block entities, structure voids and orientation when saving/loading structures (#2827)
    • fix: preserve unknown block identity in chunk palette and improve logging (#2806)
    • fix: prevent End Portal activation with incorrectly oriented frames (#2799)
    • fix: prevent NPE in mob spawner validation when level is null (#2832)
    • fix: prevent crash when /gamerule is executed without arguments (#2760)
    • fix: prismarine not placing (#2669)
    • fix: projectile blockface always being up (#2865)
    • fix: register client-side multi recipes (#2680)
    • fix: removed limit for inbound packet queue (#2647)
    • fix: respawn not working (#2671)
    • fix: restore original items when plugin is disabled (#2858)
    • fix: restrict huge mushroom spawning to valid biomes (#2830)
    • fix: resync client on cancelled armor equip and elytra firework (#2796)
    • fix: right click spamming player interact event with RIGHT_CLICK_BLOCK (#2718)
    • fix: scatter herd animals across separate positions on spawn (#2839)
    • fix: scoreboard not hiding (#2679)
    • fix: send block break particles under server-authoritative block brea… (#2747)
    • fix: servers sharing same uuid (#2870)
    • fix: several copper golem bugs (#2856)
    • fix: show magic crit particles when hitting with enchanted weapon (#2819)
    • fix: skeleton bow drop chance and durability now match vanilla (#2631)
    • fix: skeleton sinks in water like vanilla (#2838)
    • fix: smithing table not preserving durability of upgraded items (#2586)
    • fix: snow-log flowable plants in cold taiga to fill gap (#2821)
    • fix: spider attacking while its bright (#2757)
    • fix: synced the chunk send queue (#2738)
    • fix: tall grass on snow layer & duplicated tall grass (#2814)
    • fix: target block not receiving or emitting redstone power (#2817)
    • fix: tree generating wrongly (#2815)
    • fix: two generator issues (#2843)
    • fix: updating signs (#2639)
    • fix: use Locale.ROOT for copper golem oxidation enum conversion (#2840)
    • fix: validate beacon payment and effect tier before applying powers (#2697)
    • fix: validate client-supplied multi recipe craft result (#2695)
    • fix: village generation stuck in infinite loop (#2717)
    • fix: villager trading and freeze (#2648)
    • fix: voxel shape not encoding (#2685)
    • fix: waterlogging in world generation (#2756)
    • perf: Cut chunk-send buffer churn, freeze-sweep & palette overhead (#2874)
    • perf: Optimize EntityItem and Hopper alloc / GC (#2745)
    • perf: Optimize memory alloc hotspots (#2668)
    • perf: build block-light table at startup instead of on first tick (#2831)
    • refactor(BlockNoteblock): use Instrument#getId() instead of ordinal (#2616)
    • refactor(config): word-wrap generated config comments (#2673)
    • refactor: Rename @Command annotation to @CommandDefinition (#2634)
    • refactor: Route player packets through main-thread inbound queue (#2637)
    • refactor: Ticking system is now nanosecond-based (#2713)
    • refactor: use Player#getDisplayName for visual stuff (#2509)
    • revert: chunk needs to be in FINISHED stage (#2879)
    • revert: remove PlayerItemConsumeEvent interact bypass from use item handling (#2867)
  3. 2.0.0

    last month
  4. nightly

    pre-release2 months ago

    📦 PowerNukkitX nightly

    PowerNukkitX Versionnightly
    API Version3.0.1
    Protocol Version1001

    [!WARNING] This is a dev build — built automatically from the latest source. May be unstable.

    Report issues on Discord or GitHub Issues.

    Commit: 170a050cdd93b28ef44cd29dac8b87a03a229ca5

    ✨ Changes since 3.0.1

    • feat: Add support for custom cameras registration (#2934)

    🚀 How to Update

    1. Download powernukkitx.jar from the assets below.
    2. Replace the JAR in your server directory.
    3. Restart your server.