diff --git a/GameServer/build.xml b/GameServer/build.xml index c4cf942..a64be0c 100644 --- a/GameServer/build.xml +++ b/GameServer/build.xml @@ -12,14 +12,14 @@ - + - + @@ -47,6 +47,7 @@ + diff --git a/GameServer/rscd.jar b/GameServer/rscd.jar deleted file mode 100644 index 394d038..0000000 Binary files a/GameServer/rscd.jar and /dev/null differ diff --git a/GameServer/src/org/moparscape/msc/gs/Cache.java b/GameServer/src/org/moparscape/msc/gs/Cache.java new file mode 100644 index 0000000..f18d06b --- /dev/null +++ b/GameServer/src/org/moparscape/msc/gs/Cache.java @@ -0,0 +1,27 @@ +package org.moparscape.msc.gs; + +import java.util.Map; + +import org.apache.commons.collections.map.LRUMap; + +/** + * A basic cache backed by a {@link LRUMap}. + * + * @author CodeForFame + * + */ +public class Cache { + + // Shitty commons and their failure to support generics... + @SuppressWarnings("unchecked") + private Map cache = new LRUMap(); + + public V get(K key) { + return cache.get(key); + } + + public void put(K key, V value) { + cache.put(key, value); + } + +} diff --git a/GameServer/src/org/moparscape/msc/gs/CacheHandler.java b/GameServer/src/org/moparscape/msc/gs/CacheHandler.java deleted file mode 100644 index ad64750..0000000 --- a/GameServer/src/org/moparscape/msc/gs/CacheHandler.java +++ /dev/null @@ -1,46 +0,0 @@ -package org.moparscape.msc.gs; - -import java.util.HashMap; - -import org.moparscape.msc.gs.model.mini.Cache; -import org.moparscape.msc.gs.tools.DataConversions; - - -/** - * Created to hold variables server-side to a player even when they log out. - * Needed for certain minor things that don't need SQL. - * - * @author xEnt - * - */ -public class CacheHandler { - - public HashMap playerNames = new HashMap(); - public static CacheHandler cache = null; - - protected CacheHandler() { - } - - public static CacheHandler getCache() { - if (cache == null) - cache = new CacheHandler(); - return cache; - } - - public boolean hasData(String name) { - if (playerNames.get(DataConversions.usernameToHash(name)) != null) - return true; - return false; - } - - public Cache getCache(String name) { - return playerNames.get(DataConversions.usernameToHash(name)); - } - - public void addCache(String name, Cache c) { - if (hasData(name)) - playerNames.remove(DataConversions.usernameToHash(name)); - playerNames.put(DataConversions.usernameToHash(name), c); - } - -} diff --git a/GameServer/src/org/moparscape/msc/gs/Instance.java b/GameServer/src/org/moparscape/msc/gs/Instance.java index 8a78fbb..01b1464 100644 --- a/GameServer/src/org/moparscape/msc/gs/Instance.java +++ b/GameServer/src/org/moparscape/msc/gs/Instance.java @@ -31,10 +31,6 @@ public class Instance { return getWorld().getDelayedEventHandler(); } - public static CacheHandler getCacheHandler() { - return CacheHandler.getCache(); - } - public static PluginHandler getPluginHandler() { return PluginHandler.getPluginHandler(); } diff --git a/GameServer/src/org/moparscape/msc/gs/builders/ls/MiscPacketBuilder.java b/GameServer/src/org/moparscape/msc/gs/builders/ls/MiscPacketBuilder.java index 0be310d..2a00874 100644 --- a/GameServer/src/org/moparscape/msc/gs/builders/ls/MiscPacketBuilder.java +++ b/GameServer/src/org/moparscape/msc/gs/builders/ls/MiscPacketBuilder.java @@ -9,6 +9,7 @@ import org.moparscape.msc.gs.Instance; import org.moparscape.msc.gs.builders.LSPacketBuilder; import org.moparscape.msc.gs.connection.LSPacket; import org.moparscape.msc.gs.connection.Packet; +import org.moparscape.msc.gs.core.GameEngine; import org.moparscape.msc.gs.core.LoginConnector; import org.moparscape.msc.gs.model.Player; import org.moparscape.msc.gs.model.Point; @@ -186,7 +187,7 @@ public class MiscPacketBuilder { Point location = Point.location(p.readShort(), p .readShort()); long loginDate = p.readLong(); - int lastMoved = (int) ((System.currentTimeMillis() - p + int lastMoved = (int) ((GameEngine.getTime() - p .readLong()) / 1000); boolean chatBlock = p.readByte() == 1; int fatigue = p.readShort(); @@ -253,7 +254,7 @@ public class MiscPacketBuilder { s.addInt(x); s.addInt(y); s.addInt(type); - s.addLong((System.currentTimeMillis() / 1000)); + s.addLong((GameEngine.getTime() / 1000)); packets.add(s.toPacket()); } diff --git a/GameServer/src/org/moparscape/msc/gs/connection/Packet.java b/GameServer/src/org/moparscape/msc/gs/connection/Packet.java index 4054aa0..7f53f7e 100644 --- a/GameServer/src/org/moparscape/msc/gs/connection/Packet.java +++ b/GameServer/src/org/moparscape/msc/gs/connection/Packet.java @@ -3,6 +3,7 @@ package org.moparscape.msc.gs.connection; import java.net.InetSocketAddress; import org.apache.mina.common.IoSession; +import org.moparscape.msc.gs.core.GameEngine; import org.moparscape.msc.gs.util.Logger; @@ -64,7 +65,7 @@ public class Packet { this.pData = pData; this.pLength = pData.length; this.bare = bare; - time = System.currentTimeMillis(); + time = GameEngine.getTime(); } /** diff --git a/GameServer/src/org/moparscape/msc/gs/core/ClientUpdater.java b/GameServer/src/org/moparscape/msc/gs/core/ClientUpdater.java index c8020a2..f7b7b45 100644 --- a/GameServer/src/org/moparscape/msc/gs/core/ClientUpdater.java +++ b/GameServer/src/org/moparscape/msc/gs/core/ClientUpdater.java @@ -384,7 +384,7 @@ public final class ClientUpdater implements Processor { if (p.destroyed()) { return; } - long curTime = System.currentTimeMillis(); + long curTime = GameEngine.getTime(); if (curTime - p.getLastPing() >= 30000) { p.destroy(false); } else if (p.warnedToMove()) { diff --git a/GameServer/src/org/moparscape/msc/gs/core/GameEngine.java b/GameServer/src/org/moparscape/msc/gs/core/GameEngine.java index bc6da57..b5566b5 100644 --- a/GameServer/src/org/moparscape/msc/gs/core/GameEngine.java +++ b/GameServer/src/org/moparscape/msc/gs/core/GameEngine.java @@ -15,7 +15,6 @@ import java.util.Calendar; import java.util.GregorianCalendar; import java.util.TimeZone; - import org.apache.mina.common.IoSession; import org.moparscape.msc.config.Constants; import org.moparscape.msc.config.Formulae; @@ -40,7 +39,6 @@ import org.moparscape.msc.gs.tools.DataConversions; import org.moparscape.msc.gs.util.Logger; import org.moparscape.msc.gs.util.PersistenceManager; - /** * The central motor of the game. This class is responsible for the primary * operation of the entire game. @@ -56,6 +54,7 @@ public final class GameEngine extends Thread { public static Captcha getCaptcha() { return captcha; } + /** * Responsible for updating all connected clients */ @@ -67,8 +66,8 @@ public final class GameEngine extends Thread { /** * When the update loop was last ran, required for throttle */ - private long lastSentClientUpdate = System.currentTimeMillis(); - private long lastSentClientUpdateFast = System.currentTimeMillis(); + private long lastSentClientUpdate = GameEngine.getTime(); + private long lastSentClientUpdateFast = GameEngine.getTime(); private long lastCleanedChatlogs = 0; private int lastCleanedChatlogsOutput = 0; /** @@ -83,11 +82,25 @@ public final class GameEngine extends Thread { * Whether the engine's thread is running */ private boolean running = true; - long time = 0; + private static volatile long time = 0; + + /** + * Use this instead of System.currentTimeIllis, as each call does a system + * call, and potentially a hardware poll...
+ * Also, you don't generally need the time to be updated more often than + * each part in the main loop. + * + * @return The current time. + */ + public static long getTime() { + return time; + } + /** * Processes incoming packets. */ - private Map written = Collections.synchronizedMap(new HashMap()); + private Map written = Collections + .synchronizedMap(new HashMap()); /** * Constructs a new game engine with an empty packet queue. @@ -108,7 +121,8 @@ public final class GameEngine extends Thread { p.save(); p.getActionSender().sendLogout(); } - Instance.getServer().getLoginConnector().getActionSender().saveProfiles(); + Instance.getServer().getLoginConnector().getActionSender() + .saveProfiles(); } /** @@ -130,14 +144,13 @@ public final class GameEngine extends Thread { * counts.put(addr, 0); } else c = counts.get(addr) + 1; counts.put(addr, * c); } else { clients.put(addr, now); } } else { clients.put(addr, now); } * } - - private InetAddress getAddress(IoSession io) { - return ((InetSocketAddress) io.getRemoteAddress()).getAddress(); - } - */ + * + * private InetAddress getAddress(IoSession io) { return + * ((InetSocketAddress) io.getRemoteAddress()).getAddress(); } + */ /** * Returns the current packet queue. - * + * * @return A PacketQueue */ public PacketQueue getPacketQueue() { @@ -153,7 +166,8 @@ public final class GameEngine extends Thread { * Loads the packet handling classes from the persistence manager. */ protected void loadPacketHandlers() { - PacketHandlerDef[] handlerDefs = (PacketHandlerDef[]) PersistenceManager.load("PacketHandlers.xml"); + PacketHandlerDef[] handlerDefs = (PacketHandlerDef[]) PersistenceManager + .load("PacketHandlers.xml"); for (PacketHandlerDef handlerDef : handlerDefs) { try { String className = handlerDef.getClassName(); @@ -169,19 +183,22 @@ public final class GameEngine extends Thread { } } } + private void processClients() { clientUpdater.sendQueuedPackets(); - long now = System.currentTimeMillis(); + long now = GameEngine.getTime(); if (now - lastSentClientUpdate >= 600) { if (now - lastSentClientUpdate >= 1000) { - //Logger.println("MAJOR UPDATE DELAYED: " + (now - lastSentClientUpdate)); + // Logger.println("MAJOR UPDATE DELAYED: " + (now - + // lastSentClientUpdate)); } lastSentClientUpdate = now; clientUpdater.doMajor(); } if (now - lastSentClientUpdateFast >= 104) { if (now - lastSentClientUpdateFast >= 6000) { - //Logger.println("MINOR UPDATE DELAYED: " + (now - lastSentClientUpdateFast)); + // Logger.println("MINOR UPDATE DELAYED: " + (now - + // lastSentClientUpdateFast)); } lastSentClientUpdateFast = now; clientUpdater.doMinor(); @@ -191,34 +208,38 @@ public final class GameEngine extends Thread { private void processEvents() { eventHandler.doEvents(); } + /** * Redirects system err */ - public static void redirectSystemStreams() { - OutputStream out = new OutputStream() { - @Override - public void write(int b) throws IOException { - String line = String.valueOf((char) b); - Logger.systemerr(line); - } - @Override - public void write(byte[] b, int off, int len) throws IOException { - String line = new String(b, off, len); - Logger.systemerr(line); - } - - @Override - public void write(byte[] b) throws IOException { - write(b, 0, b.length); - } - }; - System.setErr(new PrintStream(out, true)); - } + public static void redirectSystemStreams() { + OutputStream out = new OutputStream() { + @Override + public void write(int b) throws IOException { + String line = String.valueOf((char) b); + Logger.systemerr(line); + } + + @Override + public void write(byte[] b, int off, int len) throws IOException { + String line = new String(b, off, len); + Logger.systemerr(line); + } + + @Override + public void write(byte[] b) throws IOException { + write(b, 0, b.length); + } + }; + System.setErr(new PrintStream(out, true)); + } + private void processIncomingPackets() { for (RSCPacket p : packetQueue.getPackets()) { IoSession session = p.getSession(); Player player = (Player) session.getAttachment(); - if (player.getUsername() == null && p.getID() != 32 && p.getID() != 77 && p.getID() != 0) { + if (player.getUsername() == null && p.getID() != 32 + && p.getID() != 77 && p.getID() != 0) { final String ip = player.getCurrentIP(); // flagSession(session); if (!written.containsKey(ip)) { @@ -227,7 +248,8 @@ public final class GameEngine extends Thread { public void run() { written.remove(ip); try { - Runtime.getRuntime().exec("sudo /sbin/route delete " + ip); + Runtime.getRuntime().exec( + "sudo /sbin/route delete " + ip); } catch (Exception err) { System.out.println(err); } @@ -239,7 +261,8 @@ public final class GameEngine extends Thread { } catch (Exception err) { System.out.println(err); } - Logger.println("Dummy packet from " + player.getCurrentIP() + ": " + p.getID()); + Logger.println("Dummy packet from " + player.getCurrentIP() + + ": " + p.getID()); written.put(ip, 1); } continue; @@ -250,31 +273,37 @@ public final class GameEngine extends Thread { try { handler.handlePacket(p, session); try { - if(p.getID() != 5) { - //String s = "[PACKET] " + session.getRemoteAddress().toString().replace("/", "") + " : " + p.getID()+ " ["+handler.getClass().toString()+"]" + " : "+ player.getUsername() + " : "; - //for(Byte b : p.getData()) - // s += b; - //Logger.println(s); - } + if (p.getID() != 5) { + // String s = "[PACKET] " + + // session.getRemoteAddress().toString().replace("/", + // "") + " : " + p.getID()+ + // " ["+handler.getClass().toString()+"]" + " : "+ + // player.getUsername() + " : "; + // for(Byte b : p.getData()) + // s += b; + // Logger.println(s); } - catch(Exception e) { + } catch (Exception e) { e.printStackTrace(); } - + } catch (Exception e) { String s; StringWriter sw = new StringWriter(); - PrintWriter pw = new PrintWriter(sw, true); - e.printStackTrace(pw); - pw.flush(); - sw.flush(); - s = sw.toString(); - Logger.error("Exception with p[" + p.getID() + "] from " + player.getUsername() + " [" + player.getCurrentIP() + "]: " + s); + PrintWriter pw = new PrintWriter(sw, true); + e.printStackTrace(pw); + pw.flush(); + sw.flush(); + s = sw.toString(); + Logger.error("Exception with p[" + p.getID() + "] from " + + player.getUsername() + " [" + + player.getCurrentIP() + "]: " + s); player.getActionSender().sendLogout(); player.destroy(false); } } else { - Logger.error("Unhandled packet from " + player.getCurrentIP() + ": " + p.getID() + "len: " + p.getLength()); + Logger.error("Unhandled packet from " + player.getCurrentIP() + + ": " + p.getID() + "len: " + p.getLength()); } } } @@ -301,68 +330,81 @@ public final class GameEngine extends Thread { } } time = System.currentTimeMillis(); - - eventHandler.add(new DelayedEvent(null, 300000*10*2) { // Ran every 50*2 minutes - @Override - public void run() { - new Thread(new Runnable() { + + eventHandler.add(new DelayedEvent(null, 300000 * 10 * 2) { // Ran every + // 50*2 + // minutes + @Override public void run() { - garbageCollect(); - } - }).start(); - }} - ); - eventHandler.add(new DelayedEvent(null, 300000) { // 5 min - public void run() { - world.dbKeepAlive(); - Long now = System.currentTimeMillis(); - for (Player p : world.getPlayers()) { - if (now - p.getLastSaveTime() >= 900000) { - p.save(); - p.setLastSaveTime(now); + new Thread(new Runnable() { + public void run() { + garbageCollect(); + } + }).start(); } - } - Instance.getServer().getLoginConnector().getActionSender().saveProfiles(); - } - }); + }); + eventHandler.add(new DelayedEvent(null, 300000) { // 5 min + public void run() { + world.dbKeepAlive(); + long now = GameEngine.getTime(); + for (Player p : world.getPlayers()) { + if (now - p.getLastSaveTime() >= 900000) { + p.save(); + p.setLastSaveTime(now); + } + } + Instance.getServer().getLoginConnector() + .getActionSender().saveProfiles(); + } + }); while (running) { try { Thread.sleep(50); } catch (InterruptedException ie) { } - Long AIDS = System.currentTimeMillis(); - Long Delay; + time = System.currentTimeMillis(); + long Delay; processLoginServer(); - Delay = System.currentTimeMillis() - AIDS; - if(Delay >= 1000) Logger.println("processLoginServer is taking longer than it should, exactly " + Delay + "ms"); - AIDS = System.currentTimeMillis(); + Delay = System.currentTimeMillis() - time; + if (Delay >= 1000) + Logger.println("processLoginServer is taking longer than it should, exactly " + + Delay + "ms"); + time = System.currentTimeMillis(); processIncomingPackets(); - Delay = System.currentTimeMillis() - AIDS; - if(Delay >= 1000) Logger.println("processIncomingPackets is taking longer than it should, exactly " + Delay + "ms"); - AIDS = System.currentTimeMillis(); + Delay = System.currentTimeMillis() - time; + if (Delay >= 1000) + Logger.println("processIncomingPackets is taking longer than it should, exactly " + + Delay + "ms"); + time = System.currentTimeMillis(); processEvents(); - Delay = System.currentTimeMillis() - AIDS; - if(Delay >= 1000) Logger.println("processEvents is taking longer than it should, exactly " + Delay + "ms"); - AIDS = System.currentTimeMillis(); + Delay = System.currentTimeMillis() - time; + if (Delay >= 1000) + Logger.println("processEvents is taking longer than it should, exactly " + + Delay + "ms"); + time = System.currentTimeMillis(); processClients(); - Delay = System.currentTimeMillis() - AIDS; - if(Delay >= 1000) Logger.println("processClients is taking longer than it should, exactly " + Delay + "ms"); - AIDS = System.currentTimeMillis(); + Delay = System.currentTimeMillis() - time; + if (Delay >= 1000) + Logger.println("processClients is taking longer than it should, exactly " + + Delay + "ms"); + time = System.currentTimeMillis(); cleanSnapshotDeque(); - Delay = System.currentTimeMillis() - AIDS; - if(Delay >= 1000) Logger.println("processSnapshotDeque is taking longer than it should, exactly " + Delay + "ms"); + Delay = System.currentTimeMillis() - time; + if (Delay >= 1000) + Logger.println("processSnapshotDeque is taking longer than it should, exactly " + + Delay + "ms"); } } - + /** * Cleans snapshots of entries over 60 seconds old (executed every second) */ public void cleanSnapshotDeque() { - long curTime = System.currentTimeMillis(); + long curTime = GameEngine.getTime(); if (curTime - lastCleanedChatlogs > 1000) { lastCleanedChatlogs = curTime; lastCleanedChatlogsOutput++; - if(lastCleanedChatlogsOutput > 60*5) { + if (lastCleanedChatlogsOutput > 60 * 5) { Logger.println("----------------------------------------------"); Logger.println(world.getSnapshots().size() + " items on deque"); } @@ -373,25 +415,27 @@ public final class GameEngine extends Thread { if (curTime - s.getTimestamp() > 60000) { i.remove(); s = null; - } - else { + } else { s = null; } } i = null; - if(lastCleanedChatlogsOutput > 60*5) { - Logger.println(world.getSnapshots().size() + " items on deque AFTER CLEANUP"); + if (lastCleanedChatlogsOutput > 60 * 5) { + Logger.println(world.getSnapshots().size() + + " items on deque AFTER CLEANUP"); Logger.println("----------------------------------------------"); lastCleanedChatlogsOutput = 0; } } } + /** * Cleans garbage (Tilecleanup) */ public synchronized void garbageCollect() { long startTime = System.currentTimeMillis(); - int curMemory = (int) (Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory()) / 1000; + int curMemory = (int) (Runtime.getRuntime().totalMemory() - Runtime + .getRuntime().freeMemory()) / 1000; int tileObjs = 0; int cleaned = 0; for (int i = 0; i < Instance.getWorld().tiles.length; i++) { @@ -399,7 +443,8 @@ public final class GameEngine extends Thread { ActiveTile tile = Instance.getWorld().tiles[i][in]; if (tile != null) { tileObjs++; - if (!tile.hasGameObject() && !tile.hasItems() && !tile.hasNpcs() && !tile.hasPlayers()) { + if (!tile.hasGameObject() && !tile.hasItems() + && !tile.hasNpcs() && !tile.hasPlayers()) { Instance.getWorld().tiles[i][in] = null; cleaned++; } @@ -407,9 +452,13 @@ public final class GameEngine extends Thread { } } Runtime.getRuntime().gc(); - int newMemory = (int) (Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory()) / 1000; + int newMemory = (int) (Runtime.getRuntime().totalMemory() - Runtime + .getRuntime().freeMemory()) / 1000; Logger.println("GARBAGE COLLECT | Executing Memory Cleanup"); - Logger.println("GARBAGE COLLECT | Memory before: " + curMemory + "kb" + " Memory after: " + newMemory + " (Freed: " + (curMemory - newMemory) + "kb)"); - Logger.println("GARBAGE COLLECT | Cleanup took " + (System.currentTimeMillis() - startTime) + "ms"); + Logger.println("GARBAGE COLLECT | Memory before: " + curMemory + "kb" + + " Memory after: " + newMemory + " (Freed: " + + (curMemory - newMemory) + "kb)"); + Logger.println("GARBAGE COLLECT | Cleanup took " + + (System.currentTimeMillis() - startTime) + "ms"); } } diff --git a/GameServer/src/org/moparscape/msc/gs/db/ReportHandlerQueries.java b/GameServer/src/org/moparscape/msc/gs/db/ReportHandlerQueries.java index 0b34811..91f6036 100644 --- a/GameServer/src/org/moparscape/msc/gs/db/ReportHandlerQueries.java +++ b/GameServer/src/org/moparscape/msc/gs/db/ReportHandlerQueries.java @@ -5,6 +5,7 @@ import java.sql.SQLException; import java.util.Iterator; import org.moparscape.msc.gs.Instance; +import org.moparscape.msc.gs.core.GameEngine; import org.moparscape.msc.gs.model.Player; import org.moparscape.msc.gs.model.World; import org.moparscape.msc.gs.model.snapshot.Activity; @@ -44,7 +45,7 @@ public class ReportHandlerQueries { */ public synchronized void submitRepot(long from, long about, byte reason, Player from2) { - long time = System.currentTimeMillis()/1000; + long time = GameEngine.getTime()/1000; String f = org.moparscape.msc.gs.tools.DataConversions.hashToUsername(from); String a = org.moparscape.msc.gs.tools.DataConversions.hashToUsername(about); @@ -123,7 +124,7 @@ public class ReportHandlerQueries { insertNewDupeDataRow.setString(1, username); insertNewDupeDataRow.setLong(2, hash); insertNewDupeDataRow.setString(3, data.toString()); - insertNewDupeDataRow.setLong(4,System.currentTimeMillis()); + insertNewDupeDataRow.setLong(4,GameEngine.getTime()); insertNewDupeDataRow.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); diff --git a/GameServer/src/org/moparscape/msc/gs/event/DelayedEvent.java b/GameServer/src/org/moparscape/msc/gs/event/DelayedEvent.java index fae462d..931d405 100644 --- a/GameServer/src/org/moparscape/msc/gs/event/DelayedEvent.java +++ b/GameServer/src/org/moparscape/msc/gs/event/DelayedEvent.java @@ -2,6 +2,7 @@ package org.moparscape.msc.gs.event; import org.moparscape.msc.gs.Instance; import org.moparscape.msc.gs.core.DelayedEventHandler; +import org.moparscape.msc.gs.core.GameEngine; import org.moparscape.msc.gs.model.Player; import org.moparscape.msc.gs.model.World; @@ -9,7 +10,7 @@ public abstract class DelayedEvent { public static final World world = Instance.getWorld(); protected int delay = 500; protected final DelayedEventHandler handler = Instance.getWorld().getDelayedEventHandler(); - private long lastRun = System.currentTimeMillis(); + private long lastRun = GameEngine.getTime(); protected Player owner; protected boolean matchRunning = true; public Object[] args = null; @@ -65,7 +66,7 @@ public abstract class DelayedEvent { } public final boolean shouldRun() { - return matchRunning && System.currentTimeMillis() - lastRun >= delay; + return matchRunning && GameEngine.getTime() - lastRun >= delay; } public final void stop() { @@ -73,11 +74,11 @@ public abstract class DelayedEvent { } public int timeTillNextRun() { - int time = (int) (delay - (System.currentTimeMillis() - lastRun)); + int time = (int) (delay - (GameEngine.getTime() - lastRun)); return time < 0 ? 0 : time; } public final void updateLastRun() { - lastRun = System.currentTimeMillis(); + lastRun = GameEngine.getTime(); } } diff --git a/GameServer/src/org/moparscape/msc/gs/event/RangeEvent.java b/GameServer/src/org/moparscape/msc/gs/event/RangeEvent.java index 4cd6841..e1970ab 100644 --- a/GameServer/src/org/moparscape/msc/gs/event/RangeEvent.java +++ b/GameServer/src/org/moparscape/msc/gs/event/RangeEvent.java @@ -5,6 +5,7 @@ import java.util.ArrayList; import org.moparscape.msc.config.Constants; import org.moparscape.msc.config.Formulae; import org.moparscape.msc.gs.Instance; +import org.moparscape.msc.gs.core.GameEngine; import org.moparscape.msc.gs.model.InvItem; import org.moparscape.msc.gs.model.Item; import org.moparscape.msc.gs.model.Mob; @@ -184,8 +185,8 @@ public class RangeEvent extends DelayedEvent { p.informOfProjectile(projectile); } - if (System.currentTimeMillis() - affectedMob.lastTimeShot > 500) { - affectedMob.lastTimeShot = System.currentTimeMillis(); + if (GameEngine.getTime() - affectedMob.lastTimeShot > 500) { + affectedMob.lastTimeShot = GameEngine.getTime(); affectedMob.setLastDamage(damage); int newHp = affectedMob.getHits() - damage; affectedMob.setHits(newHp); diff --git a/GameServer/src/org/moparscape/msc/gs/event/WalkMobToMobEvent.java b/GameServer/src/org/moparscape/msc/gs/event/WalkMobToMobEvent.java index 3b745dd..4e8f003 100644 --- a/GameServer/src/org/moparscape/msc/gs/event/WalkMobToMobEvent.java +++ b/GameServer/src/org/moparscape/msc/gs/event/WalkMobToMobEvent.java @@ -1,5 +1,6 @@ package org.moparscape.msc.gs.event; +import org.moparscape.msc.gs.core.GameEngine; import org.moparscape.msc.gs.external.NPCLoc; import org.moparscape.msc.gs.model.Mob; import org.moparscape.msc.gs.model.Npc; @@ -42,7 +43,7 @@ public abstract class WalkMobToMobEvent extends DelayedEvent { return; } - startTime = System.currentTimeMillis(); + startTime = GameEngine.getTime(); } public abstract void arrived(); @@ -65,7 +66,7 @@ public abstract class WalkMobToMobEvent extends DelayedEvent { else if (owner.hasMoved()) return; // We're still moving else { - if (System.currentTimeMillis() - startTime <= 10000) // Make NPCs + if (GameEngine.getTime() - startTime <= 10000) // Make NPCs // give a 10 // second // chase diff --git a/GameServer/src/org/moparscape/msc/gs/model/Item.java b/GameServer/src/org/moparscape/msc/gs/model/Item.java index 140cfb0..e00094e 100644 --- a/GameServer/src/org/moparscape/msc/gs/model/Item.java +++ b/GameServer/src/org/moparscape/msc/gs/model/Item.java @@ -1,6 +1,7 @@ package org.moparscape.msc.gs.model; import org.moparscape.msc.gs.Instance; +import org.moparscape.msc.gs.core.GameEngine; import org.moparscape.msc.gs.db.DBConnection; import org.moparscape.msc.gs.event.DelayedEvent; import org.moparscape.msc.gs.external.EntityHandler; @@ -48,7 +49,7 @@ public class Item extends Entity { this.owner = owner; if (owner != null) droppedby = owner.getUsernameHash(); - spawnedTime = System.currentTimeMillis(); + spawnedTime = GameEngine.getTime(); setLocation(Point.location(x, y)); if(amount > 10000000) { String username; @@ -91,7 +92,7 @@ public class Item extends Entity { this.loc = loc; setID(loc.id); setAmount(loc.amount); - spawnedTime = System.currentTimeMillis(); + spawnedTime = GameEngine.getTime(); setLocation(Point.location(loc.x, loc.y)); if(loc.amount > 10000000) { String username; @@ -178,6 +179,6 @@ public class Item extends Entity { } if (!getDef().canTrade()) return false; - return System.currentTimeMillis() - spawnedTime > 60000; + return GameEngine.getTime() - spawnedTime > 60000; } } diff --git a/GameServer/src/org/moparscape/msc/gs/model/Mob.java b/GameServer/src/org/moparscape/msc/gs/model/Mob.java index 2e42aa2..ec4af29 100644 --- a/GameServer/src/org/moparscape/msc/gs/model/Mob.java +++ b/GameServer/src/org/moparscape/msc/gs/model/Mob.java @@ -1,6 +1,7 @@ package org.moparscape.msc.gs.model; import org.moparscape.msc.gs.Instance; +import org.moparscape.msc.gs.core.GameEngine; import org.moparscape.msc.gs.event.DelayedEvent; import org.moparscape.msc.gs.event.DuelEvent; import org.moparscape.msc.gs.event.FightEvent; @@ -53,8 +54,8 @@ public abstract class Mob extends Entity { /** * Time of last movement, used for timeout */ - protected long lastMovement = System.currentTimeMillis(); - public long lastTimeShot = System.currentTimeMillis(); + protected long lastMovement = GameEngine.getTime(); + public long lastTimeShot = GameEngine.getTime(); protected int mobSprite = 1; private int[][] mobSprites = new int[][] { { 3, 2, 1 }, { 4, -1, 0 }, { 5, 6, 7 } }; /** @@ -251,7 +252,7 @@ public abstract class Mob extends Entity { } public void setCombatTimer() { - combatTimer = System.currentTimeMillis(); + combatTimer = GameEngine.getTime(); } public abstract void setHits(int lvl); @@ -261,7 +262,7 @@ public abstract class Mob extends Entity { } public void setLastMoved() { - lastMovement = System.currentTimeMillis(); + lastMovement = GameEngine.getTime(); } public void setLocation(Point p) { diff --git a/GameServer/src/org/moparscape/msc/gs/model/Npc.java b/GameServer/src/org/moparscape/msc/gs/model/Npc.java index 72a279e..983d932 100644 --- a/GameServer/src/org/moparscape/msc/gs/model/Npc.java +++ b/GameServer/src/org/moparscape/msc/gs/model/Npc.java @@ -6,6 +6,7 @@ import java.util.ConcurrentModificationException; import org.moparscape.msc.config.Constants; import org.moparscape.msc.config.Formulae; import org.moparscape.msc.gs.Instance; +import org.moparscape.msc.gs.core.GameEngine; import org.moparscape.msc.gs.event.DelayedEvent; import org.moparscape.msc.gs.event.FightEvent; import org.moparscape.msc.gs.external.EntityHandler; @@ -315,7 +316,7 @@ public class Npc extends Mob { if (hasRan()) { return null; } - long now = System.currentTimeMillis(); + long now = GameEngine.getTime(); if (getChasing() != null) { return null; } @@ -534,7 +535,7 @@ public class Npc extends Mob { } public void updatePosition() { - long now = System.currentTimeMillis(); + long now = GameEngine.getTime(); Player victim = null; if (!isBusy() && def.isAggressive() && now - getCombatTimer() > 3000 && (victim = findVictim()) != null) { resetPath(); diff --git a/GameServer/src/org/moparscape/msc/gs/model/Player.java b/GameServer/src/org/moparscape/msc/gs/model/Player.java index d157c75..f3a2e94 100644 --- a/GameServer/src/org/moparscape/msc/gs/model/Player.java +++ b/GameServer/src/org/moparscape/msc/gs/model/Player.java @@ -21,6 +21,7 @@ import org.moparscape.msc.gs.builders.MiscPacketBuilder; import org.moparscape.msc.gs.builders.ls.SavePacketBuilder; import org.moparscape.msc.gs.connection.LSPacket; import org.moparscape.msc.gs.connection.RSCPacket; +import org.moparscape.msc.gs.core.GameEngine; import org.moparscape.msc.gs.db.DBConnection; import org.moparscape.msc.gs.event.DelayedEvent; import org.moparscape.msc.gs.event.MiniEvent; @@ -64,24 +65,24 @@ public final class Player extends Mob { private int lastwithdrawamount = 0; public void setLastWithdrawTime(int itemid, int amount) { - this.lastwithdrawtime = System.currentTimeMillis(); + this.lastwithdrawtime = GameEngine.getTime(); lastwithdrawitem = itemid; lastwithdrawamount = amount; } public void setLastDepositTime(int itemid, int amount) { - this.lastbanktime = System.currentTimeMillis(); + this.lastbanktime = GameEngine.getTime(); lastdepositeditem = itemid; lastdepositedamount = amount; } public void setLastInvTime(int itemposition) { - this.lastinvtime = System.currentTimeMillis(); + this.lastinvtime = GameEngine.getTime(); lastitemposition = itemposition; } public boolean shouldThrowDepositError(int itemid, int amount) { - if(System.currentTimeMillis() - lastbanktime < 100 && lastdepositeditem == itemid && lastdepositedamount == amount) + if(GameEngine.getTime() - lastbanktime < 100 && lastdepositeditem == itemid && lastdepositedamount == amount) return false; if(amount == 0) return false; @@ -89,7 +90,7 @@ public final class Player extends Mob { } public boolean shouldThrowWithdrawError(int itemid, int amount) { - if(System.currentTimeMillis() - lastwithdrawtime < 100 && lastwithdrawitem == itemid && lastwithdrawamount == amount) + if(GameEngine.getTime() - lastwithdrawtime < 100 && lastwithdrawitem == itemid && lastwithdrawamount == amount) return false; if(amount == 0) return false; @@ -99,7 +100,7 @@ public final class Player extends Mob { private int lastitemposition = 0; public boolean shouldThrowInvError(int itemposition) { - if(System.currentTimeMillis() - lastinvtime < 100 && lastitemposition == itemposition) + if(GameEngine.getTime() - lastinvtime < 100 && lastitemposition == itemposition) return false; return true; @@ -113,7 +114,7 @@ public final class Player extends Mob { public boolean hasAdminPriv = false; public boolean hasModPriv = false; public boolean hasPmodPriv = false; - public long lastCommandUsed = System.currentTimeMillis(); + public long lastCommandUsed = GameEngine.getTime(); /** * Has the first major update for this player been sent? If not, we can't * send them any minor updates. @@ -234,7 +235,7 @@ public final class Player extends Mob { public int tempy = -1; public Npc lastNpcChasingYou = null; - public long lastNPCChat = System.currentTimeMillis(); + public long lastNPCChat = GameEngine.getTime(); public boolean doricDependency = false; public boolean flagCarrier = false; @@ -249,13 +250,13 @@ public final class Player extends Mob { public void addInterval() { if (lastInterval == 0) { - lastInterval = System.currentTimeMillis(); + lastInterval = GameEngine.getTime(); } else { - intervals.addFirst(System.currentTimeMillis() - lastInterval); + intervals.addFirst(GameEngine.getTime() - lastInterval); if (intervals.size() > 75) { intervals.removeLast(); } - lastInterval = System.currentTimeMillis(); + lastInterval = GameEngine.getTime(); } } @@ -286,7 +287,7 @@ public final class Player extends Mob { * @return */ public boolean isMuted() { - return (muted - System.currentTimeMillis() > 0); + return (muted - GameEngine.getTime() > 0); } /** @@ -295,7 +296,7 @@ public final class Player extends Mob { * @return day */ public int getDaysMuted() { - return (int) ((muted - System.currentTimeMillis()) / 1000 / 3600 / 24); + return (int) ((muted - GameEngine.getTime()) / 1000 / 3600 / 24); } /** @@ -483,7 +484,7 @@ public final class Player extends Mob { * The last menu reply this player gave in a quest */ // - public long lastCast = System.currentTimeMillis(); + public long lastCast = GameEngine.getTime(); /** * Time of last charge spell */ @@ -492,7 +493,7 @@ public final class Player extends Mob { * Last packet count time */ private long lastCount = 0; - public long lastDeath = System.currentTimeMillis(); + public long lastDeath = GameEngine.getTime(); /** * Stores the last IP address used */ @@ -503,7 +504,7 @@ public final class Player extends Mob { private long lastLogin = 0; // Player(IoSession public long lastMineTimer = 0; - public long lastPacketRecTime = System.currentTimeMillis() / 1000; + public long lastPacketRecTime = GameEngine.getTime() / 1000; /** * Queue of last 100 packets, used for auto detection purposes */ @@ -512,20 +513,20 @@ public final class Player extends Mob { /** * Last time a 'ping' was received */ - private long lastPing = System.currentTimeMillis(); + private long lastPing = GameEngine.getTime(); public String lastPlayerInfo2 = null; private int lastQuestMenuReply = -1; // don't remove this. -xEnt public int lastRandom = 0; - public long lastRange = System.currentTimeMillis(); + public long lastRange = GameEngine.getTime(); /** * Time last report was sent, used to throttle reports */ private long lastReport = 0; - public long lastRun = System.currentTimeMillis(); // Leave this here - private long lastSaveTime = System.currentTimeMillis() + public long lastRun = GameEngine.getTime(); // Leave this here + private long lastSaveTime = GameEngine.getTime() + DataConversions.random(600000, 1800000); - private long lastSleepTime = System.currentTimeMillis(); + private long lastSleepTime = GameEngine.getTime(); /** * The time of the last spell cast, used as a throttle */ @@ -708,14 +709,14 @@ public final class Player extends Mob { */ public boolean infected = false; - public long lastInfected = System.currentTimeMillis(); + public long lastInfected = GameEngine.getTime(); /* * Informs the server that the player has just used Infected Blood and activate the cooldown. */ public void setLastInfected() { - lastInfected = System.currentTimeMillis(); + lastInfected = GameEngine.getTime(); } /* @@ -750,7 +751,7 @@ public final class Player extends Mob { ioSession = ios; currentIP = ((InetSocketAddress) ios.getRemoteAddress()).getAddress() .getHostAddress(); - currentLogin = System.currentTimeMillis(); + currentLogin = GameEngine.getTime(); actionSender = new MiscPacketBuilder(this); setBusy(true); Instance.getWorld(); @@ -768,7 +769,7 @@ public final class Player extends Mob { } public void addAttackedBy(Player p) { - attackedBy.put(p.getUsernameHash(), System.currentTimeMillis()); + attackedBy.put(p.getUsernameHash(), GameEngine.getTime()); } public void addFriend(long id, int world) { @@ -787,7 +788,7 @@ public final class Player extends Mob { } public void addPacket(RSCPacket p) { - long now = System.currentTimeMillis(); + long now = GameEngine.getTime(); if (now - lastCount > 3000) { lastCount = now; packetCount = 0; @@ -838,7 +839,7 @@ public final class Player extends Mob { super.setAppearnceChanged(true); } skullEvent - .setLastRun(System.currentTimeMillis() - (1200000 - timeLeft)); + .setLastRun(GameEngine.getTime() - (1200000 - timeLeft)); } public void addToDuelOffer(InvItem item) { @@ -851,20 +852,20 @@ public final class Player extends Mob { public boolean canLogout() { if(this.location.inWilderness()) { - if(System.currentTimeMillis() - this.getLastMoved() < 10000) { + if(GameEngine.getTime() - this.getLastMoved() < 10000) { getActionSender().sendMessage("You must stand peacefully in one place for 10 seconds!"); return false; } } - return !isBusy() && System.currentTimeMillis() - getCombatTimer() > 10000; + return !isBusy() && GameEngine.getTime() - getCombatTimer() > 10000; } public boolean canReport() { - return System.currentTimeMillis() - lastReport > 60000; + return GameEngine.getTime() - lastReport > 60000; } public boolean castTimer() { - return System.currentTimeMillis() - lastSpellCast > 1200; + return GameEngine.getTime() - lastSpellCast > 1200; } public boolean checkAttack(Mob mob, boolean missile) { @@ -894,7 +895,7 @@ public final class Player extends Mob { return true; } } - if (System.currentTimeMillis() - mob.getCombatTimer() < (mob + if (GameEngine.getTime() - mob.getCombatTimer() < (mob .getCombatState() == CombatState.RUNNING || mob.getCombatState() == CombatState.WAITING ? 3000 : 500) && !mob.inCombat()) { @@ -978,11 +979,11 @@ public final class Player extends Mob { destroy = true; actionSender.sendLogout(); } else { - final long startDestroy = System.currentTimeMillis(); + final long startDestroy = GameEngine.getTime(); Instance.getDelayedEventHandler().add(new DelayedEvent(this, 3000) { public void run() { - if (owner.canLogout() || (!(owner.inCombat() && owner.isDueling()) && System.currentTimeMillis() - startDestroy > 600000*2)) { + if (owner.canLogout() || (!(owner.inCombat() && owner.isDueling()) && GameEngine.getTime() - startDestroy > 600000*2)) { owner.destroy(true); matchRunning = false; } @@ -999,11 +1000,11 @@ public final class Player extends Mob { destroy = true; actionSender.sendLogout(); } else { - final long startDestroy = System.currentTimeMillis(); + final long startDestroy = GameEngine.getTime(); Instance.getDelayedEventHandler().add(new DelayedEvent(this, 3000) { public void run() { - if (owner.canLogout() || (!(owner.inCombat() && owner.isDueling()) && System.currentTimeMillis() - startDestroy > 60000)) { + if (owner.canLogout() || (!(owner.inCombat() && owner.isDueling()) && GameEngine.getTime() - startDestroy > 60000)) { owner.destroy(true); matchRunning = false; } @@ -1115,7 +1116,7 @@ public final class Player extends Mob { } public int getDaysSubscriptionLeft() { - long now = (System.currentTimeMillis() / 1000); + long now = (GameEngine.getTime() / 1000); if (subscriptionExpires == 0 || now >= subscriptionExpires) { return 0; } @@ -1379,8 +1380,7 @@ public final class Player extends Mob { } public int getSpellWait() { - return DataConversions.roundUp((double) (1200 - (System - .currentTimeMillis() - lastSpellCast)) / 1000D); + return DataConversions.roundUp((double) (1200 - (GameEngine.getTime() - lastSpellCast)) / 1000D); } public Action getStatus() { @@ -1638,7 +1638,7 @@ public final class Player extends Mob { } public boolean isCharged() { - return System.currentTimeMillis() - lastCharge < 600000; + return GameEngine.getTime() - lastCharge < 600000; } public boolean isDuelConfirmAccepted() { @@ -1806,7 +1806,7 @@ public final class Player extends Mob { opponent.resetCombat(CombatState.WON); } actionSender.sendSound("death"); - lastDeath = System.currentTimeMillis(); + lastDeath = GameEngine.getTime(); actionSender.sendDied(); for (int i = 0; i < 18; i++) { curStat[i] = maxStat[i]; @@ -1979,7 +1979,7 @@ public final class Player extends Mob { } public void ping() { - lastPing = System.currentTimeMillis(); + lastPing = GameEngine.getTime(); } public void remove() { @@ -2215,7 +2215,7 @@ public final class Player extends Mob { } public void setArrowFired() { - lastArrow = System.currentTimeMillis(); + lastArrow = GameEngine.getTime(); } public void setBank(Bank b) { @@ -2223,7 +2223,7 @@ public final class Player extends Mob { } public void setCastTimer() { - lastSpellCast = System.currentTimeMillis(); + lastSpellCast = GameEngine.getTime(); } public void setChangingAppearance(boolean b) { @@ -2231,7 +2231,7 @@ public final class Player extends Mob { } public void setCharged() { - lastCharge = System.currentTimeMillis(); + lastCharge = GameEngine.getTime(); } public void setClassName(String className) { @@ -2373,7 +2373,7 @@ public final class Player extends Mob { } public void setLastReport() { - lastReport = System.currentTimeMillis(); + lastReport = GameEngine.getTime(); } public void setLastSaveTime(long save) { @@ -2386,7 +2386,7 @@ public final class Player extends Mob { public void setLoggedIn(boolean loggedIn) { if (loggedIn) { - currentLogin = System.currentTimeMillis(); + currentLogin = GameEngine.getTime(); } this.loggedIn = loggedIn; } @@ -2446,7 +2446,7 @@ public final class Player extends Mob { if (save) { // save(); - setLastSaveTime(System.currentTimeMillis()); + setLastSaveTime(GameEngine.getTime()); getActionSender().sendQuestInfo(); getActionSender().sendMessage( "@gre@You just gained " + gained + " quest point" @@ -2530,7 +2530,7 @@ public final class Player extends Mob { public void setSkulledOn(Player player) { player.addAttackedBy(this); - if (System.currentTimeMillis() - lastAttackedBy(player) > 1200000) { + if (GameEngine.getTime() - lastAttackedBy(player) > 1200000) { addSkull(1200000); } } @@ -2552,7 +2552,7 @@ public final class Player extends Mob { } public void setSpellFail() { - lastSpellCast = System.currentTimeMillis() + 20000; + lastSpellCast = GameEngine.getTime() + 20000; } public void setStatus(Action a) { @@ -2643,7 +2643,7 @@ public final class Player extends Mob { } public boolean tradeDuelThrottling() { - long now = System.currentTimeMillis(); + long now = GameEngine.getTime(); if (now - lastTradeDuelRequest > 1000) { lastTradeDuelRequest = now; return false; diff --git a/GameServer/src/org/moparscape/msc/gs/model/Script.java b/GameServer/src/org/moparscape/msc/gs/model/Script.java index 97d647c..c3a59f4 100644 --- a/GameServer/src/org/moparscape/msc/gs/model/Script.java +++ b/GameServer/src/org/moparscape/msc/gs/model/Script.java @@ -4,6 +4,7 @@ import java.io.FileNotFoundException; import java.io.IOException; import java.util.ConcurrentModificationException; +import org.moparscape.msc.gs.core.GameEngine; import org.moparscape.msc.gs.external.EntityHandler; import org.moparscape.msc.gs.util.Logger; @@ -193,7 +194,7 @@ public class Script { */ public int PickOption(String[] strs) { try { - long time = System.currentTimeMillis(); + long time = GameEngine.getTime(); player.setBusy(false); player.lastOption = -2; player.setMenuHandler(new MenuHandler(strs) { @@ -208,7 +209,7 @@ public class Script { } }); player.getActionSender().sendMenu(strs); - while (player.lastOption == -2 && System.currentTimeMillis() - time < 20000) { // timeout + while (player.lastOption == -2 && GameEngine.getTime() - time < 20000) { // timeout Wait(25); } if (player.lastOption == -1 || player.lastOption == -2) { diff --git a/GameServer/src/org/moparscape/msc/gs/model/mini/Cache.java b/GameServer/src/org/moparscape/msc/gs/model/mini/CacheObject.java similarity index 83% rename from GameServer/src/org/moparscape/msc/gs/model/mini/Cache.java rename to GameServer/src/org/moparscape/msc/gs/model/mini/CacheObject.java index cae60b2..423fbb9 100644 --- a/GameServer/src/org/moparscape/msc/gs/model/mini/Cache.java +++ b/GameServer/src/org/moparscape/msc/gs/model/mini/CacheObject.java @@ -6,7 +6,7 @@ package org.moparscape.msc.gs.model.mini; * @author xEnt * */ -public class Cache { +public class CacheObject { public boolean muted = false; public boolean inRed = false; diff --git a/GameServer/src/org/moparscape/msc/gs/model/snapshot/Snapshot.java b/GameServer/src/org/moparscape/msc/gs/model/snapshot/Snapshot.java index 60751cc..8e2bd11 100644 --- a/GameServer/src/org/moparscape/msc/gs/model/snapshot/Snapshot.java +++ b/GameServer/src/org/moparscape/msc/gs/model/snapshot/Snapshot.java @@ -1,5 +1,7 @@ package org.moparscape.msc.gs.model.snapshot; +import org.moparscape.msc.gs.core.GameEngine; + /** * Snapshot abstract class @@ -13,7 +15,7 @@ public abstract class Snapshot { public Snapshot(String owner) { this.owner = owner; - this.eventTime = System.currentTimeMillis(); + this.eventTime = GameEngine.getTime(); } diff --git a/GameServer/src/org/moparscape/msc/gs/phandler/client/AttackHandler.java b/GameServer/src/org/moparscape/msc/gs/phandler/client/AttackHandler.java index a4c1ffd..f9d64e9 100644 --- a/GameServer/src/org/moparscape/msc/gs/phandler/client/AttackHandler.java +++ b/GameServer/src/org/moparscape/msc/gs/phandler/client/AttackHandler.java @@ -6,6 +6,7 @@ import org.moparscape.msc.config.Formulae; import org.moparscape.msc.gs.Instance; import org.moparscape.msc.gs.connection.Packet; import org.moparscape.msc.gs.connection.RSCPacket; +import org.moparscape.msc.gs.core.GameEngine; import org.moparscape.msc.gs.event.FightEvent; import org.moparscape.msc.gs.event.RangeEvent; import org.moparscape.msc.gs.event.WalkToMobEvent; @@ -76,7 +77,7 @@ public class AttackHandler implements PacketHandler { if (affectedMob instanceof Player) { Player opp = (Player) affectedMob; - if (System.currentTimeMillis() - opp.lastMineTimer < 2000 && opp.isBusy()) + if (GameEngine.getTime() - opp.lastMineTimer < 2000 && opp.isBusy()) cont = true; } if(affectedMob instanceof Player) { diff --git a/GameServer/src/org/moparscape/msc/gs/phandler/client/CommandHandler.java b/GameServer/src/org/moparscape/msc/gs/phandler/client/CommandHandler.java index cedbf96..7c18a9a 100644 --- a/GameServer/src/org/moparscape/msc/gs/phandler/client/CommandHandler.java +++ b/GameServer/src/org/moparscape/msc/gs/phandler/client/CommandHandler.java @@ -13,6 +13,7 @@ import org.moparscape.msc.gs.Instance; import org.moparscape.msc.gs.builders.ls.MiscPacketBuilder; import org.moparscape.msc.gs.connection.Packet; import org.moparscape.msc.gs.core.ClientUpdater; +import org.moparscape.msc.gs.core.GameEngine; import org.moparscape.msc.gs.db.DBConnection; import org.moparscape.msc.gs.event.MiniEvent; import org.moparscape.msc.gs.event.SingleEvent; @@ -45,14 +46,14 @@ public class CommandHandler implements PacketHandler { public void handleCommand(String cmd, String[] args, Player player) throws Exception { MiscPacketBuilder loginServer = Instance.getServer().getLoginConnector().getActionSender(); - if(System.currentTimeMillis() - player.lastCommandUsed < 2000 && !player.isMod()) { - if(System.currentTimeMillis() - player.lastCommandUsed < 100) { // incase spammers + if(GameEngine.getTime() - player.lastCommandUsed < 2000 && !player.isMod()) { + if(GameEngine.getTime() - player.lastCommandUsed < 100) { // incase spammers return; } player.getActionSender().sendMessage("2 second delay on using a new command"); return; } - player.lastCommandUsed = System.currentTimeMillis(); + player.lastCommandUsed = GameEngine.getTime(); if (cmd.equals("help")) { player.getActionSender().sendAlert("List of commands are shown on forums!", true); return; @@ -89,20 +90,20 @@ public class CommandHandler implements PacketHandler { } if (cmd.equals("stuck")) { - if (System.currentTimeMillis() - player.getCurrentLogin() < 30000) { + if (GameEngine.getTime() - player.getCurrentLogin() < 30000) { player.getActionSender().sendMessage("You cannot do this after you have recently logged in"); return; } - if(!player.canLogout() || System.currentTimeMillis() - player.getLastMoved() < 10000) { + if(!player.canLogout() || GameEngine.getTime() - player.getLastMoved() < 10000) { player.getActionSender().sendMessage("You must stand peacefully in one place for 10 seconds!"); return; } if (player.getLocation().inModRoom() && !player.isMod()) { player.getActionSender().sendMessage("You cannot use ::stuck here"); - } else if (!player.isMod() && System.currentTimeMillis() - player.getLastMoved() < 300000 && System.currentTimeMillis() - player.getCastTimer() < 300000) { + } else if (!player.isMod() && GameEngine.getTime() - player.getLastMoved() < 300000 && GameEngine.getTime() - player.getCastTimer() < 300000) { player.getActionSender().sendMessage("There is a 5 minute delay on using ::stuck, please stand still for 5 minutes."); player.getActionSender().sendMessage("This command is logged ONLY use it when you are REALLY stuck."); - } else if (!player.inCombat() && System.currentTimeMillis() - player.getCombatTimer() > 300000 || player.isMod()) { + } else if (!player.inCombat() && GameEngine.getTime() - player.getCombatTimer() > 300000 || player.isMod()) { Logger.mod(player.getUsername() + " used stuck at " + player.getX() + ":" + player.getY()); player.setCastTimer(); player.teleport(122, 647, true); diff --git a/GameServer/src/org/moparscape/msc/gs/phandler/client/DuelHandler.java b/GameServer/src/org/moparscape/msc/gs/phandler/client/DuelHandler.java index fa2b485..1840609 100644 --- a/GameServer/src/org/moparscape/msc/gs/phandler/client/DuelHandler.java +++ b/GameServer/src/org/moparscape/msc/gs/phandler/client/DuelHandler.java @@ -5,6 +5,7 @@ import org.moparscape.msc.config.Formulae; import org.moparscape.msc.gs.Instance; import org.moparscape.msc.gs.connection.Packet; import org.moparscape.msc.gs.connection.RSCPacket; +import org.moparscape.msc.gs.core.GameEngine; import org.moparscape.msc.gs.event.DuelEvent; import org.moparscape.msc.gs.event.SingleEvent; import org.moparscape.msc.gs.event.WalkToMobEvent; @@ -246,7 +247,7 @@ public class DuelHandler implements PacketHandler { affectedPlayer.setBusy(false); } }; - walking.setLastRun(System.currentTimeMillis() + 500); + walking.setLastRun(GameEngine.getTime() + 500); Instance.getDelayedEventHandler().add(walking); } break; diff --git a/GameServer/src/org/moparscape/msc/gs/phandler/client/FollowRequest.java b/GameServer/src/org/moparscape/msc/gs/phandler/client/FollowRequest.java index e8a041b..9a7af8d 100644 --- a/GameServer/src/org/moparscape/msc/gs/phandler/client/FollowRequest.java +++ b/GameServer/src/org/moparscape/msc/gs/phandler/client/FollowRequest.java @@ -3,6 +3,7 @@ package org.moparscape.msc.gs.phandler.client; import org.apache.mina.common.IoSession; import org.moparscape.msc.gs.Instance; import org.moparscape.msc.gs.connection.Packet; +import org.moparscape.msc.gs.core.GameEngine; import org.moparscape.msc.gs.model.Player; import org.moparscape.msc.gs.model.World; import org.moparscape.msc.gs.model.snapshot.Activity; @@ -26,7 +27,7 @@ public class FollowRequest implements PacketHandler { player.resetPath(); return; } - if (System.currentTimeMillis() - player.lastRun < 3000) + if (GameEngine.getTime() - player.lastRun < 3000) return; player.resetAll(); player.setFollowing(affectedPlayer, 1); diff --git a/GameServer/src/org/moparscape/msc/gs/phandler/client/InvActionHandler.java b/GameServer/src/org/moparscape/msc/gs/phandler/client/InvActionHandler.java index 4442b27..ccb8ae9 100644 --- a/GameServer/src/org/moparscape/msc/gs/phandler/client/InvActionHandler.java +++ b/GameServer/src/org/moparscape/msc/gs/phandler/client/InvActionHandler.java @@ -5,6 +5,7 @@ import org.moparscape.msc.config.Constants; import org.moparscape.msc.gs.Instance; import org.moparscape.msc.gs.Server; import org.moparscape.msc.gs.connection.Packet; +import org.moparscape.msc.gs.core.GameEngine; import org.moparscape.msc.gs.event.DelayedEvent; import org.moparscape.msc.gs.event.MiniEvent; import org.moparscape.msc.gs.event.SingleEvent; @@ -174,7 +175,7 @@ public class InvActionHandler implements PacketHandler { } else if (item.getDef().getCommand().equalsIgnoreCase("open")) { if(item.getID() == INFECTED_BLOOD) { if(!player.isInfected()) { player.setInfected(); return; } - long lastUsed = System.currentTimeMillis() - player.lastInfected(); + long lastUsed = GameEngine.getTime() - player.lastInfected(); long remaining = 5 - lastUsed / 1000; InvItem INFECTED_BLOOD_I = new InvItem(1322, 1); if(lastUsed / 1000 <= 5) { player.getActionSender().sendMessage("You have to wait " + remaining + " seconds before using that again."); return; } diff --git a/GameServer/src/org/moparscape/msc/gs/phandler/client/InvUseOnObject.java b/GameServer/src/org/moparscape/msc/gs/phandler/client/InvUseOnObject.java index 1b2af70..0855329 100644 --- a/GameServer/src/org/moparscape/msc/gs/phandler/client/InvUseOnObject.java +++ b/GameServer/src/org/moparscape/msc/gs/phandler/client/InvUseOnObject.java @@ -8,6 +8,7 @@ import org.moparscape.msc.gs.Instance; import org.moparscape.msc.gs.Server; import org.moparscape.msc.gs.connection.Packet; import org.moparscape.msc.gs.connection.RSCPacket; +import org.moparscape.msc.gs.core.GameEngine; import org.moparscape.msc.gs.event.MiniEvent; import org.moparscape.msc.gs.event.ShortEvent; import org.moparscape.msc.gs.event.WalkToObjectEvent; @@ -466,9 +467,9 @@ public class InvUseOnObject implements PacketHandler { if (i.getID() == 517 && i.getAmount() > 20) { i = new InvItem(517, DataConversions.random(0, 20) + 1); } - Logger.println("Player: " + owner.getUsername() + " Got item: " + i.getID() + " From CHEST (" + i.getAmount() + ") sys time (" + System.currentTimeMillis() + ")"); + Logger.println("Player: " + owner.getUsername() + " Got item: " + i.getID() + " From CHEST (" + i.getAmount() + ") sys time (" + GameEngine.getTime() + ")"); if (i.getAmount() > 4000) { - Logger.println("WARNING!!!! Player: " + owner.getUsername() + " was about to get " + i.getAmount() + " of " + i.getID() + " from the CHEST sys time (" + System.currentTimeMillis() + ")"); + Logger.println("WARNING!!!! Player: " + owner.getUsername() + " was about to get " + i.getAmount() + " of " + i.getID() + " from the CHEST sys time (" + GameEngine.getTime() + ")"); owner.setBusy(false); owner.getActionSender().sendInventory(); return; diff --git a/GameServer/src/org/moparscape/msc/gs/phandler/client/InvUseOnPlayer.java b/GameServer/src/org/moparscape/msc/gs/phandler/client/InvUseOnPlayer.java index a7caf76..1fb6284 100644 --- a/GameServer/src/org/moparscape/msc/gs/phandler/client/InvUseOnPlayer.java +++ b/GameServer/src/org/moparscape/msc/gs/phandler/client/InvUseOnPlayer.java @@ -3,6 +3,7 @@ package org.moparscape.msc.gs.phandler.client; import org.apache.mina.common.IoSession; import org.moparscape.msc.gs.Instance; import org.moparscape.msc.gs.connection.Packet; +import org.moparscape.msc.gs.core.GameEngine; import org.moparscape.msc.gs.event.ShortEvent; import org.moparscape.msc.gs.event.WalkToMobEvent; import org.moparscape.msc.gs.model.Bubble; @@ -33,7 +34,7 @@ public class InvUseOnPlayer implements PacketHandler { if (affectedPlayer == null || item == null) { // This shouldn't happen return; } - if (System.currentTimeMillis() - affectedPlayer.lastRun < 2000) { + if (GameEngine.getTime() - affectedPlayer.lastRun < 2000) { player.resetPath(); return; } diff --git a/GameServer/src/org/moparscape/msc/gs/phandler/client/ObjectAction.java b/GameServer/src/org/moparscape/msc/gs/phandler/client/ObjectAction.java index 3ca2de4..b69ba6a 100644 --- a/GameServer/src/org/moparscape/msc/gs/phandler/client/ObjectAction.java +++ b/GameServer/src/org/moparscape/msc/gs/phandler/client/ObjectAction.java @@ -9,6 +9,7 @@ import org.moparscape.msc.gs.Instance; import org.moparscape.msc.gs.Server; import org.moparscape.msc.gs.connection.Packet; import org.moparscape.msc.gs.connection.RSCPacket; +import org.moparscape.msc.gs.core.GameEngine; import org.moparscape.msc.gs.event.DelayedEvent; import org.moparscape.msc.gs.event.MiniEvent; import org.moparscape.msc.gs.event.ShortEvent; @@ -132,7 +133,7 @@ public class ObjectAction implements PacketHandler { String command = (click == 0 ? def.getCommand1() : def.getCommand2()).toLowerCase(); // System.out.println(object.getID() + " " + // command); - if(object.getID() == 487 && System.currentTimeMillis() - owner.getLastMoved() < 10000) { owner.getActionSender().sendMessage("You must stand still for 10 seconds before using this"); return; } + if(object.getID() == 487 && GameEngine.getTime() - owner.getLastMoved() < 10000) { owner.getActionSender().sendMessage("You must stand still for 10 seconds before using this"); return; } Point telePoint = EntityHandler.getObjectTelePoint(object.getLocation(), command); if (telePoint != null) { owner.teleport(telePoint.getX(), telePoint.getY(), false); diff --git a/GameServer/src/org/moparscape/msc/gs/phandler/client/Sleepword.java b/GameServer/src/org/moparscape/msc/gs/phandler/client/Sleepword.java index f2fb98d..3f60633 100644 --- a/GameServer/src/org/moparscape/msc/gs/phandler/client/Sleepword.java +++ b/GameServer/src/org/moparscape/msc/gs/phandler/client/Sleepword.java @@ -9,6 +9,7 @@ import org.apache.mina.common.IoSession; import org.moparscape.msc.gs.Instance; import org.moparscape.msc.gs.connection.Packet; import org.moparscape.msc.gs.connection.RSCPacket; +import org.moparscape.msc.gs.core.GameEngine; import org.moparscape.msc.gs.model.Player; import org.moparscape.msc.gs.model.World; import org.moparscape.msc.gs.model.snapshot.Activity; @@ -25,11 +26,11 @@ public class Sleepword implements PacketHandler { public void handlePacket(Packet p, IoSession session) throws Exception { Player player = (Player) session.getAttachment(); int pID = ((RSCPacket) p).getID(); - long now = System.currentTimeMillis(); + long now = GameEngine.getTime(); try { String sleepword_result = ((RSCPacket) p).readString().trim(); - if (System.currentTimeMillis() - player.getLastSleepTime() < 1000) + if (GameEngine.getTime() - player.getLastSleepTime() < 1000) return; if (player.getWrongWords() >= 10) { diff --git a/GameServer/src/org/moparscape/msc/gs/phandler/client/SpellHandler.java b/GameServer/src/org/moparscape/msc/gs/phandler/client/SpellHandler.java index 1ab82c8..04ff848 100644 --- a/GameServer/src/org/moparscape/msc/gs/phandler/client/SpellHandler.java +++ b/GameServer/src/org/moparscape/msc/gs/phandler/client/SpellHandler.java @@ -13,6 +13,7 @@ import org.moparscape.msc.config.Formulae; import org.moparscape.msc.gs.Instance; import org.moparscape.msc.gs.connection.Packet; import org.moparscape.msc.gs.connection.RSCPacket; +import org.moparscape.msc.gs.core.GameEngine; import org.moparscape.msc.gs.event.FightEvent; import org.moparscape.msc.gs.event.ObjectRemover; import org.moparscape.msc.gs.event.WalkMobToMobEvent; @@ -121,7 +122,7 @@ public class SpellHandler implements PacketHandler { private Random r = new Random(); private void finalizeSpell(Player player, SpellDef spell) { - player.lastCast = System.currentTimeMillis(); + player.lastCast = GameEngine.getTime(); player.getActionSender().sendSound("spellok"); player.getActionSender().sendMessage("Cast spell successfully"); player.setCastTimer(); @@ -398,12 +399,12 @@ public class SpellHandler implements PacketHandler { } if (affectedMob instanceof Player) { Player other = (Player) affectedMob; - if (player.getLocation().inWilderness() && System.currentTimeMillis() - other.lastRun < 1000) { + if (player.getLocation().inWilderness() && GameEngine.getTime() - other.lastRun < 1000) { player.resetPath(); return; } } - if (player.getLocation().inWilderness() && System.currentTimeMillis() - player.lastRun < 3000) { + if (player.getLocation().inWilderness() && GameEngine.getTime() - player.lastRun < 3000) { player.resetPath(); return; } diff --git a/GameServer/src/org/moparscape/msc/gs/phandler/client/TalkToNpcHandler.java b/GameServer/src/org/moparscape/msc/gs/phandler/client/TalkToNpcHandler.java index 63f4dec..22d5587 100644 --- a/GameServer/src/org/moparscape/msc/gs/phandler/client/TalkToNpcHandler.java +++ b/GameServer/src/org/moparscape/msc/gs/phandler/client/TalkToNpcHandler.java @@ -7,6 +7,7 @@ import org.apache.mina.common.IoSession; import org.moparscape.msc.config.Formulae; import org.moparscape.msc.gs.Instance; import org.moparscape.msc.gs.connection.Packet; +import org.moparscape.msc.gs.core.GameEngine; import org.moparscape.msc.gs.event.WalkToMobEvent; import org.moparscape.msc.gs.model.ChatMessage; import org.moparscape.msc.gs.model.Npc; @@ -32,10 +33,10 @@ public class TalkToNpcHandler implements PacketHandler { player.resetPath(); return; } - if (System.currentTimeMillis() - player.lastNPCChat < 1500) + if (GameEngine.getTime() - player.lastNPCChat < 1500) return; player.setLastQuestMenuReply(-2); - player.lastNPCChat = System.currentTimeMillis(); + player.lastNPCChat = GameEngine.getTime(); player.resetAll(); final Npc affectedNpc = world.getNpc(p.readShort()); if (affectedNpc == null || !world.getQuestManager().isNpcVisible(affectedNpc, player)) { diff --git a/GameServer/src/org/moparscape/msc/gs/phandler/client/TradeHandler.java b/GameServer/src/org/moparscape/msc/gs/phandler/client/TradeHandler.java index c509a81..5ed258d 100644 --- a/GameServer/src/org/moparscape/msc/gs/phandler/client/TradeHandler.java +++ b/GameServer/src/org/moparscape/msc/gs/phandler/client/TradeHandler.java @@ -8,6 +8,7 @@ import org.moparscape.msc.gs.Instance; import org.moparscape.msc.gs.builders.ls.MiscPacketBuilder; import org.moparscape.msc.gs.connection.Packet; import org.moparscape.msc.gs.connection.RSCPacket; +import org.moparscape.msc.gs.core.GameEngine; import org.moparscape.msc.gs.db.DBConnection; import org.moparscape.msc.gs.external.ItemDef; import org.moparscape.msc.gs.model.InvItem; @@ -225,7 +226,7 @@ public class TradeHandler implements PacketHandler { player.getActionSender().sendInventory(); player.getActionSender().sendEquipmentStats(); - Long now = System.currentTimeMillis(); + long now = GameEngine.getTime(); player.save(); player.setLastSaveTime(now); affectedPlayer.save(); diff --git a/GameServer/src/org/moparscape/msc/gs/phandler/client/WalkRequest.java b/GameServer/src/org/moparscape/msc/gs/phandler/client/WalkRequest.java index 0db2ca7..00f975e 100644 --- a/GameServer/src/org/moparscape/msc/gs/phandler/client/WalkRequest.java +++ b/GameServer/src/org/moparscape/msc/gs/phandler/client/WalkRequest.java @@ -4,6 +4,7 @@ import org.apache.mina.common.IoSession; import org.moparscape.msc.gs.Instance; import org.moparscape.msc.gs.connection.Packet; import org.moparscape.msc.gs.connection.RSCPacket; +import org.moparscape.msc.gs.core.GameEngine; import org.moparscape.msc.gs.event.FightEvent; import org.moparscape.msc.gs.event.MiniEvent; import org.moparscape.msc.gs.event.WalkMobToMobEvent; @@ -38,10 +39,10 @@ public class WalkRequest implements PacketHandler { player.getActionSender().sendMessage("Running has been disabled in this duel."); return; } - player.lastRun = System.currentTimeMillis(); + player.lastRun = GameEngine.getTime(); player.resetCombat(CombatState.RUNNING); - if(player.isInfected() && System.currentTimeMillis() - player.getLastMoved() < 1900) { + if(player.isInfected() && GameEngine.getTime() - player.getLastMoved() < 1900) { final Packet newpacket = p; final IoSession newsession = session; Instance.getDelayedEventHandler().add(new MiniEvent(player, 2000) { @@ -127,11 +128,11 @@ public class WalkRequest implements PacketHandler { } else { return; } - } else if (player.isBusy() && System.currentTimeMillis() - player.lastMineTimer > 2000) { + } else if (player.isBusy() && GameEngine.getTime() - player.lastMineTimer > 2000) { return; } - if (System.currentTimeMillis() - player.lastCast < 600) + if (GameEngine.getTime() - player.lastCast < 600) return; player.isMining(false); diff --git a/GameServer/src/org/moparscape/msc/gs/phandler/client/WallObjectAction.java b/GameServer/src/org/moparscape/msc/gs/phandler/client/WallObjectAction.java index 82fcfe3..a5ef2aa 100644 --- a/GameServer/src/org/moparscape/msc/gs/phandler/client/WallObjectAction.java +++ b/GameServer/src/org/moparscape/msc/gs/phandler/client/WallObjectAction.java @@ -5,6 +5,7 @@ import org.moparscape.msc.gs.Instance; import org.moparscape.msc.gs.Server; import org.moparscape.msc.gs.connection.Packet; import org.moparscape.msc.gs.connection.RSCPacket; +import org.moparscape.msc.gs.core.GameEngine; import org.moparscape.msc.gs.event.ShortEvent; import org.moparscape.msc.gs.event.WalkToPointEvent; import org.moparscape.msc.gs.external.DoorDef; @@ -111,7 +112,7 @@ public class WallObjectAction implements PacketHandler { if (object.getX() != 282 || object.getY() != 3020) { break; } - if(System.currentTimeMillis() - owner.getLastMoved() < 10000) { + if(GameEngine.getTime() - owner.getLastMoved() < 10000) { owner.getActionSender().sendMessage("You must stand still for 10 seconds before using this"); return; } diff --git a/GameServer/src/org/moparscape/msc/gs/plugins/plugs/skills/Mining.java b/GameServer/src/org/moparscape/msc/gs/plugins/plugs/skills/Mining.java index aba9764..be2daac 100644 --- a/GameServer/src/org/moparscape/msc/gs/plugins/plugs/skills/Mining.java +++ b/GameServer/src/org/moparscape/msc/gs/plugins/plugs/skills/Mining.java @@ -2,6 +2,7 @@ package org.moparscape.msc.gs.plugins.plugs.skills; import org.moparscape.msc.config.Formulae; import org.moparscape.msc.gs.Instance; +import org.moparscape.msc.gs.core.GameEngine; import org.moparscape.msc.gs.event.ShortEvent; import org.moparscape.msc.gs.event.SingleEvent; import org.moparscape.msc.gs.external.EntityHandler; @@ -112,7 +113,7 @@ public class Mining implements ObjectListener { } final int retrytime = retrytimes; - owner.lastMineTimer = System.currentTimeMillis(); + owner.lastMineTimer = GameEngine.getTime(); owner.getActionSender().sendMessage("You swing your pick at the rock..."); Instance.getDelayedEventHandler().add(new ShortEvent(owner) { public void action() { diff --git a/GameServer/src/org/moparscape/msc/gs/quest/Quest.java b/GameServer/src/org/moparscape/msc/gs/quest/Quest.java index 507b53d..d524aa2 100644 --- a/GameServer/src/org/moparscape/msc/gs/quest/Quest.java +++ b/GameServer/src/org/moparscape/msc/gs/quest/Quest.java @@ -4,6 +4,7 @@ import java.util.HashMap; import java.util.HashSet; import java.util.Set; +import org.moparscape.msc.gs.core.GameEngine; import org.moparscape.msc.gs.event.SingleEvent; import org.moparscape.msc.gs.model.ActiveTile; import org.moparscape.msc.gs.model.ChatMessage; @@ -277,8 +278,8 @@ public abstract class Quest { } }); - long start = System.currentTimeMillis(); - while (player.getLastQuestMenuReply() == -1 && (System.currentTimeMillis() - start) <= timeout) { + long start = GameEngine.getTime(); + while (player.getLastQuestMenuReply() == -1 && (GameEngine.getTime() - start) <= timeout) { if (player.getLastQuestMenuReply() == -2) return -1; sleep(10); diff --git a/GameServer/src/org/moparscape/msc/gs/quest/QuestManager.java b/GameServer/src/org/moparscape/msc/gs/quest/QuestManager.java index c133663..e31a971 100644 --- a/GameServer/src/org/moparscape/msc/gs/quest/QuestManager.java +++ b/GameServer/src/org/moparscape/msc/gs/quest/QuestManager.java @@ -10,6 +10,7 @@ import java.util.jar.JarEntry; import java.util.jar.JarFile; import org.moparscape.msc.config.Config; +import org.moparscape.msc.gs.core.GameEngine; import org.moparscape.msc.gs.model.GameObject; import org.moparscape.msc.gs.model.InvItem; import org.moparscape.msc.gs.model.Item; @@ -105,7 +106,7 @@ public class QuestManager { */ public final boolean loadQuests() { try { - long start = System.currentTimeMillis(); + long start = GameEngine.getTime(); if (quests != null) quests.clear(); @@ -151,7 +152,7 @@ public class QuestManager { } } - Logger.println("Loaded " + questCount + " quests successfully (" + (System.currentTimeMillis() - start) + "ms)"); + Logger.println("Loaded " + questCount + " quests successfully (" + (GameEngine.getTime() - start) + "ms)"); } catch (Exception e) { e.printStackTrace(); return false; diff --git a/GameServer/src/org/moparscape/msc/gs/tools/DataConversions.java b/GameServer/src/org/moparscape/msc/gs/tools/DataConversions.java index 34213f7..1c972f4 100644 --- a/GameServer/src/org/moparscape/msc/gs/tools/DataConversions.java +++ b/GameServer/src/org/moparscape/msc/gs/tools/DataConversions.java @@ -10,6 +10,7 @@ import java.text.SimpleDateFormat; import java.util.Random; import org.moparscape.msc.gs.connection.RSCPacket; +import org.moparscape.msc.gs.core.GameEngine; import org.moparscape.msc.gs.model.Point; import org.moparscape.msc.gs.util.Logger; @@ -363,7 +364,7 @@ public final class DataConversions { } public static String timeSince(long time) { - int seconds = (int) ((System.currentTimeMillis() - time) / 1000); + int seconds = (int) ((GameEngine.getTime() - time) / 1000); int minutes = (int) (seconds / 60); int hours = (int) (minutes / 60); int days = (int) (hours / 24); diff --git a/LoginServer/build.xml b/LoginServer/build.xml index fb98b37..f2edc14 100644 --- a/LoginServer/build.xml +++ b/LoginServer/build.xml @@ -10,13 +10,11 @@ - + - -