Compare commits
10 Commits
birdbane
...
BattleBane
| Author | SHA1 | Date | |
|---|---|---|---|
| 214bad11b7 | |||
| 5a29abff8c | |||
| b0e76afd7d | |||
| f9152ca57d | |||
| be16b4e378 | |||
| 85a524a739 | |||
| 8683bd7333 | |||
| a07a5d53b5 | |||
| 7592547a35 | |||
| bb643202df |
@@ -12,6 +12,9 @@ package engine.jobs;
|
|||||||
import engine.job.AbstractScheduleJob;
|
import engine.job.AbstractScheduleJob;
|
||||||
import engine.objects.PlayerCharacter;
|
import engine.objects.PlayerCharacter;
|
||||||
import engine.server.world.WorldServer;
|
import engine.server.world.WorldServer;
|
||||||
|
import org.pmw.tinylog.Logger;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public class LogoutCharacterJob extends AbstractScheduleJob {
|
public class LogoutCharacterJob extends AbstractScheduleJob {
|
||||||
|
|
||||||
@@ -26,9 +29,11 @@ public class LogoutCharacterJob extends AbstractScheduleJob {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void doJob() {
|
protected void doJob() {
|
||||||
|
Logger.info("LogoutCharacterJob.doJob(): Logging out " + pc.getFirstName());
|
||||||
server.logoutCharacter(this.pc);
|
server.logoutCharacter(this.pc);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void _cancelJob() {
|
protected void _cancelJob() {
|
||||||
// TODO Auto-generated method stub
|
// TODO Auto-generated method stub
|
||||||
|
|||||||
@@ -215,13 +215,17 @@ public class ClientConnection extends AbstractConnection {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void disconnect() {
|
public void disconnect() {
|
||||||
|
Logger.info("ClientConnection.disconnect() called");
|
||||||
super.disconnect();
|
super.disconnect();
|
||||||
try {
|
try {
|
||||||
|
if (ConfigManager.serverType.equals(Enum.ServerType.WORLDSERVER)) {
|
||||||
if (ConfigManager.serverType.equals(Enum.ServerType.WORLDSERVER))
|
Logger.info("ClientConnection.disconnect(): Calling WorldServer.removeClient()");
|
||||||
ConfigManager.worldServer.removeClient(this);
|
ConfigManager.worldServer.removeClient(this);
|
||||||
else
|
} else {
|
||||||
|
Logger.info("ClientConnection.disconnect(): Calling LoginServer.removeClient()");
|
||||||
ConfigManager.loginServer.removeClient(this);
|
ConfigManager.loginServer.removeClient(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// TODO There has to be a more direct way to do this...
|
// TODO There has to be a more direct way to do this...
|
||||||
SessionManager.remSession(
|
SessionManager.remSession(
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
|
|
||||||
package engine.server.world;
|
package engine.server.world;
|
||||||
|
|
||||||
|
import java.util.Iterator;
|
||||||
import engine.Enum;
|
import engine.Enum;
|
||||||
import engine.Enum.BuildingGroup;
|
import engine.Enum.BuildingGroup;
|
||||||
import engine.Enum.DispatchChannel;
|
import engine.Enum.DispatchChannel;
|
||||||
@@ -664,7 +665,7 @@ public class WorldServer {
|
|||||||
Mine.releaseMineClaims(playerCharacter);
|
Mine.releaseMineClaims(playerCharacter);
|
||||||
|
|
||||||
// logout
|
// logout
|
||||||
long delta = MBServerStatics.LOGOUT_TIMER_MS;
|
long delta = 0;
|
||||||
|
|
||||||
if (System.currentTimeMillis() - playerCharacter.getTimeStamp("LastCombatPlayer") < 60000) {
|
if (System.currentTimeMillis() - playerCharacter.getTimeStamp("LastCombatPlayer") < 60000) {
|
||||||
delta = 60000;
|
delta = 60000;
|
||||||
@@ -686,6 +687,7 @@ public class WorldServer {
|
|||||||
playerCharacter.getLoadedObjects().clear();
|
playerCharacter.getLoadedObjects().clear();
|
||||||
playerCharacter.getLoadedStaticObjects().clear();
|
playerCharacter.getLoadedStaticObjects().clear();
|
||||||
|
|
||||||
|
Logger.info("Scheduling LogoutCharacterJob for " + playerCharacter.getFirstName());
|
||||||
LogoutCharacterJob logoutJob = new LogoutCharacterJob(playerCharacter, this);
|
LogoutCharacterJob logoutJob = new LogoutCharacterJob(playerCharacter, this);
|
||||||
JobContainer jc = JobScheduler.getInstance().scheduleJob(logoutJob,
|
JobContainer jc = JobScheduler.getInstance().scheduleJob(logoutJob,
|
||||||
System.currentTimeMillis() + delta);
|
System.currentTimeMillis() + delta);
|
||||||
@@ -704,6 +706,32 @@ public class WorldServer {
|
|||||||
Logger.error("Unable to find PlayerCharacter to logout");
|
Logger.error("Unable to find PlayerCharacter to logout");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// DEBUG: Log all current effects on the player
|
||||||
|
Logger.info("=== EFFECTS ON LOGOUT for " + player.getFirstName() + " ===");
|
||||||
|
for (Effect e : player.getEffects().values()) {
|
||||||
|
Logger.info("Effect: " + e.getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Iterator<Effect> it = player.getEffects().values().iterator();
|
||||||
|
while (it.hasNext()) {
|
||||||
|
Effect effect = it.next();
|
||||||
|
String name = effect.getName();
|
||||||
|
if (name.equals("Blessing of Power") ||
|
||||||
|
name.equals("Blessing of Wisdom") ||
|
||||||
|
name.equals("Blessing of Fortune")) {
|
||||||
|
it.remove();
|
||||||
|
Logger.info("Removed effect " + name + " from " + player.getFirstName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Logger.info("Realm run blessings removed from " + player.getFirstName());
|
||||||
|
|
||||||
|
|
||||||
//remove player from loaded mobs agro maps
|
//remove player from loaded mobs agro maps
|
||||||
for(AbstractWorldObject awo : WorldGrid.getObjectsInRangePartial(player.getLoc(),MBServerStatics.CHARACTER_LOAD_RANGE,MBServerStatics.MASK_MOB)) {
|
for(AbstractWorldObject awo : WorldGrid.getObjectsInRangePartial(player.getLoc(),MBServerStatics.CHARACTER_LOAD_RANGE,MBServerStatics.MASK_MOB)) {
|
||||||
Mob loadedMob = (Mob) awo;
|
Mob loadedMob = (Mob) awo;
|
||||||
@@ -867,3 +895,10 @@ public class WorldServer {
|
|||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void init() {
|
||||||
|
Logger.info("WorldServer.init() called");
|
||||||
|
|
||||||
|
// Your original init logic should go here
|
||||||
|
// Or you can leave it empty for testing
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user