@ -35,26 +35,35 @@ public class BoxFlagThread implements Runnable {
@@ -35,26 +35,35 @@ public class BoxFlagThread implements Runnable {
LocalDateTime nextPulse = LocalDateTime . now ( ) . minusMinutes ( 1 ) ;
while ( true ) {
if ( LocalDateTime . now ( ) . isAfter ( nextPulse ) ) {
HashMap < String , ArrayList < PlayerCharacter > > PlayersByMachineID = new HashMap < > ( ) ;
for ( PlayerCharacter pc : SessionManager . getAllActivePlayerCharacters ( ) ) {
if ( pc . isEnteredWorld ( ) & & pc . isActive ( ) ) {
ChatManager . chatSystemInfo ( pc , " You Are Being Box Checked" ) ;
pc . isBoxed = PlayerCharacter . checkIfBoxed ( pc ) ;
if ( pc . isBoxed ) {
if ( pc . title . equals ( CharacterTitle . BOX ) = = false ) {
pc . title = CharacterTitle . BOX ;
//InterestManager.reloadCharacter(pc);
InterestManager . setObjectDirty ( pc ) ;
if ( pc . containsEffect ( 1672601862 ) = = false ) { //Deathshroud
PowersManager . applyPower ( pc , pc , Vector3fImmutable . ZERO , 1672601862 , 40 , false ) ;
}
}
} else {
if ( pc . title . equals ( CharacterTitle . NONE ) = = false ) {
pc . title = CharacterTitle . NONE ;
//InterestManager.reloadCharacter(pc);
InterestManager . setObjectDirty ( pc ) ;
if ( PlayersByMachineID . containsKey ( pc . getClientConnection ( ) . machineID ) ) {
if ( PlayersByMachineID . get ( pc . getClientConnection ( ) . machineID ) . contains ( pc ) = = false )
PlayersByMachineID . get ( pc . getClientConnection ( ) . machineID ) . add ( pc ) ;
} else {
ArrayList < PlayerCharacter > newList = new ArrayList < > ( ) ;
newList . add ( pc ) ;
PlayersByMachineID . put ( pc . getClientConnection ( ) . machineID , newList ) ;
}
}
for ( String key : PlayersByMachineID . keySet ( ) ) {
ArrayList < PlayerCharacter > machinePlayers = PlayersByMachineID . get ( key ) ;
if ( machinePlayers . size ( ) > 1 ) {
int unboxedCount = 0 ;
for ( PlayerCharacter pc : machinePlayers ) {
if ( ! pc . isBoxed )
unboxedCount + + ;
}
if ( unboxedCount > 1 ) {
for ( PlayerCharacter pc : machinePlayers ) {
pc . isBoxed = true ;
}
machinePlayers . get ( 0 ) . isBoxed = false ;
}
} else {
machinePlayers . get ( 0 ) . isBoxed = false ;
}
}
nextPulse = nextPulse . plusSeconds ( THREAD_DELAY_SECONDS ) ;