Prevent obfuscation from interfering with our method calls. Fixes #25. I effectively implemented what I suggested in my comment on that issue:  When sending a message to a player: 1) Reflectively obtain the net.minecraft.util.com.google.gson.Gson instance, which is not stored as an Object, if it has not already been obtained. Cache the value so we don't have to retrieve it again, as it is a final field. 2) Call fromJson on the Gson object, passing it the JSON string and the Class object representing IChatBaseComponent. 3) Create the PacketPlayOutChat instance with the IChatBaseComponent instance. 4) Send the packet to the player as has been previously implemented.
Prevent obfuscation from interfering with our method calls. Fixes #25.
I effectively implemented what I suggested in my comment on that issue: 
When sending a message to a player:
1) Reflectively obtain the net.minecraft.util.com.google.gson.Gson
instance, which is not stored as an Object, if it has not already been
obtained. Cache the value so we don't have to retrieve it again, as it
is a final field.
2) Call fromJson on the Gson object, passing it the JSON string and the
Class object representing IChatBaseComponent.
3) Create the PacketPlayOutChat instance with the IChatBaseComponent
instance.
4) Send the packet to the player as has been previously implemented.
mkremins/fanciful,sainttx/fanciful,Stealth2800/fanciful,TealCube/fanciful