  .../client/gui/GuiScreenOptionsSounds.java         |   2 +-
  net/minecraft/client/gui/GuiScreenServerList.java  |   8 +
  .../client/gui/ServerListEntryNormal.java          |  13 +-
- net/minecraft/client/gui/ServerSelectionList.java  |   8 +-
+ net/minecraft/client/gui/ServerSelectionList.java  |  14 +-
  net/minecraft/client/gui/achievement/GuiStats.java |  18 +-
  net/minecraft/client/gui/inventory/GuiChest.java   |  76 +++++++
  .../client/gui/inventory/GuiContainer.java         |  51 +++--

 net/minecraft/util/text/ITextComponent.java        |  12 ++
 net/minecraft/util/text/Style.java                 |   6 +
 net/minecraft/world/World.java                     |  41 ++--
 101 files changed, 1597 insertions(+), 554 deletions(-)

diff --git a/Start.java b/Start.java
index ae0025f..078afa5 100644

 
 public class GuiDisconnected extends GuiScreen
 {
@@ -11,13 +15,21 @@ public class GuiDisconnected extends GuiScreen
     private ITextComponent message;
     private List<String> multilineMessage;
     private final GuiScreen parentScreen;
-    private int field_175353_i;
+    private int textHeight;
+    
+	// TODO: Client
+	private int autoReconnectTimer;
 
     public GuiDisconnected(GuiScreen screen, String reasonLocalizationKey, ITextComponent chatComp)
     {
         this.parentScreen = screen;
         this.reason = I18n.format(reasonLocalizationKey, new Object[0]);
         this.message = chatComp;
+        
+		// TODO: Client
+		System.out.println("Disconnected.\n    Message: "
+			+ (message == null ? null : message.getUnformattedText())
+			+ "\n    Reason: " + reason);
     }
 
     /**
@@ -36,8 +48,28 @@ public class GuiDisconnected extends GuiScreen
     {
         this.buttonList.clear();
         this.multilineMessage = this.fontRendererObj.listFormattedStringToWidth(this.message.getFormattedText(), this.width - 50);
-        this.field_175353_i = this.multilineMessage.size() * this.fontRendererObj.FONT_HEIGHT;
-        this.buttonList.add(new GuiButton(0, this.width / 2 - 100, this.height / 2 + this.field_175353_i / 2 + this.fontRendererObj.FONT_HEIGHT, I18n.format("gui.toMenu", new Object[0])));
+        this.textHeight = this.multilineMessage.size() * this.fontRendererObj.FONT_HEIGHT;
+        this.buttonList.add(new GuiButton(0, this.width / 2 - 100, this.height / 2 + this.textHeight / 2 + this.fontRendererObj.FONT_HEIGHT, I18n.format("gui.toMenu", new Object[0])));
+        
+		// TODO: Client
+		buttonList.add(new GuiButton(1, width / 2 - 100,
+			height / 2 + textHeight / 2 + fontRendererObj.FONT_HEIGHT + 24,
+			"Reconnect"));
+		buttonList.add(new GuiButton(2, width / 2 - 100,
+			height / 2 + textHeight / 2 + fontRendererObj.FONT_HEIGHT + 48,
+			"AutoReconnect"));
+		if(message.getUnformattedText().toLowerCase().contains("whitelist")
+			|| message.getUnformattedText().toLowerCase()
+				.contains("white-list"))
+			if(parentScreen instanceof GuiMultiplayer
+				&& ((GuiMultiplayer)parentScreen).serverListSelector
+					.getSelected() != -1)
+				buttonList.add(new GuiButton(3,
+					width / 2 - 100, height / 2 + textHeight / 2
+						+ fontRendererObj.FONT_HEIGHT + 72,
+					"4Delete Serverr"));
+		if(WurstClient.INSTANCE.options.autoReconnect)
+			autoReconnectTimer = 100;
     }
 
     /**
@@ -48,6 +80,55 @@ public class GuiDisconnected extends GuiScreen
         if (button.id == 0)
         {
             this.mc.displayGuiScreen(this.parentScreen);
