The first in support for modded content, a simple custom block: "rockwool" from the Thermal Expansion and Thermal Foundation mods for Forge:
https://ftb.gamepedia.com/Rockwool_(Thermal_Expansion_3)
This makes use of the Forge handshake (#88#134#144), matching the mod block names from the negotiation to numeric identifiers in the world to steven_blocks. Rockwool was chosen due to ease of implementation, it looks like wool from vanilla (except is fire-proof), and by supporting it the groundwork necessary is laid for more sophisticated mod support.
Tested with Thermal Expansion on 1.7.10, 1.10.2 (FTB Beyond), and 1.12.2 Forge servers.
* Add `modid` macro token, skipped from vanilla mappings
* Add ThermalExpansionRockwool block (1.7.10)
* Register modded blocks by modid->[data], and lookup block metadata
* Save block IDs from ModIdData/RegistryData to World modded_block_ids
* Add namespaced mod ids for ModIdData, \u{1}=block \u{2}=item
* Add ThermalFoundation's Rockwool (1.12.2)
Adds support for connecting to Forge servers from 1.8.9 up to 1.12.2.
(1.7.10 was already supported with #134#88)
Tested on:
- 1.8.9 + forge 11.15.1.2318 + ironchest
- 1.10.2 + forge 12.18.3.2511 + ironchest
- 1.11.2 + forge 13.20.1.2588 + ironchest
- 1.12.2 + forge 14.23.5.2837 + ironchest
Changes:
* Parse and handle FmlHs::RegistryData packet for 1.8+
* Fix RegistryData acknowledgement phase WaitingServerComplete
* Fix acknowledgement phase for 1.7.10 ModIdData too, somehow it worked accidentally
* Append \0FML\0 to end of server hostname if Forge mods detected
https://wiki.vg/Minecraft_Forge_Handshake#Connection_to_a_forge_server
Adds support for connecting to 1.7.10 modded servers using the FML|HS protocol:
https://wiki.vg/Minecraft_Forge_Handshake
* Handle client-bound plugin message packets
* Parse FML|HS plugin channel messages
* Add ModList serialization using Mod serializable, LenPrefixed<VarInt, Mod>
* Save forge_mods from server ping and send in FML|HS ModList packet
* Show Forge mod count in server ping listing
* Send acknowledgements, completing the handshake
* Add VarShort to custom payload len prefix replaces i16, fixes OOM on large modded servers
* Add custom CoFHLib's SendUUID packet -26
See explanation at https://github.com/SpigotMC/BungeeCord/issues/1437
This packet is defined by CoFHLib in https://github.com/CoFH/CoFHLib/blob/1.7.10/src/main/java/cofh/lib/util/helpers/SecurityHelper.java#L40
Fixes thread '' panicked at 'bad packet id 0xffffffe6 in Clientbound Play' with FTB:IE