diff --git a/src/engine/objects/PlayerCharacter.java b/src/engine/objects/PlayerCharacter.java index 685479d4..db6d0475 100644 --- a/src/engine/objects/PlayerCharacter.java +++ b/src/engine/objects/PlayerCharacter.java @@ -5122,24 +5122,6 @@ public class PlayerCharacter extends AbstractCharacter { if (this.updateLock.writeLock().tryLock()) { try { - //if (!this.timestamps.contains("STAMHEALTICK")) { - // this.timestamps.put("STAMHEALTICK", System.currentTimeMillis()); - //} - //if (this.containsEffect(441156455)) { - // long length = System.currentTimeMillis() - this.timestamps.get("STAMHEALTICK").longValue(); - // if (length > 10000 ) { - // float stamIncrease = 6.5f; - // if (this.stamina.get() + stamIncrease > this.staminaMax) - // this.stamina.compareAndSet(this.stamina.get(), this.staminaMax); - // else - // this.stamina.compareAndSet(this.stamina.get(), this.stamina.get() + stamIncrease); - // this.timestamps.put("STAMHEALTICK", System.currentTimeMillis()); - // ChatManager.chatSystemInfo(this, "Healed 7 Stamina"); - // } - //} else { - // this.timestamps.put("STAMHEALTICK", System.currentTimeMillis()); - //} - if (!this.isAlive() && this.isEnteredWorld()) { if (!this.timestamps.containsKey("DeathTime")) { this.timestamps.put("DeathTime", System.currentTimeMillis()); @@ -5147,26 +5129,6 @@ public class PlayerCharacter extends AbstractCharacter { forceRespawn(this); return; } - //if(!this.timestamps.containsKey("stamTick")){ - // this.timestamps.put("stamTick", System.currentTimeMillis()); - //}else{ - // if(this.containsEffect(441156479) || this.containsEffect(441156455)) { - // if(System.currentTimeMillis() - this.timestamps.get("stamTick") > 5000){ - // boolean worked = false; - // while(!worked) { - // float old = this.stamina.get(); - // float mod = old + 4; - // if (mod > this.staminaMax) - // mod = this.staminaMax; -// - // worked = this.stamina.compareAndSet(old, mod); - // } - // this.timestamps.put("stamTick", System.currentTimeMillis()); - // } - // }else{ - // this.timestamps.put("stamTick", System.currentTimeMillis()); - // } - //} if (this.isAlive() && this.isActive && this.enteredWorld) { diff --git a/src/engine/workthreads/UpdateThread.java b/src/engine/workthreads/UpdateThread.java index 27d5f4b2..46f4c19f 100644 --- a/src/engine/workthreads/UpdateThread.java +++ b/src/engine/workthreads/UpdateThread.java @@ -32,7 +32,11 @@ public class UpdateThread implements Runnable { try { for(PlayerCharacter player : SessionManager.getAllActivePlayerCharacters()){ if (player != null) { - player.update(true); + try { + player.update(true); + }catch(Exception e){ + Logger.error("UPDATE ERROR FOR PLAYER: " + player.getFirstName(),e); + } } } } catch (Exception e) { @@ -43,20 +47,31 @@ public class UpdateThread implements Runnable { } public void run() { - lastRun = System.currentTimeMillis(); + //lastRun = System.currentTimeMillis(); + //while (true) { + // if (System.currentTimeMillis() >= lastRun + instancedelay) { // Correct condition + // this.processPlayerUpdate(); + // lastRun = System.currentTimeMillis(); // Update lastRun after processing + // }else { + // try { + // Thread.sleep(100); // Pause for 100ms to reduce CPU usage + // } catch (InterruptedException e) { + // Logger.error("Thread interrupted", e); + // Thread.currentThread().interrupt(); + // } + // } + // Thread.yield(); + //} + while (true) { - if (System.currentTimeMillis() >= lastRun + instancedelay) { // Correct condition - this.processPlayerUpdate(); - lastRun = System.currentTimeMillis(); // Update lastRun after processing - }else { - try { - Thread.sleep(100); // Pause for 100ms to reduce CPU usage - } catch (InterruptedException e) { - Logger.error("Thread interrupted", e); - Thread.currentThread().interrupt(); - } + try { + this.processPlayerUpdate(); // Execute update logic + Thread.sleep(250); // Always sleep for 250ms + } catch (InterruptedException e) { + Logger.error("Thread interrupted", e); + Thread.currentThread().interrupt(); + break; // Exit loop if interrupted } - Thread.yield(); } }