Mojang Server Status

By SReject on May 25, 2015

About

Returns the status of mojang's differing servers/services

Requirements:

Win 2000 or later
mIRC 7.x or later

Installing:

In mIRC, create a new remotes' script file(alt+r -> file -> new)
Copy the code from below into the new script and like "Ok"

Usages:

!MojangStatus
/MojangStatus

Code:

on $*:TEXT:/^!mojangstatus$/i:#: msg # $getMojangStatus
alias MojangStatus echo -a $getMojangStatus
alias -l getMogjangStatus {
  var %status = $_mojangStatus, %state = $gettok(%status, 1, 32), %val = $gettok(%status, 2-, 32), %msg, %n = 1, %site
  if (%state != 1 || !%val) {
    return $chr(3) $+ 04[MOJANG STATUS] $+ $chr(15) An error occured while checking mojang server statuses $+ $iif(%val,: %val)
  }
  else {
    %msg = $chr(3) $+ 03[MOJANG STATUS] $+ $chr(15)
    tokenize 124 %val
    while (%n <= $0) {
      %site = $gettok($(,$ $+ %n), 1, 58)
      %status = $gettok($(,$ $+ %n), 2, 58)
      if (%status == 0) {
        %status = $chr(3) $+ 04Down $+ $chr(15)
      }
      elseif (%status == 1) {
        %status = $chr(3) $+ 07Intermitten $+ $chr(15)
      }
      elseif (%status == 2) {
        %status = $chr(3) $+ 03Up $+ $chr(15)
      }
      else {
        %status = %status
      }
      %msg = %msg %site $+ : %status
      if (%n < $0) {
        %msg = %msg -
      }
      inc %n
    }
    return %msg
  }
}
alias -l _mojangStatus {
  var %error, %status, %resp, %statVar = status={status:0,error:"Services not polled"}, %regex, %n = 1
  var %getStatus = function getStatus(){for(var a=['MSXML2.SERVERXMLHTTP.6.0','MSXML2.SERVERXMLHTTP.3.0','MSXML2.SERVERXMLHTTP','MSXML2.XMLHTTP.6.0','MSXML2.XMLHTTP.3.0','Microsoft.XMLHTTP'],b,c=0;c<a.length;c+=1){try{b=new ActiveXObject(a[c])}catch(e){}}if(b!==undefined){b.open("GET","http://status.mojang.com/check",false);b.setRequestHeader("Cache-Control","no-cache");b.send();status={status:b.status,error:null,resp:b.responseText}}else{status={status:0,error:"XMLHTTPRequest object not found"}}}
  if (!$com(mcStatus)) {
    .comopen mcStatus MSScriptControl.ScriptControl
    if (!$com(mcStatus) || $comerr) {
      %error = Unable to locate MSScriptControl.ScriptControl
    }
    elseif (!$com(mcStatus, language, 4, bstr, jscript) || $comerr) {
      %error = Unable to set script language to JScript for MSScriptControl.ScriptControl
    }
    elseif (!$com(mcStatus, addcode, 1, bstr, %getStatus) || $comerr) {
      %error = Unable to add getStatus() function to the ScriptControl
    }
    elseif (!$com(mcStatus, ExecuteStatement, 1, bstr, %statVar) || $comerr) {
      %error = Unable to initalize status variable
    }
    if (%error) { 
      goto error
    }
  }
  if (!$com(mcStatus, ExecuteStatement, 1, bstr, getStatus $+ $chr(40) $+ $chr(41)) || $comerr) {
    %error = Unable to execute getStatus()
  }
  else {
    if (!$com(mcStatus, eval, 1, bstr, status.status) || $comerr) {
      %error = Unable to retrieve status from getStatus()
      goto error
    }
    var %status = $com(mcStatus).result
    if (%status == 0) {
      return 0 XMLHTTPRequest object not found
    }
    elseif (%status !== 200) {
      return 0 Server Error %status
    }
    elseif (!$com(mcStatus, eval, 1, bstr, status.resp) || $comerr) {
      %error = Unable to retrieve response from getStatus()
      goto error
    }
    noop $regex(mcStatus, $com(mcStatus).result, /"([^"]+)":"([^"]+)"/g)
    while (%n <= $regml(mcStatus, 0)) {
      var %site = $regml(mcStatus, %n)
      if (%site == minecraft.net) {
        %site = Minecraft.net
      }
      elseif (%site == session.minecraft.net) {
        %site = Session Tracker
      }
      elseif (%site == account.mojang.com) {
        %site = Account Tracker
      }
      elseif (%site == auth.mojang.com) {
        %site = Auth Tracker
      }
      elseif (%site == skins.minecraft.net) {
        %site = Skin Server
      }
      elseif (%site == authserver.mojang.com) {
        %site = Auth Server
      }
      elseif (%site == sessionserver.mojang.com) {
        %site = Session Server
      }
      elseif (%site == api.mojang.com) {
        %site = API Server
      }
      elseif (%site == textures.minecraft.net) {
        %site = Texture Server
      }
      inc %n
      var %value = $regml(mcStatus, %n)
      if (%value == red) {
        %value = 0
      }
      elseif (%value == yellow) {
        %value = 1
      }
      elseif (%value == green) {
        %value = 2
      }
      inc %n

      %resp = $addtok(%resp, %site $+ : $+ %value, 124)
    }
    return 1 %resp
  }
  :error
  %error = $iif($error, $error, %error)
  if (%error) {
    reseterror
    if ($com(mcstatus)) { .comclose mcstatus }
    if ($isid) return 0 %error
  }
}

Comments

Sign in to comment.
Hawkee   -  Jun 12, 2015

You could use this or you can just search Twitter for "mojang down" =D

 Respond  
Are you sure you want to unfollow this person?
Are you sure you want to delete this?
Click "Unsubscribe" to stop receiving notices pertaining to this post.
Click "Subscribe" to resume notices pertaining to this post.