Rename and clean up MapleDoor
This commit is contained in:
@@ -194,7 +194,7 @@ public class Character extends AbstractCharacterObject {
|
|||||||
private final EnumMap<Disease, Pair<DiseaseValueHolder, MobSkill>> diseases = new EnumMap<>(Disease.class);
|
private final EnumMap<Disease, Pair<DiseaseValueHolder, MobSkill>> diseases = new EnumMap<>(Disease.class);
|
||||||
private byte[] m_aQuickslotLoaded;
|
private byte[] m_aQuickslotLoaded;
|
||||||
private QuickslotBinding m_pQuickslotKeyMapped;
|
private QuickslotBinding m_pQuickslotKeyMapped;
|
||||||
private MapleDoor pdoor = null;
|
private Door pdoor = null;
|
||||||
private Map<MapleQuest, Long> questExpirations = new LinkedHashMap<>();
|
private Map<MapleQuest, Long> questExpirations = new LinkedHashMap<>();
|
||||||
private ScheduledFuture<?> dragonBloodSchedule;
|
private ScheduledFuture<?> dragonBloodSchedule;
|
||||||
private ScheduledFuture<?> hpDecreaseTask;
|
private ScheduledFuture<?> hpDecreaseTask;
|
||||||
@@ -889,7 +889,7 @@ public class Character extends AbstractCharacterObject {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean canDoor() {
|
public boolean canDoor() {
|
||||||
MapleDoor door = getPlayerDoor();
|
Door door = getPlayerDoor();
|
||||||
return door == null || (door.isActive() && door.getElapsedDeployTime() > 5000);
|
return door == null || (door.isActive() && door.getElapsedDeployTime() > 5000);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1523,7 +1523,7 @@ public class Character extends AbstractCharacterObject {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static void addPartyPlayerDoor(Character target) {
|
private static void addPartyPlayerDoor(Character target) {
|
||||||
MapleDoor targetDoor = target.getPlayerDoor();
|
Door targetDoor = target.getPlayerDoor();
|
||||||
if (targetDoor != null) {
|
if (targetDoor != null) {
|
||||||
target.applyPartyDoor(targetDoor, true);
|
target.applyPartyDoor(targetDoor, true);
|
||||||
}
|
}
|
||||||
@@ -1540,18 +1540,18 @@ public class Character extends AbstractCharacterObject {
|
|||||||
addPartyPlayerDoor(target);
|
addPartyPlayerDoor(target);
|
||||||
}
|
}
|
||||||
|
|
||||||
Map<Integer, MapleDoor> partyDoors = null;
|
Map<Integer, Door> partyDoors = null;
|
||||||
if (!partyMembers.isEmpty()) {
|
if (!partyMembers.isEmpty()) {
|
||||||
partyDoors = party.getDoors();
|
partyDoors = party.getDoors();
|
||||||
|
|
||||||
for (Character pchr : partyMembers) {
|
for (Character pchr : partyMembers) {
|
||||||
MapleDoor door = partyDoors.get(pchr.getId());
|
Door door = partyDoors.get(pchr.getId());
|
||||||
if (door != null) {
|
if (door != null) {
|
||||||
door.updateDoorPortal(pchr);
|
door.updateDoorPortal(pchr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (MapleDoor door : partyDoors.values()) {
|
for (Door door : partyDoors.values()) {
|
||||||
for (Character pchar : partyMembers) {
|
for (Character pchar : partyMembers) {
|
||||||
MapleDoorObject mdo = door.getTownDoor();
|
MapleDoorObject mdo = door.getTownDoor();
|
||||||
mdo.sendDestroyData(pchar.getClient(), true);
|
mdo.sendDestroyData(pchar.getClient(), true);
|
||||||
@@ -1560,8 +1560,8 @@ public class Character extends AbstractCharacterObject {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (partyLeaver != null) {
|
if (partyLeaver != null) {
|
||||||
Collection<MapleDoor> leaverDoors = partyLeaver.getDoors();
|
Collection<Door> leaverDoors = partyLeaver.getDoors();
|
||||||
for (MapleDoor door : leaverDoors) {
|
for (Door door : leaverDoors) {
|
||||||
for (Character pchar : partyMembers) {
|
for (Character pchar : partyMembers) {
|
||||||
MapleDoorObject mdo = door.getTownDoor();
|
MapleDoorObject mdo = door.getTownDoor();
|
||||||
mdo.sendDestroyData(pchar.getClient(), true);
|
mdo.sendDestroyData(pchar.getClient(), true);
|
||||||
@@ -1572,7 +1572,7 @@ public class Character extends AbstractCharacterObject {
|
|||||||
|
|
||||||
List<Integer> histMembers = party.getMembersSortedByHistory();
|
List<Integer> histMembers = party.getMembersSortedByHistory();
|
||||||
for (Integer chrid : histMembers) {
|
for (Integer chrid : histMembers) {
|
||||||
MapleDoor door = partyDoors.get(chrid);
|
Door door = partyDoors.get(chrid);
|
||||||
|
|
||||||
if (door != null) {
|
if (door != null) {
|
||||||
for (Character pchar : partyMembers) {
|
for (Character pchar : partyMembers) {
|
||||||
@@ -1585,23 +1585,23 @@ public class Character extends AbstractCharacterObject {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (partyLeaver != null) {
|
if (partyLeaver != null) {
|
||||||
Collection<MapleDoor> leaverDoors = partyLeaver.getDoors();
|
Collection<Door> leaverDoors = partyLeaver.getDoors();
|
||||||
|
|
||||||
if (partyDoors != null) {
|
if (partyDoors != null) {
|
||||||
for (MapleDoor door : partyDoors.values()) {
|
for (Door door : partyDoors.values()) {
|
||||||
MapleDoorObject mdo = door.getTownDoor();
|
MapleDoorObject mdo = door.getTownDoor();
|
||||||
mdo.sendDestroyData(partyLeaver.getClient(), true);
|
mdo.sendDestroyData(partyLeaver.getClient(), true);
|
||||||
partyLeaver.removeVisibleMapObject(mdo);
|
partyLeaver.removeVisibleMapObject(mdo);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (MapleDoor door : leaverDoors) {
|
for (Door door : leaverDoors) {
|
||||||
MapleDoorObject mdo = door.getTownDoor();
|
MapleDoorObject mdo = door.getTownDoor();
|
||||||
mdo.sendDestroyData(partyLeaver.getClient(), true);
|
mdo.sendDestroyData(partyLeaver.getClient(), true);
|
||||||
partyLeaver.removeVisibleMapObject(mdo);
|
partyLeaver.removeVisibleMapObject(mdo);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (MapleDoor door : leaverDoors) {
|
for (Door door : leaverDoors) {
|
||||||
door.updateDoorPortal(partyLeaver);
|
door.updateDoorPortal(partyLeaver);
|
||||||
|
|
||||||
MapleDoorObject mdo = door.getTownDoor();
|
MapleDoorObject mdo = door.getTownDoor();
|
||||||
@@ -3775,7 +3775,7 @@ public class Character extends AbstractCharacterObject {
|
|||||||
effLock.lock();
|
effLock.lock();
|
||||||
try {
|
try {
|
||||||
if (!hasBuffFromSourceid(Priest.MYSTIC_DOOR)) {
|
if (!hasBuffFromSourceid(Priest.MYSTIC_DOOR)) {
|
||||||
MapleDoor.attemptRemoveDoor(this);
|
Door.attemptRemoveDoor(this);
|
||||||
}
|
}
|
||||||
} finally {
|
} finally {
|
||||||
effLock.unlock();
|
effLock.unlock();
|
||||||
@@ -4672,16 +4672,16 @@ public class Character extends AbstractCharacterObject {
|
|||||||
return dojoStage;
|
return dojoStage;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Collection<MapleDoor> getDoors() {
|
public Collection<Door> getDoors() {
|
||||||
prtLock.lock();
|
prtLock.lock();
|
||||||
try {
|
try {
|
||||||
return (party != null ? Collections.unmodifiableCollection(party.getDoors().values()) : (pdoor != null ? Collections.singleton(pdoor) : new LinkedHashSet<MapleDoor>()));
|
return (party != null ? Collections.unmodifiableCollection(party.getDoors().values()) : (pdoor != null ? Collections.singleton(pdoor) : new LinkedHashSet<Door>()));
|
||||||
} finally {
|
} finally {
|
||||||
prtLock.unlock();
|
prtLock.unlock();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public MapleDoor getPlayerDoor() {
|
public Door getPlayerDoor() {
|
||||||
prtLock.lock();
|
prtLock.lock();
|
||||||
try {
|
try {
|
||||||
return pdoor;
|
return pdoor;
|
||||||
@@ -4690,8 +4690,8 @@ public class Character extends AbstractCharacterObject {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public MapleDoor getMainTownDoor() {
|
public Door getMainTownDoor() {
|
||||||
for (MapleDoor door : getDoors()) {
|
for (Door door : getDoors()) {
|
||||||
if (door.getTownPortal().getId() == 0x80) {
|
if (door.getTownPortal().getId() == 0x80) {
|
||||||
return door;
|
return door;
|
||||||
}
|
}
|
||||||
@@ -4700,7 +4700,7 @@ public class Character extends AbstractCharacterObject {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void applyPartyDoor(MapleDoor door, boolean partyUpdate) {
|
public void applyPartyDoor(Door door, boolean partyUpdate) {
|
||||||
Party chrParty;
|
Party chrParty;
|
||||||
prtLock.lock();
|
prtLock.lock();
|
||||||
try {
|
try {
|
||||||
@@ -4719,8 +4719,8 @@ public class Character extends AbstractCharacterObject {
|
|||||||
silentPartyUpdateInternal(chrParty);
|
silentPartyUpdateInternal(chrParty);
|
||||||
}
|
}
|
||||||
|
|
||||||
public MapleDoor removePartyDoor(boolean partyUpdate) {
|
public Door removePartyDoor(boolean partyUpdate) {
|
||||||
MapleDoor ret = null;
|
Door ret = null;
|
||||||
Party chrParty;
|
Party chrParty;
|
||||||
|
|
||||||
prtLock.lock();
|
prtLock.lock();
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ import net.server.audit.locks.factory.MonitoredReentrantLockFactory;
|
|||||||
import net.server.coordinator.matchchecker.MatchCheckerCoordinator;
|
import net.server.coordinator.matchchecker.MatchCheckerCoordinator;
|
||||||
import net.server.coordinator.matchchecker.MatchCheckerListenerFactory.MatchCheckerType;
|
import net.server.coordinator.matchchecker.MatchCheckerListenerFactory.MatchCheckerType;
|
||||||
import scripting.event.EventInstanceManager;
|
import scripting.event.EventInstanceManager;
|
||||||
import server.maps.MapleDoor;
|
import server.maps.Door;
|
||||||
import server.maps.MapleMap;
|
import server.maps.MapleMap;
|
||||||
import server.partyquest.MonsterCarnival;
|
import server.partyquest.MonsterCarnival;
|
||||||
import tools.PacketCreator;
|
import tools.PacketCreator;
|
||||||
@@ -50,7 +50,7 @@ public class Party {
|
|||||||
private final Map<Integer, Integer> histMembers = new HashMap<>();
|
private final Map<Integer, Integer> histMembers = new HashMap<>();
|
||||||
private int nextEntry = 0;
|
private int nextEntry = 0;
|
||||||
|
|
||||||
private final Map<Integer, MapleDoor> doors = new HashMap<>();
|
private final Map<Integer, Door> doors = new HashMap<>();
|
||||||
|
|
||||||
private MonitoredReentrantLock lock = MonitoredReentrantLockFactory.createLock(MonitoredLockType.PARTY, true);
|
private MonitoredReentrantLock lock = MonitoredReentrantLockFactory.createLock(MonitoredLockType.PARTY, true);
|
||||||
|
|
||||||
@@ -234,7 +234,7 @@ public class Party {
|
|||||||
return slot;
|
return slot;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addDoor(Integer owner, MapleDoor door) {
|
public void addDoor(Integer owner, Door door) {
|
||||||
lock.lock();
|
lock.lock();
|
||||||
try {
|
try {
|
||||||
this.doors.put(owner, door);
|
this.doors.put(owner, door);
|
||||||
@@ -252,7 +252,7 @@ public class Party {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public Map<Integer, MapleDoor> getDoors() {
|
public Map<Integer, Door> getDoors() {
|
||||||
lock.lock();
|
lock.lock();
|
||||||
try {
|
try {
|
||||||
return Collections.unmodifiableMap(doors);
|
return Collections.unmodifiableMap(doors);
|
||||||
|
|||||||
@@ -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
|
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);
|
Point doorPosition = new Point(applyto.getPosition().x, y);
|
||||||
MapleDoor door = new MapleDoor(applyto, doorPosition);
|
Door door = new Door(applyto, doorPosition);
|
||||||
|
|
||||||
if (door.getOwnerId() >= 0) {
|
if (door.getOwnerId() >= 0) {
|
||||||
applyto.applyPartyDoor(door, false);
|
applyto.applyPartyDoor(door, false);
|
||||||
|
|||||||
@@ -31,38 +31,37 @@ import java.awt.*;
|
|||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author Matze
|
* @author Matze
|
||||||
* @author Ronan
|
* @author Ronan
|
||||||
*/
|
*/
|
||||||
public class MapleDoor {
|
public class Door {
|
||||||
private int ownerId;
|
private int ownerId;
|
||||||
private MapleMap town;
|
private MapleMap town;
|
||||||
private MaplePortal townPortal;
|
private MaplePortal townPortal;
|
||||||
private MapleMap target;
|
private final MapleMap target;
|
||||||
private Pair<String, Integer> posStatus = null;
|
private Pair<String, Integer> posStatus = null;
|
||||||
private long deployTime;
|
private long deployTime;
|
||||||
private boolean active;
|
private boolean active;
|
||||||
|
|
||||||
private MapleDoorObject townDoor;
|
private MapleDoorObject townDoor;
|
||||||
private MapleDoorObject areaDoor;
|
private MapleDoorObject areaDoor;
|
||||||
|
|
||||||
public MapleDoor(Character owner, Point targetPosition) {
|
public Door(Character owner, Point targetPosition) {
|
||||||
this.ownerId = owner.getId();
|
this.ownerId = owner.getId();
|
||||||
this.target = owner.getMap();
|
this.target = owner.getMap();
|
||||||
|
|
||||||
if(target.canDeployDoor(targetPosition)) {
|
if (target.canDeployDoor(targetPosition)) {
|
||||||
if(YamlConfig.config.server.USE_ENFORCE_MDOOR_POSITION) {
|
if (YamlConfig.config.server.USE_ENFORCE_MDOOR_POSITION) {
|
||||||
posStatus = target.getDoorPositionStatus(targetPosition);
|
posStatus = target.getDoorPositionStatus(targetPosition);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(posStatus == null) {
|
if (posStatus == null) {
|
||||||
this.town = this.target.getReturnMap();
|
this.town = this.target.getReturnMap();
|
||||||
this.townPortal = getTownDoorPortal(owner.getDoorSlot());
|
this.townPortal = getTownDoorPortal(owner.getDoorSlot());
|
||||||
this.deployTime = System.currentTimeMillis();
|
this.deployTime = System.currentTimeMillis();
|
||||||
this.active = true;
|
this.active = true;
|
||||||
|
|
||||||
if(townPortal != null) {
|
if (townPortal != null) {
|
||||||
this.areaDoor = new MapleDoorObject(ownerId, town, target, townPortal.getId(), targetPosition, townPortal.getPosition());
|
this.areaDoor = new MapleDoorObject(ownerId, town, target, townPortal.getId(), targetPosition, townPortal.getPosition());
|
||||||
this.townDoor = new MapleDoorObject(ownerId, target, town, -1, townPortal.getPosition(), targetPosition);
|
this.townDoor = new MapleDoorObject(ownerId, target, town, -1, townPortal.getPosition(), targetPosition);
|
||||||
|
|
||||||
@@ -78,17 +77,17 @@ public class MapleDoor {
|
|||||||
this.ownerId = -2;
|
this.ownerId = -2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updateDoorPortal(Character owner) {
|
public void updateDoorPortal(Character owner) {
|
||||||
int slot = owner.fetchDoorSlot();
|
int slot = owner.fetchDoorSlot();
|
||||||
|
|
||||||
MaplePortal nextTownPortal = getTownDoorPortal(slot);
|
MaplePortal nextTownPortal = getTownDoorPortal(slot);
|
||||||
if(nextTownPortal != null) {
|
if (nextTownPortal != null) {
|
||||||
townPortal = nextTownPortal;
|
townPortal = nextTownPortal;
|
||||||
areaDoor.update(nextTownPortal.getId(), nextTownPortal.getPosition());
|
areaDoor.update(nextTownPortal.getId(), nextTownPortal.getPosition());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void broadcastRemoveDoor(Character owner) {
|
private void broadcastRemoveDoor(Character owner) {
|
||||||
MapleDoorObject areaDoor = this.getAreaDoor();
|
MapleDoorObject areaDoor = this.getAreaDoor();
|
||||||
MapleDoorObject townDoor = this.getTownDoor();
|
MapleDoorObject townDoor = this.getTownDoor();
|
||||||
@@ -98,7 +97,7 @@ public class MapleDoor {
|
|||||||
|
|
||||||
Collection<Character> targetChars = target.getCharacters();
|
Collection<Character> targetChars = target.getCharacters();
|
||||||
Collection<Character> townChars = town.getCharacters();
|
Collection<Character> townChars = town.getCharacters();
|
||||||
|
|
||||||
target.removeMapObject(areaDoor);
|
target.removeMapObject(areaDoor);
|
||||||
town.removeMapObject(townDoor);
|
town.removeMapObject(townDoor);
|
||||||
|
|
||||||
@@ -111,12 +110,12 @@ public class MapleDoor {
|
|||||||
townDoor.sendDestroyData(chr.getClient());
|
townDoor.sendDestroyData(chr.getClient());
|
||||||
chr.removeVisibleMapObject(townDoor);
|
chr.removeVisibleMapObject(townDoor);
|
||||||
}
|
}
|
||||||
|
|
||||||
owner.removePartyDoor(false);
|
owner.removePartyDoor(false);
|
||||||
|
|
||||||
if (this.getTownPortal().getId() == 0x80) {
|
if (this.getTownPortal().getId() == 0x80) {
|
||||||
for (Character chr : townChars) {
|
for (Character chr : townChars) {
|
||||||
MapleDoor door = chr.getMainTownDoor();
|
Door door = chr.getMainTownDoor();
|
||||||
if (door != null) {
|
if (door != null) {
|
||||||
townDoor.sendSpawnData(chr.getClient());
|
townDoor.sendSpawnData(chr.getClient());
|
||||||
chr.addVisibleMapObject(townDoor);
|
chr.addVisibleMapObject(townDoor);
|
||||||
@@ -124,14 +123,14 @@ public class MapleDoor {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void attemptRemoveDoor(final Character owner) {
|
public static void attemptRemoveDoor(final Character owner) {
|
||||||
final MapleDoor destroyDoor = owner.getPlayerDoor();
|
final Door destroyDoor = owner.getPlayerDoor();
|
||||||
if (destroyDoor != null && destroyDoor.dispose()) {
|
if (destroyDoor != null && destroyDoor.dispose()) {
|
||||||
long effectTimeLeft = 3000 - destroyDoor.getElapsedDeployTime(); // portal deployment effect duration
|
long effectTimeLeft = 3000 - destroyDoor.getElapsedDeployTime(); // portal deployment effect duration
|
||||||
if (effectTimeLeft > 0) {
|
if (effectTimeLeft > 0) {
|
||||||
MapleMap town = destroyDoor.getTown();
|
MapleMap town = destroyDoor.getTown();
|
||||||
|
|
||||||
OverallService service = (OverallService) town.getChannelServer().getServiceAccess(ChannelServices.OVERALL);
|
OverallService service = (OverallService) town.getChannelServer().getServiceAccess(ChannelServices.OVERALL);
|
||||||
service.registerOverallAction(town.getId(), () -> {
|
service.registerOverallAction(town.getId(), () -> {
|
||||||
destroyDoor.broadcastRemoveDoor(owner); // thanks BHB88 for noticing doors crashing players when instantly cancelling buff
|
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) {
|
private MaplePortal getTownDoorPortal(int doorid) {
|
||||||
return town.getDoorPortal(doorid);
|
return town.getDoorPortal(doorid);
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getOwnerId() {
|
public int getOwnerId() {
|
||||||
return ownerId;
|
return ownerId;
|
||||||
}
|
}
|
||||||
@@ -153,11 +152,11 @@ public class MapleDoor {
|
|||||||
public MapleDoorObject getTownDoor() {
|
public MapleDoorObject getTownDoor() {
|
||||||
return townDoor;
|
return townDoor;
|
||||||
}
|
}
|
||||||
|
|
||||||
public MapleDoorObject getAreaDoor() {
|
public MapleDoorObject getAreaDoor() {
|
||||||
return areaDoor;
|
return areaDoor;
|
||||||
}
|
}
|
||||||
|
|
||||||
public MapleMap getTown() {
|
public MapleMap getTown() {
|
||||||
return town;
|
return town;
|
||||||
}
|
}
|
||||||
@@ -173,11 +172,11 @@ public class MapleDoor {
|
|||||||
public Pair<String, Integer> getDoorStatus() {
|
public Pair<String, Integer> getDoorStatus() {
|
||||||
return posStatus;
|
return posStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
public long getElapsedDeployTime() {
|
public long getElapsedDeployTime() {
|
||||||
return System.currentTimeMillis() - deployTime;
|
return System.currentTimeMillis() - deployTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean dispose() {
|
private boolean dispose() {
|
||||||
if (active) {
|
if (active) {
|
||||||
active = false;
|
active = false;
|
||||||
@@ -186,7 +185,7 @@ public class MapleDoor {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isActive() {
|
public boolean isActive() {
|
||||||
return active;
|
return active;
|
||||||
}
|
}
|
||||||
@@ -3687,9 +3687,9 @@ public class PacketCreator {
|
|||||||
p.writeByte(8);
|
p.writeByte(8);
|
||||||
p.writeInt(party.getId());
|
p.writeInt(party.getId());
|
||||||
|
|
||||||
Map<Integer, MapleDoor> partyDoors = party.getDoors();
|
Map<Integer, Door> partyDoors = party.getDoors();
|
||||||
if (partyDoors.size() > 0) {
|
if (partyDoors.size() > 0) {
|
||||||
MapleDoor door = partyDoors.get(partycharid);
|
Door door = partyDoors.get(partycharid);
|
||||||
|
|
||||||
if (door != null) {
|
if (door != null) {
|
||||||
MapleDoorObject mdo = door.getAreaDoor();
|
MapleDoorObject mdo = door.getAreaDoor();
|
||||||
@@ -3797,11 +3797,11 @@ public class PacketCreator {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Map<Integer, MapleDoor> partyDoors = party.getDoors();
|
Map<Integer, Door> partyDoors = party.getDoors();
|
||||||
for (PartyCharacter partychar : partymembers) {
|
for (PartyCharacter partychar : partymembers) {
|
||||||
if (partychar.getChannel() == forchannel && !leaving) {
|
if (partychar.getChannel() == forchannel && !leaving) {
|
||||||
if (partyDoors.size() > 0) {
|
if (partyDoors.size() > 0) {
|
||||||
MapleDoor door = partyDoors.get(partychar.getId());
|
Door door = partyDoors.get(partychar.getId());
|
||||||
if (door != null) {
|
if (door != null) {
|
||||||
MapleDoorObject mdo = door.getTownDoor();
|
MapleDoorObject mdo = door.getTownDoor();
|
||||||
p.writeInt(mdo.getTown().getId());
|
p.writeInt(mdo.getTown().getId());
|
||||||
|
|||||||
Reference in New Issue
Block a user