Skip to content

Horse Spawners crash 1.7 clients on a 1.8 server #66

@alexsosnovsky

Description

@alexsosnovsky

Describe the bug, provide any errors
If a 1.8.9 server has a horse spawner with SpawnData, any 1.7.10 client will crash upon rendering this spawner, due to a NPE: https://paste.gg/p/anonymous/8de590ae721946f8985a76df07f5b06d

This happens due to a bug with versions prior to 1.8, documented here: https://bugs.mojang.com/browse/MC-27442

How can we reproduce it?
Steps to reproduce the behavior:

  1. Join a 1.8 server (which has the latest ViaVersion & ViaRewind) using a 1.8.9 client.
  2. Generate a horse spawner by pasting the following into a command block, then activate the block.
/setblock ~ ~ ~ minecraft:mob_spawner 0 replace {EntityId:EntityHorse,SpawnData:{Type:0,SaddleItem:{id:saddle},Variant:0,ArmorItem:{id:golden_horse_armor}}}
  1. Close Minecraft, rejoin the server using a 1.7.10 client.
  2. Your 1.7.10 client will crash as soon as it loads the horse spawner.

Expected behaviour
The 1.7.10 client ideally wouldn't crash upon loading the horse spawner. I believe the simplest way to do this would be to send the 1.7 client a cow spawner (or another approximate mob) instead of any spawner with the EntityHorse entity ID. The client would render the cow spawner without triggering the NPE; this would not affect spawning logic since it is handled by the server.

ViaVersion Dump
https://dump.viaversion.com/ccd40ca12b10729b877d884baae3a3f0cedd0318a1525572cccef89e9b230b8d

Additional server info
The server runs on Paper and has FAWE, Multiverse, and NBTEditor installed, along with ViaVersion and ViaRewind.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions