@@ -15,343 +15,277 @@ public OConsoleCommandHandler(OMinecraftServer var1) {

public synchronized void a(OServerCommand var1) {
String var2 = var1.a;
OICommandListener var3 = var1.b;
String var4 = var3.d();
OServerConfigurationManager var5 = this.b.h;

if (!var2.toLowerCase().startsWith("help") && !var2.toLowerCase().startsWith("?")) {
if (var2.toLowerCase().startsWith("list")) {
var3.b("Connected players: " + var5.c());
} else if (var2.toLowerCase().startsWith("stop")) {
this.a(var4, "Stopping the server..");
String[] var3 = var2.split(" ");
String var4 = var3[0];
String var5 = var2.substring(var4.length()).trim();
OICommandListener var6 = var1.b;
String var7 = var6.d();
OServerConfigurationManager var8 = this.b.h;

if (!var4.equalsIgnoreCase("help") && !var4.equalsIgnoreCase("?")) {
if (var4.equalsIgnoreCase("list")) {
var6.b("Connected players: " + var8.c());
} else if (var4.equalsIgnoreCase("stop")) {
this.a(var7, "Stopping the server..");
this.b.a();
} else {
int var6;
OWorldServer var7;
int var9;
OWorldServer var10;

if (var2.toLowerCase().startsWith("save-all")) {
this.a(var4, "Forcing save..");
if (var5 != null) {
var5.g();
if (var4.equalsIgnoreCase("save-all")) {
this.a(var7, "Forcing save..");
if (var8 != null) {
var8.g();
}

for (OWorldServer[] level : this.b.worlds.values()) // CanaryMod: multiworld
for (var6 = 0; var6 < level.length; ++var6) {
var7 = level[var6];
boolean var8 = var7.I;

var7.I = false;
var7.a(true, (OIProgressUpdate) null);
var7.I = var8;
for (OWorldServer[] level : this.b.worlds.values()) { // CanaryMod: multiworld
for (var9 = 0; var9 < level.length; ++var9) {
var10 = level[var9];
boolean var11 = var10.I;

var10.I = false;
var10.a(true, (OIProgressUpdate) null);
var10.I = var11;
}
}

this.a(var4, "Save complete.");
} else if (var2.toLowerCase().startsWith("save-off")) {
this.a(var4, "Disabling level saving..");
this.a(var7, "Save complete.");
} else if (var4.equalsIgnoreCase("save-off")) {
this.a(var7, "Disabling level saving..");

for (OWorldServer[] level : this.b.worlds.values()) // CanaryMod: multiworld
for (var6 = 0; var6 < level.length; ++var6) {
var7 = level[var6];
var7.I = true;
for (OWorldServer[] level : this.b.worlds.values()) { // CanaryMod: multiworld
for (var9 = 0; var9 < level.length; ++var9) {
var10 = level[var9];
var10.I = true;
}
} else if (var2.toLowerCase().startsWith("save-on")) {
this.a(var4, "Enabling level saving..");
}
} else if (var4.equalsIgnoreCase("save-on")) {
this.a(var7, "Enabling level saving..");

for (OWorldServer[] level : this.b.worlds.values()) // CanaryMod: multiworld
for (var6 = 0; var6 < level.length; ++var6) {
var7 = level[var6];
var7.I = false;
for (OWorldServer[] level : this.b.worlds.values()) { // CanaryMod: multiworld
for (var9 = 0; var9 < level.length; ++var9) {
var10 = level[var9];
var10.I = false;
}
}
} else if (var4.equalsIgnoreCase("op")) {
var8.e(var5);
this.a(var4, "Opping " + var5);
var8.a(var5, "\u00a7eYou are now op!");
} else if (var4.equalsIgnoreCase("deop ")) {
var8.f(var5);
var8.a(var5, "\u00a7eYou are no longer op!");
this.a(var7, "De-opping " + var5);
} else if (var4.equalsIgnoreCase("ban-ip ")) {
var8.c(var5);
this.a(var7, "Banning ip " + var5);
} else if (var4.equalsIgnoreCase("pardon-ip ")) {
var8.d(var5);
this.a(var7, "Pardoning ip " + var5);
} else {
String var16;

if (var2.toLowerCase().startsWith("op ")) {
var16 = var2.substring(var2.indexOf(" ")).trim();
var5.e(var16);
this.a(var4, "Opping " + var16);
var5.a(var16, "\u00a7eYou are now op!");
} else if (var2.toLowerCase().startsWith("deop ")) {
var16 = var2.substring(var2.indexOf(" ")).trim();
var5.f(var16);
var5.a(var16, "\u00a7eYou are no longer op!");
this.a(var4, "De-opping " + var16);
} else if (var2.toLowerCase().startsWith("ban-ip ")) {
var16 = var2.substring(var2.indexOf(" ")).trim();
var5.c(var16);
this.a(var4, "Banning ip " + var16);
} else if (var2.toLowerCase().startsWith("pardon-ip ")) {
var16 = var2.substring(var2.indexOf(" ")).trim();
var5.d(var16);
this.a(var4, "Pardoning ip " + var16);
OEntityPlayerMP var18;

if (var4.equalsIgnoreCase("ban ")) {
var8.a(var5);
this.a(var4, "Banning " + var5);
var18 = var8.i(var5);
if (var18 != null) {
var18.a.a("Banned by admin");
}
} else if (var4.equalsIgnoreCase("pardon ")) {
var8.b(var5);
this.a(var4, "Pardoning " + var5);
} else {
OEntityPlayerMP var17;

if (var2.toLowerCase().startsWith("ban ")) {
var16 = var2.substring(var2.indexOf(" ")).trim();
var5.a(var16);
this.a(var4, "Banning " + var16);
var17 = var5.i(var16);
if (var17 != null) {
var17.a.a("Banned by admin");
}
} else if (var2.toLowerCase().startsWith("pardon ")) {
var16 = var2.substring(var2.indexOf(" ")).trim();
var5.b(var16);
this.a(var4, "Pardoning " + var16);
} else {
int var18;
String var19;
int var21;

if (var2.toLowerCase().startsWith("kick ")) {
var16 = var2.substring(var2.indexOf(" ")).trim();
var17 = null;
if (var4.equalsIgnoreCase("kick ")) {
var19 = var5;
var18 = null;

for (var18 = 0; var18 < var5.b.size(); ++var18) {
OEntityPlayerMP var9 = (OEntityPlayerMP) var5.b.get(var18);
for (var21 = 0; var21 < var8.b.size(); ++var21) {
OEntityPlayerMP var12 = (OEntityPlayerMP) var8.b.get(var21);

if (var9.v.equalsIgnoreCase(var16)) {
var17 = var9;
}
if (var12.v.equalsIgnoreCase(var5)) {
var18 = var12;
}
}

if (var17 != null) {
var17.a.a("Kicked by admin");
this.a(var4, "Kicking " + var17.v);
if (var18 != null) {
var18.a.a("Kicked by admin");
this.a(var4, "Kicking " + var18.v);
} else {
var6.b("Can\'t find user " + var19 + ". No kick.");
}
} else if (var4.equalsIgnoreCase("tp")) {
if (var3.length == 3) {
OEntityPlayerMP var20 = var8.i(var3[1]);

var18 = var8.i(var3[2]);
if (var20 == null) {
var6.b("Can\'t find user " + var3[1] + ". No tp.");
} else if (var18 == null) {
var6.b("Can\'t find user " + var3[2] + ". No tp.");
} else if (var20.w != var18.w) {
var6.b("User " + var3[1] + " and " + var3[2] + " are in different dimensions. No tp.");
} else {
var3.b("Can\'t find user " + var16 + ". No kick.");
var20.a.a(var18.bm, var18.bn, var18.bo, var18.bs, var18.bt);
this.a(var7, "Teleporting " + var3[1] + " to " + var3[2] + ".");
}
} else {
OEntityPlayerMP var21;
String[] var22;



if (var2.toLowerCase().startsWith("tp ")) {
var22 = var2.split(" ");
if (var22.length == 3) {
var17 = var5.i(var22[1]);
var21 = var5.i(var22[2]);




if (var17 == null) {
var3.b("Can\'t find user " + var22[1] + ". No tp.");
} else if (var21 == null) {

var3.b("Can\'t find user " + var22[2] + ". No tp.");
} else if (var17.w != var21.w) {

var3.b("User " + var22[1] + " and " + var22[2] + " are in different dimensions. No tp.");
} else {
var17.a.a(var21.bm, var21.bn, var21.bo, var21.bs, var21.bt);

this.a(var4, "Teleporting " + var22[1] + " to " + var22[2] + ".");
}
} else {
var3.b("Syntax error, please provice a source and a target.");
}
} else {
int var19;
String var20;

if (var2.toLowerCase().startsWith("give ")) {
var22 = var2.split(" ");

if (var22.length != 3 && var22.length != 4 && var22.length != 5) {
return;
}

var20 = var22[1];
var21 = var5.i(var20);
if (var21 != null) {



try {
var19 = Integer.parseInt(var22[2]);
if (OItem.d[var19] != null) {
this.a(var4, "Giving " + var21.v + " some " + var19);
int var10 = 1;
int var11 = 0;

if (var22.length > 3) {
var10 = this.a(var22[3], 1);


}

if (var22.length > 4) {
var11 = this.a(var22[4], 1);


}

if (var10 < 1) {
var10 = 1;
}

if (var10 > 64) {
var10 = 64;
}

var21.b(new OItemStack(var19, var10, var11));
} else {
var3.b("There\'s no item with id " + var19);
}
} catch (NumberFormatException var14) {
var3.b("There\'s no item with id " + var22[2]);
}
} else {
var3.b("Can\'t find user " + var20);
}
} else if (var2.toLowerCase().startsWith("xp")) {
var22 = var2.split(" ");
if (var22.length != 3) {


return;
}

var20 = var22[1];
var21 = var5.i(var20);
if (var21 != null) {



try {
var19 = Integer.parseInt(var22[2]);
var19 = var19 > 5000 ? 5000 : var19;
this.a(var4, "Giving " + var19 + " orbs to " + var21.v);
var21.g(var19);
var6.b("Syntax error, please provice a source and a target.");
}
} else if (var4.equalsIgnoreCase("give")) {
if (var3.length != 3 && var3.length != 4 && var3.length != 5) {
return;
}

} catch (NumberFormatException var13) {
var3.b("Invalid orb count: " + var22[2]);
}
} else {
var3.b("Can\'t find user " + var20);
var19 = var3[1];
var18 = var8.i(var19);
if (var18 != null) {
try {
var21 = Integer.parseInt(var3[2]);
if (OItem.d[var21] != null) {
this.a(var7, "Giving " + var18.v + " some " + var21);
int var22 = 1;
int var13 = 0;

if (var3.length > 3) {
var22 = this.a(var3[3], 1);
}
} else if (var2.toLowerCase().startsWith("gamemode ")) {
var22 = var2.split(" ");
if (var22.length != 3) {


return;
if (var3.length > 4) {
var13 = this.a(var3[4], 1);
}

var20 = var22[1];
var21 = var5.i(var20);
if (var21 != null) {



try {
var19 = Integer.parseInt(var22[2]);
var19 = OWorldSettings.a(var19);
if (var21.c.a() != var19) {

this.a(var4, "Setting " + var21.v + " to game mode " + var19);
var21.c.a(var19);

var21.a.b((OPacket) (new OPacket70Bed(3, var19)));
} else {
this.a(var4, var21.v + " already has game mode " + var19);
}
} catch (NumberFormatException var12) {
var3.b("There\'s no game mode with id " + var22[2]);
}
} else {
var3.b("Can\'t find user " + var20);
if (var22 < 1) {
var22 = 1;
}
} else if (var2.toLowerCase().startsWith("time ")) {
var22 = var2.split(" ");
if (var22.length != 3) {


return;
if (var22 > 64) {
var22 = 64;
}

var20 = var22[1];


try {
var18 = Integer.parseInt(var22[2]);
OWorldServer var23;


/* CanaryMod: we use our own time command
if ("add".equalsIgnoreCase(var20)) {
for (var19 = 0; var19 < this.b.e.length; ++var19) {
var23 = this.b.e[var19];
var23.b(var23.o() + (long) var18);
}
this.a(var4, "Added " + var18 + " to time");
} else if ("set".equalsIgnoreCase(var20)) {
for (var19 = 0; var19 < this.b.e.length; ++var19) {
var23 = this.b.e[var19];
var23.b((long) var18);
var18.b(new OItemStack(var21, var22, var13));
} else {
var6.b("There\'s no item with id " + var21);
}
} catch (NumberFormatException var16) {
var6.b("There\'s no item with id " + var3[2]);
}
} else {
var6.b("Can\'t find user " + var19);
}
} else if (var4.equalsIgnoreCase("OEntityAITaskEntry")) {
if (var3.length != 3) {
return;
}

}
var19 = var3[1];
var18 = var8.i(var19);
if (var18 != null) {
try {
var21 = Integer.parseInt(var3[2]);
var21 = var21 > 5000 ? 5000 : var21;
this.a(var7, "Giving " + var21 + " orbs to " + var18.v);
var18.g(var21);
} catch (NumberFormatException var15) {
var6.b("Invalid orb count: " + var3[2]);
}
} else {
var6.b("Can\'t find user " + var19);
}
} else if (var4.equalsIgnoreCase("gamemode")) {
if (var3.length != 3) {
return;
}

this.a(var4, "Set time to " + var18);
} else {
var3.b("Unknown method, use either \"add\" or \"set\"");
}
*/
} catch (NumberFormatException var15) {
var3.b("Unable to convert time value, " + var22[2]);
}
} else if (var2.toLowerCase().startsWith("say ")) {
var2 = var2.substring(var2.indexOf(" ")).trim();
a.info("[" + var4 + "] " + var2);
var5.a((OPacket) (new OPacket3Chat("\u00a7d[Server] " + var2)));
} else if (var2.toLowerCase().startsWith("tell ")) {
var22 = var2.split(" ");
if (var22.length >= 3) {


var2 = var2.substring(var2.indexOf(" ")).trim();
var2 = var2.substring(var2.indexOf(" ")).trim();
a.info("[" + var4 + "->" + var22[1] + "] " + var2);
var2 = "\u00a77" + var4 + " whispers " + var2;
a.info(var2);
if (!var5.a(var22[1], (OPacket) (new OPacket3Chat(var2)))) {
var3.b("There\'s no player by that name online.");
}
}
} else if (var2.toLowerCase().startsWith("whitelist ")) {
this.a(var4, var2, var3);
/* CanaryMod: use our own weather command
} else if (var2.toLowerCase().startsWith("toggledownfall")) {
this.b.e[0].j();
var3.b("Toggling rain and snow, hold on...");
*/
} else if (var2.toLowerCase().startsWith("banlist")) {
var22 = var2.split(" ");
if (var22.length == 2) {
if (var22[1].equals("ips")) {



var3.b("IP Ban list:" + this.a(this.b.q(), ", "));
}
} else {
var3.b("Ban list:" + this.a(this.b.r(), ", "));
}
var19 = var3[1];
var18 = var8.i(var19);
if (var18 != null) {
try {
var21 = Integer.parseInt(var3[2]);
var21 = OWorldSettings.a(var21);
if (var18.c.a() != var21) {
this.a(var7, "Setting " + var18.v + " to game mode " + var21);
var18.c.a(var21);
var18.a.b((OPacket) (new OPacket70Bed(3, var21)));
} else {
a.info("Unknown console command. Type \"help\" for help.");
this.a(var7, var18.v + " already has game mode " + var21);
}
} catch (NumberFormatException var14) {
var6.b("There\'s no game mode with id " + var3[2]);
}
} else {
var6.b("Can\'t find user " + var19);
}
// CanaryMod: We have our own time command
/* } else if(var4.equalsIgnoreCase("time")) {
if(var3.length != 3) {
return;
}
var19 = var3[1];
try {
int var23 = Integer.parseInt(var3[2]);
OWorldServer var24;
if("add".equalsIgnoreCase(var19)) {
for(var21 = 0; var21 < this.b.e.length; ++var21) {
var24 = this.b.e[var21];
var24.b(var24.o() + (long)var23);
}
this.a(var7, "Added " + var23 + " to time");
} else if("set".equalsIgnoreCase(var19)) {
for(var21 = 0; var21 < this.b.e.length; ++var21) {
var24 = this.b.e[var21];
var24.b((long)var23);
}
this.a(var7, "Set time to " + var23);
} else {
var6.b("Unknown method, use either \"add\" or \"set\"");
}
} catch (NumberFormatException var17) {
var6.b("Unable to convert time value, " + var3[2]);
}*/
} else if (var4.equalsIgnoreCase("say") && var5.length() > 0) {
a.info("[" + var7 + "] " + var5);
var8.a((OPacket) (new OPacket3Chat("\u00a7d[Server] " + var5)));
} else if (var4.equalsIgnoreCase("tell")) {
if (var3.length >= 3) {
var2 = var2.substring(var2.indexOf(" ")).trim();
var2 = var2.substring(var2.indexOf(" ")).trim();
a.info("[" + var7 + "->" + var3[1] + "] " + var2);
var2 = "\u00a77" + var7 + " whispers " + var2;
a.info(var2);
if (!var8.a(var3[1], (OPacket) (new OPacket3Chat(var2)))) {
var6.b("There\'s no player by that name online.");
}
}
} else if (var4.equalsIgnoreCase("whitelist")) {
this.a(var7, var2, var6);
// CanaryMod: We have our own weather command
/* } else if(var4.equalsIgnoreCase("toggledownfall")) {
this.b.e[0].j();
var6.b("Toggling rain and snow, hold on...");*/
} else if (var4.equalsIgnoreCase("banlist")) {
if (var3.length == 2) {
if (var3[1].equals("ips")) {
var6.b("IP Ban list:" + this.a(this.b.q(), ", "));
}
} else {
var6.b("Ban list:" + this.a(this.b.r(), ", "));
}
} else {
a.info("Unknown console command. Type \"help\" for help.");
}
}
}
}
} else {
this.a(var3);
this.a(var6);
}

}
@@ -422,6 +356,7 @@ private void a(OICommandListener var1) {
var1.b(" say <message> broadcasts a message to all players");
var1.b(" time <add|set> <amount> adds to or sets the world time (0-24000)");
var1.b(" gamemode <player> <mode> sets player\'s game mode (0 or 1)");
var1.b(" xp <player> <amount> gives the player the amount of xp (0-5000)");
}

private void a(String var1, String var2) {