|  |  | @ -5817,6 +5817,21 @@ public class PlayerCharacter extends AbstractCharacter { | 
			
		
	
		
		
			
				
					
					|  |  |  |     public void doRegen(){ |  |  |  |     public void doRegen(){ | 
			
		
	
		
		
			
				
					
					|  |  |  |         if(!this.timestamps.containsKey("SyncClient")) |  |  |  |         if(!this.timestamps.containsKey("SyncClient")) | 
			
		
	
		
		
			
				
					
					|  |  |  |             this.timestamps.put("SyncClient",System.currentTimeMillis()); |  |  |  |             this.timestamps.put("SyncClient",System.currentTimeMillis()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         try { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             ReentrantReadWriteLock reentrantLock = (ReentrantReadWriteLock) this.updateLock; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             if(reentrantLock.writeLock().isHeldByCurrentThread()){ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 this.updateLock.writeLock().unlock(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             // Check if the lock is currently held by another thread (either for reading or writing)
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             if (reentrantLock.isWriteLocked() || reentrantLock.getReadLockCount() > 0) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 return; // Or throw an exception if needed
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         }catch(Exception e){ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             Logger.error(e); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         if (this.updateLock.writeLock().tryLock()) { |  |  |  |         if (this.updateLock.writeLock().tryLock()) { | 
			
		
	
		
		
			
				
					
					|  |  |  |             try { |  |  |  |             try { | 
			
		
	
		
		
			
				
					
					|  |  |  |                 if(!this.isAlive() || !this.enteredWorld || !this.isActive) { |  |  |  |                 if(!this.isAlive() || !this.enteredWorld || !this.isActive) { | 
			
		
	
	
		
		
			
				
					|  |  | 
 |