--- a/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/net/minecraft/server/dedicated/DedicatedServer.java
@@ -76,6 +76,7 @@
    public boolean func_71197_b() throws IOException {
       Thread thread = new Thread("Server console handler") {
          public void run() {
+            if (net.minecraftforge.server.console.TerminalHandler.handleCommands(DedicatedServer.this)) return;
             BufferedReader bufferedreader = new BufferedReader(new InputStreamReader(System.in, StandardCharsets.UTF_8));
 
             String s1;
@@ -158,11 +159,13 @@
          SkullTileEntity.func_184293_a(this.func_152358_ax());
          SkullTileEntity.func_184294_a(this.func_147130_as());
          PlayerProfileCache.func_187320_a(this.func_71266_T());
+         if (!net.minecraftforge.fml.server.ServerLifecycleHooks.handleServerAboutToStart(this)) return false;
          field_155771_h.info("Preparing level \"{}\"", (Object)this.func_230542_k__());
          this.func_240800_l__();
          long j = Util.func_211178_c() - i;
          String s = String.format(Locale.ROOT, "%.3fs", (double)j / 1.0E9D);
          field_155771_h.info("Done ({})! For help, type \"help\"", (Object)s);
+         this.field_211151_aa = Util.func_211177_b(); //Forge: Update server time to prevent watchdog/spaming during long load.
          if (serverproperties.field_219027_u != null) {
             this.func_200252_aR().func_223585_a(GameRules.field_223620_w).func_223570_a(serverproperties.field_219027_u, this);
          }
@@ -186,11 +189,12 @@
          }
 
          Items.field_190931_a.func_150895_a(ItemGroup.field_78027_g, NonNullList.func_191196_a());
+         // <3 you Grum for this, saves us ~30 patch files! --^
          if (serverproperties.field_241079_P_) {
             ServerInfoMBean.func_233490_a_(this);
          }
 
-         return true;
+         return net.minecraftforge.fml.server.ServerLifecycleHooks.handleServerStarting(this);
       }
    }
 
@@ -507,6 +511,11 @@
       return false;
    }
 
+   @Override //Forge: Enable formated text for colors in console.
+   public void func_145747_a(net.minecraft.util.text.ITextComponent message, java.util.UUID p_145747_2_) {
+      field_155771_h.info(message.getString());
+   }
+
    public int func_230512_b_(int p_230512_1_) {
       return this.func_213221_d_().field_241081_R_ * p_230512_1_ / 100;
    }
