|  |  | @ -5182,49 +5182,18 @@ public class PlayerCharacter extends AbstractCharacter { | 
			
		
	
		
		
			
				
					
					|  |  |  |                     this.safeZone = this.isInSafeZone(); |  |  |  |                     this.safeZone = this.isInSafeZone(); | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |                     if(this.isActive && this.enteredWorld) { |  |  |  |                     if(this.isActive && this.enteredWorld) { | 
			
		
	
		
		
			
				
					
					|  |  |  |                         if (!this.timestamps.containsKey("nextBoxCheck")) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                             this.timestamps.put("nextBoxCheck", System.currentTimeMillis() + 3000); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |                         if(this.timestamps.get("nextBoxCheck") < System.currentTimeMillis()) { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                             if (!this.isBoxed) { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                                 this.isBoxed = checkIfBoxed(this); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                             } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                             this.timestamps.put("nextBoxCheck", System.currentTimeMillis() + 3000); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                         } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                         if (this.level < 10 && this.enteredWorld) { |  |  |  |                         if (this.level < 10 && this.enteredWorld) { | 
			
		
	
		
		
			
				
					
					|  |  |  |                             while (this.level < 10) { |  |  |  |                             while (this.level < 10) { | 
			
		
	
		
		
			
				
					
					|  |  |  |                                 grantXP(Experience.getBaseExperience(this.level + 1) - this.exp); |  |  |  |                                 grantXP(Experience.getBaseExperience(this.level + 1) - this.exp); | 
			
		
	
		
		
			
				
					
					|  |  |  |                             } |  |  |  |                             } | 
			
		
	
		
		
			
				
					
					|  |  |  |                         } |  |  |  |                         } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                         if (this.isBoxed && !this.containsEffect(-654906771)) { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                             PowersManager.applyPower(this, this, Vector3fImmutable.ZERO, -935138707, 40, false); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                         }else if(!this.isBoxed && this.containsEffect(-654906771)){ |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                             this.effects.remove("PvE-Flagged"); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                             this.effects.remove("1258"); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                             WorldGrid.updateObject(this); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                         } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                     } |  |  |  |                     } | 
			
		
	
		
		
			
				
					
					|  |  |  |                     if (this.isFlying()) { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                         if (this.effects.containsKey("MoveBuff")) { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                             GroundPlayer(this); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                         } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                         if (!this.timestamps.containsKey("StunGrounded")) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                             this.timestamps.put("StunGrounded", System.currentTimeMillis() - 1000L); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                         if (this.bonuses.getBool(ModType.Stunned, SourceType.None) && this.timestamps.get("StunGrounded") < System.currentTimeMillis()) { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                             boolean isFlyMoving = this.getDesiredAltitude() != this.altitude; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                             if (!isFlyMoving && this.bonuses.getBool(ModType.Stunned, SourceType.None)) { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                                 this.setDesiredAltitude(this.altitude - 10); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                                 this.setTakeOffTime(System.currentTimeMillis()); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                                 ChangeAltitudeMsg msg = new ChangeAltitudeMsg(this.getObjectType().ordinal(), this.getObjectUUID(), false, this.getAltitude(), this.getDesiredAltitude(), this.getAltitude()); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                                 // force a landing
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                                 DispatchMessage.dispatchMsgToInterestArea(this, msg, DispatchChannel.PRIMARY, MBServerStatics.CHARACTER_LOAD_RANGE, true, false); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                                 this.timestamps.put("StunGrounded", System.currentTimeMillis() + 1500L); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                                 ChatManager.chatSystemInfo(this, "Applying 1 Tier Ground"); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                             } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                         } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     this.auditBoxedStatus(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     if (this.isFlying()) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                         this.auditFlightStatus(); | 
			
		
	
		
		
			
				
					
					|  |  |  |                     } |  |  |  |                     } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |                 } catch (Exception e) { |  |  |  |                 } catch (Exception e) { | 
			
		
	
	
		
		
			
				
					|  |  | @ -5237,6 +5206,56 @@ public class PlayerCharacter extends AbstractCharacter { | 
			
		
	
		
		
			
				
					
					|  |  |  |             Logger.error("UPDATE ISSUE: " + e); |  |  |  |             Logger.error("UPDATE ISSUE: " + e); | 
			
		
	
		
		
			
				
					
					|  |  |  |         } |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     public void auditBoxedStatus(){ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         if (!this.timestamps.containsKey("nextBoxCheck")) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             this.timestamps.put("nextBoxCheck", System.currentTimeMillis() + 3000); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         if(this.timestamps.get("nextBoxCheck") < System.currentTimeMillis()) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             if (!this.isBoxed) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 this.isBoxed = checkIfBoxed(this); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             this.timestamps.put("nextBoxCheck", System.currentTimeMillis() + 3000); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         if (this.isBoxed && !this.containsEffect(-654906771)) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             PowersManager.applyPower(this, this, Vector3fImmutable.ZERO, -935138707, 40, false); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         }else if(!this.isBoxed && this.containsEffect(-654906771)){ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             try { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 this.effects.get("PvE-Flagged").endEffect(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 //this.effects.remove("PvE-Flagged");
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             }catch(Exception ignored){ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             try{ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 this.effects.get("1258").endEffect(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 //this.effects.remove("1258");
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             }catch(Exception ignored){ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     public void auditFlightStatus(){ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         if (this.effects.containsKey("MoveBuff")) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             GroundPlayer(this); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         if (!this.timestamps.containsKey("StunGrounded")) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             this.timestamps.put("StunGrounded", System.currentTimeMillis() - 1000L); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         if (this.bonuses.getBool(ModType.Stunned, SourceType.None) && this.timestamps.get("StunGrounded") < System.currentTimeMillis()) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             boolean isFlyMoving = this.getDesiredAltitude() != this.altitude; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             if (!isFlyMoving && this.bonuses.getBool(ModType.Stunned, SourceType.None)) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 this.setDesiredAltitude(this.altitude - 10); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 this.setTakeOffTime(System.currentTimeMillis()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ChangeAltitudeMsg msg = new ChangeAltitudeMsg(this.getObjectType().ordinal(), this.getObjectUUID(), false, this.getAltitude(), this.getDesiredAltitude(), this.getAltitude()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 // force a landing
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 DispatchMessage.dispatchMsgToInterestArea(this, msg, DispatchChannel.PRIMARY, MBServerStatics.CHARACTER_LOAD_RANGE, true, false); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 this.timestamps.put("StunGrounded", System.currentTimeMillis() + 1500L); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ChatManager.chatSystemInfo(this, "Applying 1 Tier Ground"); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  |     public static void unboxPlayer(PlayerCharacter player){ |  |  |  |     public static void unboxPlayer(PlayerCharacter player){ | 
			
		
	
		
		
			
				
					
					|  |  |  |         String machineID = player.getClientConnection().machineID; |  |  |  |         String machineID = player.getClientConnection().machineID; | 
			
		
	
		
		
			
				
					
					|  |  |  |         ArrayList<PlayerCharacter> sameMachine = new ArrayList<>(); |  |  |  |         ArrayList<PlayerCharacter> sameMachine = new ArrayList<>(); | 
			
		
	
	
		
		
			
				
					|  |  | 
 |