{
activeChar.sendMessage("Usage: //changename|setname <new_name_for_target>");
return false;
}
L2Object target = activeChar.getTarget();
L2PcInstance player = null;
String oldName = null;
if (target instanceof L2PcInstance)
{
player = (L2PcInstance) target;
oldName = player.getName();
L2World.getInstance().removeFromAllPlayers(player);
player.setName(val);
player.store();
L2World.getInstance().addToAllPlayers(player);
player.sendMessage("Your name has been changed by a GM.");
player.broadcastUserInfo();
if (player.isInParty())
{
// Delete party window for other party members
player.getParty().broadcastToPartyMembers(player, new PartySmallWindowDeleteAll());
for (L2PcInstance member : player.getParty().getPartyMembers())
{
// And re-add
if (member != player)
{
member.sendPacket(new PartySmallWindowAll(player, player.getParty()));
}
}
}
if (player.getClan() != null)
{
player.getClan().updateClanMember(player);
player.getClan().broadcastToOnlineMembers(new PledgeShowMemberListUpdate(player));
player.sendPacket(new PledgeShowMemberListAll(player.getClan(), player));
}
RegionBBSManager.getInstance().changeCommunityBoard();
}
else if (target instanceof L2NpcInstance)
{
L2NpcInstance npc = (L2NpcInstance) target;
oldName = npc.getName();
npc.setName(val);
npc.updateAbnormalEffect();
}
if (oldName == null)
{
activeChar.sendPacket(new SystemMessage(SystemMessageId.INCORRECT_TARGET));
return false;
}
activeChar.sendMessage("Name changed from " + oldName + " to " + val);
return true;
} // changes char name
case admin_edit_character:
{
editCharacter(activeChar);
return true;
}
case admin_current_player:
{
showCharacterInfo(activeChar, null);
return true;
}
case admin_nokarma:
{
setTargetKarma(activeChar, 0);
return true;
}
case admin_setkarma:
{
int karma = 0;
if (st.hasMoreTokens())
{
String val = st.nextToken();
try
{
karma = Integer.parseInt(val);
val = null;
}
catch (NumberFormatException e)
{
activeChar.sendMessage("Usage: //setkarma new_karma_for_target(number)");
return false;
}
}
else
{
activeChar.sendMessage("Usage: //setkarma new_karma_for_target");
return false;
}
setTargetKarma(activeChar, karma);
return true;
}
case admin_character_list:
case admin_character_info:
{
String val = "";
if (st.hasMoreTokens())
{
while (st.hasMoreTokens())
{
if (val.equals(""))
{
val = st.nextToken();
}
else
{
val += " " + st.nextToken();
}
}
}
else
{
activeChar.sendMessage("Usage: //character_info <player_name>");
return false;
}
L2PcInstance target = L2World.getInstance().getPlayer(val);
if (target != null)
{
showCharacterInfo(activeChar, target);
val = null;
return true;
}
activeChar.sendPacket(new SystemMessage(SystemMessageId.CHARACTER_DOES_NOT_EXIST));
val = null;
return false;
} // given a player name:{} displays an information window
case admin_show_characters:
{
String val = "";
if (st.hasMoreTokens())
{
val = st.nextToken();
try
{
int page = Integer.parseInt(val);
listCharacters(activeChar, page);
val = null;
return true;
}
catch (NumberFormatException e)
{
activeChar.sendMessage("Usage: //show_characters <page_number>");
val = null;
listCharacters(activeChar, 0);
return false;
}
}
activeChar.sendMessage("Usage: //show_characters <page_number>");
listCharacters(activeChar, 0);
return false;
}
case admin_find_character:
{
String val = "";
if (st.hasMoreTokens())
{
while (st.hasMoreTokens())
{
if (val.equals(""))
{
val = st.nextToken();
}
else
{
val += " " + st.nextToken();
}
}
}
else
{
activeChar.sendMessage("Usage: //find_character <player_name>");
listCharacters(activeChar, 0);
return false;
}
findCharacter(activeChar, val);
val = null;
return true;
}
case admin_find_dualbox:
{
String val = "";
int boxes = 2;
if (st.hasMoreTokens())
{
val = st.nextToken();
try
{
boxes = Integer.parseInt(val);
val = null;
}
catch (NumberFormatException e)
{
activeChar.sendMessage("Usage: //find_dualbox <boxes_number>(default 2)");
val = null;
listCharacters(activeChar, 0);
return false;
}
}
findMultibox(activeChar, boxes);
return true;
}
case admin_find_ip:
{
String val = "";
if (st.hasMoreTokens())
{
val = st.nextToken();
}
else
{
activeChar.sendMessage("Usage: //find_ip <ip>");
listCharacters(activeChar, 0);
return false;
}
try
{
findCharactersPerIp(activeChar, val);
}
catch (IllegalArgumentException e)
{
activeChar.sendMessage("Usage: //find_ip <ip>");
listCharacters(activeChar, 0);
return false;
}
return true;
} // find all the player connections from a given IPv4 number
case admin_find_account:
{
String val = "";
if (st.hasMoreTokens())
{
val = st.nextToken();
}
else
{
activeChar.sendMessage("Usage: //find_account <account_name>");
listCharacters(activeChar, 0);
return false;
}
findCharactersPerAccount(activeChar, val);
return true;
} // list all the characters from an account (useful for GMs w/o DB access)
case admin_save_modifications:
{
String val = "";
if (st.hasMoreTokens())
{
while (st.hasMoreTokens())
{
if (val.equals(""))
val = st.nextToken();
else
val = val + " " + st.nextToken();
}
}
else
{
activeChar.sendMessage("Usage: //save_modifications <mods>");
listCharacters(activeChar, 0);
return false;
}
adminModifyCharacter(activeChar, val);
val = null;
return true;
} // consider it deprecated...
case admin_rec:
{
String val = "";
int value = 1;
if (st.hasMoreTokens())
{
val = st.nextToken();
try
{
value = Integer.parseInt(val);
}
catch (NumberFormatException e)
{
activeChar.sendMessage("Usage: //rec <value>(default 1)");
return false;
}
}
else
{
activeChar.sendMessage("Usage: //rec <value>(default 1)");
return false;
}
L2Object target = activeChar.getTarget();
L2PcInstance player = null;
if (target instanceof L2PcInstance)
{
player = (L2PcInstance) target;
}
else
{
activeChar.sendMessage("Select player before. Usage: //rec <value>(default 1)");
listCharacters(activeChar, 0);
return false;
}
target = null;
player.setRecomHave(player.getRecomHave() + value);
SystemMessage sm = new SystemMessage(SystemMessageId.GM_S1);
sm.addString("You have been recommended by a GM");
player.sendPacket(sm);
player.broadcastUserInfo();
player = null;
sm = null;
val = null;
return true;
}
case admin_setclass:
{
String val = "";
int classidval = 0;
if (st.hasMoreTokens())
{
val = st.nextToken();
try
{
classidval = Integer.parseInt(val);
}
catch (NumberFormatException e)
{
activeChar.sendMessage("Usage: //setclass <value>(default 1)");
return false;
}
}
else
{
AdminHelpPage.showSubMenuPage(activeChar, "charclasses.htm");
return false;
}
L2Object target = activeChar.getTarget();
L2PcInstance player = null;
if (target instanceof L2PcInstance)
{
player = (L2PcInstance) target;
}
else
return false;
boolean valid = false;
for (ClassId classid : ClassId.values())
if (classidval == classid.getId())
{
valid = true;
}
if (valid && player.getClassId().getId() != classidval)
{
player.setClassId(classidval);
ClassId classId = ClassId.getClassIdByOrdinal(classidval);
if (!player.isSubClassActive())
{
// while(classId.level() != 0){ //go to root
// classId = classId.getParent();
// }
player.setBaseClass(classId);
}
String newclass = player.getTemplate().className;
player.store();
if (player != activeChar)
{
player.sendMessage("A GM changed your class to " + newclass);
}
player.broadcastUserInfo();
activeChar.sendMessage(player.getName() + " changed to " + newclass);
newclass = null;
return true;
}
activeChar.sendMessage("Usage: //setclass <valid_new_classid>");
return false;
}
case admin_settitle:
{
String val = "";
if (st.hasMoreTokens())
{
while (st.hasMoreTokens())
{
if (val.equals(""))
{
val = st.nextToken();
}
else
{
val += " " + st.nextToken();
}
}
}
else
{
activeChar.sendMessage("Usage: //settitle <new_title>");
return false;
}
L2Object target = activeChar.getTarget();
L2PcInstance player = null;
L2NpcInstance npc = null;
if (target == null)
{
player = activeChar;
}
else if (target instanceof L2PcInstance)
{
player = (L2PcInstance) target;
}
else if (target instanceof L2NpcInstance)
{
npc = (L2NpcInstance) target;
}
else
{
activeChar.sendMessage("Select your target before the command");
return false;
}
target = null;
st = null;
if (player != null)
{
player.setTitle(val);
if (player != activeChar)
{
player.sendMessage("Your title has been changed by a GM");
}
player.broadcastTitleInfo();
}
else if (npc != null)
{
npc.setTitle(val);
npc.updateAbnormalEffect();
}
val = null;
return true;
}
case admin_setsex:
{
L2Object target = activeChar.getTarget();
L2PcInstance player = null;
if (target instanceof L2PcInstance)
{
player = (L2PcInstance) target;
}
else
{
activeChar.sendMessage("Select player before command");
return false;
}
player.getAppearance().setSex(player.getAppearance().getSex() ? false : true);
L2PcInstance.setSexDB(player, 1);
player.sendMessage("Your gender has been changed by a GM");
player.decayMe();
player.spawnMe(player.getX(), player.getY(), player.getZ());
player.broadcastUserInfo();
return true;
}
case admin_setcolor:
{
String val = "";
if (st.hasMoreTokens())
{
val = st.nextToken();
}
else
{
activeChar.sendMessage("Usage: //setcolor <new_color>");
return false;
}
L2Object target = activeChar.getTarget();
if (target == null)
{
activeChar.sendMessage("You have to select a player!");
return false;
}
if (!(target instanceof L2PcInstance))
{
activeChar.sendMessage("Your target is not a player!");
return false;
}
L2PcInstance player = (L2PcInstance) target;
player.getAppearance().setNameColor(Integer.decode("0x" + val));
player.sendMessage("Your name color has been changed by a GM");
player.broadcastUserInfo();
st = null;
player = null;
target = null;
return true;
}
case admin_fullfood:
{
L2Object target = activeChar.getTarget();
if (target instanceof L2PetInstance)
{
L2PetInstance targetPet = (L2PetInstance) target;
targetPet.setCurrentFed(targetPet.getMaxFed());
targetPet.getOwner().sendPacket(new SetSummonRemainTime(targetPet.getMaxFed(), targetPet.getCurrentFed()));
targetPet = null;
}
else
{
activeChar.sendPacket(new SystemMessage(SystemMessageId.INCORRECT_TARGET));
return false;
}
target = null;
return true;
}
case admin_remclanwait:
{
L2Object target = activeChar.getTarget();
L2PcInstance player = null;
if (target instanceof L2PcInstance)
{
player = (L2PcInstance) target;
}
else
{
activeChar.sendMessage("You have to select a player!");
return false;
}
target = null;
if (player.getClan() == null)
{
player.setClanJoinExpiryTime(0);
player.sendMessage("A GM Has reset your clan wait time, You may now join another clan.");
activeChar.sendMessage("You have reset " + player.getName() + "'s wait time to join another clan.");
}
else
{
activeChar.sendMessage("Sorry, but " + player.getName() + " must not be in a clan. Player must leave clan before the wait limit can be reset.");
return false;
}
player = null;
return true;
}
case admin_setcp:
{
String val = "";
int value = 0;
if (st.hasMoreTokens())
{
val = st.nextToken();
try
{
value = Integer.parseInt(val);
}
catch (NumberFormatException e)
{
activeChar.sendMessage("Value must be an integer");
activeChar.sendMessage("Usage: //setcp <new_value>");
return false;
}
}
else
{
activeChar.sendMessage("Usage: //setcp <new_value>");
return false;
}
activeChar.getStatus().setCurrentCp(value);
return true;
}
case admin_sethp:
{
String val = "";
int value = 0;
if (st.hasMoreTokens())
{
val = st.nextToken();
try
{
value = Integer.parseInt(val);
}
catch (NumberFormatException e)
{
activeChar.sendMessage("Value must be an integer");
activeChar.sendMessage("Usage: //sethp <new_value>");
return false;
}
}
else
{
activeChar.sendMessage("Usage: //sethp <new_value>");
return false;
}
activeChar.getStatus().setCurrentHp(value);
return true;
}
case admin_setmp:
{
String val = "";
int value = 0;
if (st.hasMoreTokens())
{
val = st.nextToken();
try
{
value = Integer.parseInt(val);
}
catch (NumberFormatException e)
{
activeChar.sendMessage("Value must be an integer");
activeChar.sendMessage("Usage: //setmp <new_value>");
return false;
}
}
else
{
activeChar.sendMessage("Usage: //setmp <new_value>");
return false;
}
activeChar.getStatus().setCurrentMp(value);
return true;
}
case admin_setchar_cp:
{
String val = "";
int value = 0;
if (st.hasMoreTokens())
{
val = st.nextToken();
try
{
value = Integer.parseInt(val);
}
catch (NumberFormatException e)
{
activeChar.sendMessage("Value must be an integer");
activeChar.sendMessage("Usage: //setchar_cp <new_value>");
return false;
}
}
else
{
activeChar.sendMessage("Usage: //setchar_cp <new_value>");
return false;
}
if (activeChar.getTarget() instanceof L2PcInstance)
{
L2PcInstance pc = (L2PcInstance) activeChar.getTarget();
pc.getStatus().setCurrentCp(value);
pc = null;
}
else if (activeChar.getTarget() instanceof L2PetInstance)
{
L2PetInstance pet = (L2PetInstance) activeChar.getTarget();
pet.getStatus().setCurrentCp(value);
pet = null;
}
else
{
activeChar.getStatus().setCurrentCp(value);
}
return true;
}
case admin_setchar_hp:
{
String val = "";
int value = 0;
if (st.hasMoreTokens())
{
val = st.nextToken();
try
{
value = Integer.parseInt(val);
}
catch (NumberFormatException e)
{
activeChar.sendMessage("Value must be an integer");
activeChar.sendMessage("Usage: //setchar_hp <new_value>");
return false;
}
}
else
{
activeChar.sendMessage("Usage: //setchar_hp <new_value>");
return false;
}
if (activeChar.getTarget() instanceof L2PcInstance)
{
L2PcInstance pc = (L2PcInstance) activeChar.getTarget();
pc.getStatus().setCurrentHp(value);
pc = null;
}
else if (activeChar.getTarget() instanceof L2PetInstance)
{
L2PetInstance pet = (L2PetInstance) activeChar.getTarget();
pet.getStatus().setCurrentHp(value);
pet = null;
}
else
{
activeChar.getStatus().setCurrentHp(value);
}
return true;
}
case admin_setchar_mp:
{
String val = "";
int value = 0;
if (st.hasMoreTokens())
{
val = st.nextToken();
try
{
value = Integer.parseInt(val);
}
catch (NumberFormatException e)
{
activeChar.sendMessage("Value must be an integer");
activeChar.sendMessage("Usage: //setchar_mp <new_value>");
return false;
}
}
else
{
activeChar.sendMessage("Usage: //setchar_mp <new_value>");
return false;
}
if (activeChar.getTarget() instanceof L2PcInstance)
{
L2PcInstance pc = (L2PcInstance) activeChar.getTarget();
pc.getStatus().setCurrentMp(value);
pc = null;
}
else if (activeChar.getTarget() instanceof L2PetInstance)
{
L2PetInstance pet = (L2PetInstance) activeChar.getTarget();
pet.getStatus().setCurrentMp(value);
pet = null;
}
else
{
activeChar.getStatus().setCurrentMp(value);
}
return true;
}
case admin_sethero:
{
try
{
L2PcInstance target;
if (activeChar.getTarget() != null && activeChar.getTarget() instanceof L2PcInstance)
{
target = (L2PcInstance) activeChar.getTarget();// Target - player
}
else
{
target = activeChar;// No target
}
if (target != null)
{
String[] tokens = command.split(" ");
boolean param = true, save = false;
if (tokens.length == 2)
{
param = Boolean.parseBoolean(tokens[1]);
}
else if (tokens.length == 3)
{
param = Boolean.parseBoolean(tokens[1]);
save = Boolean.parseBoolean(tokens[2]);
}
else if (tokens.length > 3)
{
throw new Exception("too many tokens");
}
target.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE, target);
target.setTarget(target);
target.setHero(param);
if (!target.isHero())
{
for (L2Skill skill : HeroSkillTable.getHeroSkills())
{
target.removeSkill(skill, false);
}
Hero.getInstance().deleteHero(target, false);
}
else
{
target.broadcastPacket(new SocialAction(target.getObjectId(), 16));
for (L2Skill skill : HeroSkillTable.getHeroSkills())
{
target.addSkill(skill);
}
Hero.getInstance().putHero(target, false);
}
target.broadcastStatusUpdate();
target.broadcastUserInfo();
if (save)
{
Olympiad.getInstance().saveOlympiadStatus();
}