attempt to fix boxed combat

This commit is contained in:
2025-03-08 20:07:11 -06:00
parent 96122b5beb
commit 6bac4d830a
3 changed files with 27 additions and 44 deletions
+14 -33
View File
@@ -5244,45 +5244,26 @@ public class PlayerCharacter extends AbstractCharacter {
Logger.error("UPDATE ISSUE: " + e);
}
}
public static void unboxPlayer(PlayerCharacter player){
public static void unboxPlayer(PlayerCharacter player) {
String machineID = player.getClientConnection().machineID;
ArrayList<PlayerCharacter> sameMachine = new ArrayList<>();
for(PlayerCharacter pc : SessionManager.getAllActivePlayerCharacters()){
if(!pc.equals(player) && pc. isActive && pc.isEnteredWorld() && pc.getClientConnection().machineID.equals(machineID)){
for (PlayerCharacter pc : SessionManager.getAllActivePlayerCharacters()) {
if (!pc.equals(player) && pc.isActive && pc.isEnteredWorld() && pc.getClientConnection().machineID.equals(machineID)) {
sameMachine.add(pc);
}
}
boolean valid = true;
for(PlayerCharacter pc : sameMachine){
if(!pc.safeZone)
valid = false;
}
if(valid) {
for (PlayerCharacter pc : sameMachine) {
pc.isBoxed = true;
if (!pc.title.equals(CharacterTitle.PVE)) {
pc.title = CharacterTitle.PVE;
InterestManager.setObjectDirty(pc);
InterestManager.reloadCharacter(pc, true);
pc.setDirtyLoad(true);
//pc.getClientConnection().forceDisconnect();
}
}
player.isBoxed = false;
if (!player.title.equals(CharacterTitle.NONE)) {
player.title = CharacterTitle.NONE;
InterestManager.setObjectDirty(player);
InterestManager.reloadCharacter(player, true);
player.setDirtyLoad(true);
//player.getClientConnection().forceDisconnect();
}
//if (player.containsEffect(1672601862)) {
// player.removeEffectBySource(EffectSourceType.DeathShroud, 41, false);
//}
}else{
ChatManager.chatSystemInfo(player, "All Boxes Must Be In Safezone To Switch");
for (PlayerCharacter pc : sameMachine) {
if(pc.equals(player))
continue;
pc.isBoxed = true;
pc.title = CharacterTitle.PVE;
InterestManager.setObjectDirty(pc);
InterestManager.reloadCharacter(pc, false);
}
player.isBoxed = false;
player.title = CharacterTitle.NONE;
InterestManager.setObjectDirty(player);
InterestManager.reloadCharacter(player, false);
}
public static boolean checkIfBoxed(PlayerCharacter player){
if(ConfigManager.MB_WORLD_BOXLIMIT.getValue().equals("false")) {