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.objects.PlayerCharacter;
|
||||
import engine.server.world.WorldServer;
|
||||
import org.pmw.tinylog.Logger;
|
||||
|
||||
|
||||
|
||||
public class LogoutCharacterJob extends AbstractScheduleJob {
|
||||
|
||||
@@ -26,9 +29,11 @@ public class LogoutCharacterJob extends AbstractScheduleJob {
|
||||
|
||||
@Override
|
||||
protected void doJob() {
|
||||
Logger.info("LogoutCharacterJob.doJob(): Logging out " + pc.getFirstName());
|
||||
server.logoutCharacter(this.pc);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void _cancelJob() {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
@@ -215,13 +215,17 @@ public class ClientConnection extends AbstractConnection {
|
||||
|
||||
@Override
|
||||
public void disconnect() {
|
||||
Logger.info("ClientConnection.disconnect() called");
|
||||
super.disconnect();
|
||||
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);
|
||||
else
|
||||
} else {
|
||||
Logger.info("ClientConnection.disconnect(): Calling LoginServer.removeClient()");
|
||||
ConfigManager.loginServer.removeClient(this);
|
||||
}
|
||||
|
||||
|
||||
// TODO There has to be a more direct way to do this...
|
||||
SessionManager.remSession(
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
|
||||
package engine.server.world;
|
||||
|
||||
import java.util.Iterator;
|
||||
import engine.Enum;
|
||||
import engine.Enum.BuildingGroup;
|
||||
import engine.Enum.DispatchChannel;
|
||||
@@ -664,7 +665,7 @@ public class WorldServer {
|
||||
Mine.releaseMineClaims(playerCharacter);
|
||||
|
||||
// logout
|
||||
long delta = MBServerStatics.LOGOUT_TIMER_MS;
|
||||
long delta = 0;
|
||||
|
||||
if (System.currentTimeMillis() - playerCharacter.getTimeStamp("LastCombatPlayer") < 60000) {
|
||||
delta = 60000;
|
||||
@@ -686,6 +687,7 @@ public class WorldServer {
|
||||
playerCharacter.getLoadedObjects().clear();
|
||||
playerCharacter.getLoadedStaticObjects().clear();
|
||||
|
||||
Logger.info("Scheduling LogoutCharacterJob for " + playerCharacter.getFirstName());
|
||||
LogoutCharacterJob logoutJob = new LogoutCharacterJob(playerCharacter, this);
|
||||
JobContainer jc = JobScheduler.getInstance().scheduleJob(logoutJob,
|
||||
System.currentTimeMillis() + delta);
|
||||
@@ -704,6 +706,32 @@ public class WorldServer {
|
||||
Logger.error("Unable to find PlayerCharacter to logout");
|
||||
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
|
||||
for(AbstractWorldObject awo : WorldGrid.getObjectsInRangePartial(player.getLoc(),MBServerStatics.CHARACTER_LOAD_RANGE,MBServerStatics.MASK_MOB)) {
|
||||
Mob loadedMob = (Mob) awo;
|
||||
@@ -866,4 +894,11 @@ 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