Small patch with commands

Added usage info for some commands in the game.
This commit is contained in:
ronancpl
2017-05-18 16:52:08 -03:00
parent 66a19d6fa6
commit de22d2b3eb

View File

@@ -700,6 +700,11 @@ public class Commands {
SkillFactory.getSkill(i).getEffect(SkillFactory.getSkill(i).getMaxLevel()).applyTo(player);
}
} else if (sub[0].equals("spawn")) {
if (sub.length < 2) {
player.yellowMessage("Syntax: !spawn <mobid>");
return false;
}
MapleMonster monster = MapleLifeFactory.getMonster(Integer.parseInt(sub[1]));
if (monster == null) {
return true;
@@ -749,6 +754,11 @@ public class Commands {
} else if (sub[0].equals("cleardrops")) {
player.getMap().clearDrops(player);
} else if (sub[0].equals("go")) {
if (sub.length < 2){
player.yellowMessage("Syntax: !spawn <mobid>");
return false;
}
if (gotomaps.containsKey(sub[1])) {
MapleMap target = c.getChannelServer().getMapFactory().getMap(gotomaps.get(sub[1]));
MaplePortal targetPortal = target.getPortal(0);
@@ -794,6 +804,11 @@ public class Commands {
}
}
} else if (sub[0].equals("warp")) {
if (sub.length < 2){
player.yellowMessage("Syntax: !warp <mapid>");
return false;
}
try {
MapleMap target = c.getChannelServer().getMapFactory().getMap(Integer.parseInt(sub[1]));
if (target == null) {
@@ -890,6 +905,11 @@ public class Commands {
player.dropMessage("Position: (" + xpos + ", " + ypos + ")");
player.dropMessage("Foothold ID: " + fh);
} else if (sub[0].equals("dc")) {
if (sub.length < 2){
player.yellowMessage("Syntax: !dc <playername>");
return false;
}
MapleCharacter victim = c.getWorldServer().getPlayerStorage().getCharacterByName(sub[1]);
if (victim == null) {
victim = c.getChannelServer().getPlayerStorage().getCharacterByName(sub[1]);
@@ -912,11 +932,20 @@ public class Commands {
}
victim.getClient().disconnect(false, false);
} else if (sub[0].equals("exprate")) {
if (sub.length < 2){
player.yellowMessage("Syntax: !exprate <newrate>");
return false;
}
c.getWorldServer().setExpRate(Integer.parseInt(sub[1]));
} else if (sub[0].equals("chat")) {
player.toggleWhiteChat();
player.message("Your chat is now " + (player.getWhiteChat() ? " white" : "normal") + ".");
} else if (sub[0].equals("warpto")) {
if (sub.length < 2){
player.yellowMessage("Syntax: !warpto <mapid>");
return false;
}
MapleCharacter victim = cserv.getPlayerStorage().getCharacterByName(sub[1]);
if (victim == null) {//If victim isn't on current channel or isnt a character try and find him by loop all channels on current world.
for (Channel ch : srv.getChannelsFromWorld(c.getWorld())) {
@@ -950,6 +979,11 @@ public class Commands {
player.dropMessage("Unknown player.");
}
} else if (sub[0].equals("warphere")) {
if (sub.length < 2){
player.yellowMessage("Syntax: !warphere <playername>");
return false;
}
MapleCharacter victim = cserv.getPlayerStorage().getCharacterByName(sub[1]);
if (victim == null) {//If victim isn't on current channel, loop all channels on current world.
for (Channel ch : srv.getChannelsFromWorld(c.getWorld())) {
@@ -982,10 +1016,19 @@ public class Commands {
player.dropMessage("Unknown player.");
}
} else if (sub[0].equals("fame")) {
if (sub.length < 3){
player.yellowMessage("Syntax: !fame <playername> <gainfame>");
return false;
}
MapleCharacter victim = cserv.getPlayerStorage().getCharacterByName(sub[1]);
victim.setFame(Integer.parseInt(sub[2]));
victim.updateSingleStat(MapleStat.FAME, victim.getFame());
} else if (sub[0].equals("giftnx")) {
if (sub.length < 3){
player.yellowMessage("Syntax: !giftnx <playername> <gainnx>");
return false;
}
cserv.getPlayerStorage().getCharacterByName(sub[1]).getCashShop().gainCash(1, Integer.parseInt(sub[2]));
player.message("Done");
} else if (sub[0].equals("gmshop")) {
@@ -993,8 +1036,16 @@ public class Commands {
} else if (sub[0].equals("heal")) {
player.setHpMp(30000);
} else if (sub[0].equals("vp")) {
if (sub.length < 2){
player.yellowMessage("Syntax: !vp <gainvotepoint>");
return false;
}
c.addVotePoints(Integer.parseInt(sub[1]));
} else if (sub[0].equals("id")) {
if (sub.length < 2){
player.yellowMessage("Syntax: !id <id>");
return false;
}
try {
try (BufferedReader dis = new BufferedReader(new InputStreamReader(new URL("http://www.mapletip.com/search_java.php?search_value=" + sub[1] + "&check=true").openConnection().getInputStream()))) {
String s;
@@ -1006,13 +1057,16 @@ public class Commands {
e.printStackTrace();
}
} else if (sub[0].equals("item") || sub[0].equals("drop")) {
int itemId = Integer.parseInt(sub[1]);
short quantity = 1;
try {
quantity = Short.parseShort(sub[2]);
} catch (Exception e) {
e.printStackTrace();
if (sub.length < 2){
player.yellowMessage("Syntax: !item <itemid> <quantity>");
return false;
}
int itemId = Integer.parseInt(sub[1]);
short quantity = 1;
if(sub.length >= 3) quantity = Short.parseShort(sub[2]);
if (sub[0].equals("item")) {
int petid = -1;
if (ItemConstants.isPet(itemId)) {
@@ -1054,11 +1108,14 @@ public class Commands {
}
}
} else if (sub[0].equals("kill")) {
if (sub.length >= 2) {
MapleCharacter victim = cserv.getPlayerStorage().getCharacterByName(sub[1]);
victim.setHpMp(0);
Server.getInstance().broadcastGMMessage(MaplePacketCreator.serverNotice(5, player.getName() + " used !kill on " + victim.getName()));
if (sub.length < 2){
player.yellowMessage("Syntax: !kill <playername>");
return false;
}
MapleCharacter victim = cserv.getPlayerStorage().getCharacterByName(sub[1]);
victim.setHpMp(0);
Server.getInstance().broadcastGMMessage(MaplePacketCreator.serverNotice(5, player.getName() + " used !kill on " + victim.getName()));
} else if (sub[0].equals("seed")) {
if (player.getMapId() != 910010000) {
player.yellowMessage("This command can only be used in HPQ.");
@@ -1095,10 +1152,20 @@ public class Commands {
} else if (sub[0].equals("unbug")) {
c.getPlayer().getMap().broadcastMessage(MaplePacketCreator.enableActions());
} else if (sub[0].equals("level")) {
if (sub.length < 2){
player.yellowMessage("Syntax: !level <newlevel>");
return false;
}
player.setLevel(Integer.parseInt(sub[1]) - 1);
player.gainExp(-player.getExp(), false, false);
player.levelUp(false);
} else if (sub[0].equals("levelpro")) {
if (sub.length < 2){
player.yellowMessage("Syntax: !levelpro <newlevel>");
return false;
}
while (player.getLevel() < Math.min(255, Integer.parseInt(sub[1]))) {
player.levelUp(false);
}
@@ -1129,12 +1196,18 @@ public class Commands {
}
}
} else if (sub[0].equals("mesos")) {
player.gainMeso(Integer.parseInt(sub[1]), true);
if (sub.length >= 2) {
player.gainMeso(Integer.parseInt(sub[1]), true);
}
} else if (sub[0].equals("notice")) {
Server.getInstance().broadcastMessage(MaplePacketCreator.serverNotice(6, "[Notice] " + joinStringFrom(sub, 1)));
} else if (sub[0].equals("rip")) {
Server.getInstance().broadcastMessage(MaplePacketCreator.serverNotice(6, "[RIP]: " + joinStringFrom(sub, 1)));
} else if (sub[0].equals("openportal")) {
if (sub.length < 2){
player.yellowMessage("Syntax: !openportal <portalid>");
return false;
}
player.getMap().getPortal(sub[1]).setPortalState(true);
} else if (sub[0].equals("pe")) {
String packet = "";
@@ -1164,6 +1237,10 @@ public class Commands {
}
}
} else if (sub[0].equals("closeportal")) {
if (sub.length < 2){
player.yellowMessage("Syntax: !closeportal <portalid>");
return false;
}
player.getMap().getPortal(sub[1]).setPortalState(false);
} else if (sub[0].equals("startevent")) {
for (MapleCharacter chr : player.getMap().getCharacters()) {
@@ -1199,53 +1276,56 @@ public class Commands {
} else if (sub[0].equals("pianus")) {
player.getMap().spawnMonsterOnGroundBelow(MapleLifeFactory.getMonster(8510000), player.getPosition());
} else if (sub[0].equalsIgnoreCase("search")) {
StringBuilder sb = new StringBuilder();
if (sub.length > 2) {
String search = joinStringFrom(sub, 2);
long start = System.currentTimeMillis();//for the lulz
MapleData data = null;
MapleDataProvider dataProvider = MapleDataProviderFactory.getDataProvider(new File("wz/String.wz"));
if (!sub[1].equalsIgnoreCase("ITEM")) {
if (sub[1].equalsIgnoreCase("NPC")) {
data = dataProvider.getData("Npc.img");
} else if (sub[1].equalsIgnoreCase("MOB") || sub[1].equalsIgnoreCase("MONSTER")) {
data = dataProvider.getData("Mob.img");
} else if (sub[1].equalsIgnoreCase("SKILL")) {
data = dataProvider.getData("Skill.img");
} else if (sub[1].equalsIgnoreCase("MAP")) {
sb.append("#bUse the '/m' command to find a map. If it finds a map with the same name, it will warp you to it.");
} else {
sb.append("#bInvalid search.\r\nSyntax: '/search [type] [name]', where [type] is NPC, ITEM, MOB, or SKILL.");
}
if (data != null) {
String name;
for (MapleData searchData : data.getChildren()) {
name = MapleDataTool.getString(searchData.getChildByPath("name"), "NO-NAME");
if (name.toLowerCase().contains(search.toLowerCase())) {
sb.append("#b").append(Integer.parseInt(searchData.getName())).append("#k - #r").append(name).append("\r\n");
}
}
}
} else {
for (Pair<Integer, String> itemPair : MapleItemInformationProvider.getInstance().getAllItems()) {
if (sb.length() < 32654) {//ohlol
if (itemPair.getRight().toLowerCase().contains(search.toLowerCase())) {
//#v").append(id).append("# #k-
sb.append("#b").append(itemPair.getLeft()).append("#k - #r").append(itemPair.getRight()).append("\r\n");
}
} else {
sb.append("#bCouldn't load all items, there are too many results.\r\n");
break;
}
}
}
if (sb.length() == 0) {
sb.append("#bNo ").append(sub[1].toLowerCase()).append("s found.\r\n");
}
sb.append("\r\n#kLoaded within ").append((double) (System.currentTimeMillis() - start) / 1000).append(" seconds.");//because I can, and it's free
} else {
sb.append("#bInvalid search.\r\nSyntax: '/search [type] [name]', where [type] is NPC, ITEM, MOB, or SKILL.");
if (sub.length < 3){
player.yellowMessage("Syntax: !search <type> <name>");
return false;
}
StringBuilder sb = new StringBuilder();
String search = joinStringFrom(sub, 2);
long start = System.currentTimeMillis();//for the lulz
MapleData data = null;
MapleDataProvider dataProvider = MapleDataProviderFactory.getDataProvider(new File("wz/String.wz"));
if (!sub[1].equalsIgnoreCase("ITEM")) {
if (sub[1].equalsIgnoreCase("NPC")) {
data = dataProvider.getData("Npc.img");
} else if (sub[1].equalsIgnoreCase("MOB") || sub[1].equalsIgnoreCase("MONSTER")) {
data = dataProvider.getData("Mob.img");
} else if (sub[1].equalsIgnoreCase("SKILL")) {
data = dataProvider.getData("Skill.img");
} else if (sub[1].equalsIgnoreCase("MAP")) {
sb.append("#bUse the '/m' command to find a map. If it finds a map with the same name, it will warp you to it.");
} else {
sb.append("#bInvalid search.\r\nSyntax: '/search [type] [name]', where [type] is NPC, ITEM, MOB, or SKILL.");
}
if (data != null) {
String name;
for (MapleData searchData : data.getChildren()) {
name = MapleDataTool.getString(searchData.getChildByPath("name"), "NO-NAME");
if (name.toLowerCase().contains(search.toLowerCase())) {
sb.append("#b").append(Integer.parseInt(searchData.getName())).append("#k - #r").append(name).append("\r\n");
}
}
}
} else {
for (Pair<Integer, String> itemPair : MapleItemInformationProvider.getInstance().getAllItems()) {
if (sb.length() < 32654) {//ohlol
if (itemPair.getRight().toLowerCase().contains(search.toLowerCase())) {
//#v").append(id).append("# #k-
sb.append("#b").append(itemPair.getLeft()).append("#k - #r").append(itemPair.getRight()).append("\r\n");
}
} else {
sb.append("#bCouldn't load all items, there are too many results.\r\n");
break;
}
}
}
if (sb.length() == 0) {
sb.append("#bNo ").append(sub[1].toLowerCase()).append("s found.\r\n");
}
sb.append("\r\n#kLoaded within ").append((double) (System.currentTimeMillis() - start) / 1000).append(" seconds.");//because I can, and it's free
c.announce(MaplePacketCreator.getNPCTalk(9010000, (byte) 0, sb.toString(), "00 00", (byte) 0));
} else if (sub[0].equals("servermessage")) {
c.getWorldServer().setServerMessage(joinStringFrom(sub, 1));
@@ -1265,6 +1345,11 @@ public class Commands {
player.updateSingleStat(MapleStat.INT, x);
player.updateSingleStat(MapleStat.LUK, x);
} else if (sub[0].equals("unban")) {
if (sub.length < 2){
player.yellowMessage("Syntax: !unban <playername>");
return false;
}
try {
Connection con = DatabaseConnection.getConnection();
int aid = MapleCharacter.getAccountIdByName(sub[1]);
@@ -1344,6 +1429,11 @@ public class Commands {
MapleCharacter player = c.getPlayer();
switch (sub[0]) {
case "sp": //Changed to support giving sp /a
if (sub.length < 2){
player.yellowMessage("Syntax: !sp <newsp>");
return;
}
if (sub.length == 2) {
player.setRemainingSp(Integer.parseInt(sub[1]));
player.updateSingleStat(MapleStat.AVAILABLESP, player.getRemainingSp());
@@ -1364,6 +1454,11 @@ public class Commands {
player.dropMessage(6, "Total Task: " + tMan.getTaskCount() + " Current Task: " + tMan.getQueuedTasks() + " Active Task: " + tMan.getActiveCount() + " Completed Task: " + tMan.getCompletedTaskCount());
break;
case "warpworld":
if (sub.length < 2){
player.yellowMessage("Syntax: !warpworld <worldid>");
return;
}
Server server = Server.getInstance();
byte worldb = Byte.parseByte(sub[1]);
if (worldb <= (server.getWorlds().size() - 1)) {
@@ -1422,16 +1517,17 @@ public class Commands {
player.message("These b lurkin: " + names);
break;
case "getacc":
if (sub.length < 1) {
player.message("Please provide an IGN.");
break;
if (sub.length < 2){
player.yellowMessage("Syntax: !getacc <playername>");
return;
}
MapleCharacter victim = c.getChannelServer().getPlayerStorage().getCharacterByName(sub[1]);
player.message(victim.getName() + "'s account name is " + victim.getClient().getAccountName() + ".");
break;
case "npc":
if (sub.length < 1) {
break;
if (sub.length < 2){
player.yellowMessage("Syntax: !npc <npcid>");
return;
}
MapleNPC npc = MapleLifeFactory.getNPC(Integer.parseInt(sub[1]));
if (npc != null) {
@@ -1459,6 +1555,10 @@ public class Commands {
break;
}
case "playernpc":
if (sub.length < 3){
player.yellowMessage("Syntax: !playernpc <playername> <npcid>");
return;
}
player.playerNPC(c.getChannelServer().getPlayerStorage().getCharacterByName(sub[1]), Integer.parseInt(sub[2]));
break;
case "shutdown":
@@ -1472,6 +1572,11 @@ public class Commands {
TimerManager.getInstance().schedule(Server.getInstance().shutdown(false), time);
break;
case "face":
if (sub.length < 2){
player.yellowMessage("Syntax: !face <faceid>");
return;
}
if (sub.length == 2) {
player.setFace(Integer.parseInt(sub[1]));
player.equipChanged();
@@ -1482,6 +1587,11 @@ public class Commands {
}
break;
case "hair":
if (sub.length < 2){
player.yellowMessage("Syntax: !hair <hairid>");
return;
}
if (sub.length == 2) {
player.setHair(Integer.parseInt(sub[1]));
player.equipChanged();