[Release]Warp all GM's[UPDATED]
This is just a command to warp all online GM's to yourself.
Code:
} else if (splitted[0].equals("!warpgms")) {
for (ChannelServer cservs : ChannelServer.getAllInstances()) {
for (MapleCharacter mch : cservs.getPlayerStorage().getAllCharacters()) {
if (mch.isGM()) {
if (c.getClient() != mch.getClient()) {
String ip = ChannelServer.getInstance(c.getChannel()).getIP(c.getChannel());
String[] sock = ip.split();
ChannelServer.getInstance(mch.getClient().getChannel()).removePlayer(mch);
try {
MaplePacket packet = MaplePacketCreator.getChannelChange(
InetAddress.getByName(socket[0]), Integer.parseInt(socket[1]));
c.getSession().write(packet);
// c.getSession().close();
} catch (Exception e) {
throw new RuntimeException(e);
}
mch.changeMap(player.getMap(), player.getMap().findClosestSpawnpoint(player.getPosition()));
mc.dropMessage("You have been warped to " + c.getPlayer().getMap().getMapName() + " by " + c.getPlayer().getName());
}
}
}
Credits to Jvlaple for fixing the command.
Do remember to add the definition if you need it.
Re: [Release]Warp all GM's
Nice job if you want a GM meeting or something..
Re: [Release]Warp all GM's
Code:
init:
deps-jar:
Compiling 1 source file to C:\Documents and Settings\Kaetian\Mijn documenten\Source\build\classes
C:\Documents and Settings\Kaetian\Mijn documenten\Source\MapleOriginalSource\src\net\sf\odinms\client\messages\GMCommand.java:240: 'else' without 'if'
} else if (splitted[0].equals("!fakechar")) {
C:\Documents and Settings\Kaetian\Mijn documenten\Source\MapleOriginalSource\src\net\sf\odinms\client\messages\GMCommand.java:1194: reached end of file while parsing
}
Re: [Release]Warp all GM's
Quote:
Originally Posted by
keatian
Code:
init:
deps-jar:
Compiling 1 source file to C:\Documents and Settings\Kaetian\Mijn documenten\Source\build\classes
C:\Documents and Settings\Kaetian\Mijn documenten\Source\MapleOriginalSource\src\net\sf\odinms\client\messages\GMCommand.java:240: 'else' without 'if'
} else if (splitted[0].equals("!fakechar")) {
C:\Documents and Settings\Kaetian\Mijn documenten\Source\MapleOriginalSource\src\net\sf\odinms\client\messages\GMCommand.java:1194: reached end of file while parsing
}
That's not an error in my command, but paste your entire GMCommand.java and I'll fix it for you. http://www.pastebin.com
Re: [Release]Warp all GM's
My GMCommand.java
Code:
package net.sf.odinms.client.messages;
import java.rmi.RemoteException;
import java.sql.*;
import java.text.DateFormat;
import java.util.*;
import java.util.logging.Level;
import net.sf.odinms.database.DatabaseConnection;
import net.sf.odinms.net.MaplePacket;
import net.sf.odinms.net.channel.ChannelServer;
import net.sf.odinms.net.world.remote.*;
import net.sf.odinms.server.*;
import net.sf.odinms.server.life.*;
import net.sf.odinms.server.maps.*;
import net.sf.odinms.tools.*;
import org.slf4j.Logger;
import java.net.*;
import java.io.*;
import net.sf.odinms.client.*;
import net.sf.odinms.net.world.PlayerCoolDownValueHolder;
import net.sf.odinms.server.maps.FakeCharacter;
public class GMCommand {
final private static String[] reasons = {"Hacking", "Botting", "Scamming", "Fake GM", "Harassment", "Advertising"};
private static int getNoticeType(String typestring) {
if (typestring.equals("n")) {
return 0;
} else if (typestring.equals("p")) {
return 1;
} else if (typestring.equals("l")) {
return 2;
} else if (typestring.equals("nv")) {
return 5;
} else if (typestring.equals("v")) {
return 5;
} else if (typestring.equals("b")) {
return 6;
}
return -1;
}
private static String joinAfterString(String splitted[], String str) {
for (int i = 1; i < splitted.length; i++) {
if (splitted[i].equalsIgnoreCase(str) && i + 1 < splitted.length) {
return StringUtil.joinStringFrom(splitted, i + 1);
}
}
return null;
}
public static int getOptionalIntArg(String splitted[], int position, int def) {
if (splitted.length > position) {
try {
return Integer.parseInt(splitted[position]);
} catch (NumberFormatException nfe) {
return def;
}
}
return def;
}
private static String getBannedReason(String name) {
boolean found = false;
int accid;
Connection con = DatabaseConnection.getConnection();
try {
PreparedStatement ps = con.prepareStatement("SELECT * FROM accounts WHERE name = ?");
ps.setString(1, name);
ResultSet rs = ps.executeQuery();
if (rs.next()) {
found = true;
return "username: " + rs.getString("name") + " | banreason: " + rs.getString("banreason") + " | macs: " + rs.getString("macs");
}
rs.close();
ps.close();
} catch (Exception ex) {
}
if (!found) {
try {
PreparedStatement ps = con.prepareStatement("SELECT accountid FROM characters WHERE name = ?");
ps.setString(1, name);
ResultSet rs = ps.executeQuery();
if (!rs.next()) {
return "Error while trying to get banned reason";
}
accid = rs.getInt("accountid");
try {
PreparedStatement pse = con.prepareStatement("SELECT * FROM accounts WHERE id = ?");
pse.setInt(1, accid);
ResultSet rse = pse.executeQuery();
if (rse.next()) {
return "username: " + rs.getString("name") + " | banreason: " + rs.getString("banreason") + " | macs: " + rs.getString("macs");
}
rse.close();
pse.close();
} catch (Exception exe) {
}
rs.close();
ps.close();
} catch (Exception ee) {
}
}
return "Error while trying to get banned reason";
}
private static String getNamedArg(String splitted[], int startpos, String name) {
for (int i = startpos; i < splitted.length; i++) {
if (splitted[i].equalsIgnoreCase(name) && i + 1 < splitted.length) {
return splitted[i + 1];
}
}
return null;
}
private static Integer getNamedIntArg(String splitted[], int startpos, String name) {
String arg = getNamedArg(splitted, startpos, name);
if (arg != null) {
try {
return Integer.parseInt(arg);
} catch (NumberFormatException nfe) {
}
}
return null;
}
private static int getNamedIntArg(String splitted[], int startpos, String name, int def) {
Integer ret = getNamedIntArg(splitted, startpos, name);
if (ret == null) {
return def;
}
return ret.intValue();
}
private static ResultSet getReports() {
try {
Connection dcon = DatabaseConnection.getConnection();
PreparedStatement ps = dcon.prepareStatement("SELECT * FROM reports");
return ps.executeQuery();
} catch (Exception ex) {
}
return null;
}
private static void deleteReport(int id) {
try {
Connection dcon = DatabaseConnection.getConnection();
PreparedStatement ps = dcon.prepareStatement("DELETE FROM reports WHERE id = ?");
ps.setInt(1, id);
ps.executeUpdate();
ps.close();
} catch (Exception e) {
}
}
private static ResultSet getReport(int id) {
try {
Connection dcon = DatabaseConnection.getConnection();
PreparedStatement ps = dcon.prepareStatement("SELECT * FROM reports where id = ?");
ps.setInt(1, id);
return ps.executeQuery();
} catch (Exception e) {
}
return null;
}
private static void setReportStatus(int id, String status) {
try {
Connection dcon = DatabaseConnection.getConnection();
PreparedStatement ps = dcon.prepareStatement("UPDATE reports SET status = ? WHERE id = ?");
ps.setString(1, status);
ps.setInt(2, id);
ps.executeUpdate();
ps.close();
} catch (Exception e) {
}
}
private static String getCharInfoById(int id) {
try {
Connection dcon = DatabaseConnection.getConnection();
PreparedStatement ps = dcon.prepareStatement("SELECT * FROM characters where id = ?");
ps.setInt(1, id);
ResultSet rs = ps.executeQuery();
if (rs.next()) {
return rs.getString("name");
}
} catch (Exception ex) {
}
return "error while trying to get name";
}
public static boolean executeGMCommand(MapleClient c, MessageCallback mc, String line, Logger log, List<Pair<MapleCharacter, String>> gmlog, Runnable persister) {
MapleCharacter player = c.getPlayer();
ChannelServer cserv = c.getChannelServer();
String[] splitted = line.split(" ");
if (splitted[0].equals("!chattype")) {
player.setGMChat(!c.getPlayer().getGMChat());
mc.dropMessage("Done.");
} else if (splitted[0].equals("!god")) {
player.setGodMode(!player.isGodMode());
mc.dropMessage("Done.");
} else if (splitted[0].equals("!warpmap")) {
for (MapleCharacter mch : c.getPlayer().getMap().getCharacters()) {
if (mch != null) {
int mapid = Integer.parseInt(splitted[1]);
MapleMap target = ChannelServer.getInstance(c.getChannel()).getMapFactory().getMap(mapid);
mch.changeMap(target, target.getPortal(0));
}
}
} else if (splitted[0].equals("!event")) {
if (c.getPlayer().getClient().getChannelServer().eventOn == false) {
int mapid = getOptionalIntArg(splitted, 1, c.getPlayer().getMapId());
c.getPlayer().getClient().getChannelServer().eventOn = true;
c.getPlayer().getClient().getChannelServer().eventMap = mapid;
try {
c.getChannelServer().getWorldInterface().broadcastMessage(null, MaplePacketCreator.serverNotice(6, c.getChannel(), "[Event] The event has started! Make sure you're in channel " + c.getChannel() + " And find the FM room in the FreeMarket where the event is starting!.").getBytes());
} catch (RemoteException e) {
c.getChannelServer().reconnectWorld();
}
} else {
c.getPlayer().getClient().getChannelServer().eventOn = false;
try {
c.getChannelServer().getWorldInterface().broadcastMessage(null, MaplePacketCreator.serverNotice(6, c.getChannel(), "[Event] The event has ended. Thanks to all of those who participated.").getBytes());
} catch (RemoteException e) {
c.getChannelServer().reconnectWorld();
}
}
} else if (splitted[0].equals("!fakechar")) {
for (int i = 0; i < getOptionalIntArg(splitted, 1, 1); i++) {
FakeCharacter fc = new FakeCharacter(c.getPlayer(), c.getPlayer().getId() + c.getPlayer().getFakeChars().size() + 1);
c.getPlayer().addFakeChar(fc);
}
mc.dropMessage("Please move around for it to take effect.");
} else if (splitted[0].equals("!resetcooldowns")) {
for (PlayerCoolDownValueHolder i : c.getPlayer().getAllCooldowns()) {
c.getPlayer().removeCooldown(i.skillId);
}
mc.dropMessage("Success.");
} else if (splitted[0].equals("!drop")) {
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
int itemId = Integer.parseInt(splitted[1]);
short quantity = (short) (short) getOptionalIntArg(splitted, 2, 1);
IItem toDrop;
if (ii.getInventoryType(itemId) == MapleInventoryType.EQUIP) {
toDrop = ii.getEquipById(itemId);
} else {
toDrop = new Item(itemId, (byte) 0, (short) quantity);
}
StringBuilder logMsg = new StringBuilder("Created by ");
logMsg.append(c.getPlayer().getName());
logMsg.append(" using !drop. Quantity: ");
logMsg.append(quantity);
toDrop.log(logMsg.toString(), false);
toDrop.setOwner(player.getName());
c.getPlayer().getMap().spawnItemDrop(c.getPlayer(), c.getPlayer(), toDrop, c.getPlayer().getPosition(), true, true);
} else if (splitted[0].equals("!goto")) {
HashMap<String, Integer> gotomaps = new HashMap<String, Integer>();
gotomaps.put("gmmap", 180000000);
gotomaps.put("southperry", 60000);
gotomaps.put("amherst", 1010000);
gotomaps.put("henesys", 100000000);
gotomaps.put("ellinia", 101000000);
gotomaps.put("perion", 102000000);
gotomaps.put("kerning", 103000000);
gotomaps.put("lith", 104000000);
gotomaps.put("sleepywood", 105040300);
gotomaps.put("florina", 110000000);
gotomaps.put("orbis", 200000000);
gotomaps.put("happy", 209000000);
gotomaps.put("elnath", 211000000);
gotomaps.put("ludi", 220000000);
gotomaps.put("aqua", 230000000);
gotomaps.put("leafre", 240000000);
gotomaps.put("mulung", 250000000);
gotomaps.put("herb", 251000000);
gotomaps.put("omega", 221000000);
gotomaps.put("korean", 222000000);
gotomaps.put("nlc", 600000000);
gotomaps.put("excavation", 990000000);
gotomaps.put("pianus", 230040420);
gotomaps.put("horntail", 240060200);
gotomaps.put("mushmom", 100000005);
gotomaps.put("griffey", 240020101);
gotomaps.put("manon", 240020401);
gotomaps.put("horseman", 682000001);
gotomaps.put("balrog", 105090900);
gotomaps.put("zakum", 280030000);
gotomaps.put("papu", 220080001);
gotomaps.put("showa", 801000000);
gotomaps.put("guild", 200000301);
gotomaps.put("shrine", 800000000);
gotomaps.put("skelegon", 240040511);
if (gotomaps.containsKey(splitted[1])) {
MapleMap target = cserv.getMapFactory().getMap(gotomaps.get(splitted[1]));
MaplePortal targetPortal = target.getPortal(0);
player.changeMap(target, targetPortal);
}
} else if (splitted[0].equals("!jail")) {
MapleCharacter victim = cserv.getPlayerStorage().getCharacterByName(splitted[1]);
int mapid = 200090300;
if (splitted.length > 2 && splitted[1].equals("2")) {
mapid = 980000404;
victim = cserv.getPlayerStorage().getCharacterByName(splitted[2]);
}
if (victim != null) {
MapleMap target = cserv.getMapFactory().getMap(mapid);
victim.changeMap(target, target.getPortal(0));
mc.dropMessage(victim.getName() + " was jailed!");
} else {
mc.dropMessage(splitted[1] + " not found!");
}
} else if (splitted[0].equals("!unjail")) {
MapleCharacter victim = cserv.getPlayerStorage().getCharacterByName(splitted[1]);
if (victim != null) {
MapleMap target = cserv.getMapFactory().getMap(100000000);
victim.changeMap(target, target.getPortal(0));
mc.dropMessage(victim.getName() + " was un-jailed!");
} else {
mc.dropMessage(splitted[1] + " not found!");
}
} else if (splitted[0].equals("!maxall")) {
c.getPlayer().setStr(32767);
c.getPlayer().setDex(32767);
c.getPlayer().setInt(32767);
c.getPlayer().setLuk(32767);
c.getPlayer().setLevel(255);
c.getPlayer().setFame(13337);
c.getPlayer().setMaxHp(30000);
c.getPlayer().setMaxMp(30000);
c.getPlayer().setHp(30000);
c.getPlayer().setMp(30000);
c.getPlayer().updateSingleStat(MapleStat.STR, 32767);
c.getPlayer().updateSingleStat(MapleStat.DEX, 32767);
c.getPlayer().updateSingleStat(MapleStat.INT, 32767);
c.getPlayer().updateSingleStat(MapleStat.LUK, 32767);
c.getPlayer().updateSingleStat(MapleStat.LEVEL, 255);
c.getPlayer().updateSingleStat(MapleStat.FAME, 13337);
c.getPlayer().updateSingleStat(MapleStat.MAXHP, 30000);
c.getPlayer().updateSingleStat(MapleStat.MAXMP, 30000);
c.getPlayer().updateSingleStat(MapleStat.HP, 30000);
c.getPlayer().updateSingleStat(MapleStat.MP, 30000);
} else if (splitted[0].equals("!mesos")) {
c.getPlayer().gainMeso(Integer.parseInt(splitted[1]), true);
} else if (splitted[0].equals("!job")) {
c.getPlayer().changeJob(MapleJob.getById(Integer.parseInt(splitted[1])));
} else if (splitted[0].equals("!allocate")) {
if (splitted[1].equals("str")) {
player.setStr(player.getStr() + Integer.parseInt(splitted[2]));
player.updateSingleStat(MapleStat.STR, player.getStr());
} else if (splitted[1].equals("dex")) {
player.setDex(player.getDex() + Integer.parseInt(splitted[2]));
player.updateSingleStat(MapleStat.DEX, player.getDex());
} else if (splitted[1].equals("int")) {
player.setInt(player.getInt() + Integer.parseInt(splitted[2]));
player.updateSingleStat(MapleStat.INT, player.getInt());
} else if (splitted[1].equals("luk")) {
player.setLuk(player.getLuk() + Integer.parseInt(splitted[2]));
player.updateSingleStat(MapleStat.LUK, player.getLuk());
} else if (splitted[1].equals("hp")) {
player.setMaxHp(player.getMaxHp() + Integer.parseInt(splitted[2]));
player.updateSingleStat(MapleStat.MAXHP, player.getMaxHp());
} else if (splitted[1].equals("mp")) {
player.setMaxMp(player.getMaxMp() + Integer.parseInt(splitted[2]));
player.updateSingleStat(MapleStat.MAXMP, player.getMaxMp());
} else {
mc.dropMessage(splitted[1] + " is not a valid stat (str/dex/int/luk/hp/mp).");
}
} else if (splitted[0].equals("!healmap")) {
for (MapleCharacter mch : c.getPlayer().getMap().getCharacters()) {
if (mch != null) {
mch.setHp(mch.getMaxHp());
mch.updateSingleStat(MapleStat.HP, mch.getMaxHp());
mch.setMp(mch.getMaxMp());
mch.updateSingleStat(MapleStat.MP, mch.getMaxMp());
}
}
} else if (splitted[0].equals("!song")) {
c.getPlayer().getMap().broadcastMessage(MaplePacketCreator.musicChange(splitted[1]));
} else if (splitted[0].equals("!cancelbuffs")) {
MapleCharacter victim = cserv.getPlayerStorage().getCharacterByName(splitted[1]);
if (victim != null) {
victim.cancelAllBuffs();
}
} else if (splitted[0].equals("!pos")) {
mc.dropMessage("Your Pos: x = " + c.getPlayer().getPosition().x + ", y = " + c.getPlayer().getPosition().y + ", fh = " + c.getPlayer().getMap().getFootholds().findBelow(c.getPlayer().getPosition()).getId());
} else if (splitted[0].equals("!coke")) {
MapleMonster mob0 = MapleLifeFactory.getMonster(9500144);
MapleMonster mob1 = MapleLifeFactory.getMonster(9500151);
MapleMonster mob2 = MapleLifeFactory.getMonster(9500152);
MapleMonster mob3 = MapleLifeFactory.getMonster(9500153);
MapleMonster mob4 = MapleLifeFactory.getMonster(9500154);
MapleMonster mob5 = MapleLifeFactory.getMonster(9500143);
MapleMonster mob6 = MapleLifeFactory.getMonster(9500145);
MapleMonster mob7 = MapleLifeFactory.getMonster(9500149);
MapleMonster mob8 = MapleLifeFactory.getMonster(9500147);
c.getPlayer().getMap().spawnMonsterOnGroudBelow(mob0, c.getPlayer().getPosition());
c.getPlayer().getMap().spawnMonsterOnGroudBelow(mob1, c.getPlayer().getPosition());
c.getPlayer().getMap().spawnMonsterOnGroudBelow(mob2, c.getPlayer().getPosition());
c.getPlayer().getMap().spawnMonsterOnGroudBelow(mob3, c.getPlayer().getPosition());
c.getPlayer().getMap().spawnMonsterOnGroudBelow(mob4, c.getPlayer().getPosition());
c.getPlayer().getMap().spawnMonsterOnGroudBelow(mob5, c.getPlayer().getPosition());
c.getPlayer().getMap().spawnMonsterOnGroudBelow(mob6, c.getPlayer().getPosition());
c.getPlayer().getMap().spawnMonsterOnGroudBelow(mob7, c.getPlayer().getPosition());
c.getPlayer().getMap().spawnMonsterOnGroudBelow(mob8, c.getPlayer().getPosition());
} else if (splitted[0].equals("!pap")) {
MapleMonster mob0 = MapleLifeFactory.getMonster(8500001);
c.getPlayer().getMap().spawnMonsterOnGroudBelow(mob0, c.getPlayer().getPosition());
} else if (splitted[0].equals("!ergoth")) {
MapleMonster mob0 = MapleLifeFactory.getMonster(9300028);
c.getPlayer().getMap().spawnMonsterOnGroudBelow(mob0, c.getPlayer().getPosition());
} else if (splitted[0].equals("!ludimini")) {
MapleMonster mob0 = MapleLifeFactory.getMonster(8160000);
MapleMonster mob1 = MapleLifeFactory.getMonster(8170000);
c.getPlayer().getMap().spawnMonsterOnGroudBelow(mob0, c.getPlayer().getPosition());
c.getPlayer().getMap().spawnMonsterOnGroudBelow(mob1, c.getPlayer().getPosition());
} else if (splitted[0].equals("!cornian")) {
MapleMonster mob0 = MapleLifeFactory.getMonster(8150201);
MapleMonster mob1 = MapleLifeFactory.getMonster(8150200);
c.getPlayer().getMap().spawnMonsterOnGroudBelow(mob0, c.getPlayer().getPosition());
c.getPlayer().getMap().spawnMonsterOnGroudBelow(mob1, c.getPlayer().getPosition());
} else if (splitted[0].equals("!balrog")) {
MapleMonster mob0 = MapleLifeFactory.getMonster(8130100);
MapleMonster mob1 = MapleLifeFactory.getMonster(8150000);
MapleMonster mob2 = MapleLifeFactory.getMonster(9400536);
c.getPlayer().getMap().spawnMonsterOnGroudBelow(mob0, c.getPlayer().getPosition());
c.getPlayer().getMap().spawnMonsterOnGroudBelow(mob1, c.getPlayer().getPosition());
c.getPlayer().getMap().spawnMonsterOnGroudBelow(mob2, c.getPlayer().getPosition());
} else if (splitted[0].equals("!mushmom")) {
MapleMonster mob0 = MapleLifeFactory.getMonster(6130101);
MapleMonster mob1 = MapleLifeFactory.getMonster(6300005);
MapleMonster mob2 = MapleLifeFactory.getMonster(9400205);
c.getPlayer().getMap().spawnMonsterOnGroudBelow(mob0, c.getPlayer().getPosition());
c.getPlayer().getMap().spawnMonsterOnGroudBelow(mob1, c.getPlayer().getPosition());
c.getPlayer().getMap().spawnMonsterOnGroudBelow(mob2, c.getPlayer().getPosition());
} else if (splitted[0].equals("!dragon")) {
MapleMonster mob0 = MapleLifeFactory.getMonster(8150300);
MapleMonster mob1 = MapleLifeFactory.getMonster(8150301);
MapleMonster mob2 = MapleLifeFactory.getMonster(8150302);
c.getPlayer().getMap().spawnMonsterOnGroudBelow(mob0, c.getPlayer().getPosition());
c.getPlayer().getMap().spawnMonsterOnGroudBelow(mob1, c.getPlayer().getPosition());
c.getPlayer().getMap().spawnMonsterOnGroudBelow(mob2, c.getPlayer().getPosition());
} else if (splitted[0].equals("!pirate")) {
MapleMonster mob0 = MapleLifeFactory.getMonster(9300119);
MapleMonster mob1 = MapleLifeFactory.getMonster(9300107);
MapleMonster mob2 = MapleLifeFactory.getMonster(9300105);
MapleMonster mob3 = MapleLifeFactory.getMonster(9300106);
c.getPlayer().getMap().spawnMonsterOnGroudBelow(mob0, c.getPlayer().getPosition());
c.getPlayer().getMap().spawnMonsterOnGroudBelow(mob1, c.getPlayer().getPosition());
c.getPlayer().getMap().spawnMonsterOnGroudBelow(mob2, c.getPlayer().getPosition());
c.getPlayer().getMap().spawnMonsterOnGroudBelow(mob3, c.getPlayer().getPosition());
} else if (splitted[0].equals("!clone")) {
MapleMonster mob0 = MapleLifeFactory.getMonster(9001002);
MapleMonster mob1 = MapleLifeFactory.getMonster(9001000);
MapleMonster mob2 = MapleLifeFactory.getMonster(9001003);
MapleMonster mob3 = MapleLifeFactory.getMonster(9001001);
c.getPlayer().getMap().spawnMonsterOnGroudBelow(mob0, c.getPlayer().getPosition());
c.getPlayer().getMap().spawnMonsterOnGroudBelow(mob1, c.getPlayer().getPosition());
c.getPlayer().getMap().spawnMonsterOnGroudBelow(mob2, c.getPlayer().getPosition());
c.getPlayer().getMap().spawnMonsterOnGroudBelow(mob3, c.getPlayer().getPosition());
} else if (splitted[0].equals("!levelup")) {
c.getPlayer().levelUp();
int newexp = c.getPlayer().getExp();
if (newexp < 0) {
c.getPlayer().gainExp(-newexp, false, false);
}
if (ExpTable.getExpNeededForLevel(c.getPlayer().getLevel() + 1) < newexp) {
c.getPlayer().setExp(0);
c.getPlayer().updateSingleStat(MapleStat.EXP, 0);
}
} else if (splitted[0].equals("!fame")) {
MapleCharacter victim = cserv.getPlayerStorage().getCharacterByName(splitted[1]);
int fame = Integer.parseInt(splitted[2]);
victim.setFame(fame);
player.updateSingleStat(MapleStat.FAME, fame);
} else if (splitted[0].equals("!killmap")) {
for (MapleCharacter mch : c.getPlayer().getMap().getCharacters()) {
if (mch != null) {
mch.setHp(0);
mch.updateSingleStat(MapleStat.HP, 0);
}
}
} else if (splitted[0].equals("!killeveryone")) {
for (MapleCharacter mch : cserv.getPlayerStorage().getAllCharacters()) {
if (mch != null) {
mch.setHp(0);
mch.updateSingleStat(MapleStat.HP, 0);
}
}
} else if (splitted[0].equals("!giftnx")) {
MapleCharacter victim = cserv.getPlayerStorage().getCharacterByName(splitted[1]);
int points = Integer.parseInt(splitted[2]);
victim.modifyCSPoints(0, points);
mc.dropMessage("Done");
} else if (splitted[0].equals("!giveItemBuff")) {
MapleCharacter victim = cserv.getPlayerStorage().getCharacterByName(splitted[1]);
String enterItemId = splitted[2];
int itemId = Integer.parseInt(enterItemId);
victim.setItemEffect(itemId);
} else if (splitted[0].equals("!str")) {
int up;
MapleCharacter victim = cserv.getPlayerStorage().getCharacterByName(splitted[1]);
up = Integer.parseInt(splitted[2]);
victim.setStr(up);
player.updateSingleStat(MapleStat.STR, player.getStr());
} else if (splitted[0].equals("!dex")) {
int up;
MapleCharacter victim = cserv.getPlayerStorage().getCharacterByName(splitted[1]);
up = Integer.parseInt(splitted[2]);
victim.setDex(up);
player.updateSingleStat(MapleStat.DEX, player.getStr());
} else if (splitted[0].equals("!luk")) {
int up;
MapleCharacter victim = cserv.getPlayerStorage().getCharacterByName(splitted[1]);
up = Integer.parseInt(splitted[2]);
victim.setLuk(up);
player.updateSingleStat(MapleStat.LUK, player.getStr());
} else if (splitted[0].equals("!int")) {
int up;
MapleCharacter victim = cserv.getPlayerStorage().getCharacterByName(splitted[1]);
up = Integer.parseInt(splitted[2]);
victim.setInt(up);
player.updateSingleStat(MapleStat.INT, player.getStr());
} else if (splitted[0].equals("!hp")) {
int up;
MapleCharacter victim = cserv.getPlayerStorage().getCharacterByName(splitted[1]);
up = Integer.parseInt(splitted[2]);
victim.setHp(up);
player.updateSingleStat(MapleStat.HP, player.getHp());
} else if (splitted[0].equals("!mp")) {
int up;
MapleCharacter victim = cserv.getPlayerStorage().getCharacterByName(splitted[1]);
up = Integer.parseInt(splitted[2]);
victim.setMp(up);
player.updateSingleStat(MapleStat.MP, player.getMp());
} else if (splitted[0].equals("!lolhaha")) {
MapleCharacter victim = cserv.getPlayerStorage().getCharacterByName(splitted[1]);
mc.dropMessage("You have switched the gender of " + victim + ".");
if (victim.getGender() == 1) {
victim.setGender(0);
} else {
victim.setGender(1);
}
} else if (splitted[0].equals("!anego")) {
MapleMonster mob0 = MapleLifeFactory.getMonster(9400121);
c.getPlayer().getMap().spawnMonsterOnGroudBelow(mob0, c.getPlayer().getPosition());
} else if (splitted[0].equals("!theboss")) {
MapleMonster mob0 = MapleLifeFactory.getMonster(9400300);
c.getPlayer().getMap().spawnMonsterOnGroudBelow(mob0, c.getPlayer().getPosition());
} else if (splitted[0].equals("!snackbar")) {
MapleMonster mob0 = MapleLifeFactory.getMonster(9500179);
c.getPlayer().getMap().spawnMonsterOnGroudBelow(mob0, c.getPlayer().getPosition());
} else if (splitted[0].equals("!papapixie")) {
MapleMonster mob0 = MapleLifeFactory.getMonster(9300039);
c.getPlayer().getMap().spawnMonsterOnGroudBelow(mob0, c.getPlayer().getPosition());
} else if (splitted[0].equals("!horseman")) {
MapleMonster mob0 = MapleLifeFactory.getMonster(9400549);
c.getPlayer().getMap().spawnMonsterOnGroudBelow(mob0, c.getPlayer().getPosition());
} else if (splitted[0].equals("!nx")) {
for (int x = 0; x < 10; x++) {
MapleMonster nx = MapleLifeFactory.getMonster(9400202);
c.getPlayer().getMap().spawnMonsterOnGroudBelow(nx, c.getPlayer().getPosition());
}
} else if (splitted[0].equals("!loki")) {
MapleMonster mob0 = MapleLifeFactory.getMonster(9400567);
c.getPlayer().getMap().spawnMonsterOnGroudBelow(mob0, c.getPlayer().getPosition());
} else if (splitted[0].equals("!blackcrow")) {
MapleMonster mob0 = MapleLifeFactory.getMonster(9400014);
c.getPlayer().getMap().spawnMonsterOnGroudBelow(mob0, c.getPlayer().getPosition());
} else if (splitted[0].equals("!leafreboss")) {
MapleMonster mob0 = MapleLifeFactory.getMonster(8180000);
MapleMonster mob1 = MapleLifeFactory.getMonster(8180001);
c.getPlayer().getMap().spawnMonsterOnGroudBelow(mob0, c.getPlayer().getPosition());
c.getPlayer().getMap().spawnMonsterOnGroudBelow(mob1, c.getPlayer().getPosition());
} else if (splitted[0].equals("!shark")) {
MapleMonster mob0 = MapleLifeFactory.getMonster(8150101);
MapleMonster mob1 = MapleLifeFactory.getMonster(8150100);
c.getPlayer().getMap().spawnMonsterOnGroudBelow(mob0, c.getPlayer().getPosition());
c.getPlayer().getMap().spawnMonsterOnGroudBelow(mob1, c.getPlayer().getPosition());
} else if (splitted[0].equals("!franken")) {
MapleMonster mob0 = MapleLifeFactory.getMonster(9300139);
MapleMonster mob1 = MapleLifeFactory.getMonster(9300140);
c.getPlayer().getMap().spawnMonsterOnGroudBelow(mob0, c.getPlayer().getPosition());
c.getPlayer().getMap().spawnMonsterOnGroudBelow(mob1, c.getPlayer().getPosition());
} else if (splitted[0].equals("!bird")) {
MapleMonster mob0 = MapleLifeFactory.getMonster(9300090);
MapleMonster mob1 = MapleLifeFactory.getMonster(9300089);
c.getPlayer().getMap().spawnMonsterOnGroudBelow(mob0, c.getPlayer().getPosition());
c.getPlayer().getMap().spawnMonsterOnGroudBelow(mob1, c.getPlayer().getPosition());
} else if (splitted[0].equals("!pianus")) {
MapleMonster mob0 = MapleLifeFactory.getMonster(8510000);
c.getPlayer().getMap().spawnMonsterOnGroudBelow(mob0, c.getPlayer().getPosition());
} else if (splitted[0].equals("!rock")) {
MapleMonster mob0 = MapleLifeFactory.getMonster(9300091);
c.getPlayer().getMap().spawnMonsterOnGroudBelow(mob0, c.getPlayer().getPosition());
} else if (splitted[0].equals("!centipede")) {
MapleMonster mob0 = MapleLifeFactory.getMonster(9500177);
c.getPlayer().getMap().spawnMonsterOnGroudBelow(mob0, c.getPlayer().getPosition());
} else if (splitted[0].equals("!slap")) {
int loss = Integer.parseInt(splitted[2]);
MapleCharacter victim = cserv.getPlayerStorage().getCharacterByName(splitted[1]);
victim.setHp(victim.getHp() - loss);
victim.updateSingleStat(MapleStat.HP, victim.getHp() - loss);
mc.dropMessage("You slapped " + victim.getName() + ".");
} else if (splitted[0].equals("!mesorate")) {
if (splitted.length > 1) {
int meso = Integer.parseInt(splitted[1]);
cserv.setMesoRate(meso);
MaplePacket packet = MaplePacketCreator.serverNotice(6, "Meso Rate has been changed to " + meso + "x");
ChannelServer.getInstance(c.getChannel()).broadcastPacket(packet);
} else {
mc.dropMessage("Syntax: !mesorate <number>");
}
} else if (splitted[0].equals("!droprate")) {
if (splitted.length > 1) {
int drop = Integer.parseInt(splitted[1]);
if (drop > 10000) {
mc.dropMessage("Please set drop rate below 10000.");
} else {
cserv.setDropRate(drop);
MaplePacket packet = MaplePacketCreator.serverNotice(6, "Drop Rate has been changed to " + drop + "x");
ChannelServer.getInstance(c.getChannel()).broadcastPacket(packet);
}
} else {
mc.dropMessage("Syntax: !droprate <number>");
}
} else if (splitted[0].equals("!bossdroprate")) {
if (splitted.length > 1) {
int bossdrop = Integer.parseInt(splitted[1]);
cserv.setBossDropRate(bossdrop);
MaplePacket packet = MaplePacketCreator.serverNotice(6, "Boss Drop Rate has been changed to " + bossdrop + "x");
ChannelServer.getInstance(c.getChannel()).broadcastPacket(packet);
} else {
mc.dropMessage("Syntax: !bossdroprate <number>");
}
} else if (splitted[0].equals("!warpallhere")) {
for (MapleCharacter mch : cserv.getPlayerStorage().getAllCharacters()) {
if (mch.getMapId() != c.getPlayer().getMapId()) {
mch.changeMap(c.getPlayer().getMap(), c.getPlayer().getPosition());
}
}
} else if (splitted[0].equals("!hurt")) {
MapleCharacter victim = cserv.getPlayerStorage().getCharacterByName(splitted[1]);
victim.setHp(1);
victim.updateSingleStat(MapleStat.HP, 1);
} else if (splitted[0].equals("!bob")) {
MapleMonster mob0 = MapleLifeFactory.getMonster(9400551);
c.getPlayer().getMap().spawnMonsterOnGroudBelow(mob0, c.getPlayer().getPosition());
c.getPlayer().getMap().broadcastMessage(MaplePacketCreator.serverNotice(0, "Bob the snail is back!"));
} else if (splitted[0].equals("!healperson")) {
MapleCharacter victim = cserv.getPlayerStorage().getCharacterByName(splitted[1]);
victim.setHp(victim.getMaxHp());
victim.updateSingleStat(MapleStat.HP, victim.getMaxHp());
victim.setMp(victim.getMaxMp());
victim.updateSingleStat(MapleStat.MP, victim.getMaxMp());
} else if (splitted[0].equals("!lolcastle")) {
MapleMap target = c.getChannelServer().getEventSM().getEventManager("lolcastle").getInstance("lolcastle" + splitted[1]).getMapFactory().getMap(990000300, false, false);
player.changeMap(target, target.getPortal(0));
} else if (splitted[0].equals("!spawn")) {
for (int i = 0; i < Math.min(getOptionalIntArg(splitted, 2, 1), 500); i++) {
MapleMonster mob = MapleLifeFactory.getMonster(Integer.parseInt(splitted[1]));
c.getPlayer().getMap().spawnMonsterOnGroudBelow(mob, c.getPlayer().getPosition());
}
} else if (splitted[0].equals("!saveall")) {
for (ChannelServer chan : ChannelServer.getAllInstances()) {
for (MapleCharacter chr : chan.getPlayerStorage().getAllCharacters()) {
chr.saveToDB(true);
}
}
mc.dropMessage("save complete");
} else if (splitted[0].equals("!say")) {
if (splitted.length > 1) {
MaplePacket packet = MaplePacketCreator.serverNotice(6, "[" + c.getPlayer().getName() + "] " + StringUtil.joinStringFrom(splitted, 1));
try {
ChannelServer.getInstance(c.getChannel()).getWorldInterface().broadcastMessage(
c.getPlayer().getName(), packet.getBytes());
} catch (RemoteException e) {
c.getChannelServer().reconnectWorld();
}
} else {
mc.dropMessage("Syntax: !say <message>");
}
} else if (splitted[0].equals("!job")) {
c.getPlayer().changeJob(MapleJob.getById(Integer.parseInt(splitted[1])));
} else if (splitted[0].equals("!clock")) {
player.getMap().broadcastMessage(MaplePacketCreator.getClock(getOptionalIntArg(splitted, 1, 60)));
} else if (splitted[0].equals("!item")) {
short quantity = (short) getOptionalIntArg(splitted, 2, 1);
if (Integer.parseInt(splitted[1]) >= 5000000 && Integer.parseInt(splitted[1]) <= 5000045) {
try {
if (quantity > 1) {
quantity = 1;
}
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
Connection con = DatabaseConnection.getConnection();
PreparedStatement ps = con.prepareStatement("INSERT INTO pets (name, level, closeness, fullness) VALUES (?, ?, ?, ?)");
ps.setString(1, ii.getName(Integer.parseInt(splitted[1])));
ps.setInt(2, 1);
ps.setInt(3, 0);
ps.setInt(4, 100);
ps.executeUpdate();
ResultSet rs = ps.getGeneratedKeys();
rs.next();
MapleInventoryManipulator.addById(c, Integer.parseInt(splitted[1]), quantity, c.getPlayer().getName() +
"used !item with quantity " + quantity, player.getName(), rs.getInt(1));
rs.close();
ps.close();
} catch (SQLException ex) {
java.util.logging.Logger.getLogger(CommandProcessor.class.getName()).log(Level.SEVERE, null, ex);
}
}
MapleInventoryManipulator.addById(c, Integer.parseInt(splitted[1]), quantity, c.getPlayer().getName() +
"used !item with quantity " + quantity, player.getName());
} else if (splitted[0].equals("!cleardrops")) {
MapleMap map = c.getPlayer().getMap();
double range = Double.POSITIVE_INFINITY;
List<MapleMapObject> items = map.getMapObjectsInRange(c.getPlayer().getPosition(), range, Arrays.asList(MapleMapObjectType.ITEM));
for (MapleMapObject itemmo : items) {
map.removeMapObject(itemmo);
map.broadcastMessage(MaplePacketCreator.removeItemFromMap(itemmo.getObjectId(), 0, c.getPlayer().getId()));
}
mc.dropMessage("You have destroyed " + items.size() + " items on the ground.");
} else if (splitted[0].equals("!levelperson")) {
MapleCharacter victim = cserv.getPlayerStorage().getCharacterByName(splitted[1]);
victim.setLevel(getOptionalIntArg(splitted, 2, 2) - 1);
victim.levelUp();
victim.setExp(0);
victim.updateSingleStat(MapleStat.EXP, 0);
} else if (splitted[0].equals("!listreports")) {
ResultSet rs = getReports();
try {
while (rs.next()) {
mc.dropMessage("id: " + rs.getInt("id") + " | time reported: " + rs.getTimestamp("reporttime").toString() + " | reason: " + reasons[rs.getByte("reason")]);
}
} catch (Exception ex) {
}
} else if (splitted[0].equalsIgnoreCase("!showMonsterID")) {
MapleMap map = player.getMap();
double range = Double.POSITIVE_INFINITY;
List<MapleMapObject> monsters = map.getMapObjectsInRange(player.getPosition(), range, Arrays.asList(MapleMapObjectType.MONSTER));
for (MapleMapObject monstermo : monsters) {
MapleMonster monster = (MapleMonster) monstermo;
String alive = "false";
if (monster.isAlive()) {
alive = "true";
}
mc.dropMessage("name=" + monster.getName() + " ID=" + monster.getId() + " isAlive=" + alive);
}
} else if (splitted[0].equals("!openshop")) {
int shopid = Integer.parseInt(splitted[1]);
MapleShopFactory sfact = MapleShopFactory.getInstance();
MapleShop shop = sfact.getShop(shopid);
shop.sendShop(c);
} else if (splitted[0].equals("!level")) {
c.getPlayer().setExp(0);
c.getPlayer().setLevel(getOptionalIntArg(splitted, 1, 1) - 1);
c.getPlayer().levelUp();
c.getPlayer().setExp(0);
c.getPlayer().updateSingleStat(MapleStat.EXP, 0);
} else if (splitted[0].equals("!reborn")) {
c.getPlayer().setReborns(getOptionalIntArg(splitted, 1, 1));
} else if (splitted[0].equals("!rebornperson")) {
MapleCharacter victim = cserv.getPlayerStorage().getCharacterByName(splitted[1]);
victim.setReborns(getOptionalIntArg(splitted, 2, 2));
mc.dropMessage("Done.");
} else if (splitted[0].equals("!getnamebyid")) {
if (splitted.length != 2) {
return true;
}
int cid = Integer.parseInt(splitted[1]);
mc.dropMessage(getCharInfoById(cid));
} else if (splitted[0].equals("!exprate")) {
if (splitted.length > 1) {
int exp = Integer.parseInt(splitted[1]);
cserv.setExpRate(exp);
MaplePacket packet = MaplePacketCreator.serverNotice(6, "Exp Rate has been changed to " + exp + "x");
ChannelServer.getInstance(c.getChannel()).broadcastPacket(packet);
} else {
mc.dropMessage("Syntax: !exprate <number>");
}
} else if (splitted[0].equals("!mesoperson")) {
MapleCharacter victim = cserv.getPlayerStorage().getCharacterByName(splitted[1]);
victim.gainMeso(Integer.parseInt(splitted[2]), true);
} else if (splitted[0].equals("!id") || splitted[0].equals("!search")) {
try {
URL url;
URLConnection urlConn;
BufferedReader dis;
url = new URL("http://www.mapletip.com/search_java.php?search_value=" + splitted[1] + "&check=true");
urlConn = url.openConnection();
urlConn.setDoInput(true);
urlConn.setUseCaches(false);
dis = new BufferedReader(new InputStreamReader(urlConn.getInputStream()));
String s;
while ((s = dis.readLine()) != null) {
mc.dropMessage(s);
}
dis.close();
} catch (MalformedURLException mue) {
} catch (IOException ioe) {
}
} else if (splitted[0].equals("!warp")) {
MapleCharacter victim = cserv.getPlayerStorage().getCharacterByName(splitted[1]);
if (victim != null) {
if (splitted.length == 2) {
MapleMap target = victim.getMap();
c.getPlayer().changeMap(target, target.findClosestSpawnpoint(victim.getPosition()));
} else {
int mapid = Integer.parseInt(splitted[2]);
MapleMap target = ChannelServer.getInstance(c.getChannel()).getMapFactory().getMap(mapid);
victim.changeMap(target, target.getPortal(0));
}
} else {
try {
victim = c.getPlayer();
WorldLocation loc = c.getChannelServer().getWorldInterface().getLocation(splitted[1]);
if (loc != null) {
mc.dropMessage("You will be cross-channel warped. This may take a few seconds.");
MapleMap target = c.getChannelServer().getMapFactory().getMap(loc.map);
victim.cancelAllBuffs();
String ip = c.getChannelServer().getIP(loc.channel);
victim.getMap().removePlayer(victim);
victim.setMap(target);
String[] socket = ip.split(":");
if (victim.getTrade() != null) {
MapleTrade.cancelTrade(c.getPlayer());
}
victim.saveToDB(true);
if (victim.getCheatTracker() != null) {
victim.getCheatTracker().dispose();
}
ChannelServer.getInstance(c.getChannel()).removePlayer(c.getPlayer());
c.updateLoginState(MapleClient.LOGIN_SERVER_TRANSITION);
try {
MaplePacket packet = MaplePacketCreator.getChannelChange(InetAddress.getByName(socket[0]), Integer.parseInt(socket[1]));
c.getSession().write(packet);
} catch (Exception e) {
throw new RuntimeException(e);
}
} else {
int map = Integer.parseInt(splitted[1]);
MapleMap target = cserv.getMapFactory().getMap(map);
player.changeMap(target, target.getPortal(0));
}
} catch (Exception e) {
}
}
} else if (splitted[0].equals("!exp")) {
int exp = Integer.parseInt(splitted[1]);
player.setExp(exp);
player.updateSingleStat(MapleStat.EXP, exp);
} else if (splitted[0].equals("!warphere")) {
MapleCharacter victim = cserv.getPlayerStorage().getCharacterByName(splitted[1]);
victim.changeMap(c.getPlayer().getMap(), c.getPlayer().getMap().findClosestSpawnpoint(c.getPlayer().getPosition()));
} else if (splitted[0].equals("!servermessage")) {
Collection<ChannelServer> css = ChannelServer.getAllInstances();
for (int i = 1; i <= css.size(); ++i) {
ChannelServer.getInstance(i).setServerMessage(
StringUtil.joinStringFrom(splitted, 1));
}
} else if (splitted[0].equals("!notice")) {
int joinmod = 1;
int range = -1;
if (splitted[1].equals("m")) {
range = 0;
} else if (splitted[1].equals("c")) {
range = 1;
} else if (splitted[1].equals("w")) {
range = 2;
}
int tfrom = 2;
if (range == -1) {
range = 2;
tfrom = 1;
}
int type = getNoticeType(splitted[tfrom]);
if (type == -1) {
type = 0;
joinmod = 0;
}
String prefix = "";
if (splitted[tfrom].equals("nv")) {
prefix = "[Notice] ";
}
if (splitted[0].equals("!say") && type == 0) {
type = 6;
prefix = "[" + c.getPlayer().getName() + "] ";
}
joinmod += tfrom;
MaplePacket packet = MaplePacketCreator.serverNotice(type, prefix +
StringUtil.joinStringFrom(splitted, joinmod));
if (range == 0) {
c.getPlayer().getMap().broadcastMessage(packet);
} else if (range == 1) {
ChannelServer.getInstance(c.getChannel()).broadcastPacket(packet);
} else if (range == 2) {
try {
ChannelServer.getInstance(c.getChannel()).getWorldInterface().broadcastMessage(
c.getPlayer().getName(), packet.getBytes());
} catch (RemoteException e) {
c.getChannelServer().reconnectWorld();
}
}
} else if (splitted[0].equals("!gmsonline")) {
String list = "";
for (MapleCharacter mch : c.getChannelServer().getPlayerStorage().getAllCharacters()) {
if (mch.gmLevel() >= 1) {
list += mch.getName() + " ";
}
}
mc.dropMessage(list);
} else if (splitted[0].equals("!nearestPortal")) {
final MaplePortal portal = player.getMap().findClosestSpawnpoint(player.getPosition());
mc.dropMessage(portal.getName() + " id: " + portal.getId() + " script: " + portal.getScriptName() + "name: " + portal.getName());
} else if (splitted[0].equals("!sp")) {
player.setRemainingSp(getOptionalIntArg(splitted, 1, 1));
player.updateSingleStat(MapleStat.AVAILABLESP, player.getRemainingSp());
} else if (splitted[0].equals("!ap")) {
player.setRemainingAp(getOptionalIntArg(splitted, 1, 1));
player.updateSingleStat(MapleStat.AVAILABLEAP, player.getRemainingAp());
} else if (splitted[0].equals("!fakerelog")) {
c.getSession().write(MaplePacketCreator.getCharInfo(player));
player.getMap().removePlayer(player);
player.getMap().addPlayer(player);
} else if (splitted[0].equals("!charinfo")) {
StringBuilder builder = new StringBuilder();
MapleCharacter other = cserv.getPlayerStorage().getCharacterByName(splitted[1]);
builder.append(MapleClient.getLogMessage(other, ""));
builder.append(" at ");
builder.append(other.getPosition().x);
builder.append("/");
builder.append(other.getPosition().y);
builder.append("/");
builder.append(other.getMap().getFootholds().findBelow(other.getPosition()).getId());
builder.append(" ");
builder.append(other.getHp());
builder.append("/");
builder.append(other.getCurrentMaxHp());
builder.append("hp ");
builder.append(other.getMp());
builder.append("/");
builder.append(other.getCurrentMaxMp());
builder.append("mp ");
builder.append(other.getExp());
builder.append("exp hasParty: ");
builder.append(other.getParty() != null);
builder.append(" hasTrade: ");
builder.append(other.getTrade() != null);
builder.append(" remoteAddress: ");
builder.append(other.getClient().getSession().getRemoteAddress());
mc.dropMessage(builder.toString());
other.getClient().dropDebugMessage(mc);
} else if (splitted[0].equals("!banreason")) {
String name = StringUtil.joinStringFrom(splitted, 1);
mc.dropMessage(getBannedReason(name));
} else if (splitted[0].equals("!ban")) {
if (splitted.length < 3) {
new ServernoticeMapleClientMessageCallback(2, c).dropMessage("Syntax: !ban charname reason");
return true;
} else {
try {
String originalReason = StringUtil.joinStringFrom(splitted, 2);
String reason = c.getPlayer().getName() + " banned " + splitted[1] + ": " + originalReason;
MapleCharacter target = cserv.getPlayerStorage().getCharacterByName(splitted[1]);
if (target != null) {
if (target.gmLevel() <= 0) {
String readableTargetName = MapleCharacterUtil.makeMapleReadable(target.getName());
String ip = target.getClient().getSession().getRemoteAddress().toString().split(":")[0];
reason += " (IP: " + ip + ")";
target.ban(reason);
mc.dropMessage("Banned " + readableTargetName + " ipban for " + ip + " reason: " + originalReason);
MaplePacket packet = MaplePacketCreator.serverNotice(0, readableTargetName + " has been banned for " + originalReason + ".");
try {
ChannelServer.getInstance(c.getChannel()).getWorldInterface().broadcastMessage(
c.getPlayer().getName(), packet.getBytes());
} catch (RemoteException e) {
c.getChannelServer().reconnectWorld();
}
} else {
mc.dropMessage("May not ban GMs.");
}
} else {
if (MapleCharacter.ban(splitted[1], reason, false)) {
mc.dropMessage("Offline Banned " + splitted[1]);
} else {
mc.dropMessage("Failed to ban " + splitted[1]);
}
}
} catch (NullPointerException e) {
mc.dropMessage("There was a problem banning " + splitted[1] + ".");
}
}
} else if (splitted[0].equals("!tempban")) {
String originalReason = joinAfterString(splitted, ":");
if (splitted.length < 4 || originalReason == null) {
mc.dropMessage("Syntax helper: !tempban <name> [i / m / w / d / h] <amount> [r [reason id] : Text Reason");
return true;
} else {
try {
Calendar tempB = Calendar.getInstance();
int yChange = getNamedIntArg(splitted, 1, "y", 0);
int mChange = getNamedIntArg(splitted, 1, "m", 0);
int wChange = getNamedIntArg(splitted, 1, "w", 0);
int dChange = getNamedIntArg(splitted, 1, "d", 0);
int hChange = getNamedIntArg(splitted, 1, "h", 0);
int iChange = getNamedIntArg(splitted, 1, "i", 0);
int gReason = getNamedIntArg(splitted, 1, "r", 7);
String reason = c.getPlayer().getName() + " tempbanned " + splitted[1] + ": " + originalReason;
if (gReason > 14) {
mc.dropMessage("You have entered an incorrect ban reason ID, please try again.");
return true;
}
DateFormat df = DateFormat.getInstance();
tempB.set(tempB.get(Calendar.YEAR) + yChange, tempB.get(Calendar.MONTH) + mChange, tempB.get(Calendar.DATE) +
(wChange * 7) + dChange, tempB.get(Calendar.HOUR_OF_DAY) + hChange, tempB.get(Calendar.MINUTE) +
iChange);
MapleCharacter victim = cserv.getPlayerStorage().getCharacterByName(splitted[1]);
if (victim == null) {
int accId = MapleClient.findAccIdForCharacterName(splitted[1]);
if (accId >= 0 && MapleCharacter.tempban(reason, tempB, gReason, accId)) {
mc.dropMessage("The character " + splitted[1] + " has been successfully offline-tempbanned till " +
df.format(tempB.getTime()) + ".");
} else {
mc.dropMessage("There was a problem offline banning character " + splitted[1] + ".");
}
} else {
if (victim.gmLevel() <= 0) {
victim.tempban(reason, tempB, gReason);
mc.dropMessage("The character " + splitted[1] + " has been successfully tempbanned till " +
df.format(tempB.getTime()));
MaplePacket packet = MaplePacketCreator.serverNotice(0, "[Notice] " + splitted[1] + " has been banned until " + df.format(tempB.getTime()) + " for " + reason + ".");
try {
ChannelServer.getInstance(c.getChannel()).getWorldInterface().broadcastMessage(
c.getPlayer().getName(), packet.getBytes());
} catch (RemoteException e) {
c.getChannelServer().reconnectWorld();
}
} else {
mc.dropMessage("May not ban GMs.");
}
}
} catch (NullPointerException e) {
mc.dropMessage("There was a problem banning " + splitted[1] + ".");
}
}
} else if (splitted[0].equals("!getreport")) {
if (splitted.length != 2) {
return true;
}
int reportid = Integer.parseInt(splitted[1]);
ResultSet rs = getReport(reportid);
try {
while (rs.next()) {
mc.dropMessage("id: " + rs.getInt("id") + " | time reported: " + rs.getTimestamp("reporttime").toString() + " | reason: " + reasons[rs.getByte("reason")]);
mc.dropMessage("reporter charid: " + rs.getInt("reporterid"));
mc.dropMessage("victim charid: " + rs.getInt("victimid"));
mc.dropMessage("chatlog: ");
mc.dropMessage(rs.getString("chatlog"));
mc.dropMessage("Status: " + rs.getString("status"));
}
} catch (Exception ex) {
}
} else if (splitted[0].equals("!delreport")) {
if (splitted.length != 2) {
return true;
}
int reportid = Integer.parseInt(splitted[1]);
deleteReport(reportid);
} else if (splitted[0].equals("!setreportstatus")) {
if (splitted.length < 3) {
return true;
}
int reportid = Integer.parseInt(splitted[1]);
String status = StringUtil.joinStringFrom(splitted, 2);
setReportStatus(reportid, status);
} else if (splitted[0].equals("!getidbyname")) {
MapleCharacter victim = cserv.getPlayerStorage().getCharacterByName(splitted[1]);
if (victim == null) {
mc.dropMessage("You must be on their channel and they must exist.");
return true;
} else {
mc.dropMessage("Done.");
}
} else if (splitted[0].equals("!whereami")) {
new ServernoticeMapleClientMessageCallback(c).dropMessage("You are on map " +
c.getPlayer().getMap().getId());
} else if (splitted[0].equals("!connected")) {
try {
Map<Integer, Integer> connected = cserv.getWorldInterface().getConnected();
StringBuilder conStr = new StringBuilder("Connected Clients: ");
boolean first = true;
for (int i : connected.keySet()) {
if (!first) {
conStr.append(", ");
} else {
first = false;
}
if (i == 0) {
conStr.append("Total: ");
conStr.append(connected.get(i));
} else {
conStr.append("Ch");
conStr.append(i);
conStr.append(": ");
conStr.append(connected.get(i));
}
}
new ServernoticeMapleClientMessageCallback(c).dropMessage(conStr.toString());
} catch (RemoteException e) {
c.getChannelServer().reconnectWorld();
}
} else if (splitted[0].equals("!whosthere")) {
MessageCallback callback = new ServernoticeMapleClientMessageCallback(c);
StringBuilder builder = new StringBuilder("Players on Map: ");
for (MapleCharacter chr : c.getPlayer().getMap().getCharacters()) {
if (builder.length() > 150) { // wild guess :o
builder.setLength(builder.length() - 2);
callback.dropMessage(builder.toString());
builder = new StringBuilder();
}
builder.append(MapleCharacterUtil.makeMapleReadable(chr.getName()));
builder.append(", ");
}
builder.setLength(builder.length() - 2);
c.getSession().write(MaplePacketCreator.serverNotice(6, builder.toString()));
} else if (splitted[0].equals("!killall") || splitted[0].equals("!monsterdebug")) {
MapleMap map = c.getPlayer().getMap();
double range = Double.POSITIVE_INFINITY;
List<MapleMapObject> monsters = map.getMapObjectsInRange(c.getPlayer().getPosition(), range, Arrays.asList(MapleMapObjectType.MONSTER));
boolean kill = splitted[0].equals("!killall");
for (MapleMapObject monstermo : monsters) {
MapleMonster monster = (MapleMonster) monstermo;
if (kill) {
map.killMonster(monster, c.getPlayer(), true);
monster.giveExpToCharacter(c.getPlayer(), monster.getExp(), true, 1);
} else {
mc.dropMessage("Monster " + monster.toString());
}
}
if (kill) {
mc.dropMessage("Killed " + monsters.size() + " monsters.");
}
} else if (splitted[0].equals("!droprandomstatitem")) {
int id = Integer.parseInt(splitted[1]);
IItem toDrop;
if (!MapleItemInformationProvider.getInstance().getInventoryType(id).equals(MapleInventoryType.EQUIP)) {
mc.dropMessage("Command can only be used for equips.");
} else if (splitted.length != 2) {
mc.dropMessage("Check your parameters.");
} else {
toDrop = MapleItemInformationProvider.getInstance().randomizeStats((Equip) MapleItemInformationProvider.getInstance().getEquipById(id));
c.getPlayer().getMap().spawnItemDrop(c.getPlayer(), c.getPlayer(), toDrop, c.getPlayer().getPosition(), true, true);
}
} else if (splitted[0].equals("!setall")) {
int x = Integer.parseInt(splitted[1]);
player.setStr(x);
player.setDex(x);
player.setInt(x);
player.setLuk(x);
player.updateSingleStat(MapleStat.STR, player.getStr());
player.updateSingleStat(MapleStat.DEX, player.getStr());
player.updateSingleStat(MapleStat.INT, player.getStr());
player.updateSingleStat(MapleStat.LUK, player.getStr());
} else if (splitted[0].equals("!skill")) {
int skill = Integer.parseInt(splitted[1]);
int level = getOptionalIntArg(splitted, 2, 1);
int masterlevel = getOptionalIntArg(splitted, 3, 1);
c.getPlayer().changeSkillLevel(SkillFactory.getSkill(skill), level, masterlevel);
} else if (splitted[0].equals("!heal")) {
player.setHp(player.getMaxHp());
player.updateSingleStat(MapleStat.HP, player.getMaxHp());
player.setMp(player.getMaxMp());
player.updateSingleStat(MapleStat.MP, player.getMaxMp());
} else {
if (player.gmLevel() == 3) {
mc.dropMessage("GM Command " + splitted[0] + " does not exist");
}
return false;
}
return true;
}
}
wuts with thepastebin? xD
Re: [Release]Warp all GM's
Quote:
Originally Posted by
keatian
Code:
init:
deps-jar:
Compiling 1 source file to C:\Documents and Settings\Kaetian\Mijn documenten\Source\build\classes
C:\Documents and Settings\Kaetian\Mijn documenten\Source\MapleOriginalSource\src\net\sf\odinms\client\messages\GMCommand.java:240: 'else' without 'if'
} else if (splitted[0].equals("!fakechar")) {
C:\Documents and Settings\Kaetian\Mijn documenten\Source\MapleOriginalSource\src\net\sf\odinms\client\messages\GMCommand.java:1194: reached end of file while parsing
}
Try removing !fakechar
Re: [Release]Warp all GM's
Quote:
Originally Posted by
keatian
My GMCommand.java
wuts with thepastebin? xD
http://pastebin.com/m4c8d9309
Replace your GMCommands with that, BTW Scroll all the way down on pastebin to copy the text.
Re: [Release]Warp all GM's
yay 1 error is gone but now this
Code:
init:
deps-jar:
Compiling 1 source file to C:\Documents and Settings\Kaetian\Mijn documenten\Source\build\classes
C:\Documents and Settings\Kaetian\Mijn documenten\Source\MapleOriginalSource\src\net\sf\odinms\client\messages\GMCommand.java:680: cannot find symbol
symbol : method dropMessage(java.lang.String)
location: class net.sf.odinms.client.MapleCharacter
mch.dropMessage("You have been warped to " + c.getPlayer().getMap().getMapName() + " by " + c.getPlayer().getName());
1 error
BUILD FAILED (total time: 0 seconds)
Re: [Release]Warp all GM's
Quote:
Originally Posted by
keatian
yay 1 error is gone but now this
Code:
init:
deps-jar:
Compiling 1 source file to C:\Documents and Settings\Kaetian\Mijn documenten\Source\build\classes
C:\Documents and Settings\Kaetian\Mijn documenten\Source\MapleOriginalSource\src\net\sf\odinms\client\messages\GMCommand.java:680: cannot find symbol
symbol : method dropMessage(java.lang.String)
location: class net.sf.odinms.client.MapleCharacter
mch.dropMessage("You have been warped to " + c.getPlayer().getMap().getMapName() + " by " + c.getPlayer().getName());
1 error
BUILD FAILED (total time: 0 seconds)
Press CTRL+SHIFT+I at the same time to fix imports. Tell me if it works or not.
Re: [Release]Warp all GM's
Re: [Release]Warp all GM's
http://pastebin.com/m7b5dd8c0
Replace your GMCommands file with that.
Re: [Release]Warp all GM's
weird i got the same error..
Re: [Release]Warp all GM's
>.<
Code:
init:
deps-clean:
Deleting directory C:\Documents and Settings\Kaetian\Mijn documenten\Source\build
Deleting directory C:\Documents and Settings\Kaetian\Mijn documenten\Source\dist
clean:
init:
deps-jar:
Created dir: C:\Documents and Settings\Kaetian\Mijn documenten\Source\build\classes
Compiling 356 source files to C:\Documents and Settings\Kaetian\Mijn documenten\Source\build\classes
C:\Documents and Settings\Kaetian\Mijn documenten\Source\MapleOriginalSource\src\net\sf\odinms\client\messages\GMCommand.java:676: mc is already defined in executeGMCommand(net.sf.odinms.client.MapleClient,net.sf.odinms.client.messages.MessageCallback,java.lang.String,org.slf4j.Logger,java.util.List<net.sf.odinms.tools.Pair<net.sf.odinms.client.MapleCharacter,java.lang.String>>,java.lang.Runnable)
MessageCallback mc = new StringMessageCallback();
C:\Documents and Settings\Kaetian\Mijn documenten\Source\MapleOriginalSource\src\net\sf\odinms\client\messages\GMCommand.java:681: cannot find symbol
symbol : method dropMessage(java.lang.String)
location: class net.sf.odinms.client.MapleCharacter
mch.dropMessage("You have been warped to " + c.getPlayer().getMap().getMapName() + " by " + c.getPlayer().getName());
2 errors
BUILD FAILED (total time: 4 seconds)
Re: [Release]Warp all GM's
Quote:
Originally Posted by
Vi3tb0i2ty
weird i got the same error..
roflmao, can't you code? anyways it's because you guys don't have have the mc variable defined...Wow, um you guys are still getting the error, so just delete the mch.dropMessage parts and that'll fix everything.
@ keatian
http://pastebin.com/m200c4fa7
replace with that.
Re: [Release]Warp all GM's