diff --git a/src/engine/gameManager/PowersManager.java b/src/engine/gameManager/PowersManager.java index 6dc4f502..7ef30b92 100644 --- a/src/engine/gameManager/PowersManager.java +++ b/src/engine/gameManager/PowersManager.java @@ -166,6 +166,9 @@ public enum PowersManager { PlayerCharacter pc = SessionManager.getPlayerCharacter(origin); + if(pc == null) + return; + if(!pc.isFlying() && powersBaseByToken.get(msg.getPowerUsedID()) != null && powersBaseByToken.get(msg.getPowerUsedID()).isSpell) //cant be sitting if flying CombatManager.toggleSit(false,origin); diff --git a/src/engine/gameManager/SimulationManager.java b/src/engine/gameManager/SimulationManager.java index fcb973e3..189c9f5a 100644 --- a/src/engine/gameManager/SimulationManager.java +++ b/src/engine/gameManager/SimulationManager.java @@ -158,7 +158,7 @@ public enum SimulationManager { if (player == null) continue; try { - player.update(true); + player.update(false); }catch(Exception e){ } diff --git a/src/engine/job/JobWorker.java b/src/engine/job/JobWorker.java index e6a13ca9..f333802b 100644 --- a/src/engine/job/JobWorker.java +++ b/src/engine/job/JobWorker.java @@ -61,7 +61,7 @@ public class JobWorker extends ControlledRunnable { this.currentJob.executeJob(this.getThreadName()); this.currentJob = null; } - + Thread.yield(); } return true; } diff --git a/src/engine/objects/PlayerCharacter.java b/src/engine/objects/PlayerCharacter.java index b753a63f..bc9c17b3 100644 --- a/src/engine/objects/PlayerCharacter.java +++ b/src/engine/objects/PlayerCharacter.java @@ -5110,12 +5110,12 @@ public class PlayerCharacter extends AbstractCharacter { @Override public void update(Boolean newSystem) { - this.updateLocation(); - this.updateMovementState(); - if(!newSystem) return; + this.updateLocation(); + this.updateMovementState(); + try { if (this.updateLock.writeLock().tryLock()) { diff --git a/src/engine/server/world/WorldServer.java b/src/engine/server/world/WorldServer.java index 4d67026f..62ac5654 100644 --- a/src/engine/server/world/WorldServer.java +++ b/src/engine/server/world/WorldServer.java @@ -517,8 +517,8 @@ public class WorldServer { Logger.info("Starting Bane Thread"); BaneThread.startBaneThread(); - //Logger.info("Starting Player Regen Thread"); - //UpdateThread.startUpdateThread(); + Logger.info("Starting Player Update Thread"); + UpdateThread.startUpdateThread(); printThreads(); diff --git a/src/engine/workthreads/UpdateThread.java b/src/engine/workthreads/UpdateThread.java index 489d7af3..2ed4c66a 100644 --- a/src/engine/workthreads/UpdateThread.java +++ b/src/engine/workthreads/UpdateThread.java @@ -32,18 +32,7 @@ public class UpdateThread implements Runnable { try { for(PlayerCharacter player : SessionManager.getAllActivePlayerCharacters()){ if (player != null) { - player.doRegen(); - try { - if (player.isAlive() && player.isActive() && player.isEnteredWorld()) { - if (player.combatStats == null) { - player.combatStats = new PlayerCombatStats(player); - } - PlayerCombatStats cStats = player.combatStats; - cStats.update(); - } - }catch(Exception e){ - - } + player.update(true); } } } catch (Exception e) { @@ -61,7 +50,7 @@ public class UpdateThread implements Runnable { lastRun = System.currentTimeMillis(); // Update lastRun after processing }else { try { - Thread.sleep(100); // Pause for 10ms to reduce CPU usage + Thread.sleep(100); // Pause for 100ms to reduce CPU usage } catch (InterruptedException e) { Logger.error("Thread interrupted", e); Thread.currentThread().interrupt();