| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -5205,26 +5205,31 @@ public class PlayerCharacter extends AbstractCharacter { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        if (!this.timestamps.containsKey("nextBoxCheck")) | 
					 | 
					 | 
					 | 
					                        if (!this.timestamps.containsKey("nextBoxCheck")) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                            this.timestamps.put("nextBoxCheck", System.currentTimeMillis() + 10000); | 
					 | 
					 | 
					 | 
					                            this.timestamps.put("nextBoxCheck", System.currentTimeMillis() + 10000); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        if (!this.isBoxed && this.timestamps.get("nextBoxCheck") < System.currentTimeMillis()) { | 
					 | 
					 | 
					 | 
					                       // if (!this.isBoxed && this.timestamps.get("nextBoxCheck") < System.currentTimeMillis()) {
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                            this.isBoxed = checkIfBoxed(this); | 
					 | 
					 | 
					 | 
					                       //     this.isBoxed = checkIfBoxed(this);
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                       //     this.timestamps.put("nextBoxCheck", System.currentTimeMillis() + 10000);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                        //}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                        if(this.timestamps.get("nextBoxCheck") < System.currentTimeMillis()) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                            updateBoxStatus(this.isBoxed,checkIfBoxed(this)); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                            this.timestamps.put("nextBoxCheck", System.currentTimeMillis() + 10000); | 
					 | 
					 | 
					 | 
					                            this.timestamps.put("nextBoxCheck", System.currentTimeMillis() + 10000); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        } | 
					 | 
					 | 
					 | 
					                        } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        if (this.isBoxed){ | 
					 | 
					 | 
					 | 
					                        //if (this.isBoxed){
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                            if(!this.title.equals(CharacterTitle.PVE)){ | 
					 | 
					 | 
					 | 
					                            //if(!this.title.equals(CharacterTitle.PVE)){
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                this.title = CharacterTitle.PVE; | 
					 | 
					 | 
					 | 
					                            //    this.title = CharacterTitle.PVE;
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                InterestManager.setObjectDirty(this); | 
					 | 
					 | 
					 | 
					                            //    InterestManager.setObjectDirty(this);
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                InterestManager.reloadCharacter(this, false); | 
					 | 
					 | 
					 | 
					                            //    InterestManager.reloadCharacter(this, false);
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                this.setDirtyLoad(true); | 
					 | 
					 | 
					 | 
					                            //    this.setDirtyLoad(true);
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                            } | 
					 | 
					 | 
					 | 
					                            //}
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        }else { | 
					 | 
					 | 
					 | 
					                        //}else {
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                            if (!this.title.equals(CharacterTitle.NONE)) { | 
					 | 
					 | 
					 | 
					                        //    if (!this.title.equals(CharacterTitle.NONE)) {
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                this.title = CharacterTitle.NONE; | 
					 | 
					 | 
					 | 
					                        //        this.title = CharacterTitle.NONE;
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                InterestManager.setObjectDirty(this); | 
					 | 
					 | 
					 | 
					                        //        InterestManager.setObjectDirty(this);
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                InterestManager.reloadCharacter(this, false); | 
					 | 
					 | 
					 | 
					                        //        InterestManager.reloadCharacter(this, false);
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                this.setDirtyLoad(true); | 
					 | 
					 | 
					 | 
					                        //        this.setDirtyLoad(true);
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                            } | 
					 | 
					 | 
					 | 
					                        //    }
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        } | 
					 | 
					 | 
					 | 
					                        //}
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        if (this.level < 10 && this.enteredWorld) { | 
					 | 
					 | 
					 | 
					                        if (this.level < 10 && this.enteredWorld) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                            while (this.level < 10) { | 
					 | 
					 | 
					 | 
					                            while (this.level < 10) { | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -5264,6 +5269,24 @@ public class PlayerCharacter extends AbstractCharacter { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            Logger.error("UPDATE ISSUE: " + e); | 
					 | 
					 | 
					 | 
					            Logger.error("UPDATE ISSUE: " + e); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        } | 
					 | 
					 | 
					 | 
					        } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    } | 
					 | 
					 | 
					 | 
					    } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    public void updateBoxStatus(boolean oldValue, boolean newValue) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        if ((oldValue && newValue) || (!oldValue && !newValue)) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            return; // Status has not changed, no need to proceed
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        this.isBoxed = newValue; // Update the isBoxed status
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        if (newValue) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            // Change from not boxed to boxed
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            this.title = CharacterTitle.PVE;//replace with effect bit or other visual system eventually
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        } else { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            // Change from boxed to not boxed
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            this.title = CharacterTitle.NONE;//replace with removing effect bit or other visual system eventually
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        //remove this after new visual system implemented
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        this.getClientConnection().forceDisconnect(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    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<>(); | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -5275,9 +5298,10 @@ public class PlayerCharacter extends AbstractCharacter { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        for (PlayerCharacter pc : sameMachine) { | 
					 | 
					 | 
					 | 
					        for (PlayerCharacter pc : sameMachine) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            if(pc.equals(player)) | 
					 | 
					 | 
					 | 
					            if(pc.equals(player)) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                continue; | 
					 | 
					 | 
					 | 
					                continue; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            pc.isBoxed = true; | 
					 | 
					 | 
					 | 
					            //pc.isBoxed = true;
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            pc.updateBoxStatus(pc.isBoxed,true); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        } | 
					 | 
					 | 
					 | 
					        } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        player.isBoxed = false; | 
					 | 
					 | 
					 | 
					        player.updateBoxStatus(player.isBoxed,true); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    } | 
					 | 
					 | 
					 | 
					    } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    public static boolean checkIfBoxed(PlayerCharacter player){ | 
					 | 
					 | 
					 | 
					    public static boolean checkIfBoxed(PlayerCharacter player){ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        if(ConfigManager.MB_WORLD_BOXLIMIT.getValue().equals("false")) { | 
					 | 
					 | 
					 | 
					        if(ConfigManager.MB_WORLD_BOXLIMIT.getValue().equals("false")) { | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
  |