Markers
Table of Contents
run-tests.php
| Type | Line | Description |
|---|---|---|
| TODO | 1684 | Cleanup when removed from Zend Engine. |
BigNumber.php
| Type | Line | Description |
|---|---|---|
| TODO | 311 | This could be better resolved by creating an abstract protected method in BigNumber, and leaving to concrete classes the responsibility to perform the addition themselves or delegate it to the given number, depending on their ability to perform the operation. This will also require a version bump because we're potentially breaking custom BigNumber implementations (if any...) |
RelativeDistinguishedName.php
| Type | Line | Description |
|---|---|---|
| TODO | 25 | This does only support one element in the RelativeDistinguishedName Set but it it is defined as follows: |
TemplateParser.php
| Type | Line | Description |
|---|---|---|
| TODO | 27 | test with invalid data |
CertificateExtensions.php
| Type | Line | Description |
|---|---|---|
| FIXME | 67 | wrong offset index |
JsonMapper.php
| Type | Line | Description |
|---|---|---|
| FIXME | 245 | check if type exists, give detailed error message if not |
Comment.php
| Type | Line | Description |
|---|---|---|
| TODO | 230 | Rename these to include "start". |
TokenStream.php
| Type | Line | Description |
|---|---|---|
| TODO | 240 | Handle non-space indentation |
AttributeEmulator.php
| Type | Line | Description |
|---|---|---|
| TODO | 42 | return $tokens; |
Standard.php
| Type | Line | Description |
|---|---|---|
| TODO | 1071 | This is not fully accurate. |
PrettyPrinterAbstract.php
| Type | Line | Description |
|---|---|---|
| TODO | 497 | Add <?php properly |
| TODO | 728 | Try to preserve formatting |
| TODO | 779 | Preserve formatting. |
| TODO | 882 | Preserve formatting. |
| TODO | 905 | Support removing single node. |
| TODO | 1169 | FIXUP_NEW_VARIABLE |
| TODO | 1180 | FIXUP_NEW_VARIABLE |
| TODO | 1302 | "yield" where both key and value are inserted doesn't work |
| TODO | 1330 | 'Stmt_TryCatch->finally' => [null, false, ' ', null], |
| TODO | 1346 | These need to be treated more carefully |
| TODO | 1438 | Insertion into empty statement lists. |
| TODO | 1497 | ]; |
StandardTagFactory.php
| Type | Line | Description |
|---|---|---|
| TODO | 236 | Annotation support is planned for a later stage and as such is disabled for now |
| TODO | 339 | this method should be populated once we implement Annotation notation support. |
AddPlayerPacket.php
| Type | Line | Description |
|---|---|---|
| TODO | 50 | fill player's device ID (???) |
AnimatePacket.php
| Type | Line | Description |
|---|---|---|
| TODO | 32 | (Boat rowing time?) |
ClientboundDebugRendererPacket.php
| Type | Line | Description |
|---|---|---|
| TODO | 28 | if more types are added, we'll probably want to make a separate data type and interfaces |
DataPacket.php
| Type | Line | Description |
|---|---|---|
| TODO | 66 | this means a logical error in the code, but how to prevent it from happening? |
EventPacket.php
| Type | Line | Description |
|---|---|---|
| TODO | 57 | nice confusing mess |
| TODO | 65 | also nice confusing mess |
InteractPacket.php
| Type | Line | Description |
|---|---|---|
| TODO | 38 | should this be a vector3? |
MovePlayerPacket.php
| Type | Line | Description |
|---|---|---|
| TODO | 34 | public int $ridingActorRuntimeId = 0; |
| TODO | 106 | $out->putByte($this->mode); |
ResourcePackDataInfoPacket.php
| Type | Line | Description |
|---|---|---|
| TODO | 29 | check the values for this |
ScriptCustomEventPacket.php
| Type | Line | Description |
|---|---|---|
| TODO | 19 | this doesn't have handlers in either client or server in the game as of 1.8 |
PacketSerializer.php
| Type | Line | Description |
|---|---|---|
| TODO | 346 | NBT data version (?) |
SetActorDataPacket.php
| Type | Line | Description |
|---|---|---|
| TODO | 20 | check why this is serverbound |
StartGamePacket.php
| Type | Line | Description |
|---|---|---|
| TODO | 47 | this should be filled with a UUID of some sort |
| TODO | 48 | public string $serverSoftwareVersion; |
ActorEvent.php
| Type | Line | Description |
|---|---|---|
| TODO | 82 | add more events |
CommandEnumConstraint.php
| Type | Line | Description |
|---|---|---|
| TODO | 22 | find constants |
EntityMetadataProperties.php
| Type | Line | Description |
|---|---|---|
| TODO | 90 | find type |
PlayerMetadataFlags.php
| Type | Line | Description |
|---|---|---|
| TODO | 24 | CHECK |
ItemStackResponse.php
| Type | Line | Description |
|---|---|---|
| TODO | 24 | there are a ton more possible result types but we don't need them yet and they are wayyyyyy too many for me |
LevelSettings.php
| Type | Line | Description |
|---|---|---|
| TODO | 52 | public int $serverChunkTickRadius = 4; //TODO (leave as default for now) |
| TODO | 75 | in the future we'll use promoted properties + named arguments for decoding, but for now we stick with |
AuthenticationData.php
| Type | Line | Description |
|---|---|---|
| TODO | 28 | find out what this is for |
BinaryStream.php
| Type | Line | Description |
|---|---|---|
| TODO | 34 | use typed properties when https://bugs.php.net/bug.php?id=81090 is fixed |
Vector3.php
| Type | Line | Description |
|---|---|---|
| TODO | 48 | make this reuse a single object, once Vector3 becomes immutable |
BaseNbtSerializer.php
| Type | Line | Description |
|---|---|---|
| TODO | 142 | overflow |
CompoundTag.php
| Type | Line | Description |
|---|---|---|
| TODO | 298 | add a flag to enable throwing on this (strict mode) |
ListTag.php
| Type | Line | Description |
|---|---|---|
| TODO | 235 | reintroduce type info |
CompoundTagTest.php
| Type | Line | Description |
|---|---|---|
| TODO | 187 | add more tests |
generate-build-info-json.php
| Type | Line | Description |
|---|---|---|
| TODO | 39 | maybe we should embed this in VersionInfo? |
ActivatorRail.php
| Type | Line | Description |
|---|---|---|
| TODO | 31 | } |
Bamboo.php
| Type | Line | Description |
|---|---|---|
| TODO | 126 | tags would be better for this |
BambooSapling.php
| Type | Line | Description |
|---|---|---|
| TODO | 57 | tags would be better for this |
BaseCoral.php
| Type | Line | Description |
|---|---|---|
| TODO | 67 | check water inside the block itself (not supported on the API yet) |
BaseSign.php
| Type | Line | Description |
|---|---|---|
| TODO | 40 | conditionally useless properties, find a way to fix |
Beacon.php
| Type | Line | Description |
|---|---|---|
| TODO | 32 | } |
Bell.php
| Type | Line | Description |
|---|---|---|
| TODO | 90 | this isn't the actual logic, but it's the closest approximation we can support for now |
BlockFactory.php
| Type | Line | Description |
|---|---|---|
| TODO | 250 | in PC the hardness is 2.0, not 0.8, unsure if this is a MCPE bug or not |
| TODO | 312 | we may need to account for the fact this previously incorrectly had axis |
| TODO | 390 | in the future this won't be the same for all the types |
| TODO | 472 | find a better way to deal with this split |
| TODO | 547 | in the future these won't all have the same hardness; they only do now because of the old metadata crap |
| TODO | 597 | minecraft:bubble_column |
| TODO | 598 | minecraft:campfire |
| TODO | 599 | minecraft:cartography_table |
| TODO | 600 | minecraft:cauldron |
| TODO | 601 | minecraft:chain_command_block |
| TODO | 602 | minecraft:chorus_flower |
| TODO | 603 | minecraft:chorus_plant |
| TODO | 604 | minecraft:command_block |
| TODO | 605 | minecraft:composter |
| TODO | 606 | minecraft:conduit |
| TODO | 607 | minecraft:dispenser |
| TODO | 608 | minecraft:dropper |
| TODO | 609 | minecraft:end_gateway |
| TODO | 610 | minecraft:end_portal |
| TODO | 611 | minecraft:grindstone |
| TODO | 612 | minecraft:jigsaw |
| TODO | 613 | minecraft:kelp |
| TODO | 614 | minecraft:lava_cauldron |
| TODO | 615 | minecraft:lectern |
| TODO | 616 | minecraft:movingBlock |
| TODO | 617 | minecraft:observer |
| TODO | 618 | minecraft:piston |
| TODO | 619 | minecraft:pistonArmCollision |
| TODO | 620 | minecraft:repeating_command_block |
| TODO | 621 | minecraft:scaffolding |
| TODO | 622 | minecraft:seagrass |
| TODO | 623 | minecraft:smithing_table |
| TODO | 624 | minecraft:sticky_piston |
| TODO | 625 | minecraft:stonecutter_block |
| TODO | 626 | minecraft:structure_block |
| TODO | 627 | minecraft:turtle_egg |
| TODO | 631 | minecraft:camera |
| TODO | 632 | minecraft:light_block |
| TODO | 633 | minecraft:stickyPistonArmCollision |
| TODO | 634 | minecraft:structure_void |
| TODO | 635 | minecraft:wither_rose |
| TODO | 639 | minecraft:bee_nest |
| TODO | 640 | minecraft:beehive |
| TODO | 641 | minecraft:honey_block |
| TODO | 642 | minecraft:honeycomb_block |
| TODO | 646 | minecraft:allow |
| TODO | 647 | minecraft:ancient_debris |
| TODO | 648 | minecraft:basalt |
| TODO | 649 | minecraft:blackstone |
| TODO | 650 | minecraft:blackstone_double_slab |
| TODO | 651 | minecraft:blackstone_slab |
| TODO | 652 | minecraft:blackstone_stairs |
| TODO | 653 | minecraft:blackstone_wall |
| TODO | 654 | minecraft:border_block |
| TODO | 655 | minecraft:chain |
| TODO | 656 | minecraft:chiseled_nether_bricks |
| TODO | 657 | minecraft:chiseled_polished_blackstone |
| TODO | 658 | minecraft:cracked_nether_bricks |
| TODO | 659 | minecraft:cracked_polished_blackstone_bricks |
| TODO | 660 | minecraft:crimson_button |
| TODO | 661 | minecraft:crimson_door |
| TODO | 662 | minecraft:crimson_double_slab |
| TODO | 663 | minecraft:crimson_fence |
| TODO | 664 | minecraft:crimson_fence_gate |
| TODO | 665 | minecraft:crimson_fungus |
| TODO | 666 | minecraft:crimson_hyphae |
| TODO | 667 | minecraft:crimson_nylium |
| TODO | 668 | minecraft:crimson_planks |
| TODO | 669 | minecraft:crimson_pressure_plate |
| TODO | 670 | minecraft:crimson_roots |
| TODO | 671 | minecraft:crimson_slab |
| TODO | 672 | minecraft:crimson_stairs |
| TODO | 673 | minecraft:crimson_standing_sign |
| TODO | 674 | minecraft:crimson_stem |
| TODO | 675 | minecraft:crimson_trapdoor |
| TODO | 676 | minecraft:crimson_wall_sign |
| TODO | 677 | minecraft:crying_obsidian |
| TODO | 678 | minecraft:deny |
| TODO | 679 | minecraft:gilded_blackstone |
| TODO | 680 | minecraft:lodestone |
| TODO | 681 | minecraft:nether_gold_ore |
| TODO | 682 | minecraft:nether_sprouts |
| TODO | 683 | minecraft:netherite_block |
| TODO | 684 | minecraft:polished_basalt |
| TODO | 685 | minecraft:polished_blackstone |
| TODO | 686 | minecraft:polished_blackstone_brick_double_slab |
| TODO | 687 | minecraft:polished_blackstone_brick_slab |
| TODO | 688 | minecraft:polished_blackstone_brick_stairs |
| TODO | 689 | minecraft:polished_blackstone_brick_wall |
| TODO | 690 | minecraft:polished_blackstone_bricks |
| TODO | 691 | minecraft:polished_blackstone_button |
| TODO | 692 | minecraft:polished_blackstone_double_slab |
| TODO | 693 | minecraft:polished_blackstone_pressure_plate |
| TODO | 694 | minecraft:polished_blackstone_slab |
| TODO | 695 | minecraft:polished_blackstone_stairs |
| TODO | 696 | minecraft:polished_blackstone_wall |
| TODO | 697 | minecraft:quartz_bricks |
| TODO | 698 | minecraft:respawn_anchor |
| TODO | 699 | minecraft:shroomlight |
| TODO | 700 | minecraft:soul_campfire |
| TODO | 701 | minecraft:soul_fire |
| TODO | 702 | minecraft:soul_lantern |
| TODO | 703 | minecraft:soul_soil |
| TODO | 704 | minecraft:soul_torch |
| TODO | 705 | minecraft:stripped_crimson_hyphae |
| TODO | 706 | minecraft:stripped_crimson_stem |
| TODO | 707 | minecraft:stripped_warped_hyphae |
| TODO | 708 | minecraft:stripped_warped_stem |
| TODO | 709 | minecraft:target |
| TODO | 710 | minecraft:twisting_vines |
| TODO | 711 | minecraft:warped_button |
| TODO | 712 | minecraft:warped_door |
| TODO | 713 | minecraft:warped_double_slab |
| TODO | 714 | minecraft:warped_fence |
| TODO | 715 | minecraft:warped_fence_gate |
| TODO | 716 | minecraft:warped_fungus |
| TODO | 717 | minecraft:warped_hyphae |
| TODO | 718 | minecraft:warped_nylium |
| TODO | 719 | minecraft:warped_planks |
| TODO | 720 | minecraft:warped_pressure_plate |
| TODO | 721 | minecraft:warped_roots |
| TODO | 722 | minecraft:warped_slab |
| TODO | 723 | minecraft:warped_stairs |
| TODO | 724 | minecraft:warped_standing_sign |
| TODO | 725 | minecraft:warped_stem |
| TODO | 726 | minecraft:warped_trapdoor |
| TODO | 727 | minecraft:warped_wall_sign |
| TODO | 728 | minecraft:warped_wart_block |
| TODO | 729 | minecraft:weeping_vines |
BrewingStand.php
| Type | Line | Description |
|---|---|---|
| TODO | 112 | } |
Button.php
| Type | Line | Description |
|---|---|---|
| TODO | 46 | in PC it's (6 - facing) for every meta except 0 (down) |
| TODO | 64 | check valid target block |
ChemistryTable.php
| Type | Line | Description |
|---|---|---|
| TODO | 51 | return false; |
Coral.php
| Type | Line | Description |
|---|---|---|
| TODO | 56 | this hack ensures correct state of coral plants, because they don't retain their dead flag in metadata |
DaylightSensor.php
| Type | Line | Description |
|---|---|---|
| TODO | 116 | } |
DetectorRail.php
| Type | Line | Description |
|---|---|---|
| TODO | 50 | } |
Door.php
| Type | Line | Description |
|---|---|---|
| TODO | 118 | doors are 0.1825 blocks thick, instead of 0.1875 like JE (https://bugs.mojang.com/browse/MCPE-19214) |
EnchantingTable.php
| Type | Line | Description |
|---|---|---|
| TODO | 44 | lock |
EndRod.php
| Type | Line | Description |
|---|---|---|
| TODO | 42 | in PC this is always the same as facing, just PE is stupid |
Farmland.php
| Type | Line | Description |
|---|---|---|
| TODO | 66 | this should be trimmed at the top by 1/16, but MCPE currently treats them as a full block (https://bugs.mojang.com/browse/MCPE-12109) |
| TODO | 105 | check rain |
Fire.php
| Type | Line | Description |
|---|---|---|
| TODO | 119 | check rain |
| TODO | 140 | raise upper bound for chance in humid biomes |
| TODO | 150 | fire spread |
| TODO | 175 | check rain |
FloorCoralFan.php
| Type | Line | Description |
|---|---|---|
| TODO | 64 | HACK! workaround dead flag being lost when broken / blockpicked (original impl only uses first ID) |
| TODO | 105 | This produces Z axis 75% of the time, because any negative angle will produce Z axis. |
FlowerPot.php
| Type | Line | Description |
|---|---|---|
| TODO | 40 | HACK! this is just to make the client actually render the plant - we purposely don't read the flag back |
| TODO | 91 | clean up |
| TODO | 92 | bamboo |
Furnace.php
| Type | Line | Description |
|---|---|---|
| TODO | 87 | check this |
GrassPath.php
| Type | Line | Description |
|---|---|---|
| TODO | 36 | this should be trimmed at the top by 1/16, but MCPE currently treats them as a full block (https://bugs.mojang.com/browse/MCPE-12109) |
Hopper.php
| Type | Line | Description |
|---|---|---|
| TODO | 90 | find a way to have inventories open on click without this boilerplate in every block |
| TODO | 99 | } |
| TODO | 102 | redstone logic, sucking logic |
InfestedStone.php
| Type | Line | Description |
|---|---|---|
| TODO | 53 | } |
AnimatedBlockInventoryTrait.php
| Type | Line | Description |
|---|---|---|
| TODO | 51 | this crap really shouldn't be managed by the inventory |
| TODO | 61 | this crap really shouldn't be managed by the inventory |
Jukebox.php
| Type | Line | Description |
|---|---|---|
| TODO | 115 | Jukebox has redstone effects, they are not implemented. |
Lava.php
| Type | Line | Description |
|---|---|---|
| TODO | 54 | this is 1 in the nether |
Lever.php
| Type | Line | Description |
|---|---|---|
| TODO | 138 | } |
Liquid.php
| Type | Line | Description |
|---|---|---|
| TODO | 386 | I think this should only be liquids of the same type |
MonsterSpawner.php
| Type | Line | Description |
|---|---|---|
| TODO | 40 | } |
Mycelium.php
| Type | Line | Description |
|---|---|---|
| TODO | 48 | light levels |
NetherPortal.php
| Type | Line | Description |
|---|---|---|
| TODO | 83 | return true; |
Note.php
| Type | Line | Description |
|---|---|---|
| TODO | 69 | } |
PressurePlate.php
| Type | Line | Description |
|---|---|---|
| TODO | 36 | } |
Rail.php
| Type | Line | Description |
|---|---|---|
| TODO | 44 | railShape won't be plain metadata in future |
RedstoneComparator.php
| Type | Line | Description |
|---|---|---|
| TODO | 128 | redstone functionality |
RedstoneRepeater.php
| Type | Line | Description |
|---|---|---|
| TODO | 111 | redstone functionality |
RedstoneWire.php
| Type | Line | Description |
|---|---|---|
| TODO | 46 | check connections to nearby redstone components |
SeaPickle.php
| Type | Line | Description |
|---|---|---|
| TODO | 85 | proper placement logic (needs a supporting face below) |
| TODO | 90 | implement this once we have new water logic in place |
| TODO | 99 | bonemeal logic (requires coral) |
Skull.php
| Type | Line | Description |
|---|---|---|
| TODO | 44 | split this into floor skull and wall skull handling |
| TODO | 47 | this should be a parameter |
Slime.php
| Type | Line | Description |
|---|---|---|
| TODO | 43 | slime blocks should slow entities walking on them to about 0.4x original speed |
SnowLayer.php
| Type | Line | Description |
|---|---|---|
| TODO | 75 | this zero-height BB is intended to stay in lockstep with a MCPE bug |
StraightOnlyRail.php
| Type | Line | Description |
|---|---|---|
| TODO | 47 | railShape won't be plain metadata in the future |
SweetBerryBush.php
| Type | Line | Description |
|---|---|---|
| TODO | 154 | in MCPE, this only triggers if moving while inside the bush block - we don't have the system to deal |
Banner.php
| Type | Line | Description |
|---|---|---|
| TODO | 69 | this should be an error |
| TODO | 78 | missing pattern colour should be an error |
| TODO | 81 | this should be an error, but right now we don't have the setup to deal with it |
Beacon.php
| Type | Line | Description |
|---|---|---|
| TODO | 43 | PC uses Primary and Secondary (capitalized first letter), we don't read them here because the IDs would be different |
Bed.php
| Type | Line | Description |
|---|---|---|
| TODO | 58 | this should be an error, but we don't have the systems to handle it yet |
Chest.php
| Type | Line | Description |
|---|---|---|
| TODO | 92 | replace this with a purpose flag on writeSaveData() |
FlowerPot.php
| Type | Line | Description |
|---|---|---|
| TODO | 52 | new PlantBlock tag |
Furnace.php
| Type | Line | Description |
|---|---|---|
| TODO | 159 | move this to Block |
MonsterSpawner.php
| Type | Line | Description |
|---|---|---|
| TODO | 99 | this will cause unexpected results when there's no mapping for the entity |
| TODO | 148 | we can't set SpawnData here because it might crash the client if it's from a PC world (we need to implement full deserialization) |
Spawnable.php
| Type | Line | Description |
|---|---|---|
| TODO | 69 | disassociate network ID from save ID |
Tile.php
| Type | Line | Description |
|---|---|---|
| TODO | 94 | check item root tag (MCPE doesn't use BlockEntityTag) |
TileFactory.php
| Type | Line | Description |
|---|---|---|
| TODO | 77 | Campfire |
| TODO | 78 | Cauldron |
| TODO | 79 | ChalkboardBlock |
| TODO | 80 | ChemistryTable |
| TODO | 81 | CommandBlock |
| TODO | 82 | Conduit |
| TODO | 83 | Dispenser |
| TODO | 84 | Dropper |
| TODO | 85 | EndGateway |
| TODO | 86 | EndPortal |
| TODO | 87 | JigsawBlock |
| TODO | 88 | Lectern |
| TODO | 89 | MovingBlock |
| TODO | 90 | NetherReactor |
| TODO | 91 | PistonArm |
| TODO | 92 | StructureBlock |
TNT.php
| Type | Line | Description |
|---|---|---|
| TODO | 44 | Usage unclear, seems to be a weird hack in vanilla |
Trapdoor.php
| Type | Line | Description |
|---|---|---|
| TODO | 47 | in PC the values are reversed (facing - 2) |
TrappedChest.php
| Type | Line | Description |
|---|---|---|
| TODO | 28 | Redstone! |
TripwireHook.php
| Type | Line | Description |
|---|---|---|
| TODO | 75 | check face is valid |
| TODO | 82 | } |
RailPoweredByRedstoneTrait.php
| Type | Line | Description |
|---|---|---|
| TODO | 37 | railShape won't be plain metadata in the future |
RecordType.php
| Type | Line | Description |
|---|---|---|
| TODO | 69 | Lena Raine - Pigstep |
SignText.php
| Type | Line | Description |
|---|---|---|
| TODO | 60 | add length checks |
Vine.php
| Type | Line | Description |
|---|---|---|
| TODO | 157 | vine growth |
Wood.php
| Type | Line | Description |
|---|---|---|
| TODO | 38 | this should be dynamic, but right now legacy shit gets in the way |
| TODO | 66 | strip logs; can't implement this yet because of legacy limitations :( |
WoodenButton.php
| Type | Line | Description |
|---|---|---|
| TODO | 33 | arrows activate wooden buttons |
ClearCommand.php
| Type | Line | Description |
|---|---|---|
| TODO | 124 | should the cursor inv be cleared? |
DifficultyCommand.php
| Type | Line | Description |
|---|---|---|
| TODO | 63 | add per-world support |
GiveCommand.php
| Type | Line | Description |
|---|---|---|
| TODO | 98 | overflow |
ParticleCommand.php
| Type | Line | Description |
|---|---|---|
| TODO | 161 | colour support |
| TODO | 163 | colour support |
TimingsCommand.php
| Type | Line | Description |
|---|---|---|
| TODO | 156 | replace with a more generic API method for checking availability of CommandSender |
CraftingManager.php
| Type | Line | Description |
|---|---|---|
| TODO | 163 | try to match special recipes before anything else (first they need to be implemented!) |
| TODO | 193 | try to match special recipes before anything else (first they need to be implemented!) |
CraftingManagerFromDataHelper.php
| Type | Line | Description |
|---|---|---|
| TODO | 45 | filter others out for now to avoid breaking economics |
| TODO | 54 | filter others out for now to avoid breaking economics |
| TODO | 68 | campfire |
DyeColorIdMap.php
| Type | Line | Description |
|---|---|---|
| TODO | 69 | is it possible for this to be missing? |
EffectIdMap.php
| Type | Line | Description |
|---|---|---|
| TODO | 74 | SLOW_FALLING |
| TODO | 75 | BAD_OMEN |
| TODO | 76 | VILLAGE_HERO |
| TODO | 79 | not a big fan of the code duplication here :( |
EnchantmentIdMap.php
| Type | Line | Description |
|---|---|---|
| TODO | 59 | smite, bane of arthropods (these don't make sense now because their applicable mobs don't exist yet) |
ArmSwingAnimation.php
| Type | Line | Description |
|---|---|---|
| TODO | 33 | not sure if this should be constrained to humanoids, but we don't have any concept of that right now |
ConsumingItemAnimation.php
| Type | Line | Description |
|---|---|---|
| TODO | 40 | maybe this can be expanded to more than just player entities? |
| TODO | 48 | need to check the data values |
TotemUseAnimation.php
| Type | Line | Description |
|---|---|---|
| TODO | 36 | check if this can be expanded to more than just humans |
InstantDamageEffect.php
| Type | Line | Description |
|---|---|---|
| TODO | 35 | add particles (witch spell) |
LevitationEffect.php
| Type | Line | Description |
|---|---|---|
| TODO | 37 | ugly hack, player motion isn't updated properly by the server yet :( |
VanillaEffects.php
| Type | Line | Description |
|---|---|---|
| TODO | 68 | bad_omen |
| TODO | 88 | slow_falling |
| TODO | 92 | village_hero |
Entity.php
| Type | Line | Description |
|---|---|---|
| TODO | 291 | maybe this shouldn't be nullable? |
| TODO | 619 | check vehicles |
| TODO | 741 | hack for client-side AI interference: prevent client sided movement when motion is 0 |
| TODO | 1204 | vehicle collision events (first we need to spawn them!) |
| TODO | 1422 | actor unique ID |
| TODO | 1429 | head yaw |
| TODO | 1434 | entity links |
| TODO | 1440 | this will cause some visible lag during chunk resends; if the player uses a spawn egg in a chunk, the |
EntityFactory.php
| Type | Line | Description |
|---|---|---|
| TODO | 81 | index them by version to allow proper multi-save compatibility |
ExperienceManager.php
| Type | Line | Description |
|---|---|---|
| TODO | 253 | replace this with a more generic equipment getting/setting interface |
Human.php
| Type | Line | Description |
|---|---|---|
| TODO | 216 | use of NIL UUID for namespace is a hack; we should provide a proper UUID for the namespace |
| TODO | 453 | actor unique ID |
| TODO | 460 | head yaw |
| TODO | 463 | [], //TODO: entity links |
| TODO | 469 | Hack for MCPE 1.2.13: DATA_NAMETAG is useless in AddPlayerPacket, so it has to be sent separately |
| TODO | 481 | +0.001 hack for MCPE falling underground |
Living.php
| Type | Line | Description |
|---|---|---|
| TODO | 130 | load/save armor inventory contents |
| TODO | 226 | reevaluate this hack |
| TODO | 262 | head height |
| TODO | 476 | knockback should not just apply for entity damage sources |
| TODO | 546 | check death conditions (must have been damaged by player < 5 seconds from death) |
FallingBlock.php
| Type | Line | Description |
|---|---|---|
| TODO | 66 | 1.8+ save format |
| FIXME | 119 | anvils are supposed to destroy torches |
| TODO | 154 | check if height affects this |
ItemEntity.php
| Type | Line | Description |
|---|---|---|
| TODO | 210 | entity unique ID |
| TODO | 216 | I have no idea what this is needed for, but right now we don't support fishing anyway |
Painting.php
| Type | Line | Description |
|---|---|---|
| TODO | 153 | entity unique ID |
PrimedTNT.php
| Type | Line | Description |
|---|---|---|
| TODO | 122 | deal with underwater TNT (underwater TNT treats water as if it has a blast resistance of 0) |
Egg.php
| Type | Line | Description |
|---|---|---|
| TODO | 34 | spawn chickens on collision |
EnderPearl.php
| Type | Line | Description |
|---|---|---|
| TODO | 38 | check end gateways (when they are added) |
| TODO | 39 | spawn endermites at origin |
SplashPotion.php
| Type | Line | Description |
|---|---|---|
| TODO | 130 | lingering potions |
Villager.php
| Type | Line | Description |
|---|---|---|
| TODO | 47 | eye height?? |
| TODO | 78 | validation |
Zombie.php
| Type | Line | Description |
|---|---|---|
| TODO | 35 | eye height ?? |
| TODO | 65 | check for equipment and whether it's a baby |
EntityDamageByEntityEvent.php
| Type | Line | Description |
|---|---|---|
| TODO | 50 | move this to entity classes |
CallbackInventoryListener.php
| Type | Line | Description |
|---|---|---|
| TODO | 31 | turn the closure signatures into type aliases when PHPStan supports them |
Banner.php
| Type | Line | Description |
|---|---|---|
| TODO | 104 | missing pattern colour should be an error |
| TODO | 107 | this should be an error |
Boat.php
| Type | Line | Description |
|---|---|---|
| TODO | 45 | } |
Bow.php
| Type | Line | Description |
|---|---|---|
| TODO | 118 | tipped arrows are still consumed when Infinity is applied |
Bowl.php
| Type | Line | Description |
|---|---|---|
| TODO | 28 | check fuel |
Bucket.php
| Type | Line | Description |
|---|---|---|
| TODO | 40 | move this to generic placement logic |
Enchantment.php
| Type | Line | Description |
|---|---|---|
| TODO | 95 | methods for min/max XP cost bounds based on enchantment level (not needed yet - enchanting is client-side) |
ItemFlags.php
| Type | Line | Description |
|---|---|---|
| TODO | 32 | this should probably move to protocol |
VanillaEnchantments.php
| Type | Line | Description |
|---|---|---|
| TODO | 65 | check fireballs |
| TODO | 81 | smite, bane of arthropods (these don't make sense now because their applicable mobs don't exist yet) |
FishingRod.php
| Type | Line | Description |
|---|---|---|
| TODO | 28 | } |
Item.php
| Type | Line | Description |
|---|---|---|
| TODO | 77 | this stuff should be moved to itemstack properties, not mushed in with type properties |
| TODO | 693 | improve error handling |
ItemFactory.php
| Type | Line | Description |
|---|---|---|
| TODO | 273 | use colour object directly |
| TODO | 274 | add interface to dye-colour objects |
| TODO | 295 | minecraft:armor_stand |
| TODO | 296 | minecraft:balloon |
| TODO | 297 | minecraft:banner_pattern |
| TODO | 298 | minecraft:campfire |
| TODO | 299 | minecraft:carrotOnAStick |
| TODO | 300 | minecraft:chest_minecart |
| TODO | 301 | minecraft:command_block_minecart |
| TODO | 302 | minecraft:crossbow |
| TODO | 303 | minecraft:elytra |
| TODO | 304 | minecraft:emptyMap |
| TODO | 305 | minecraft:enchanted_book |
| TODO | 306 | minecraft:end_crystal |
| TODO | 307 | minecraft:ender_eye |
| TODO | 308 | minecraft:fireball |
| TODO | 309 | minecraft:fireworks |
| TODO | 310 | minecraft:fireworksCharge |
| TODO | 311 | minecraft:glow_stick |
| TODO | 312 | minecraft:hopper_minecart |
| TODO | 313 | minecraft:horsearmordiamond |
| TODO | 314 | minecraft:horsearmorgold |
| TODO | 315 | minecraft:horsearmoriron |
| TODO | 316 | minecraft:horsearmorleather |
| TODO | 317 | minecraft:ice_bomb |
| TODO | 318 | minecraft:kelp |
| TODO | 319 | minecraft:lead |
| TODO | 320 | minecraft:lingering_potion |
| TODO | 321 | minecraft:map |
| TODO | 322 | minecraft:medicine |
| TODO | 323 | minecraft:name_tag |
| TODO | 324 | minecraft:phantom_membrane |
| TODO | 325 | minecraft:rapid_fertilizer |
| TODO | 326 | minecraft:record_pigstep |
| TODO | 327 | minecraft:saddle |
| TODO | 328 | minecraft:shield |
| TODO | 329 | minecraft:sparkler |
| TODO | 330 | minecraft:spawn_egg |
| TODO | 331 | minecraft:tnt_minecart |
| TODO | 332 | minecraft:trident |
| TODO | 333 | minecraft:turtle_helmet |
| TODO | 338 | the meta values should probably be hardcoded; they won't change, but the EntityLegacyIds might |
| TODO | 464 | do not assume that item IDs and block IDs are the same or related |
LiquidBucket.php
| Type | Line | Description |
|---|---|---|
| TODO | 64 | move this to generic placement logic |
Minecart.php
| Type | Line | Description |
|---|---|---|
| TODO | 28 | } |
Potion.php
| Type | Line | Description |
|---|---|---|
| TODO | 49 | check CustomPotionEffects NBT |
PotionType.php
| Type | Line | Description |
|---|---|---|
| TODO | 190 | ]), |
| TODO | 193 | ]), |
| TODO | 196 | ]), |
| TODO | 199 | ]), |
| TODO | 202 | ]) |
Skull.php
| Type | Line | Description |
|---|---|---|
| TODO | 41 | we ought to be able to represent this as a regular ItemBlock |
SpawnEgg.php
| Type | Line | Description |
|---|---|---|
| TODO | 45 | what if the entity was marked for deletion? |
WritableBookPage.php
| Type | Line | Description |
|---|---|---|
| TODO | 36 | data validation |
ChunkCache.php
| Type | Line | Description |
|---|---|---|
| FIXME | 204 | requesters will still receive this chunk after it's been dropped, but we can't mark this for a simple |
LegacySkinAdapter.php
| Type | Line | Description |
|---|---|---|
| TODO | 53 | playfab ID |
TypeConverter.php
| Type | Line | Description |
|---|---|---|
| TODO | 66 | inject stuff via constructor |
| TODO | 170 | HACK: This foul-smelling code ensures that we can correctly deserialize an item when the |
| TODO | 225 | HACK: This foul-smelling code ensures that we can correctly deserialize an item when the |
| TODO | 327 | more stuff |
InGamePacketHandler.php
| Type | Line | Description |
|---|---|---|
| TODO | 193 | HACK: EATING_ITEM is sent back to the server when the server sends it for other players (1.14 bug, maybe earlier) |
| TODO | 199 | ignore this and handle it server-side |
| TODO | 273 | this might not be crafting if there is a special inventory open (anvil, enchanting, loom etc) |
| TODO | 295 | only sync slots that the client tried to change |
| TODO | 312 | 1.13+ often sends transactions with nothing but useless crap in them, no need for the debug noise |
| TODO | 342 | start hack for client spam bug |
| TODO | 356 | end hack for client spam bug |
| TODO | 416 | use transactiondata for rollbacks here |
| TODO | 436 | use transactiondata for rollbacks here (resending entire inventory is very wasteful) |
| TODO | 468 | HACK: silence useless spam (MCPE 1.8) |
| TODO | 472 | implement handling for this where it matters |
| TODO | 483 | } |
| TODO | 491 | } |
| TODO | 540 | case PlayerAction::CRACK_BREAK: |
| TODO | 545 | case PlayerAction::STOP_SWIMMING: |
| TODO | 547 | handle this when it doesn't spam every damn tick (yet another spam bug!!) |
| TODO | 549 | ignored (for now) |
| TODO | 552 | do we need to handle this? |
| TODO | 587 | operators can change other people's permissions using this |
| TODO | 600 | check for other changes |
| TODO | 643 | } |
| TODO | 656 | } |
| TODO | 660 | } |
| TODO | 679 | } |
| TODO | 683 | handle resume |
| TODO | 695 | } |
| TODO | 708 | } |
| TODO | 712 | break this up into book API things |
| TODO | 729 | the client can send insert-before actions on trailing client-side pages which cause odd behaviour on the server |
| TODO | 822 | GUI stuff |
| TODO | 826 | } |
| TODO | 830 | implement this properly - this is here to silence debug spam from MCPE dev builds |
LoginPacketHandler.php
| Type | Line | Description |
|---|---|---|
| TODO | 185 | we don't really need this as an array, but right now we don't have enough models |
| TODO | 213 | we don't really need this as an array, but right now we don't have enough models |
PreSpawnPacketHandler.php
| Type | Line | Description |
|---|---|---|
| TODO | 73 | implement this properly |
| TODO | 80 | implement these properly |
ResourcePacksPacketHandler.php
| Type | Line | Description |
|---|---|---|
| TODO | 79 | more stuff |
| TODO | 82 | support forcing server packs |
| TODO | 95 | add lang strings for this |
| TODO | 120 | this might be an addon (not behaviour pack), needed to properly support client-side custom items |
| TODO | 128 | subpacks |
InventoryManager.php
| Type | Line | Description |
|---|---|---|
| TODO | 66 | HACK! |
| TODO | 173 | we should be using some kind of tagging system to identify the types. Instanceof is flaky especially |
| TODO | 200 | HACK! this restores 1.14ish behaviour, but this should be able to be listened to and |
| TODO | 242 | HACK! |
| TODO | 262 | HACK! |
NetworkSession.php
| Type | Line | Description |
|---|---|---|
| TODO | 195 | allow this to be injected |
| TODO | 230 | this should never actually occur... right? |
| TODO | 313 | this is fine since we can't handle anything from a disconnected session, but it might produce surprises in some cases |
| TODO | 621 | Longer term, we should be identifying playerdata using something more reliable, like XUID or UUID. |
| TODO | 651 | make player data loading async |
| TODO | 652 | we shouldn't be loading player data here at all, but right now we don't have any choice :( |
| TODO | 695 | HACK: fix client-side falling pre-spawn |
| TODO | 710 | HACK: we set this during the spawn sequence to prevent the client sending junk movements |
| TODO | 717 | this is a bad fix for pre-spawn death, this shouldn't be reachable at all at this stage :( |
| TODO | 741 | head yaw |
| TODO | 744 | riding entity ID |
| TODO | 745 | tick |
| TODO | 764 | respawn causing block position (bed, respawn anchor) |
| TODO | 803 | permission flags |
| TODO | 828 | we may need yet another effect <=> ID map in the future depending on protocol changes |
| TODO | 860 | commands containing uppercase letters in the name crash 1.9.0 client |
| TODO | 932 | make this an error |
| TODO | 959 | weather needs to be synced here (when implemented) |
| TODO | 979 | we could send zero for slot here because remote players don't need to know which slot was selected |
| TODO | 1067 | we might need to send these to other players in the future |
RakLibInterface.php
| Type | Line | Description |
|---|---|---|
| TODO | 174 | this shouldn't be hardcoded, but we might need the RakNet protocol version to select it |
ChunkSerializer.php
| Type | Line | Description |
|---|---|---|
| TODO | 68 | HACK! fill in fake subchunks to make up for the new negative space client-side |
| TODO | 79 | right now we don't support 3D natively, so we just 3Dify our 2D biomes so they fill the column |
StandardPacketBroadcaster.php
| Type | Line | Description |
|---|---|---|
| TODO | 50 | different compressors might be compatible, it might not be necessary to split them up by object |
QueryHandler.php
| Type | Line | Description |
|---|---|---|
| TODO | 90 | have this filtered by the regex filter we installed above |
| TODO | 116 | check this! according to the spec, this should always be here and always be FF FF FF 01 |
UPnP.php
| Type | Line | Description |
|---|---|---|
| TODO | 133 | replace with preg_last_error_msg() in PHP 8. |
PermissibleInternal.php
| Type | Line | Description |
|---|---|---|
| TODO | 108 | tick scheduled attachments |
ChunkSelector.php
| Type | Line | Description |
|---|---|---|
| TODO | 29 | turn this into an interface? |
GameMode.php
| Type | Line | Description |
|---|---|---|
| TODO | 99 | ability sets per gamemode |
Player.php
| Type | Line | Description |
|---|---|---|
| TODO | 234 | Abilities |
| TODO | 317 | bad hack here to avoid crashes on corrupted data |
| TODO | 976 | HACK! this syncs the onground flag with the client so that flying works properly |
| TODO | 1127 | this is probably too big if we process every movement |
| TODO | 1195 | check swimming (adds 0.015 exhaustion in MCPE) |
| TODO | 1266 | HACK! (Fixes player knockback being messed up) |
| TODO | 1353 | exception here? |
| TODO | 1524 | maybe this should throw an exception instead? |
| TODO | 1558 | check the targeted block matches the one we're told to target |
| TODO | 2294 | workaround for player last pos not getting updated |
| TODO | 2310 | more windows |
| TODO | 2388 | client side race condition here makes the opening work incorrectly |
SurvivalBlockBreakHandler.php
| Type | Line | Description |
|---|---|---|
| TODO | 86 | improve this to take stuff like swimming, ladders, enchanted tools into account, fix wrong tool break time calculations for bad tools (pmmp/PocketMine-MP#211) |
| TODO | 103 | sync with client |
PluginBase.php
| Type | Line | Description |
|---|---|---|
| TODO | 86 | this is accessed externally via reflection, not unused |
PluginManager.php
| Type | Line | Description |
|---|---|---|
| TODO | 195 | I don't think anyone uses this, and it currently relies on some magic inside PermissibleBase |
| TODO | 262 | more specific exception handling |
Server.php
| Type | Line | Description |
|---|---|---|
| TODO | 591 | this hack is needed for new players in-air ticks - they don't get detected as on-ground until they move |
| TODO | 1017 | move console parts to a separate component |
| TODO | 1071 | error checking |
TimingsHandler.php
| Type | Line | Description |
|---|---|---|
| TODO | 146 | it would be nice to bail here, but since we'd have to track timing depth across resets |
Filesystem.php
| Type | Line | Description |
|---|---|---|
| TODO | 125 | access permissions? |
Process.php
| Type | Line | Description |
|---|---|---|
| TODO | 73 | more OS |
| TODO | 123 | more OS |
ReversePriorityQueue.php
| Type | Line | Description |
|---|---|---|
| TODO | 42 | this will crash if non-numeric priorities are used |
Terminal.php
| Type | Line | Description |
|---|---|---|
| TODO | 176 | iOS |
Utils.php
| Type | Line | Description |
|---|---|---|
| TODO | 247 | use of NIL as namespace is a hack; it works for now, but we should have a proper namespace UUID |
Chunk.php
| Type | Line | Description |
|---|---|---|
| TODO | 80 | what about lazily initializing this? |
BedrockWorldData.php
| Type | Line | Description |
|---|---|---|
| TODO | 64 | add support for limited worlds |
| TODO | 77 | find out what the possible values are for |
| TODO | 95 | //Additional PocketMine-MP fields |
| TODO | 141 | add a null generator which does not generate missing chunks (to allow importing back to MCPE and generating more normal terrain without PocketMine messing things up) |
JavaWorldData.php
| Type | Line | Description |
|---|---|---|
| TODO | 48 | , add extra details |
FormatConverter.php
| Type | Line | Description |
|---|---|---|
| TODO | 116 | defaulting to NORMAL here really isn't very good behaviour, but it's consistent with what we already |
| TODO | 141 | add more properties as-needed |
LevelDB.php
| Type | Line | Description |
|---|---|---|
| TODO | 179 | quick and dirty hack for artifacts left behind by broken world editors |
| TODO | 186 | exceptions |
| TODO | 265 | check beds |
| TODO | 330 | set chunks read-only so the version on disk doesn't get overwritten |
| TODO | 382 | set chunks read-only so the version on disk doesn't get overwritten |
| TODO | 416 | tile ticks, biome states (?) |
| TODO | 420 | maybe missing biomes should be an error? |
| TODO | 456 | we use these in-memory, but they aren't supported on disk by the game yet |
| TODO | 484 | use this properly |
Anvil.php
| Type | Line | Description |
|---|---|---|
| TODO | 56 | add world height options |
McRegion.php
| Type | Line | Description |
|---|---|---|
| TODO | 121 | add world height options |
RegionLoader.php
| Type | Line | Description |
|---|---|---|
| TODO | 167 | if we reached here, the locationTable probably needs updating |
| TODO | 350 | more validity checks |
FlatGeneratorOptions.php
| Type | Line | Description |
|---|---|---|
| TODO | 108 | more error checking |
Simplex.php
| Type | Line | Description |
|---|---|---|
| TODO | 84 | this really needs to reset the RNG seed to avoid future RNG contamination |
LightUpdate.php
| Type | Line | Description |
|---|---|---|
| TODO | 33 | make light updates asynchronous |
BlockForceFieldParticle.php
| Type | Line | Description |
|---|---|---|
| TODO | 36 | proper encode/decode of data |
FloatingTextParticle.php
| Type | Line | Description |
|---|---|---|
| TODO | 46 | HACK! |
| TODO | 111 | actor unique ID |
| TODO | 114 | check offset |
MobSpawnParticle.php
| Type | Line | Description |
|---|---|---|
| TODO | 37 | bounds checks |
EntityAttackSound.php
| Type | Line | Description |
|---|---|---|
| TODO | 37 | seems like ATTACK is dysfunctional |
EntityLandSound.php
| Type | Line | Description |
|---|---|---|
| TODO | 54 | does isBaby have any relevance here? |
EntityLongFallSound.php
| Type | Line | Description |
|---|---|---|
| TODO | 50 | is isBaby relevant here? |
EntityShortFallSound.php
| Type | Line | Description |
|---|---|---|
| TODO | 49 | does isBaby have any relevance here? |
XpLevelUpSound.php
| Type | Line | Description |
|---|---|---|
| TODO | 47 | check arbitrary volume |
World.php
| Type | Line | Description |
|---|---|---|
| TODO | 435 | this might actually get hit because generation rejection callbacks might try to schedule new |
| TODO | 1086 | calculated light information might not be valid if the terrain changed during light calculation |
| TODO | 1331 | check rain and thunder level |
| TODO | 1387 | this should probably throw instead (light not calculated yet) |
| TODO | 1412 | this should probably throw instead (light not calculated yet) |
| TODO | 1788 | build height limit messages for custom world heights and mcregion cap |
| TODO | 1885 | seal this up inside block placement |
| TODO | 2040 | this should probably throw instead (terrain not generated yet) |
| TODO | 2511 | we can't prevent entities getting added to unloaded chunks if they were saved in the wrong place |
| TODO | 2655 | bad hack, clean up |
WorldManager.php
| Type | Line | Description |
|---|---|---|
| TODO | 322 | check if we still need the trailing dirsep (I'm a little scared to remove it) |
DisallowEnumComparisonRule.php
| Type | Line | Description |
|---|---|---|
| TODO | 70 | what we really want to do here is iterate over the contained types, but there's no universal way to |
ReceiveReliabilityLayer.php
| Type | Line | Description |
|---|---|---|
| TODO | 197 | this should result in peer banning |
SendReliabilityLayer.php
| Type | Line | Description |
|---|---|---|
| TODO | 209 | group resends if the resulting datagram is below the MTU |
ConnectionRequestAccepted.php
| Type | Line | Description |
|---|---|---|
| TODO | 67 | check this |
NewIncomingConnection.php
| Type | Line | Description |
|---|---|---|
| TODO | 49 | HACK! |
SplitPacketInfo.php
| Type | Line | Description |
|---|---|---|
| TODO | 28 | argument validation |
Server.php
| Type | Line | Description |
|---|---|---|
| TODO | 326 | reusable streams to reduce allocations |
Session.php
| Type | Line | Description |
|---|---|---|
| TODO | 196 | reuse streams to reduce allocations |