diff --git a/changelogs/5.35.md b/changelogs/5.35.md new file mode 100644 index 000000000..0b5a20203 --- /dev/null +++ b/changelogs/5.35.md @@ -0,0 +1,21 @@ +# 5.35.0 +Released 3rd October 2025. + +This is a support release for Minecraft: Bedrock Edition 1.21.111. + +**Plugin compatibility:** Plugins for previous 5.x versions will run unchanged on this release, unless they use internal APIs, reflection, or packages like the `pocketmine\network\mcpe` or `pocketmine\data` namespace. +Do not update plugin minimum API versions unless you need new features added in this release. + +**WARNING: If your plugin uses the `pocketmine\network\mcpe` namespace, you're not shielded by API change constraints.** +Consider using the `mcpe-protocol` directive in `plugin.yml` as a constraint if you're using packets directly. + +## Interim releases +If you're upgrading from 5.32.x directly to 5.35.0, please also read the following changelogs, as the interim releases contain important changes: +- [5.33.0](https://github.com/pmmp/PocketMine-MP/blob/5.35.0/changelogs/5.33.md) - internals improvements, API improvements and new gameplay features +- [5.34.0](https://github.com/pmmp/PocketMine-MP/blob/5.35.0/changelogs/5.34.md) - significant performance improvements, new gameplay features, new API additions and network changes + +Please also note that an updated PHP binary is required due to changes introduced in 5.34.0 (initial `ext-encoding` integration). + +## General +- Added support for Minecraft: Bedrock Edition 1.21.111 (@dries-c). +- Removed support for earlier versions. diff --git a/composer.json b/composer.json index 9451fd6eb..b8aecb734 100644 --- a/composer.json +++ b/composer.json @@ -34,10 +34,10 @@ "composer-runtime-api": "^2.0", "adhocore/json-comment": "~1.2.0", "netresearch/jsonmapper": "~v5.0.0", - "pocketmine/bedrock-block-upgrade-schema": "~5.1.0+bedrock-1.21.60", - "pocketmine/bedrock-data": "~6.0.0+bedrock-1.21.100", - "pocketmine/bedrock-item-upgrade-schema": "~1.15.0+bedrock-1.21.100", - "pocketmine/bedrock-protocol": "~50.0.0+bedrock-1.21.100", + "pocketmine/bedrock-block-upgrade-schema": "~5.2.0+bedrock-1.21.110", + "pocketmine/bedrock-data": "~6.1.0+bedrock-1.21.111", + "pocketmine/bedrock-item-upgrade-schema": "~1.16.0+bedrock-1.21.110", + "pocketmine/bedrock-protocol": "~51.1.0+bedrock-1.21.111", "pocketmine/binaryutils": "^0.2.1", "pocketmine/callback-validator": "^1.0.2", "pocketmine/color": "^0.3.0", diff --git a/composer.lock b/composer.lock index ce923690e..a556f1f34 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "0d71d3fba23ba8c4734cac59b9e10129", + "content-hash": "85d9a1b0bed8a5b1fff320d396bdeb4f", "packages": [ { "name": "adhocore/json-comment", @@ -178,16 +178,16 @@ }, { "name": "pocketmine/bedrock-block-upgrade-schema", - "version": "5.1.0", + "version": "5.2.0", "source": { "type": "git", "url": "https://github.com/pmmp/BedrockBlockUpgradeSchema.git", - "reference": "2218512e4b91f5bfd09ef55f7a4c4b04e169e41a" + "reference": "5d7889c9a1cdf9e3cd814d2a104ad69b75116ec7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pmmp/BedrockBlockUpgradeSchema/zipball/2218512e4b91f5bfd09ef55f7a4c4b04e169e41a", - "reference": "2218512e4b91f5bfd09ef55f7a4c4b04e169e41a", + "url": "https://api.github.com/repos/pmmp/BedrockBlockUpgradeSchema/zipball/5d7889c9a1cdf9e3cd814d2a104ad69b75116ec7", + "reference": "5d7889c9a1cdf9e3cd814d2a104ad69b75116ec7", "shasum": "" }, "type": "library", @@ -198,22 +198,22 @@ "description": "Schemas describing how to upgrade saved block data in older Minecraft: Bedrock Edition world saves", "support": { "issues": "https://github.com/pmmp/BedrockBlockUpgradeSchema/issues", - "source": "https://github.com/pmmp/BedrockBlockUpgradeSchema/tree/5.1.0" + "source": "https://github.com/pmmp/BedrockBlockUpgradeSchema/tree/5.2.0" }, - "time": "2025-02-11T17:41:44+00:00" + "time": "2025-10-02T13:22:10+00:00" }, { "name": "pocketmine/bedrock-data", - "version": "6.0.0+bedrock-1.21.100", + "version": "6.1.0+bedrock-1.21.111", "source": { "type": "git", "url": "https://github.com/pmmp/BedrockData.git", - "reference": "edc0d829175e5e1e57c87001acfd03526c63fd34" + "reference": "7484fe3c3d7949fd48cc520add4f7eeebc4ba4af" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pmmp/BedrockData/zipball/edc0d829175e5e1e57c87001acfd03526c63fd34", - "reference": "edc0d829175e5e1e57c87001acfd03526c63fd34", + "url": "https://api.github.com/repos/pmmp/BedrockData/zipball/7484fe3c3d7949fd48cc520add4f7eeebc4ba4af", + "reference": "7484fe3c3d7949fd48cc520add4f7eeebc4ba4af", "shasum": "" }, "type": "library", @@ -224,22 +224,22 @@ "description": "Blobs of data generated from Minecraft: Bedrock Edition, used by PocketMine-MP", "support": { "issues": "https://github.com/pmmp/BedrockData/issues", - "source": "https://github.com/pmmp/BedrockData/tree/6.0.0+bedrock-1.21.100" + "source": "https://github.com/pmmp/BedrockData/tree/6.1.0+bedrock-1.21.111" }, - "time": "2025-08-30T17:25:42+00:00" + "time": "2025-10-02T15:28:18+00:00" }, { "name": "pocketmine/bedrock-item-upgrade-schema", - "version": "1.15.0", + "version": "1.16.0", "source": { "type": "git", "url": "https://github.com/pmmp/BedrockItemUpgradeSchema.git", - "reference": "09e0dbe9743f21a76b1fe04b2b4136785775f52b" + "reference": "8c48ceaa72d390e89c4dbff9542aa4dfa734057d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pmmp/BedrockItemUpgradeSchema/zipball/09e0dbe9743f21a76b1fe04b2b4136785775f52b", - "reference": "09e0dbe9743f21a76b1fe04b2b4136785775f52b", + "url": "https://api.github.com/repos/pmmp/BedrockItemUpgradeSchema/zipball/8c48ceaa72d390e89c4dbff9542aa4dfa734057d", + "reference": "8c48ceaa72d390e89c4dbff9542aa4dfa734057d", "shasum": "" }, "type": "library", @@ -250,22 +250,22 @@ "description": "JSON schemas for upgrading items found in older Minecraft: Bedrock world saves", "support": { "issues": "https://github.com/pmmp/BedrockItemUpgradeSchema/issues", - "source": "https://github.com/pmmp/BedrockItemUpgradeSchema/tree/1.15.0" + "source": "https://github.com/pmmp/BedrockItemUpgradeSchema/tree/1.16.0" }, - "time": "2025-08-06T15:08:48+00:00" + "time": "2025-10-02T13:22:32+00:00" }, { "name": "pocketmine/bedrock-protocol", - "version": "50.0.0+bedrock-1.21.100", + "version": "51.1.0+bedrock-1.21.111", "source": { "type": "git", "url": "https://github.com/pmmp/BedrockProtocol.git", - "reference": "2d7aa27a5537ae593fb1c39158648ea462fef72a" + "reference": "e380be227766ea58a874eb7d93de76f21c8ec04b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pmmp/BedrockProtocol/zipball/2d7aa27a5537ae593fb1c39158648ea462fef72a", - "reference": "2d7aa27a5537ae593fb1c39158648ea462fef72a", + "url": "https://api.github.com/repos/pmmp/BedrockProtocol/zipball/e380be227766ea58a874eb7d93de76f21c8ec04b", + "reference": "e380be227766ea58a874eb7d93de76f21c8ec04b", "shasum": "" }, "require": { @@ -297,9 +297,9 @@ "description": "An implementation of the Minecraft: Bedrock Edition protocol in PHP", "support": { "issues": "https://github.com/pmmp/BedrockProtocol/issues", - "source": "https://github.com/pmmp/BedrockProtocol/tree/50.0.0+bedrock-1.21.100" + "source": "https://github.com/pmmp/BedrockProtocol/tree/51.1.0+bedrock-1.21.111" }, - "time": "2025-09-20T23:09:19+00:00" + "time": "2025-10-03T14:12:27+00:00" }, { "name": "pocketmine/binaryutils", diff --git a/src/VersionInfo.php b/src/VersionInfo.php index a80ab6c5b..f921db58b 100644 --- a/src/VersionInfo.php +++ b/src/VersionInfo.php @@ -31,8 +31,8 @@ use function str_repeat; final class VersionInfo{ public const NAME = "PocketMine-MP"; - public const BASE_VERSION = "5.34.2"; - public const IS_DEVELOPMENT_BUILD = true; + public const BASE_VERSION = "5.35.0"; + public const IS_DEVELOPMENT_BUILD = false; public const BUILD_CHANNEL = "stable"; /** diff --git a/src/data/bedrock/block/BlockStateNames.php b/src/data/bedrock/block/BlockStateNames.php index 704798d1d..d24edab72 100644 --- a/src/data/bedrock/block/BlockStateNames.php +++ b/src/data/bedrock/block/BlockStateNames.php @@ -109,6 +109,7 @@ final class BlockStateNames{ public const PILLAR_AXIS = "pillar_axis"; public const PORTAL_AXIS = "portal_axis"; public const POWERED_BIT = "powered_bit"; + public const POWERED_SHELF_TYPE = "powered_shelf_type"; public const PROPAGULE_STAGE = "propagule_stage"; public const RAIL_DATA_BIT = "rail_data_bit"; public const RAIL_DIRECTION = "rail_direction"; diff --git a/src/data/bedrock/block/BlockTypeNames.php b/src/data/bedrock/block/BlockTypeNames.php index 71402c74a..32c91571b 100644 --- a/src/data/bedrock/block/BlockTypeNames.php +++ b/src/data/bedrock/block/BlockTypeNames.php @@ -42,6 +42,7 @@ final class BlockTypeNames{ public const ACACIA_PLANKS = "minecraft:acacia_planks"; public const ACACIA_PRESSURE_PLATE = "minecraft:acacia_pressure_plate"; public const ACACIA_SAPLING = "minecraft:acacia_sapling"; + public const ACACIA_SHELF = "minecraft:acacia_shelf"; public const ACACIA_SLAB = "minecraft:acacia_slab"; public const ACACIA_STAIRS = "minecraft:acacia_stairs"; public const ACACIA_STANDING_SIGN = "minecraft:acacia_standing_sign"; @@ -80,6 +81,7 @@ final class BlockTypeNames{ public const BAMBOO_PLANKS = "minecraft:bamboo_planks"; public const BAMBOO_PRESSURE_PLATE = "minecraft:bamboo_pressure_plate"; public const BAMBOO_SAPLING = "minecraft:bamboo_sapling"; + public const BAMBOO_SHELF = "minecraft:bamboo_shelf"; public const BAMBOO_SLAB = "minecraft:bamboo_slab"; public const BAMBOO_STAIRS = "minecraft:bamboo_stairs"; public const BAMBOO_STANDING_SIGN = "minecraft:bamboo_standing_sign"; @@ -107,6 +109,7 @@ final class BlockTypeNames{ public const BIRCH_PLANKS = "minecraft:birch_planks"; public const BIRCH_PRESSURE_PLATE = "minecraft:birch_pressure_plate"; public const BIRCH_SAPLING = "minecraft:birch_sapling"; + public const BIRCH_SHELF = "minecraft:birch_shelf"; public const BIRCH_SLAB = "minecraft:birch_slab"; public const BIRCH_STAIRS = "minecraft:birch_stairs"; public const BIRCH_STANDING_SIGN = "minecraft:birch_standing_sign"; @@ -192,7 +195,6 @@ final class BlockTypeNames{ public const CAVE_VINES = "minecraft:cave_vines"; public const CAVE_VINES_BODY_WITH_BERRIES = "minecraft:cave_vines_body_with_berries"; public const CAVE_VINES_HEAD_WITH_BERRIES = "minecraft:cave_vines_head_with_berries"; - public const CHAIN = "minecraft:chain"; public const CHAIN_COMMAND_BLOCK = "minecraft:chain_command_block"; public const CHALKBOARD = "minecraft:chalkboard"; public const CHEMICAL_HEAT = "minecraft:chemical_heat"; @@ -207,6 +209,7 @@ final class BlockTypeNames{ public const CHERRY_PLANKS = "minecraft:cherry_planks"; public const CHERRY_PRESSURE_PLATE = "minecraft:cherry_pressure_plate"; public const CHERRY_SAPLING = "minecraft:cherry_sapling"; + public const CHERRY_SHELF = "minecraft:cherry_shelf"; public const CHERRY_SLAB = "minecraft:cherry_slab"; public const CHERRY_STAIRS = "minecraft:cherry_stairs"; public const CHERRY_STANDING_SIGN = "minecraft:cherry_standing_sign"; @@ -253,12 +256,17 @@ final class BlockTypeNames{ public const COMPOSTER = "minecraft:composter"; public const COMPOUND_CREATOR = "minecraft:compound_creator"; public const CONDUIT = "minecraft:conduit"; + public const COPPER_BARS = "minecraft:copper_bars"; public const COPPER_BLOCK = "minecraft:copper_block"; public const COPPER_BULB = "minecraft:copper_bulb"; + public const COPPER_CHAIN = "minecraft:copper_chain"; public const COPPER_CHEST = "minecraft:copper_chest"; public const COPPER_DOOR = "minecraft:copper_door"; + public const COPPER_GOLEM_STATUE = "minecraft:copper_golem_statue"; public const COPPER_GRATE = "minecraft:copper_grate"; + public const COPPER_LANTERN = "minecraft:copper_lantern"; public const COPPER_ORE = "minecraft:copper_ore"; + public const COPPER_TORCH = "minecraft:copper_torch"; public const COPPER_TRAPDOOR = "minecraft:copper_trapdoor"; public const CORNFLOWER = "minecraft:cornflower"; public const CRACKED_DEEPSLATE_BRICKS = "minecraft:cracked_deepslate_bricks"; @@ -282,6 +290,7 @@ final class BlockTypeNames{ public const CRIMSON_PLANKS = "minecraft:crimson_planks"; public const CRIMSON_PRESSURE_PLATE = "minecraft:crimson_pressure_plate"; public const CRIMSON_ROOTS = "minecraft:crimson_roots"; + public const CRIMSON_SHELF = "minecraft:crimson_shelf"; public const CRIMSON_SLAB = "minecraft:crimson_slab"; public const CRIMSON_STAIRS = "minecraft:crimson_stairs"; public const CRIMSON_STANDING_SIGN = "minecraft:crimson_standing_sign"; @@ -322,6 +331,7 @@ final class BlockTypeNames{ public const DARK_OAK_PLANKS = "minecraft:dark_oak_planks"; public const DARK_OAK_PRESSURE_PLATE = "minecraft:dark_oak_pressure_plate"; public const DARK_OAK_SAPLING = "minecraft:dark_oak_sapling"; + public const DARK_OAK_SHELF = "minecraft:dark_oak_shelf"; public const DARK_OAK_SLAB = "minecraft:dark_oak_slab"; public const DARK_OAK_STAIRS = "minecraft:dark_oak_stairs"; public const DARK_OAK_TRAPDOOR = "minecraft:dark_oak_trapdoor"; @@ -533,15 +543,20 @@ final class BlockTypeNames{ public const ENDER_CHEST = "minecraft:ender_chest"; public const EXPOSED_CHISELED_COPPER = "minecraft:exposed_chiseled_copper"; public const EXPOSED_COPPER = "minecraft:exposed_copper"; + public const EXPOSED_COPPER_BARS = "minecraft:exposed_copper_bars"; public const EXPOSED_COPPER_BULB = "minecraft:exposed_copper_bulb"; + public const EXPOSED_COPPER_CHAIN = "minecraft:exposed_copper_chain"; public const EXPOSED_COPPER_CHEST = "minecraft:exposed_copper_chest"; public const EXPOSED_COPPER_DOOR = "minecraft:exposed_copper_door"; + public const EXPOSED_COPPER_GOLEM_STATUE = "minecraft:exposed_copper_golem_statue"; public const EXPOSED_COPPER_GRATE = "minecraft:exposed_copper_grate"; + public const EXPOSED_COPPER_LANTERN = "minecraft:exposed_copper_lantern"; public const EXPOSED_COPPER_TRAPDOOR = "minecraft:exposed_copper_trapdoor"; public const EXPOSED_CUT_COPPER = "minecraft:exposed_cut_copper"; public const EXPOSED_CUT_COPPER_SLAB = "minecraft:exposed_cut_copper_slab"; public const EXPOSED_CUT_COPPER_STAIRS = "minecraft:exposed_cut_copper_stairs"; public const EXPOSED_DOUBLE_CUT_COPPER_SLAB = "minecraft:exposed_double_cut_copper_slab"; + public const EXPOSED_LIGHTNING_ROD = "minecraft:exposed_lightning_rod"; public const FARMLAND = "minecraft:farmland"; public const FENCE_GATE = "minecraft:fence_gate"; public const FERN = "minecraft:fern"; @@ -660,6 +675,7 @@ final class BlockTypeNames{ public const INVISIBLE_BEDROCK = "minecraft:invisible_bedrock"; public const IRON_BARS = "minecraft:iron_bars"; public const IRON_BLOCK = "minecraft:iron_block"; + public const IRON_CHAIN = "minecraft:iron_chain"; public const IRON_DOOR = "minecraft:iron_door"; public const IRON_ORE = "minecraft:iron_ore"; public const IRON_TRAPDOOR = "minecraft:iron_trapdoor"; @@ -676,6 +692,7 @@ final class BlockTypeNames{ public const JUNGLE_PLANKS = "minecraft:jungle_planks"; public const JUNGLE_PRESSURE_PLATE = "minecraft:jungle_pressure_plate"; public const JUNGLE_SAPLING = "minecraft:jungle_sapling"; + public const JUNGLE_SHELF = "minecraft:jungle_shelf"; public const JUNGLE_SLAB = "minecraft:jungle_slab"; public const JUNGLE_STAIRS = "minecraft:jungle_stairs"; public const JUNGLE_STANDING_SIGN = "minecraft:jungle_standing_sign"; @@ -779,6 +796,7 @@ final class BlockTypeNames{ public const MANGROVE_PRESSURE_PLATE = "minecraft:mangrove_pressure_plate"; public const MANGROVE_PROPAGULE = "minecraft:mangrove_propagule"; public const MANGROVE_ROOTS = "minecraft:mangrove_roots"; + public const MANGROVE_SHELF = "minecraft:mangrove_shelf"; public const MANGROVE_SLAB = "minecraft:mangrove_slab"; public const MANGROVE_STAIRS = "minecraft:mangrove_stairs"; public const MANGROVE_STANDING_SIGN = "minecraft:mangrove_standing_sign"; @@ -836,6 +854,7 @@ final class BlockTypeNames{ public const OAK_LOG = "minecraft:oak_log"; public const OAK_PLANKS = "minecraft:oak_planks"; public const OAK_SAPLING = "minecraft:oak_sapling"; + public const OAK_SHELF = "minecraft:oak_shelf"; public const OAK_SLAB = "minecraft:oak_slab"; public const OAK_STAIRS = "minecraft:oak_stairs"; public const OAK_WOOD = "minecraft:oak_wood"; @@ -858,15 +877,20 @@ final class BlockTypeNames{ public const OXEYE_DAISY = "minecraft:oxeye_daisy"; public const OXIDIZED_CHISELED_COPPER = "minecraft:oxidized_chiseled_copper"; public const OXIDIZED_COPPER = "minecraft:oxidized_copper"; + public const OXIDIZED_COPPER_BARS = "minecraft:oxidized_copper_bars"; public const OXIDIZED_COPPER_BULB = "minecraft:oxidized_copper_bulb"; + public const OXIDIZED_COPPER_CHAIN = "minecraft:oxidized_copper_chain"; public const OXIDIZED_COPPER_CHEST = "minecraft:oxidized_copper_chest"; public const OXIDIZED_COPPER_DOOR = "minecraft:oxidized_copper_door"; + public const OXIDIZED_COPPER_GOLEM_STATUE = "minecraft:oxidized_copper_golem_statue"; public const OXIDIZED_COPPER_GRATE = "minecraft:oxidized_copper_grate"; + public const OXIDIZED_COPPER_LANTERN = "minecraft:oxidized_copper_lantern"; public const OXIDIZED_COPPER_TRAPDOOR = "minecraft:oxidized_copper_trapdoor"; public const OXIDIZED_CUT_COPPER = "minecraft:oxidized_cut_copper"; public const OXIDIZED_CUT_COPPER_SLAB = "minecraft:oxidized_cut_copper_slab"; public const OXIDIZED_CUT_COPPER_STAIRS = "minecraft:oxidized_cut_copper_stairs"; public const OXIDIZED_DOUBLE_CUT_COPPER_SLAB = "minecraft:oxidized_double_cut_copper_slab"; + public const OXIDIZED_LIGHTNING_ROD = "minecraft:oxidized_lightning_rod"; public const PACKED_ICE = "minecraft:packed_ice"; public const PACKED_MUD = "minecraft:packed_mud"; public const PALE_HANGING_MOSS = "minecraft:pale_hanging_moss"; @@ -883,6 +907,7 @@ final class BlockTypeNames{ public const PALE_OAK_PLANKS = "minecraft:pale_oak_planks"; public const PALE_OAK_PRESSURE_PLATE = "minecraft:pale_oak_pressure_plate"; public const PALE_OAK_SAPLING = "minecraft:pale_oak_sapling"; + public const PALE_OAK_SHELF = "minecraft:pale_oak_shelf"; public const PALE_OAK_SLAB = "minecraft:pale_oak_slab"; public const PALE_OAK_STAIRS = "minecraft:pale_oak_stairs"; public const PALE_OAK_STANDING_SIGN = "minecraft:pale_oak_standing_sign"; @@ -1099,6 +1124,7 @@ final class BlockTypeNames{ public const SPRUCE_PLANKS = "minecraft:spruce_planks"; public const SPRUCE_PRESSURE_PLATE = "minecraft:spruce_pressure_plate"; public const SPRUCE_SAPLING = "minecraft:spruce_sapling"; + public const SPRUCE_SHELF = "minecraft:spruce_shelf"; public const SPRUCE_SLAB = "minecraft:spruce_slab"; public const SPRUCE_STAIRS = "minecraft:spruce_stairs"; public const SPRUCE_STANDING_SIGN = "minecraft:spruce_standing_sign"; @@ -1202,6 +1228,7 @@ final class BlockTypeNames{ public const WARPED_PLANKS = "minecraft:warped_planks"; public const WARPED_PRESSURE_PLATE = "minecraft:warped_pressure_plate"; public const WARPED_ROOTS = "minecraft:warped_roots"; + public const WARPED_SHELF = "minecraft:warped_shelf"; public const WARPED_SLAB = "minecraft:warped_slab"; public const WARPED_STAIRS = "minecraft:warped_stairs"; public const WARPED_STANDING_SIGN = "minecraft:warped_standing_sign"; @@ -1213,10 +1240,14 @@ final class BlockTypeNames{ public const WATERLILY = "minecraft:waterlily"; public const WAXED_CHISELED_COPPER = "minecraft:waxed_chiseled_copper"; public const WAXED_COPPER = "minecraft:waxed_copper"; + public const WAXED_COPPER_BARS = "minecraft:waxed_copper_bars"; public const WAXED_COPPER_BULB = "minecraft:waxed_copper_bulb"; + public const WAXED_COPPER_CHAIN = "minecraft:waxed_copper_chain"; public const WAXED_COPPER_CHEST = "minecraft:waxed_copper_chest"; public const WAXED_COPPER_DOOR = "minecraft:waxed_copper_door"; + public const WAXED_COPPER_GOLEM_STATUE = "minecraft:waxed_copper_golem_statue"; public const WAXED_COPPER_GRATE = "minecraft:waxed_copper_grate"; + public const WAXED_COPPER_LANTERN = "minecraft:waxed_copper_lantern"; public const WAXED_COPPER_TRAPDOOR = "minecraft:waxed_copper_trapdoor"; public const WAXED_CUT_COPPER = "minecraft:waxed_cut_copper"; public const WAXED_CUT_COPPER_SLAB = "minecraft:waxed_cut_copper_slab"; @@ -1224,48 +1255,69 @@ final class BlockTypeNames{ public const WAXED_DOUBLE_CUT_COPPER_SLAB = "minecraft:waxed_double_cut_copper_slab"; public const WAXED_EXPOSED_CHISELED_COPPER = "minecraft:waxed_exposed_chiseled_copper"; public const WAXED_EXPOSED_COPPER = "minecraft:waxed_exposed_copper"; + public const WAXED_EXPOSED_COPPER_BARS = "minecraft:waxed_exposed_copper_bars"; public const WAXED_EXPOSED_COPPER_BULB = "minecraft:waxed_exposed_copper_bulb"; + public const WAXED_EXPOSED_COPPER_CHAIN = "minecraft:waxed_exposed_copper_chain"; public const WAXED_EXPOSED_COPPER_CHEST = "minecraft:waxed_exposed_copper_chest"; public const WAXED_EXPOSED_COPPER_DOOR = "minecraft:waxed_exposed_copper_door"; + public const WAXED_EXPOSED_COPPER_GOLEM_STATUE = "minecraft:waxed_exposed_copper_golem_statue"; public const WAXED_EXPOSED_COPPER_GRATE = "minecraft:waxed_exposed_copper_grate"; + public const WAXED_EXPOSED_COPPER_LANTERN = "minecraft:waxed_exposed_copper_lantern"; public const WAXED_EXPOSED_COPPER_TRAPDOOR = "minecraft:waxed_exposed_copper_trapdoor"; public const WAXED_EXPOSED_CUT_COPPER = "minecraft:waxed_exposed_cut_copper"; public const WAXED_EXPOSED_CUT_COPPER_SLAB = "minecraft:waxed_exposed_cut_copper_slab"; public const WAXED_EXPOSED_CUT_COPPER_STAIRS = "minecraft:waxed_exposed_cut_copper_stairs"; public const WAXED_EXPOSED_DOUBLE_CUT_COPPER_SLAB = "minecraft:waxed_exposed_double_cut_copper_slab"; + public const WAXED_EXPOSED_LIGHTNING_ROD = "minecraft:waxed_exposed_lightning_rod"; + public const WAXED_LIGHTNING_ROD = "minecraft:waxed_lightning_rod"; public const WAXED_OXIDIZED_CHISELED_COPPER = "minecraft:waxed_oxidized_chiseled_copper"; public const WAXED_OXIDIZED_COPPER = "minecraft:waxed_oxidized_copper"; + public const WAXED_OXIDIZED_COPPER_BARS = "minecraft:waxed_oxidized_copper_bars"; public const WAXED_OXIDIZED_COPPER_BULB = "minecraft:waxed_oxidized_copper_bulb"; + public const WAXED_OXIDIZED_COPPER_CHAIN = "minecraft:waxed_oxidized_copper_chain"; public const WAXED_OXIDIZED_COPPER_CHEST = "minecraft:waxed_oxidized_copper_chest"; public const WAXED_OXIDIZED_COPPER_DOOR = "minecraft:waxed_oxidized_copper_door"; + public const WAXED_OXIDIZED_COPPER_GOLEM_STATUE = "minecraft:waxed_oxidized_copper_golem_statue"; public const WAXED_OXIDIZED_COPPER_GRATE = "minecraft:waxed_oxidized_copper_grate"; + public const WAXED_OXIDIZED_COPPER_LANTERN = "minecraft:waxed_oxidized_copper_lantern"; public const WAXED_OXIDIZED_COPPER_TRAPDOOR = "minecraft:waxed_oxidized_copper_trapdoor"; public const WAXED_OXIDIZED_CUT_COPPER = "minecraft:waxed_oxidized_cut_copper"; public const WAXED_OXIDIZED_CUT_COPPER_SLAB = "minecraft:waxed_oxidized_cut_copper_slab"; public const WAXED_OXIDIZED_CUT_COPPER_STAIRS = "minecraft:waxed_oxidized_cut_copper_stairs"; public const WAXED_OXIDIZED_DOUBLE_CUT_COPPER_SLAB = "minecraft:waxed_oxidized_double_cut_copper_slab"; + public const WAXED_OXIDIZED_LIGHTNING_ROD = "minecraft:waxed_oxidized_lightning_rod"; public const WAXED_WEATHERED_CHISELED_COPPER = "minecraft:waxed_weathered_chiseled_copper"; public const WAXED_WEATHERED_COPPER = "minecraft:waxed_weathered_copper"; + public const WAXED_WEATHERED_COPPER_BARS = "minecraft:waxed_weathered_copper_bars"; public const WAXED_WEATHERED_COPPER_BULB = "minecraft:waxed_weathered_copper_bulb"; + public const WAXED_WEATHERED_COPPER_CHAIN = "minecraft:waxed_weathered_copper_chain"; public const WAXED_WEATHERED_COPPER_CHEST = "minecraft:waxed_weathered_copper_chest"; public const WAXED_WEATHERED_COPPER_DOOR = "minecraft:waxed_weathered_copper_door"; + public const WAXED_WEATHERED_COPPER_GOLEM_STATUE = "minecraft:waxed_weathered_copper_golem_statue"; public const WAXED_WEATHERED_COPPER_GRATE = "minecraft:waxed_weathered_copper_grate"; + public const WAXED_WEATHERED_COPPER_LANTERN = "minecraft:waxed_weathered_copper_lantern"; public const WAXED_WEATHERED_COPPER_TRAPDOOR = "minecraft:waxed_weathered_copper_trapdoor"; public const WAXED_WEATHERED_CUT_COPPER = "minecraft:waxed_weathered_cut_copper"; public const WAXED_WEATHERED_CUT_COPPER_SLAB = "minecraft:waxed_weathered_cut_copper_slab"; public const WAXED_WEATHERED_CUT_COPPER_STAIRS = "minecraft:waxed_weathered_cut_copper_stairs"; public const WAXED_WEATHERED_DOUBLE_CUT_COPPER_SLAB = "minecraft:waxed_weathered_double_cut_copper_slab"; + public const WAXED_WEATHERED_LIGHTNING_ROD = "minecraft:waxed_weathered_lightning_rod"; public const WEATHERED_CHISELED_COPPER = "minecraft:weathered_chiseled_copper"; public const WEATHERED_COPPER = "minecraft:weathered_copper"; + public const WEATHERED_COPPER_BARS = "minecraft:weathered_copper_bars"; public const WEATHERED_COPPER_BULB = "minecraft:weathered_copper_bulb"; + public const WEATHERED_COPPER_CHAIN = "minecraft:weathered_copper_chain"; public const WEATHERED_COPPER_CHEST = "minecraft:weathered_copper_chest"; public const WEATHERED_COPPER_DOOR = "minecraft:weathered_copper_door"; + public const WEATHERED_COPPER_GOLEM_STATUE = "minecraft:weathered_copper_golem_statue"; public const WEATHERED_COPPER_GRATE = "minecraft:weathered_copper_grate"; + public const WEATHERED_COPPER_LANTERN = "minecraft:weathered_copper_lantern"; public const WEATHERED_COPPER_TRAPDOOR = "minecraft:weathered_copper_trapdoor"; public const WEATHERED_CUT_COPPER = "minecraft:weathered_cut_copper"; public const WEATHERED_CUT_COPPER_SLAB = "minecraft:weathered_cut_copper_slab"; public const WEATHERED_CUT_COPPER_STAIRS = "minecraft:weathered_cut_copper_stairs"; public const WEATHERED_DOUBLE_CUT_COPPER_SLAB = "minecraft:weathered_double_cut_copper_slab"; + public const WEATHERED_LIGHTNING_ROD = "minecraft:weathered_lightning_rod"; public const WEB = "minecraft:web"; public const WEEPING_VINES = "minecraft:weeping_vines"; public const WET_SPONGE = "minecraft:wet_sponge"; diff --git a/src/data/bedrock/block/convert/VanillaBlockMappings.php b/src/data/bedrock/block/convert/VanillaBlockMappings.php index f339ce3ef..e1be1b037 100644 --- a/src/data/bedrock/block/convert/VanillaBlockMappings.php +++ b/src/data/bedrock/block/convert/VanillaBlockMappings.php @@ -1264,7 +1264,7 @@ final class VanillaBlockMappings{ $reg->mapModel(Model::create(Blocks::CARVED_PUMPKIN(), Ids::CARVED_PUMPKIN)->properties([ $commonProperties->horizontalFacingCardinal ])); - $reg->mapModel(Model::create(Blocks::CHAIN(), Ids::CHAIN)->properties([$commonProperties->pillarAxis])); + $reg->mapModel(Model::create(Blocks::CHAIN(), Ids::IRON_CHAIN)->properties([$commonProperties->pillarAxis])); $reg->mapModel(Model::create(Blocks::CHISELED_BOOKSHELF(), Ids::CHISELED_BOOKSHELF)->properties([ $commonProperties->horizontalFacingSWNE, new ValueSetFromIntProperty( @@ -1355,7 +1355,10 @@ final class VanillaBlockMappings{ new ValueFromStringProperty(StateNames::LEVER_DIRECTION, ValueMappings::getInstance()->leverFacing, fn(Lever $b) => $b->getFacing(), fn(Lever $b, LeverFacing $v) => $b->setFacing($v)), new BoolProperty(StateNames::OPEN_BIT, fn(Lever $b) => $b->isActivated(), fn(Lever $b, bool $v) => $b->setActivated($v)), ])); - $reg->mapModel(Model::create(Blocks::LIGHTNING_ROD(), Ids::LIGHTNING_ROD)->properties([$commonProperties->anyFacingClassic])); + $reg->mapModel(Model::create(Blocks::LIGHTNING_ROD(), Ids::LIGHTNING_ROD)->properties([ + $commonProperties->anyFacingClassic, + new DummyProperty(StateNames::POWERED_BIT, false) //TODO + ])); $reg->mapModel(Model::create(Blocks::LIT_PUMPKIN(), Ids::LIT_PUMPKIN)->properties([$commonProperties->horizontalFacingCardinal])); $reg->mapModel(Model::create(Blocks::LOOM(), Ids::LOOM)->properties([$commonProperties->horizontalFacingSWNE])); diff --git a/src/data/bedrock/item/ItemSerializerDeserializerRegistrar.php b/src/data/bedrock/item/ItemSerializerDeserializerRegistrar.php index bb4c61509..99f265a8a 100644 --- a/src/data/bedrock/item/ItemSerializerDeserializerRegistrar.php +++ b/src/data/bedrock/item/ItemSerializerDeserializerRegistrar.php @@ -141,7 +141,6 @@ final class ItemSerializerDeserializerRegistrar{ $this->map1to1Block(Ids::CAKE, Blocks::CAKE()); $this->map1to1Block(Ids::CAMPFIRE, Blocks::CAMPFIRE()); $this->map1to1Block(Ids::CAULDRON, Blocks::CAULDRON()); - $this->map1to1Block(Ids::CHAIN, Blocks::CHAIN()); $this->map1to1Block(Ids::CHERRY_DOOR, Blocks::CHERRY_DOOR()); $this->map1to1Block(Ids::COMPARATOR, Blocks::REDSTONE_COMPARATOR()); $this->map1to1Block(Ids::CRIMSON_DOOR, Blocks::CRIMSON_DOOR()); diff --git a/src/data/bedrock/item/ItemTypeNames.php b/src/data/bedrock/item/ItemTypeNames.php index 5c648ff38..0153f6901 100644 --- a/src/data/bedrock/item/ItemTypeNames.php +++ b/src/data/bedrock/item/ItemTypeNames.php @@ -112,7 +112,6 @@ final class ItemTypeNames{ public const CAT_SPAWN_EGG = "minecraft:cat_spawn_egg"; public const CAULDRON = "minecraft:cauldron"; public const CAVE_SPIDER_SPAWN_EGG = "minecraft:cave_spider_spawn_egg"; - public const CHAIN = "minecraft:chain"; public const CHAINMAIL_BOOTS = "minecraft:chainmail_boots"; public const CHAINMAIL_CHESTPLATE = "minecraft:chainmail_chestplate"; public const CHAINMAIL_HELMET = "minecraft:chainmail_helmet"; @@ -160,6 +159,7 @@ final class ItemTypeNames{ public const COPPER_GOLEM_SPAWN_EGG = "minecraft:copper_golem_spawn_egg"; public const COPPER_HELMET = "minecraft:copper_helmet"; public const COPPER_HOE = "minecraft:copper_hoe"; + public const COPPER_HORSE_ARMOR = "minecraft:copper_horse_armor"; public const COPPER_INGOT = "minecraft:copper_ingot"; public const COPPER_LEGGINGS = "minecraft:copper_leggings"; public const COPPER_NUGGET = "minecraft:copper_nugget"; diff --git a/src/network/mcpe/cache/StaticPacketCache.php b/src/network/mcpe/cache/StaticPacketCache.php index 861881437..d7a899c64 100644 --- a/src/network/mcpe/cache/StaticPacketCache.php +++ b/src/network/mcpe/cache/StaticPacketCache.php @@ -79,10 +79,7 @@ class StaticPacketCache{ $biomeDefinition->id, $biomeDefinition->temperature, $biomeDefinition->downfall, - $biomeDefinition->redSporeDensity, - $biomeDefinition->blueSporeDensity, - $biomeDefinition->ashDensity, - $biomeDefinition->whiteAshDensity, + $biomeDefinition->foliageSnow, $biomeDefinition->depth, $biomeDefinition->scale, new Color( diff --git a/src/world/biome/model/BiomeDefinitionEntryData.php b/src/world/biome/model/BiomeDefinitionEntryData.php index bb63b36e1..2ec4d0d28 100644 --- a/src/world/biome/model/BiomeDefinitionEntryData.php +++ b/src/world/biome/model/BiomeDefinitionEntryData.php @@ -37,16 +37,7 @@ final class BiomeDefinitionEntryData{ public float $downfall; /** @required */ - public float $redSporeDensity; - - /** @required */ - public float $blueSporeDensity; - - /** @required */ - public float $ashDensity; - - /** @required */ - public float $whiteAshDensity; + public float $foliageSnow; /** @required */ public float $depth; diff --git a/tools/generate-bedrock-data-from-packets.php b/tools/generate-bedrock-data-from-packets.php index 47411701a..904384618 100644 --- a/tools/generate-bedrock-data-from-packets.php +++ b/tools/generate-bedrock-data-from-packets.php @@ -589,10 +589,7 @@ class ParserPacketHandler extends PacketHandler{ $data->id = $entry->getId(); $data->temperature = round($entry->getTemperature(), 3); $data->downfall = round($entry->getDownfall(), 3); - $data->redSporeDensity = round($entry->getRedSporeDensity(), 3); - $data->blueSporeDensity = round($entry->getBlueSporeDensity(), 3); - $data->ashDensity = round($entry->getAshDensity(), 3); - $data->whiteAshDensity = round($entry->getWhiteAshDensity(), 3); + $data->foliageSnow = round($entry->getFoliageSnow(), 3); $data->depth = round($entry->getDepth(), 3); $data->scale = round($entry->getScale(), 3); $data->mapWaterColour = $mapWaterColor;