}
else
{
level = -100;
}
LoginServerCommunication.getInstance().sendPacket(new ChangeAccessLevel(account, level, banExpire));
GameClient client = LoginServerCommunication.getInstance().getAuthedClient(account);
if (client != null)
{
Player player = client.getActiveChar();
if (player != null)
{
player.kick();
activeChar.sendMessage("Player " + player.getName() + " kicked.");
}
}
break;
}
case admin_accunban:
{
st.nextToken();
String account = st.nextToken();
LoginServerCommunication.getInstance().sendPacket(new ChangeAccessLevel(account, 0, 0));
break;
}
case admin_trade_ban:
return tradeBan(st, activeChar);
case admin_trade_unban:
return tradeUnban(st, activeChar);
case admin_chatban:
try
{
st.nextToken();
String player = st.nextToken();
String period = st.nextToken();
String bmsg = "admin_chatban " + player + " " + period + " ";
String msg = fullString.substring(bmsg.length(), fullString.length());
if (AutoBan.ChatBan(player, Integer.parseInt(period), msg, activeChar.getName()))
{
activeChar.sendMessage("You ban chat for " + player + ".");
}
else
{
activeChar.sendMessage("Can't find char " + player + ".");
}
}
catch (Exception e)
{
activeChar.sendMessage("Command syntax: //chatban char_name period reason");
}
break;
case admin_chatunban:
try
{
st.nextToken();
String player = st.nextToken();
if (AutoBan.ChatUnBan(player, activeChar.getName()))
{
activeChar.sendMessage("You unban chat for " + player + ".");
}
else
{
activeChar.sendMessage("Can't find char " + player + ".");
}
}
catch (Exception e)
{
activeChar.sendMessage("Command syntax: //chatunban char_name");
}
break;
case admin_jail:
try
{
st.nextToken();
String player = st.nextToken();
String period = st.nextToken();
String reason = st.nextToken();
Player target = World.getPlayer(player);
if (target != null)
{
target.setVar("jailedFrom", target.getX() + ";" + target.getY() + ";" + target.getZ() + ";" + target.getReflectionId(), -1);
target.setVar("jailed", period, -1);
target.startUnjailTask(target, Integer.parseInt(period));
target.teleToLocation(Location.findPointToStay(target, AdminFunctions.JAIL_SPAWN, 50, 200), ReflectionManager.JAIL);
if (activeChar.isInStoreMode())
{
activeChar.setPrivateStoreType(Player.STORE_PRIVATE_NONE);
}
target.sitDown(null);
target.block();
target.sendMessage("You moved to jail, time to escape - " + period + " minutes, reason - " + reason + " .");
activeChar.sendMessage("You jailed " + player + ".");
}
else
{
activeChar.sendMessage("Can't find char " + player + ".");
}
}
catch (Exception e)
{
activeChar.sendMessage("Command syntax: //jail char_name period reason");
}
break;
case admin_unjail:
try
{
st.nextToken();
String player = st.nextToken();
Player target = World.getPlayer(player);
if ((target != null) && (target.getVar("jailed") != null))
{
String[] re = target.getVar("jailedFrom").split(";");
target.teleToLocation(Integer.parseInt(re[0]), Integer.parseInt(re[1]), Integer.parseInt(re[2]));
target.setReflection(re.length > 3 ? Integer.parseInt(re[3]) : 0);
target.stopUnjailTask();
target.unsetVar("jailedFrom");
target.unsetVar("jailed");
target.unblock();
target.standUp();
activeChar.sendMessage("You unjailed " + player + ".");
}
else
{
activeChar.sendMessage("Can't find char " + player + ".");
}
}
catch (Exception e)
{
activeChar.sendMessage("Command syntax: //unjail char_name");
}
break;
case admin_cban:
activeChar.sendPacket(new NpcHtmlMessage(5).setFile("admin/cban.htm"));
break;
case admin_permaban:
if ((activeChar.getTarget() == null) || !activeChar.getTarget().isPlayer())
{
Functions.sendDebugMessage(activeChar, "Target should be set and be a player instance");
return false;
}
Player banned = activeChar.getTarget().getPlayer();
String banaccount = banned.getAccountName();
LoginServerCommunication.getInstance().sendPacket(new ChangeAccessLevel(banaccount, -100, 0));
if (banned.isInOfflineMode())
{
banned.setOfflineMode(false);
}
banned.kick();