Cuberite Forum

Full Version: Monster in differen versions
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
So i did some poking in the monster code...

THERE IS A BIG PROBLEM WHEN SUPPORTING DIFFERENT VERSIONS WITH AGGRESIVE MONSTER!

Let's say there is a player connecting with 1.8 and goes into the end (high hypothetical) and the server generated a shulker enemy. And there he/she goes without any indication where the damage/effect came from...

The problem is that this player will be attacked from the entities propalby invisible. So we have to check for any entity and each possible interaction if the players client does support that interaction. (e.g. taking damage)

There are some entities wich do more or less the same. Like the 1.10 aditions to zombies and skeletons. So that could be covered by a workaround.

At the moment all entities implemented are supported in all versions. So this is safe.

What are your thoughts?
Mob type mapping can be used for basic cases where the mobs are similar. This is already done for wither skeletons, which received their own entity ID in Minecraft 1.11.

- https://github.com/cuberite/cuberite/blo....cpp#L1910
- https://github.com/cuberite/cuberite/blo...1.cpp#L579
Ok, so that‘s doable.

How about the other point when there‘s no other mob type to replace it with in the client?
Pick the closest one :p
The server admin can of course decide to prevent old clients from joining too.
Wouldn't a solution using armor stands and falling block entities work? for example, using a white concrete falling sand entity to represent the shulker and having invisible armor stands with a certain block (maybe pink glass), on its head to represent the projectiles. Ofc, this would mean the armor stands need to be implemented.
Might be a suitable task for a plugin once we get an API to access network packets directly
Well that would prevent other plugins from interacting with those entities unless they have an additional api call