Hey all,
i wanne make a check (java, not js) if mapId (variable) is exist in the XML of the server..
how can i make that check?
(Forgot to mention: Im using moople)
Ill be glad if you will explain me the way you make that check too!
Printable View
Hey all,
i wanne make a check (java, not js) if mapId (variable) is exist in the XML of the server..
how can i make that check?
(Forgot to mention: Im using moople)
Ill be glad if you will explain me the way you make that check too!
This sounds like a roundabout way to check if a map exists. I'm pretty sure there are methods that already exist.
Use something like this (for Exiled at least)
PHP Code:final MapleMap target = c.getChannelServer().getMapFactory().getMap(Integer.parseInt(splitted[1]));
if (target == null) {
c.getPlayer().dropMessage(6, "Map does not exist");
return 0;
}
then maybe i didnt notice
i can compile, but when i use the warp command i keep getting that error (when i type a wrong id), which means that the check doesnt work:
Edit: i've noticed that i get that error in a few more commands, can someone help me fix it?Quote:
java.lang.ArrayIndexOutOfBoundsException: 1
at client.command.Commands.executeGMCommand(Commands.java:107)
at net.server.channel.handlers.GeneralchatHandler.handlePacket(GeneralchatHandler.java:44)
at net.MapleServerHandler.messageReceived(MapleServerHandler.java:127)
at org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilter.messageReceived(DefaultIoFilterChain.java:716)
at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:434)
at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:46)
at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:796)
at org.apache.mina.filter.codec.ProtocolCodecFilter$ProtocolDecoderOutputImpl.flush(ProtocolCodecFilter.java:427)
at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:245)
at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:434)
at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:46)
at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:796)
at org.apache.mina.core.filterchain.IoFilterAdapter.messageReceived(IoFilterAdapter.java:119)
at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:434)
at org.apache.mina.core.filterchain.DefaultIoFilterChain.fireMessageReceived(DefaultIoFilterChain.java:426)
at org.apache.mina.core.polling.AbstractPollingIoProcessor.read(AbstractPollingIoProcessor.java:715)
at org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:668)
at org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:657)
at org.apache.mina.core.polling.AbstractPollingIoProcessor.access$600(AbstractPollingIoProcessor.java:68)
at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:1141)
at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
MapleMap.java
PHP Code:public boolean isMapExist(int mapId) {
try {
return getMap(mapId) != null;
} catch (final Exception e) {
return false;
}
}
Examples)
Command:
NPC:PHP Code:} else if (sub[1].equals("cme")) { //Check Map Exist
if (sub.length != 2) { c.getPlayer().dropMessage("Syntax : !cme [Map-ID]"); return; }
Channel ch = c.getChannelServer();
final boolean exist = ch.getMapFactory().isMapExist(Integer.parseInt(sub[1]));
c.getPlayer().dropMessage(exist ? "Map is exist." : "Map is not exist in server files.");
}
PHP Code:function start() {
cm.sendGetNumber("Put map-id", 0, 999999999, 100000000);
}
function action(m, t, s) {
if (m == 1 && s != -1) cm.sendNext(cm.getClient().getChannelServer().getMapFactory().isMapExist(s) ? "Exist map." : "Not exist.");
cm.dispose();
}