  net/minecraft/block/BlockLiquid.java               |  15 +-
  net/minecraft/block/BlockSlab.java                 |   6 +-
  net/minecraft/block/BlockSoulSand.java             |   6 +
- net/minecraft/client/Minecraft.java                | 237 ++++++++++++---------
+ net/minecraft/client/Minecraft.java                | 252 +++++++++++----------
  net/minecraft/client/entity/EntityPlayerSP.java    | 116 +++++++---
  net/minecraft/client/gui/FontRenderer.java         |   2 +-
  net/minecraft/client/gui/GuiButton.java            |  14 +-
- net/minecraft/client/gui/GuiDisconnected.java      |  88 ++++++++
+ net/minecraft/client/gui/GuiDisconnected.java      |  88 +++++++
  net/minecraft/client/gui/GuiGameOver.java          |  14 +-
- net/minecraft/client/gui/GuiIngame.java            |  25 ++-
+ net/minecraft/client/gui/GuiIngame.java            |  25 +-
  net/minecraft/client/gui/GuiIngameMenu.java        |  54 ++++-
  net/minecraft/client/gui/GuiMainMenu.java          |  26 ++-
  net/minecraft/client/gui/GuiMemoryErrorScreen.java |   4 +-

                 this.theWorld.doVoidFogParticles(MathHelper.floor_double(this.thePlayer.posX), MathHelper.floor_double(this.thePlayer.posY), MathHelper.floor_double(this.thePlayer.posZ));
             }
 
@@ -2009,6 +2010,19 @@ public class Minecraft implements IThreadListener, ISnooperInfo
 
                 if (this.currentScreen == null)
                 {
+                	
+					// TODO: Client
+					if(Keyboard.getEventKey() != 0
+						&& WurstClient.INSTANCE.isEnabled())
+					{
+						TreeSet<String> eventCommands =
+							WurstClient.INSTANCE.keybinds.get(
+								Keyboard.getKeyName(Keyboard.getEventKey()));
+						if(eventCommands != null)
+							eventCommands.forEach((cmd) -> thePlayer
+								.sendAutomaticChatMessage(cmd));
+					}
+					
                     if (i == 1)
                     {
                         this.displayInGameMenu();
@@ -2451,6 +2465,12 @@ public class Minecraft implements IThreadListener, ISnooperInfo
         networkmanager.sendPacket(new C00Handshake(210, socketaddress.toString(), 0, EnumConnectionState.LOGIN));
         networkmanager.sendPacket(new CPacketLoginStart(this.getSession().getProfile()));
         this.myNetworkManager = networkmanager;

 .../client/multiplayer/PlayerControllerMP.java     |  29 ++-
 net/minecraft/client/multiplayer/ServerList.java   |   6 +
 net/minecraft/client/multiplayer/WorldClient.java  |   8 +-
 .../client/network/NetHandlerPlayClient.java       | 180 +++------------
 .../client/network/NetworkPlayerInfo.java          |  11 +
 net/minecraft/client/particle/ParticleManager.java |   8 +-
 .../client/renderer/BlockFluidRenderer.java        |   8 +
 .../client/renderer/BlockModelRenderer.java        |  17 +-
 net/minecraft/client/renderer/EntityRenderer.java  |  69 +++++-
 net/minecraft/client/renderer/ItemRenderer.java    |  10 +-
 net/minecraft/client/renderer/RenderGlobal.java    |   2 +-
 net/minecraft/client/renderer/RenderItem.java      |   8 +-
