Browse Source

Reformatted file.

master
MagicBot 2 years ago
parent
commit
f723e35785
  1. 30
      src/engine/gameManager/ZoneManager.java
  2. 42
      src/engine/net/client/Protocol.java
  3. 6
      src/engine/net/client/handlers/CityDataHandler.java
  4. 45
      src/engine/net/client/msg/cityDataMsg.java
  5. 6
      src/engine/workthreads/HourlyJobThread.java

30
src/engine/gameManager/ZoneManager.java

@ -39,12 +39,12 @@ public enum ZoneManager {
/* Instance variables */ /* Instance variables */
private static Zone seaFloor = null; private static Zone seaFloor = null;
private static Zone hotzone = null; private static Zone hotzone = null;
private static ConcurrentHashMap<Integer, Zone> zonesByID = new ConcurrentHashMap<>(MBServerStatics.CHM_INIT_CAP, MBServerStatics.CHM_LOAD); private static final ConcurrentHashMap<Integer, Zone> zonesByID = new ConcurrentHashMap<>(MBServerStatics.CHM_INIT_CAP, MBServerStatics.CHM_LOAD);
private static ConcurrentHashMap<Integer, Zone> zonesByUUID = new ConcurrentHashMap<>(MBServerStatics.CHM_INIT_CAP, MBServerStatics.CHM_LOAD); private static final ConcurrentHashMap<Integer, Zone> zonesByUUID = new ConcurrentHashMap<>(MBServerStatics.CHM_INIT_CAP, MBServerStatics.CHM_LOAD);
private static ConcurrentHashMap<String, Zone> zonesByName = new ConcurrentHashMap<>(MBServerStatics.CHM_INIT_CAP, MBServerStatics.CHM_LOAD); private static final ConcurrentHashMap<String, Zone> zonesByName = new ConcurrentHashMap<>(MBServerStatics.CHM_INIT_CAP, MBServerStatics.CHM_LOAD);
private static Set<Zone> macroZones = Collections.newSetFromMap(new ConcurrentHashMap<>()); private static final Set<Zone> macroZones = Collections.newSetFromMap(new ConcurrentHashMap<>());
private static Set<Zone> npcCityZones = Collections.newSetFromMap(new ConcurrentHashMap<>()); private static final Set<Zone> npcCityZones = Collections.newSetFromMap(new ConcurrentHashMap<>());
private static Set<Zone> playerCityZones = Collections.newSetFromMap(new ConcurrentHashMap<>()); private static final Set<Zone> playerCityZones = Collections.newSetFromMap(new ConcurrentHashMap<>());
// Find all zones coordinates fit into, starting with Sea Floor // Find all zones coordinates fit into, starting with Sea Floor
public static ArrayList<Zone> getAllZonesIn(final Vector3fImmutable loc) { public static ArrayList<Zone> getAllZonesIn(final Vector3fImmutable loc) {
@ -205,8 +205,8 @@ public enum ZoneManager {
hotzone = ZoneManager.getZoneByUUID(zoneArray.get(entryIndex)); hotzone = ZoneManager.getZoneByUUID(zoneArray.get(entryIndex));
if (hotzone == null){ if (hotzone == null) {
Logger.error( "Hotzone is null"); Logger.error("Hotzone is null");
return; return;
} }
@ -227,7 +227,7 @@ public enum ZoneManager {
if (zone.equals(ZoneManager.seaFloor)) if (zone.equals(ZoneManager.seaFloor))
return false; return false;
//no duplicate hotzones //no duplicate hotzones
if(zone.hasBeenHotzone == true){ if (zone.hasBeenHotzone == true) {
return false; return false;
} }
// return false; //first time setting, accept it // return false; //first time setting, accept it
@ -243,8 +243,7 @@ public enum ZoneManager {
/** /**
* Gets a MacroZone by name. * Gets a MacroZone by name.
* *
* @param inputName * @param inputName MacroZone name to search for
* MacroZone name to search for
* @return Zone of the MacroZone, or Null * @return Zone of the MacroZone, or Null
*/ */
@ -292,8 +291,6 @@ public enum ZoneManager {
localCoords.setY((serverZone.getBounds().getHalfExtents().y * 2) - localCoords.y); localCoords.setY((serverZone.getBounds().getHalfExtents().y * 2) - localCoords.y);
// TODO : Make sure this value does not go outside the zone's bounds. // TODO : Make sure this value does not go outside the zone's bounds.
return localCoords; return localCoords;
@ -332,7 +329,7 @@ public enum ZoneManager {
// handle building rotation // handle building rotation
// handle building translation // handle building translation
return building.getLoc().add(rotatedLocal.x, rotatedLocal.y,rotatedLocal.z); return building.getLoc().add(rotatedLocal.x, rotatedLocal.y, rotatedLocal.z);
} }
@ -346,11 +343,11 @@ public enum ZoneManager {
// handle building rotation // handle building rotation
// handle building translation // handle building translation
return new Vector3f(building.getLoc().add(rotatedLocal.x, rotatedLocal.y,rotatedLocal.z)); return new Vector3f(building.getLoc().add(rotatedLocal.x, rotatedLocal.y, rotatedLocal.z));
} }
public static Vector3fImmutable convertWorldToLocal(Building building, Vector3fImmutable WorldPos) { public static Vector3fImmutable convertWorldToLocal(Building building, Vector3fImmutable WorldPos) {
Vector3fImmutable convertLoc = Vector3fImmutable.rotateAroundPoint(building.getLoc(),WorldPos,-building.getBounds().getQuaternion().angleY); Vector3fImmutable convertLoc = Vector3fImmutable.rotateAroundPoint(building.getLoc(), WorldPos, -building.getBounds().getQuaternion().angleY);
convertLoc = convertLoc.subtract(building.getLoc()); convertLoc = convertLoc.subtract(building.getLoc());
@ -426,7 +423,6 @@ public enum ZoneManager {
zoneList = currentZone.getNodes(); zoneList = currentZone.getNodes();
for (Zone zone : zoneList) { for (Zone zone : zoneList) {
if (zone.isContininent()) if (zone.isContininent())

42
src/engine/net/client/Protocol.java

@ -26,7 +26,7 @@ public enum Protocol {
ACTIVATECHARTER(0x296C0B22, UseCharterMsg.class, null),// Use Guild Charter ACTIVATECHARTER(0x296C0B22, UseCharterMsg.class, null),// Use Guild Charter
ACTIVATENPC(0xC9AAE81E, ActivateNPCMessage.class, ActivateNPCMsgHandler.class), ACTIVATENPC(0xC9AAE81E, ActivateNPCMessage.class, ActivateNPCMsgHandler.class),
ACTIVATEPLEDGE(0x5A694DC0, SwearInMsg.class, SwearInHandler.class), // Swear In ACTIVATEPLEDGE(0x5A694DC0, SwearInMsg.class, SwearInHandler.class), // Swear In
ADDFRIEND(0xCFA1C787,AddFriendMessage.class,null), ADDFRIEND(0xCFA1C787, AddFriendMessage.class, null),
ALLIANCECHANGE(0x0E7D0B57, AllianceChangeMsg.class, AllianceChangeMsgHandler.class), // Remove From Allies/Enemies List ALLIANCECHANGE(0x0E7D0B57, AllianceChangeMsg.class, AllianceChangeMsgHandler.class), // Remove From Allies/Enemies List
ALLYENEMYLIST(0xAEA443FD, AllyEnemyListMsg.class, AllyEnemyListMsgHandler.class), ALLYENEMYLIST(0xAEA443FD, AllyEnemyListMsg.class, AllyEnemyListMsgHandler.class),
ARCCOMBATMODEATTACKING(0xD8B10579, SetCombatModeMsg.class, null), // Attack From Outside Combat Mode ARCCOMBATMODEATTACKING(0xD8B10579, SetCombatModeMsg.class, null), // Attack From Outside Combat Mode
@ -79,7 +79,7 @@ public enum Protocol {
CLAIMASSET(0x948C62CC, ClaimAssetMsg.class, ClaimAssetMsgHandler.class), // ClaimAsset CLAIMASSET(0x948C62CC, ClaimAssetMsg.class, ClaimAssetMsgHandler.class), // ClaimAsset
CLAIMGUILDTREE(0xFD1C6442, ClaimGuildTreeMsg.class, ClaimGuildTreeMsgHandler.class), CLAIMGUILDTREE(0xFD1C6442, ClaimGuildTreeMsg.class, ClaimGuildTreeMsgHandler.class),
CLIENTADMINCOMMAND(0x624EAB5F, ClientAdminCommandMsg.class, null), //Admin Command CLIENTADMINCOMMAND(0x624EAB5F, ClientAdminCommandMsg.class, null), //Admin Command
CLIENTUPDATEVAULT( 0x66EDBECD, UpdateVaultMsg.class, null), CLIENTUPDATEVAULT(0x66EDBECD, UpdateVaultMsg.class, null),
COMBATMODE(0xFE4BF353, ToggleCombatMsg.class, null), //Toggle Combat mode COMBATMODE(0xFE4BF353, ToggleCombatMsg.class, null), //Toggle Combat mode
CONFIRMPROMOTE(0x153BB5F9, ConfirmPromoteMsg.class, null), CONFIRMPROMOTE(0x153BB5F9, ConfirmPromoteMsg.class, null),
COSTTOOPENBANK(0x135BE5E8, AckBankWindowOpenedMsg.class, null), // ACK Bank Window Opened COSTTOOPENBANK(0x135BE5E8, AckBankWindowOpenedMsg.class, null), // ACK Bank Window Opened
@ -95,8 +95,8 @@ public enum Protocol {
EQUIP(0x3CB1AF8C, TransferItemFromInventoryToEquipMsg.class, null), // Transfer Item from Inventory to Equip EQUIP(0x3CB1AF8C, TransferItemFromInventoryToEquipMsg.class, null), // Transfer Item from Inventory to Equip
EXPERIENCE(0xC57802A7, GrantExperienceMsg.class, null), //TODO rename once identified EXPERIENCE(0xC57802A7, GrantExperienceMsg.class, null), //TODO rename once identified
FORGETOBJECTS(0xE307A0E1, UnloadObjectsMsg.class, null), // Unload Objects FORGETOBJECTS(0xE307A0E1, UnloadObjectsMsg.class, null), // Unload Objects
FRIENDACCEPT(0xCA297870,AcceptFriendMsg.class,FriendAcceptHandler.class), FRIENDACCEPT(0xCA297870, AcceptFriendMsg.class, FriendAcceptHandler.class),
FRIENDDECLINE(0xF08FC279,DeclineFriendMsg.class,FriendDeclineHandler.class), FRIENDDECLINE(0xF08FC279, DeclineFriendMsg.class, FriendDeclineHandler.class),
FURNITURE(0xCE7FA503, FurnitureMsg.class, FurnitureHandler.class), FURNITURE(0xCE7FA503, FurnitureMsg.class, FurnitureHandler.class),
GAMESERVERIPRESPONSE(0x6C95CF87, GameServerIPResponseMsg.class, null), // Game Server IP Response GAMESERVERIPRESPONSE(0x6C95CF87, GameServerIPResponseMsg.class, null), // Game Server IP Response
GLOBALCHANNELMESSAGE(0x2bf03fd2, null, null), GLOBALCHANNELMESSAGE(0x2bf03fd2, null, null),
@ -109,7 +109,7 @@ public enum Protocol {
GUILDMEMBERONLINE(0x7B79EB3A, GuildEnterWorldMsg.class, null), // Send Enter World Message to Guild GUILDMEMBERONLINE(0x7B79EB3A, GuildEnterWorldMsg.class, null), // Send Enter World Message to Guild
GUILDRANKCHANGE(0x0DEFB21F, ChangeRankMsg.class, ChangeRankHandler.class), // Change Rank GUILDRANKCHANGE(0x0DEFB21F, ChangeRankMsg.class, ChangeRankHandler.class), // Change Rank
GUILDTREESTATUS(0x4B95FB85, GuildTreeStatusMsg.class, null), GUILDTREESTATUS(0x4B95FB85, GuildTreeStatusMsg.class, null),
HIRELINGSERVICE(0xD3D93322,HirelingServiceMsg.class,HirelingServiceMsgHandler.class), HIRELINGSERVICE(0xD3D93322, HirelingServiceMsg.class, HirelingServiceMsgHandler.class),
IGNORE(0xBD8881EE, IgnoreMsg.class, null), //client sent /ignore command IGNORE(0xBD8881EE, IgnoreMsg.class, null), //client sent /ignore command
INITIATETRADEHUDS(0x667D29D8, OpenTradeWindowMsg.class, null), // Open Trade Window INITIATETRADEHUDS(0x667D29D8, OpenTradeWindowMsg.class, null), // Open Trade Window
INVITEGROUP(0x004A2012, GroupInviteMsg.class, GroupInviteHandler.class), // Send/Receive/Deny Group Invite INVITEGROUP(0x004A2012, GroupInviteMsg.class, GroupInviteHandler.class), // Send/Receive/Deny Group Invite
@ -168,7 +168,7 @@ public enum Protocol {
RECOMMENDNATION(0x6D4579E9, RecommendNationMsg.class, RecommendNationMsgHandler.class), // Recommend as Ally/Enemy, error RECOMMENDNATION(0x6D4579E9, RecommendNationMsg.class, RecommendNationMsgHandler.class), // Recommend as Ally/Enemy, error
RECYCLEPOWER(0x24033B67, RecyclePowerMsg.class, null), //Unlock power for reUse RECYCLEPOWER(0x24033B67, RecyclePowerMsg.class, null), //Unlock power for reUse
REMOVECHAR(0x5D3F9739, DeleteCharacterMsg.class, null), // Delete Character REMOVECHAR(0x5D3F9739, DeleteCharacterMsg.class, null), // Delete Character
REMOVEFRIEND(0xE0D5DB42,RemoveFriendMessage.class,RemoveFriendHandler.class), REMOVEFRIEND(0xE0D5DB42, RemoveFriendMessage.class, RemoveFriendHandler.class),
REPAIRBUILDING(0xAF8C2560, RepairBuildingMsg.class, RepairBuildingMsgHandler.class), REPAIRBUILDING(0xAF8C2560, RepairBuildingMsg.class, RepairBuildingMsgHandler.class),
REPAIROBJECT(0x782219CE, RepairMsg.class, null), //Repair Window Req/Ack, RepairObject item Req/Ack REPAIROBJECT(0x782219CE, RepairMsg.class, null), //Repair Window Req/Ack, RepairObject item Req/Ack
REQUESTCONTENTS(0xA786B0A2, LootWindowRequestMsg.class, null), // MoveObjectToContainer Window Request REQUESTCONTENTS(0xA786B0A2, LootWindowRequestMsg.class, null), // MoveObjectToContainer Window Request
@ -179,7 +179,7 @@ public enum Protocol {
REQUESTTOTRADE(0x4D84259B, TradeRequestMsg.class, null), // Trade Request REQUESTTOTRADE(0x4D84259B, TradeRequestMsg.class, null), // Trade Request
REQUESTTRADECANCEL(0xCB0C5735, RejectTradeRequestMsg.class, null), // Reject RequestToTrade REQUESTTRADECANCEL(0xCB0C5735, RejectTradeRequestMsg.class, null), // Reject RequestToTrade
REQUESTTRADEOK(0xFFD29841, AcceptTradeRequestMsg.class, null), // Accept Trade Request REQUESTTRADEOK(0xFFD29841, AcceptTradeRequestMsg.class, null), // Accept Trade Request
RESETAFTERDEATH(0xFDCBB98F,RespawnMsg.class, null), //Respawn Request/Response RESETAFTERDEATH(0xFDCBB98F, RespawnMsg.class, null), //Respawn Request/Response
ROTATEMSG(0x57F2088E, RotateObjectMsg.class, null), ROTATEMSG(0x57F2088E, RotateObjectMsg.class, null),
SAFEMODE(0x9CF3922A, SafeModeMsg.class, null), //Tell client they're in safe mode SAFEMODE(0x9CF3922A, SafeModeMsg.class, null), //Tell client they're in safe mode
SCALEOBJECT(0xE2B392D9, null, null), // Adjust scale of object SCALEOBJECT(0xE2B392D9, null, null), // Adjust scale of object
@ -210,7 +210,7 @@ public enum Protocol {
TAXCITY(0xCD41EAA6, TaxCityMsg.class, TaxCityMsgHandler.class), TAXCITY(0xCD41EAA6, TaxCityMsg.class, TaxCityMsgHandler.class),
TAXRESOURCES(0x4AD458AF, TaxResourcesMsg.class, TaxResourcesMsgHandler.class), TAXRESOURCES(0x4AD458AF, TaxResourcesMsg.class, TaxResourcesMsgHandler.class),
TELEPORT(0x23E726EA, TeleportToPointMsg.class, null), // Teleport to point TELEPORT(0x23E726EA, TeleportToPointMsg.class, null), // Teleport to point
TERRITORYCHANGE(0x6B388C8C,TerritoryChangeMessage.class, null), //Hey rich, look what I found? :) TERRITORYCHANGE(0x6B388C8C, TerritoryChangeMessage.class, null), //Hey rich, look what I found? :)
TOGGLESITSTAND(0x624F3C0F, ToggleSitStandMsg.class, null), //Toggle Sit/Stand TOGGLESITSTAND(0x624F3C0F, ToggleSitStandMsg.class, null), //Toggle Sit/Stand
TRADEADDGOLD(0x654ACB45, AddGoldToTradeWindowMsg.class, null), // Add Gold to Trade Window TRADEADDGOLD(0x654ACB45, AddGoldToTradeWindowMsg.class, null), // Add Gold to Trade Window
TRADEADDOBJECT(0x55D363E9, AddItemToTradeWindowMsg.class, null), // Add an Item to the Trade Window TRADEADDOBJECT(0x55D363E9, AddItemToTradeWindowMsg.class, null), // Add an Item to the Trade Window
@ -227,7 +227,7 @@ public enum Protocol {
TRANSFERITEMFROMVAULTTOINVENTORY(0x0119A64D, TransferItemFromVaultToInventoryMsg.class, null), // Transfer Item from Vault to Inventory TRANSFERITEMFROMVAULTTOINVENTORY(0x0119A64D, TransferItemFromVaultToInventoryMsg.class, null), // Transfer Item from Vault to Inventory
TRANSFERITEMTOBANK(0xD48C46FA, TransferItemFromInventoryToBankMsg.class, null), // Transfer Item from Inventory to Bank TRANSFERITEMTOBANK(0xD48C46FA, TransferItemFromInventoryToBankMsg.class, null), // Transfer Item from Inventory to Bank
UNEQUIP(0xC6BFB907, TransferItemFromEquipToInventoryMsg.class, null), // Transfer Item from Equip to Inventory UNEQUIP(0xC6BFB907, TransferItemFromEquipToInventoryMsg.class, null), // Transfer Item from Equip to Inventory
UNKNOWN(0x238C9259, UnknownMsg.class,null), UNKNOWN(0x238C9259, UnknownMsg.class, null),
UPDATECHARORMOB(0xB6D78961, null, null), UPDATECHARORMOB(0xB6D78961, null, null),
UPDATECLIENTALLIANCES(0xF3FEB5D4, null, GuildUnknownHandler.class), //AlliancesMsg UPDATECLIENTALLIANCES(0xF3FEB5D4, null, GuildUnknownHandler.class), //AlliancesMsg
UPDATECLIENTINVENTORIES(0xE66F533D, UpdateInventoryMsg.class, null), //Update player inventory UPDATECLIENTINVENTORIES(0xE66F533D, UpdateInventoryMsg.class, null), //Update player inventory
@ -247,14 +247,14 @@ public enum Protocol {
WEIGHTINVENTORY(0xF1B6A85C, LootWindowResponseMsg.class, null), // MoveObjectToContainer Window Response WEIGHTINVENTORY(0xF1B6A85C, LootWindowResponseMsg.class, null), // MoveObjectToContainer Window Response
WHOREQUEST(0xF431CCE9, WhoRequestMsg.class, null), // Request /who WHOREQUEST(0xF431CCE9, WhoRequestMsg.class, null), // Request /who
WHORESPONSE(0xD7C36568, WhoResponseMsg.class, null), // Response /who WHORESPONSE(0xD7C36568, WhoResponseMsg.class, null), // Response /who
REQUESTBALLLIST(0xE366FF64,RequestBallListMessage.class,RequestBallListHandler.class), REQUESTBALLLIST(0xE366FF64, RequestBallListMessage.class, RequestBallListHandler.class),
SENDBALLENTRY(0xAC2B5EDC,SendBallEntryMessage.class,SendBallEntryHandler.class), SENDBALLENTRY(0xAC2B5EDC, SendBallEntryMessage.class, SendBallEntryHandler.class),
UNKNOWN1(-263523523, Unknown1Msg.class,null), UNKNOWN1(-263523523, Unknown1Msg.class, null),
DROPGOLD(1461654160,DropGoldMsg.class,null); DROPGOLD(1461654160, DropGoldMsg.class, null);
public int opcode; public int opcode;
private Class message; private final Class message;
private Class handlerClass; private final Class handlerClass;
public Constructor constructor; public Constructor constructor;
public AbstractClientMsgHandler handler; public AbstractClientMsgHandler handler;
@ -286,7 +286,7 @@ public enum Protocol {
} }
} }
private static HashMap<Integer, Protocol> _protocolMsgByOpcode = new HashMap<>(); private static final HashMap<Integer, Protocol> _protocolMsgByOpcode = new HashMap<>();
public static Protocol getByOpcode(int opcode) { public static Protocol getByOpcode(int opcode) {
@ -302,7 +302,7 @@ public enum Protocol {
for (Protocol protocol : Protocol.values()) { for (Protocol protocol : Protocol.values()) {
if (_protocolMsgByOpcode.containsKey(protocol.opcode)){ if (_protocolMsgByOpcode.containsKey(protocol.opcode)) {
Logger.error("Duplicate opcodes for " + protocol.name() + " and " + _protocolMsgByOpcode.get(protocol.opcode).name()); Logger.error("Duplicate opcodes for " + protocol.name() + " and " + _protocolMsgByOpcode.get(protocol.opcode).name());
} }
_protocolMsgByOpcode.put(protocol.opcode, protocol); _protocolMsgByOpcode.put(protocol.opcode, protocol);
@ -310,21 +310,21 @@ public enum Protocol {
} }
public static int FindNextValidOpcode(ByteBufferReader reader){ public static int FindNextValidOpcode(ByteBufferReader reader) {
int startPos = reader.position(); int startPos = reader.position();
int bytesLeft = reader.remaining(); int bytesLeft = reader.remaining();
if (bytesLeft < 4) if (bytesLeft < 4)
return startPos; return startPos;
int nextPos = startPos; int nextPos = startPos;
for (int i = 1; i< bytesLeft; i++ ){ for (int i = 1; i < bytesLeft; i++) {
reader.position(nextPos); reader.position(nextPos);
if (reader.remaining() < 4) if (reader.remaining() < 4)
return reader.position(); return reader.position();
int newOpcode = reader.getInt(); int newOpcode = reader.getInt();
Protocol foundProtocol = Protocol.getByOpcode(newOpcode); Protocol foundProtocol = Protocol.getByOpcode(newOpcode);
if (foundProtocol.equals(Protocol.NONE)){ if (foundProtocol.equals(Protocol.NONE)) {
nextPos += 1; nextPos += 1;
continue; continue;
} }
@ -334,5 +334,5 @@ public static int FindNextValidOpcode(ByteBufferReader reader){
} }
return startPos; return startPos;
} }
} }

6
src/engine/net/client/handlers/CityDataHandler.java

@ -19,7 +19,7 @@ import engine.session.Session;
/* /*
* @Author: * @Author:
* @Summary: Processes application protocol message which displays * @Summary: Processes application protocol message which displays
* the map interface. (Zones, Cities, Realms, Hotzones) * the map interface. (Zones, Cities, Realms, Hot-zones)
*/ */
public class CityDataHandler extends AbstractClientMsgHandler { public class CityDataHandler extends AbstractClientMsgHandler {
@ -56,12 +56,12 @@ public class CityDataHandler extends AbstractClientMsgHandler {
// No reason to serialize cities and mines everytime map is // No reason to serialize cities and mines everytime map is
// opened. Wait until something has changed. // opened. Wait until something has changed.
if (playerCharacter.getTimeStamp("mineupdate") <= Mine.getLastChange()){ if (playerCharacter.getTimeStamp("mineupdate") <= Mine.getLastChange()) {
playerCharacter.setTimeStamp("mineupdate", System.currentTimeMillis()); playerCharacter.setTimeStamp("mineupdate", System.currentTimeMillis());
updateMine = true; updateMine = true;
} }
if (playerCharacter.getTimeStamp("cityUpdate") <= City.lastCityUpdate){ if (playerCharacter.getTimeStamp("cityUpdate") <= City.lastCityUpdate) {
playerCharacter.setTimeStamp("cityUpdate", System.currentTimeMillis()); playerCharacter.setTimeStamp("cityUpdate", System.currentTimeMillis());
updateCity = true; updateCity = true;
} }

45
src/engine/net/client/msg/cityDataMsg.java

@ -30,12 +30,12 @@ import java.util.concurrent.ConcurrentHashMap;
public class cityDataMsg extends ClientNetMsg { public class cityDataMsg extends ClientNetMsg {
private Session s; private Session s;
private boolean forEnterWorld; private final boolean forEnterWorld;
private static ByteBuffer cachedEnterWorld; private static ByteBuffer cachedEnterWorld;
private static long cachedExpireTime; private static long cachedExpireTime;
public static final long wdComp = 0xFF00FF0000000003L; public static final long wdComp = 0xFF00FF0000000003L;
private static byte ver = 1; private static final byte ver = 1;
private boolean updateCities = false; private boolean updateCities = false;
private boolean updateRunegates = false; private boolean updateRunegates = false;
@ -44,10 +44,8 @@ public class cityDataMsg extends ClientNetMsg {
/** /**
* This is the general purpose constructor. * This is the general purpose constructor.
* *
* @param s * @param s Session
* Session * @param forEnterWorld boolean flag
* @param forEnterWorld
* boolean flag
*/ */
public cityDataMsg(Session s, boolean forEnterWorld) { public cityDataMsg(Session s, boolean forEnterWorld) {
super(Protocol.CITYDATA); super(Protocol.CITYDATA);
@ -70,8 +68,7 @@ public class cityDataMsg extends ClientNetMsg {
* past the limit) then this constructor Throws that Exception to the * past the limit) then this constructor Throws that Exception to the
* caller. * caller.
*/ */
public cityDataMsg(AbstractConnection origin, ByteBufferReader reader) public cityDataMsg(AbstractConnection origin, ByteBufferReader reader) {
{
super(Protocol.CITYDATA, origin, reader); super(Protocol.CITYDATA, origin, reader);
this.forEnterWorld = false; this.forEnterWorld = false;
} }
@ -108,10 +105,10 @@ public class cityDataMsg extends ClientNetMsg {
if (map != null) { if (map != null) {
for (AbstractGameObject ago : map.values()) for (AbstractGameObject ago : map.values())
if (ago.getObjectType().equals(Enum.GameObjectType.City)) if (ago.getObjectType().equals(Enum.GameObjectType.City))
cityList.add((City)ago); cityList.add((City) ago);
writer.putInt(cityList.size()); writer.putInt(cityList.size());
for (City city: cityList){ for (City city : cityList) {
City.serializeForClientMsg(city, writer); City.serializeForClientMsg(city, writer);
} }
@ -129,7 +126,7 @@ public class cityDataMsg extends ClientNetMsg {
writer.put((byte) 0); writer.put((byte) 0);
writer.putInt(Runegate._runegates.values().size()); writer.putInt(Runegate._runegates.values().size());
for(Runegate runegate : Runegate._runegates.values()) { for (Runegate runegate : Runegate._runegates.values()) {
runegate._serializeForEnterWorld(writer); runegate._serializeForEnterWorld(writer);
} }
} else } else
@ -137,24 +134,23 @@ public class cityDataMsg extends ClientNetMsg {
//Handle Mine updates //Handle Mine updates
try{ try {
if (this.updateMines) { if (this.updateMines) {
ArrayList<Mine> mineList = new ArrayList<>(); ArrayList<Mine> mineList = new ArrayList<>();
for (Mine toAdd: Mine.mineMap.keySet()){ for (Mine toAdd : Mine.mineMap.keySet()) {
mineList.add(toAdd); mineList.add(toAdd);
} }
writer.putInt(mineList.size()); writer.putInt(mineList.size());
for (Mine mine: mineList) for (Mine mine : mineList)
Mine.serializeForClientMsg(mine, writer); Mine.serializeForClientMsg(mine, writer);
} else } else
writer.putInt(0); writer.putInt(0);
}catch(Exception e){ } catch (Exception e) {
Logger.error(e); Logger.error(e);
} }
writer.put((byte) 0); // PAD writer.put((byte) 0); // PAD
} }
@ -198,11 +194,11 @@ public class cityDataMsg extends ClientNetMsg {
for (AbstractGameObject ago : map.values()) for (AbstractGameObject ago : map.values())
if (ago.getObjectType().equals(Enum.GameObjectType.City)) if (ago.getObjectType().equals(Enum.GameObjectType.City))
cityList.add((City)ago); cityList.add((City) ago);
temp.putInt(cityList.size()); temp.putInt(cityList.size());
for (City city: cityList) for (City city : cityList)
City.serializeForClientMsg(city, temp); City.serializeForClientMsg(city, temp);
temp.put((byte) 0); // PAD temp.put((byte) 0); // PAD
@ -210,17 +206,17 @@ public class cityDataMsg extends ClientNetMsg {
temp.putInt(Runegate._runegates.values().size()); temp.putInt(Runegate._runegates.values().size());
for(Runegate runegate : Runegate._runegates.values()) { for (Runegate runegate : Runegate._runegates.values()) {
runegate._serializeForEnterWorld(temp); runegate._serializeForEnterWorld(temp);
} }
ArrayList<Mine> mineList = new ArrayList<>(); ArrayList<Mine> mineList = new ArrayList<>();
for (Mine toAdd : Mine.mineMap.keySet()){ for (Mine toAdd : Mine.mineMap.keySet()) {
mineList.add(toAdd); mineList.add(toAdd);
} }
temp.putInt(mineList.size()); temp.putInt(mineList.size());
for (Mine mine: mineList) for (Mine mine : mineList)
Mine.serializeForClientMsg(mine, temp); Mine.serializeForClientMsg(mine, temp);
temp.put((byte) 0); // PAD temp.put((byte) 0); // PAD
} }
@ -229,18 +225,17 @@ public class cityDataMsg extends ClientNetMsg {
* Deserializes the subclass specific items from the supplied NetMsgReader. * Deserializes the subclass specific items from the supplied NetMsgReader.
*/ */
@Override @Override
protected void _deserialize(ByteBufferReader reader) protected void _deserialize(ByteBufferReader reader) {
{
// Client only sends 11 bytes. // Client only sends 11 bytes.
byte type = reader.get(); byte type = reader.get();
if (type == 1){ if (type == 1) {
reader.get(); reader.get();
reader.get(); reader.get();
reader.getInt(); reader.getInt();
}else{ } else {
reader.get(); reader.get();
reader.getInt(); reader.getInt();
reader.get(); reader.get();

6
src/engine/workthreads/HourlyJobThread.java

@ -43,12 +43,12 @@ public class HourlyJobThread implements Runnable {
try { try {
Zone hotzone = ZoneManager.getHotZone(); Zone hotzone = ZoneManager.getHotZone();
if(hotzone == null){ if (hotzone == null) {
//no hotzone? set one. //no hotzone? set one.
ZoneManager.generateAndSetRandomHotzone(); ZoneManager.generateAndSetRandomHotzone();
} }
int hotzoneDuration = Integer.valueOf(ConfigManager.MB_HOTZONE_DURATION.getValue()); int hotzoneDuration = Integer.valueOf(ConfigManager.MB_HOTZONE_DURATION.getValue());
if(((LocalDateTime.now().getHour()) - hotzone.becameHotzone.getHour()) >= hotzoneDuration) { if (((LocalDateTime.now().getHour()) - hotzone.becameHotzone.getHour()) >= hotzoneDuration) {
ZoneManager.generateAndSetRandomHotzone(); ZoneManager.generateAndSetRandomHotzone();
hotzone = ZoneManager.getHotZone(); hotzone = ZoneManager.getHotZone();
} }
@ -187,7 +187,7 @@ public class HourlyJobThread implements Runnable {
ArrayList<Mine> mines = Mine.getMines(); ArrayList<Mine> mines = Mine.getMines();
for (Mine mine : mines) { for (Mine mine : mines) {
if(LocalDateTime.now().getHour() == 1400){ if (LocalDateTime.now().getHour() == 1400) {
mine.wasClaimed = false; mine.wasClaimed = false;
} }
try { try {

Loading…
Cancel
Save