@ -5817,6 +5817,21 @@ public class PlayerCharacter extends AbstractCharacter {
@@ -5817,6 +5817,21 @@ public class PlayerCharacter extends AbstractCharacter {
public void doRegen ( ) {
if ( ! this . timestamps . containsKey ( "SyncClient" ) )
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 ( ) ) {
try {
if ( ! this . isAlive ( ) | | ! this . enteredWorld | | ! this . isActive ) {