Sandertv / gophertunnel

General purpose library for Minecraft Bedrock Edition software written in Go
MIT License
420 stars 96 forks source link

Can't use rockets or place shulkers #118

Closed AsherMaximum closed 2 years ago

AsherMaximum commented 2 years ago

My connected clients are unable to use rockets, whether launched from the ground, or for flying.

True in both creative and survival. You are also unable to interact with the item slot that has rockets in it at all - can't remove them from the slot, pick block while on the slot, or drop them with Q

Shulkers also cannot be placed, although this only happens in Survival.

I've tried looking at the packets sent when a shulker is placed, and they different between the two, I'm just not sure why. I would assume these packets should just be passed through like all the other packets, but something must be getting in the way.

client packets when placing shulker in Creative:


Packet: &packet.InventoryTransaction{LegacyRequestID:0, LegacySetItemSlots:[]protocol.LegacySetItemSlot(nil), Actions:[]protocol.InventoryAction{}, TransactionData:(*protocol.UseItemTransactionData)(0xc00002a270)}

TransactionData: &protocol.UseItemTransactionData{LegacyRequestID:0, LegacySetItemSlots:[]protocol.LegacySetItemSlot(nil), Actions:[]protocol.InventoryAction(nil), ActionType:0x0, BlockPosition:protocol.BlockPos{100, 64, 84}, BlockFace:1, HotBarSlot:6, HeldItem:protocol.ItemInstance{StackNetworkID:0, Stack:protocol.ItemStack{ItemType:protocol.ItemType{NetworkID:218, MetadataValue:0x0}, BlockRuntimeID:6830, Count:0x1, NBTData:map[string]interface {}{}, CanBePlacedOn:[]string{}, CanBreak:[]string{}, HasNetworkID:false}}, Position:mgl32.Vec3{101.43313, 66.62001, 85.712845}, ClickedPosition:mgl32.Vec3{0.34401703, 1, 0.25343323}, BlockRuntimeID:0xe3c}

Packet: &packet.InventoryTransaction{LegacyRequestID:0, LegacySetItemSlots:[]protocol.LegacySetItemSlot(nil), Actions:[]protocol.InventoryAction{}, TransactionData:(*protocol.UseItemTransactionData)(0xc00002a410)}

TransactionData: &protocol.UseItemTransactionData{LegacyRequestID:0, LegacySetItemSlots:[]protocol.LegacySetItemSlot(nil), Actions:[]protocol.InventoryAction(nil), ActionType:0x1, BlockPosition:protocol.BlockPos{0, 0, 0}, BlockFace:255, HotBarSlot:6, HeldItem:protocol.ItemInstance{StackNetworkID:0, Stack:protocol.ItemStack{ItemType:protocol.ItemType{NetworkID:218, MetadataValue:0x0}, BlockRuntimeID:6830, Count:0x1, NBTData:map[string]interface {}{}, CanBePlacedOn:[]string{}, CanBreak:[]string{}, HasNetworkID:false}}, Position:mgl32.Vec3{101.43313, 66.62001, 85.712845}, ClickedPosition:mgl32.Vec3{0, 0, 0}, BlockRuntimeID:0x0}

client packets from Survival

Packet: &packet.InventoryTransaction{LegacyRequestID:0, LegacySetItemSlots:[]protocol.LegacySetItemSlot(nil), Actions:[]protocol.InventoryAction{protocol.InventoryAction{SourceType:0x0, WindowID:0, SourceFlags:0x0, InventorySlot:0x5, OldItem:protocol.ItemInstance{StackNetworkID:0, Stack:protocol.ItemStack{ItemType:protocol.ItemType{NetworkID:205, MetadataValue:0x0}, BlockRuntimeID:7462, Count:0x1, NBTData:map[string]interface {}{"Items":[]interface {}{}}, CanBePlacedOn:[]string{}, CanBreak:[]string{}, HasNetworkID:false}}, NewItem:protocol.ItemInstance{StackNetworkID:0, Stack:protocol.ItemStack{ItemType:protocol.ItemType{NetworkID:0, MetadataValue:0x0}, BlockRuntimeID:0, Count:0x0, NBTData:map[string]interface {}{}, CanBePlacedOn:[]string(nil), CanBreak:[]string(nil), HasNetworkID:false}}}}, TransactionData:(*protocol.UseItemTransactionData)(0xc0002224e0)}

TransactionData: &protocol.UseItemTransactionData{LegacyRequestID:0, LegacySetItemSlots:[]protocol.LegacySetItemSlot(nil), Actions:[]protocol.InventoryAction(nil), ActionType:0x0, BlockPosition:protocol.BlockPos{63, 12, -354}, BlockFace:1, HotBarSlot:5, HeldItem:protocol.ItemInstance{StackNetworkID:0, Stack:protocol.ItemStack{ItemType:protocol.ItemType{NetworkID:205, MetadataValue:0x0}, BlockRuntimeID:7462, Count:0x1, NBTData:map[string]interface {}{"Items":[]interface {}{}}, CanBePlacedOn:[]string{}, CanBreak:[]string{}, HasNetworkID:false}}, Position:mgl32.Vec3{63.5, 14.62001, -354.5}, ClickedPosition:mgl32.Vec3{0.80924225, 1, 0.49331665}, BlockRuntimeID:0x1b00}

Packet: *packet.Interact
Packet: *packet.MobEquipment

Oddly, if you change you gamemode to Survival in a Creative world, you can still place shulkers:

Client packets for Survival mode in Creative world:

Packet: &packet.InventoryTransaction{LegacyRequestID:0, LegacySetItemSlots:[]protocol.LegacySetItemSlot(nil), Actions:[]protocol.InventoryAction{protocol.InventoryAction{SourceType:0x0, WindowID:0, SourceFlags:0x0, InventorySlot:0x6, OldItem:protocol.ItemInstance{StackNetworkID:0, Stack:protocol.ItemStack{ItemType:protocol.ItemType{NetworkID:218, MetadataValue:0x0}, BlockRuntimeID:6830, Count:0x1, NBTData:map[string]interface {}{}, CanBePlacedOn:[]string{}, CanBreak:[]string{}, HasNetworkID:false}}, NewItem:protocol.ItemInstance{StackNetworkID:0, Stack:protocol.ItemStack{ItemType:protocol.ItemType{NetworkID:0, MetadataValue:0x0}, BlockRuntimeID:0, Count:0x0, NBTData:map[string]interface {}{}, CanBePlacedOn:[]string(nil), CanBreak:[]string(nil), HasNetworkID:false}}}}, TransactionData:(*protocol.UseItemTransactionData)(0xc000e8c0d0)}

TransactionData: &protocol.UseItemTransactionData{LegacyRequestID:0, LegacySetItemSlots:[]protocol.LegacySetItemSlot(nil), Actions:[]protocol.InventoryAction(nil), ActionType:0x0, BlockPosition:protocol.BlockPos{101, 64, 83}, BlockFace:1, HotBarSlot:6, HeldItem:protocol.ItemInstance{StackNetworkID:0, Stack:protocol.ItemStack{ItemType:protocol.ItemType{NetworkID:218, MetadataValue:0x0}, BlockRuntimeID:6830, Count:0x1, NBTData:map[string]interface {}{}, CanBePlacedOn:[]string{}, CanBreak:[]string{}, HasNetworkID:false}}, Position:mgl32.Vec3{103.23795, 66.62001, 83.8564}, ClickedPosition:mgl32.Vec3{0.4778061, 1, 0.31988525}, BlockRuntimeID:0xe3c}

Packet: *packet.Interact
Packet: *packet.MobEquipment
T14Raptor commented 2 years ago

What server software are you using?

AsherMaximum commented 2 years ago

Latest official BDS software (1.18.1.02)

Sandertv commented 2 years ago

Is this issue still present in the current version of gophertunnel?

Sandertv commented 2 years ago

Closing this because I expect this to have been fixed since.

jknigga commented 1 year ago

This is still an issue in 1.27.2

JavierLeon9966 commented 1 year ago

Can confirm. I still can't place shulker boxes in BDS. Tested in gophertunnel 1.30.0.