From 584e626ed56647430176a7aab499633b82a4ced0 Mon Sep 17 00:00:00 2001 From: P0nk Date: Thu, 9 Sep 2021 22:18:16 +0200 Subject: [PATCH] Rename and clean up MapleDoor --- src/main/java/client/Character.java | 44 +++++++------- src/main/java/net/server/world/Party.java | 8 +-- src/main/java/server/MapleStatEffect.java | 2 +- .../server/maps/{MapleDoor.java => Door.java} | 59 +++++++++---------- src/main/java/tools/PacketCreator.java | 8 +-- 5 files changed, 60 insertions(+), 61 deletions(-) rename src/main/java/server/maps/{MapleDoor.java => Door.java} (90%) diff --git a/src/main/java/client/Character.java b/src/main/java/client/Character.java index b268c8c1f7..417533b083 100644 --- a/src/main/java/client/Character.java +++ b/src/main/java/client/Character.java @@ -194,7 +194,7 @@ public class Character extends AbstractCharacterObject { private final EnumMap> diseases = new EnumMap<>(Disease.class); private byte[] m_aQuickslotLoaded; private QuickslotBinding m_pQuickslotKeyMapped; - private MapleDoor pdoor = null; + private Door pdoor = null; private Map questExpirations = new LinkedHashMap<>(); private ScheduledFuture dragonBloodSchedule; private ScheduledFuture hpDecreaseTask; @@ -889,7 +889,7 @@ public class Character extends AbstractCharacterObject { } public boolean canDoor() { - MapleDoor door = getPlayerDoor(); + Door door = getPlayerDoor(); return door == null || (door.isActive() && door.getElapsedDeployTime() > 5000); } @@ -1523,7 +1523,7 @@ public class Character extends AbstractCharacterObject { } private static void addPartyPlayerDoor(Character target) { - MapleDoor targetDoor = target.getPlayerDoor(); + Door targetDoor = target.getPlayerDoor(); if (targetDoor != null) { target.applyPartyDoor(targetDoor, true); } @@ -1540,18 +1540,18 @@ public class Character extends AbstractCharacterObject { addPartyPlayerDoor(target); } - Map partyDoors = null; + Map partyDoors = null; if (!partyMembers.isEmpty()) { partyDoors = party.getDoors(); for (Character pchr : partyMembers) { - MapleDoor door = partyDoors.get(pchr.getId()); + Door door = partyDoors.get(pchr.getId()); if (door != null) { door.updateDoorPortal(pchr); } } - for (MapleDoor door : partyDoors.values()) { + for (Door door : partyDoors.values()) { for (Character pchar : partyMembers) { MapleDoorObject mdo = door.getTownDoor(); mdo.sendDestroyData(pchar.getClient(), true); @@ -1560,8 +1560,8 @@ public class Character extends AbstractCharacterObject { } if (partyLeaver != null) { - Collection leaverDoors = partyLeaver.getDoors(); - for (MapleDoor door : leaverDoors) { + Collection leaverDoors = partyLeaver.getDoors(); + for (Door door : leaverDoors) { for (Character pchar : partyMembers) { MapleDoorObject mdo = door.getTownDoor(); mdo.sendDestroyData(pchar.getClient(), true); @@ -1572,7 +1572,7 @@ public class Character extends AbstractCharacterObject { List histMembers = party.getMembersSortedByHistory(); for (Integer chrid : histMembers) { - MapleDoor door = partyDoors.get(chrid); + Door door = partyDoors.get(chrid); if (door != null) { for (Character pchar : partyMembers) { @@ -1585,23 +1585,23 @@ public class Character extends AbstractCharacterObject { } if (partyLeaver != null) { - Collection leaverDoors = partyLeaver.getDoors(); + Collection leaverDoors = partyLeaver.getDoors(); if (partyDoors != null) { - for (MapleDoor door : partyDoors.values()) { + for (Door door : partyDoors.values()) { MapleDoorObject mdo = door.getTownDoor(); mdo.sendDestroyData(partyLeaver.getClient(), true); partyLeaver.removeVisibleMapObject(mdo); } } - for (MapleDoor door : leaverDoors) { + for (Door door : leaverDoors) { MapleDoorObject mdo = door.getTownDoor(); mdo.sendDestroyData(partyLeaver.getClient(), true); partyLeaver.removeVisibleMapObject(mdo); } - for (MapleDoor door : leaverDoors) { + for (Door door : leaverDoors) { door.updateDoorPortal(partyLeaver); MapleDoorObject mdo = door.getTownDoor(); @@ -3775,7 +3775,7 @@ public class Character extends AbstractCharacterObject { effLock.lock(); try { if (!hasBuffFromSourceid(Priest.MYSTIC_DOOR)) { - MapleDoor.attemptRemoveDoor(this); + Door.attemptRemoveDoor(this); } } finally { effLock.unlock(); @@ -4672,16 +4672,16 @@ public class Character extends AbstractCharacterObject { return dojoStage; } - public Collection getDoors() { + public Collection getDoors() { prtLock.lock(); try { - return (party != null ? Collections.unmodifiableCollection(party.getDoors().values()) : (pdoor != null ? Collections.singleton(pdoor) : new LinkedHashSet())); + return (party != null ? Collections.unmodifiableCollection(party.getDoors().values()) : (pdoor != null ? Collections.singleton(pdoor) : new LinkedHashSet())); } finally { prtLock.unlock(); } } - public MapleDoor getPlayerDoor() { + public Door getPlayerDoor() { prtLock.lock(); try { return pdoor; @@ -4690,8 +4690,8 @@ public class Character extends AbstractCharacterObject { } } - public MapleDoor getMainTownDoor() { - for (MapleDoor door : getDoors()) { + public Door getMainTownDoor() { + for (Door door : getDoors()) { if (door.getTownPortal().getId() == 0x80) { return door; } @@ -4700,7 +4700,7 @@ public class Character extends AbstractCharacterObject { return null; } - public void applyPartyDoor(MapleDoor door, boolean partyUpdate) { + public void applyPartyDoor(Door door, boolean partyUpdate) { Party chrParty; prtLock.lock(); try { @@ -4719,8 +4719,8 @@ public class Character extends AbstractCharacterObject { silentPartyUpdateInternal(chrParty); } - public MapleDoor removePartyDoor(boolean partyUpdate) { - MapleDoor ret = null; + public Door removePartyDoor(boolean partyUpdate) { + Door ret = null; Party chrParty; prtLock.lock(); diff --git a/src/main/java/net/server/world/Party.java b/src/main/java/net/server/world/Party.java index abc573b1bb..90d33468eb 100644 --- a/src/main/java/net/server/world/Party.java +++ b/src/main/java/net/server/world/Party.java @@ -31,7 +31,7 @@ import net.server.audit.locks.factory.MonitoredReentrantLockFactory; import net.server.coordinator.matchchecker.MatchCheckerCoordinator; import net.server.coordinator.matchchecker.MatchCheckerListenerFactory.MatchCheckerType; import scripting.event.EventInstanceManager; -import server.maps.MapleDoor; +import server.maps.Door; import server.maps.MapleMap; import server.partyquest.MonsterCarnival; import tools.PacketCreator; @@ -50,7 +50,7 @@ public class Party { private final Map histMembers = new HashMap<>(); private int nextEntry = 0; - private final Map doors = new HashMap<>(); + private final Map doors = new HashMap<>(); private MonitoredReentrantLock lock = MonitoredReentrantLockFactory.createLock(MonitoredLockType.PARTY, true); @@ -234,7 +234,7 @@ public class Party { return slot; } - public void addDoor(Integer owner, MapleDoor door) { + public void addDoor(Integer owner, Door door) { lock.lock(); try { this.doors.put(owner, door); @@ -252,7 +252,7 @@ public class Party { } } - public Map getDoors() { + public Map getDoors() { lock.lock(); try { return Collections.unmodifiableMap(doors); diff --git a/src/main/java/server/MapleStatEffect.java b/src/main/java/server/MapleStatEffect.java index 5a41e9088b..e6c456f6f0 100644 --- a/src/main/java/server/MapleStatEffect.java +++ b/src/main/java/server/MapleStatEffect.java @@ -1007,7 +1007,7 @@ public class MapleStatEffect { y = applyto.getMap().getGroundBelow(applyto.getPosition()).y; // thanks Lame for pointing out unusual cases of doors sending players on ground below } Point doorPosition = new Point(applyto.getPosition().x, y); - MapleDoor door = new MapleDoor(applyto, doorPosition); + Door door = new Door(applyto, doorPosition); if (door.getOwnerId() >= 0) { applyto.applyPartyDoor(door, false); diff --git a/src/main/java/server/maps/MapleDoor.java b/src/main/java/server/maps/Door.java similarity index 90% rename from src/main/java/server/maps/MapleDoor.java rename to src/main/java/server/maps/Door.java index 4122ee06ef..dde36668a1 100644 --- a/src/main/java/server/maps/MapleDoor.java +++ b/src/main/java/server/maps/Door.java @@ -31,38 +31,37 @@ import java.awt.*; import java.util.Collection; /** - * * @author Matze * @author Ronan */ -public class MapleDoor { +public class Door { private int ownerId; private MapleMap town; private MaplePortal townPortal; - private MapleMap target; + private final MapleMap target; private Pair posStatus = null; private long deployTime; private boolean active; - + private MapleDoorObject townDoor; private MapleDoorObject areaDoor; - - public MapleDoor(Character owner, Point targetPosition) { + + public Door(Character owner, Point targetPosition) { this.ownerId = owner.getId(); this.target = owner.getMap(); - - if(target.canDeployDoor(targetPosition)) { - if(YamlConfig.config.server.USE_ENFORCE_MDOOR_POSITION) { + + if (target.canDeployDoor(targetPosition)) { + if (YamlConfig.config.server.USE_ENFORCE_MDOOR_POSITION) { posStatus = target.getDoorPositionStatus(targetPosition); } - - if(posStatus == null) { + + if (posStatus == null) { this.town = this.target.getReturnMap(); this.townPortal = getTownDoorPortal(owner.getDoorSlot()); this.deployTime = System.currentTimeMillis(); this.active = true; - if(townPortal != null) { + if (townPortal != null) { this.areaDoor = new MapleDoorObject(ownerId, town, target, townPortal.getId(), targetPosition, townPortal.getPosition()); this.townDoor = new MapleDoorObject(ownerId, target, town, -1, townPortal.getPosition(), targetPosition); @@ -78,17 +77,17 @@ public class MapleDoor { this.ownerId = -2; } } - + public void updateDoorPortal(Character owner) { int slot = owner.fetchDoorSlot(); - + MaplePortal nextTownPortal = getTownDoorPortal(slot); - if(nextTownPortal != null) { + if (nextTownPortal != null) { townPortal = nextTownPortal; areaDoor.update(nextTownPortal.getId(), nextTownPortal.getPosition()); } } - + private void broadcastRemoveDoor(Character owner) { MapleDoorObject areaDoor = this.getAreaDoor(); MapleDoorObject townDoor = this.getTownDoor(); @@ -98,7 +97,7 @@ public class MapleDoor { Collection targetChars = target.getCharacters(); Collection townChars = town.getCharacters(); - + target.removeMapObject(areaDoor); town.removeMapObject(townDoor); @@ -111,12 +110,12 @@ public class MapleDoor { townDoor.sendDestroyData(chr.getClient()); chr.removeVisibleMapObject(townDoor); } - + owner.removePartyDoor(false); - + if (this.getTownPortal().getId() == 0x80) { for (Character chr : townChars) { - MapleDoor door = chr.getMainTownDoor(); + Door door = chr.getMainTownDoor(); if (door != null) { townDoor.sendSpawnData(chr.getClient()); chr.addVisibleMapObject(townDoor); @@ -124,14 +123,14 @@ public class MapleDoor { } } } - + public static void attemptRemoveDoor(final Character owner) { - final MapleDoor destroyDoor = owner.getPlayerDoor(); + final Door destroyDoor = owner.getPlayerDoor(); if (destroyDoor != null && destroyDoor.dispose()) { long effectTimeLeft = 3000 - destroyDoor.getElapsedDeployTime(); // portal deployment effect duration if (effectTimeLeft > 0) { MapleMap town = destroyDoor.getTown(); - + OverallService service = (OverallService) town.getChannelServer().getServiceAccess(ChannelServices.OVERALL); service.registerOverallAction(town.getId(), () -> { destroyDoor.broadcastRemoveDoor(owner); // thanks BHB88 for noticing doors crashing players when instantly cancelling buff @@ -141,11 +140,11 @@ public class MapleDoor { } } } - + private MaplePortal getTownDoorPortal(int doorid) { return town.getDoorPortal(doorid); } - + public int getOwnerId() { return ownerId; } @@ -153,11 +152,11 @@ public class MapleDoor { public MapleDoorObject getTownDoor() { return townDoor; } - + public MapleDoorObject getAreaDoor() { return areaDoor; } - + public MapleMap getTown() { return town; } @@ -173,11 +172,11 @@ public class MapleDoor { public Pair getDoorStatus() { return posStatus; } - + public long getElapsedDeployTime() { return System.currentTimeMillis() - deployTime; } - + private boolean dispose() { if (active) { active = false; @@ -186,7 +185,7 @@ public class MapleDoor { return false; } } - + public boolean isActive() { return active; } diff --git a/src/main/java/tools/PacketCreator.java b/src/main/java/tools/PacketCreator.java index 2037d8e6c1..b1544036ef 100644 --- a/src/main/java/tools/PacketCreator.java +++ b/src/main/java/tools/PacketCreator.java @@ -3687,9 +3687,9 @@ public class PacketCreator { p.writeByte(8); p.writeInt(party.getId()); - Map partyDoors = party.getDoors(); + Map partyDoors = party.getDoors(); if (partyDoors.size() > 0) { - MapleDoor door = partyDoors.get(partycharid); + Door door = partyDoors.get(partycharid); if (door != null) { MapleDoorObject mdo = door.getAreaDoor(); @@ -3797,11 +3797,11 @@ public class PacketCreator { } } - Map partyDoors = party.getDoors(); + Map partyDoors = party.getDoors(); for (PartyCharacter partychar : partymembers) { if (partychar.getChannel() == forchannel && !leaving) { if (partyDoors.size() > 0) { - MapleDoor door = partyDoors.get(partychar.getId()); + Door door = partyDoors.get(partychar.getId()); if (door != null) { MapleDoorObject mdo = door.getTownDoor(); p.writeInt(mdo.getTown().getId());