This is not a good approach. What if the UpdateBlockEntity packet changes how the entity is represented in the future? The NBT writing should be implemented in the `cProtocol` descendants. The `SendUpdateBlockEntity()` function should take a single `cBlockEntity &` parameter.