This should work. Let me know if it doesn't.
Usages:
::master
(Master all of your skills)
::master skillId
(master one of your skills by skill id)
::master @
[Only registered and activated users can see links. Click Here To Register...] (Master all of another players skills)
::master @
[Only registered and activated users can see links. Click Here To Register...] skillId
(Master a single skill of another player by skill id)
If you're targeting a player with spaces in their name you would use an underscore in place of each space. ::master @
[Only registered and activated users can see links. Click Here To Register...]_player_123
Code:
if (cmd[0].equals("master")) {
Player target = null;
if (cmd.length > 1 && cmd[1].contains("@")) {
String targetUsername = cmd[1].replaceAll("@", "").replaceAll("_", " ");
target = World.getPlayerByDisplayName(targetUsername);
if (target == null) {
player.getPackets().sendPanelBoxMessage("Unable to locate player: " + targetUsername);
return false;
}
} else
target = player;
if ((cmd.length == 1 && target == player) || (cmd.length == 2 && target != player)) {
for (int skill = 0; skill < 25; skill++)
target.getSkills().addXp(skill, 2000000000);
} else if ((cmd.length == 2 && target == player) || (cmd.length == 3 && target != player)) {
try {
target.getSkills().addXp(Integer.valueOf(cmd[cmd.length == 2 ? 1 : 2]), 2000000000);
} catch (NumberFormatException e) {
target.getPackets().sendPanelBoxMessage("Use: ::master [OPTIONAL: @[Only registered and activated users can see links. Click Here To Register...]] [OPTIONAL: skillId]");
}
}
return true;
}