All packet creating methods now create Packet instead of byte[]
This commit got way too big... - Remove deprecated methods for sending packets - Favor OutPacket & Packet over MaplePacketLittleEndianWriter, LittleEndianWriter, and byte array - Split up some packet creating methods into separate classes
This commit is contained in:
@@ -34,6 +34,7 @@ import client.status.MonsterStatusEffect;
|
||||
import config.YamlConfig;
|
||||
import constants.game.GameConstants;
|
||||
import constants.inventory.ItemConstants;
|
||||
import net.packet.Packet;
|
||||
import net.server.Server;
|
||||
import net.server.audit.locks.MonitoredLockType;
|
||||
import net.server.audit.locks.MonitoredReadLock;
|
||||
@@ -74,6 +75,7 @@ import java.util.Map.Entry;
|
||||
import java.util.concurrent.ScheduledFuture;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import java.util.concurrent.locks.Lock;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
public class MapleMap {
|
||||
|
||||
@@ -199,28 +201,21 @@ public class MapleMap {
|
||||
public int getWorld() {
|
||||
return world;
|
||||
}
|
||||
|
||||
public void broadcastMessage(MapleCharacter source, final byte[] packet) {
|
||||
chrRLock.lock();
|
||||
try {
|
||||
for (MapleCharacter chr : characters) {
|
||||
if (chr != source) {
|
||||
chr.getClient().announce(packet);
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
chrRLock.unlock();
|
||||
}
|
||||
|
||||
public void broadcastPacket(MapleCharacter source, Packet packet) {
|
||||
broadcastPacket(packet, chr -> chr != source);
|
||||
}
|
||||
|
||||
public void broadcastGMMessage(MapleCharacter source, final byte[] packet) {
|
||||
public void broadcastGMPacket(MapleCharacter source, Packet packet) {
|
||||
broadcastPacket(packet, chr -> chr != source && chr.gmLevel() >= source.gmLevel());
|
||||
}
|
||||
|
||||
private void broadcastPacket(Packet packet, Predicate<MapleCharacter> chrFilter) {
|
||||
chrRLock.lock();
|
||||
try {
|
||||
for (MapleCharacter chr : characters) {
|
||||
if (chr != source && (chr.gmLevel() >= source.gmLevel())) {
|
||||
chr.getClient().announce(packet);
|
||||
}
|
||||
}
|
||||
characters.stream()
|
||||
.filter(chrFilter)
|
||||
.forEach(chr -> chr.sendPacket(packet));
|
||||
} finally {
|
||||
chrRLock.unlock();
|
||||
}
|
||||
@@ -230,9 +225,8 @@ public class MapleMap {
|
||||
this.dropsOn = !dropsOn;
|
||||
}
|
||||
|
||||
|
||||
private static double getRangedDistance() {
|
||||
return(YamlConfig.config.server.USE_MAXRANGE ? Double.POSITIVE_INFINITY : 722500);
|
||||
return YamlConfig.config.server.USE_MAXRANGE ? Double.POSITIVE_INFINITY : 722500;
|
||||
}
|
||||
|
||||
public List<MapleMapObject> getMapObjectsInRect(Rectangle box, List<MapleMapObjectType> types) {
|
||||
@@ -1018,7 +1012,7 @@ public class MapleMap {
|
||||
return count;
|
||||
}
|
||||
|
||||
public void pickItemDrop(byte[] pickupPacket, MapleMapItem mdrop) { // mdrop must be already locked and not-pickedup checked at this point
|
||||
public void pickItemDrop(Packet pickupPacket, MapleMapItem mdrop) { // mdrop must be already locked and not-pickedup checked at this point
|
||||
broadcastMessage(pickupPacket, mdrop.getPosition());
|
||||
|
||||
droppedItemCount.decrementAndGet();
|
||||
@@ -1040,25 +1034,25 @@ public class MapleMap {
|
||||
|
||||
mdrop.setPartyOwnerId(partyid);
|
||||
|
||||
byte[] removePacket = PacketCreator.silentRemoveItemFromMap(mdrop.getObjectId());
|
||||
byte[] updatePacket = PacketCreator.updateMapItemObject(mdrop, partyLeaver == null);
|
||||
Packet removePacket = PacketCreator.silentRemoveItemFromMap(mdrop.getObjectId());
|
||||
Packet updatePacket = PacketCreator.updateMapItemObject(mdrop, partyLeaver == null);
|
||||
|
||||
for (MapleCharacter mc : partyMembers) {
|
||||
if (this.equals(mc.getMap())) {
|
||||
mc.announce(removePacket);
|
||||
mc.sendPacket(removePacket);
|
||||
|
||||
if (mc.needQuestItem(mdrop.getQuest(), mdrop.getItemId())) {
|
||||
mc.announce(updatePacket);
|
||||
mc.sendPacket(updatePacket);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (partyLeaver != null) {
|
||||
if (this.equals(partyLeaver.getMap())) {
|
||||
partyLeaver.announce(removePacket);
|
||||
partyLeaver.sendPacket(removePacket);
|
||||
|
||||
if (partyLeaver.needQuestItem(mdrop.getQuest(), mdrop.getItemId())) {
|
||||
partyLeaver.announce(PacketCreator.updateMapItemObject(mdrop, true));
|
||||
partyLeaver.sendPacket(PacketCreator.updateMapItemObject(mdrop, true));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1081,15 +1075,15 @@ public class MapleMap {
|
||||
continue;
|
||||
}
|
||||
|
||||
byte[] removePacket = PacketCreator.silentRemoveItemFromMap(mdrop.getObjectId());
|
||||
byte[] updatePacket = PacketCreator.updateMapItemObject(mdrop, true);
|
||||
Packet removePacket = PacketCreator.silentRemoveItemFromMap(mdrop.getObjectId());
|
||||
Packet updatePacket = PacketCreator.updateMapItemObject(mdrop, true);
|
||||
|
||||
if (newcomer != null) {
|
||||
if (this.equals(newcomer.getMap())) {
|
||||
newcomer.announce(removePacket);
|
||||
newcomer.sendPacket(removePacket);
|
||||
|
||||
if (newcomer.needQuestItem(mdrop.getQuest(), mdrop.getItemId())) {
|
||||
newcomer.announce(updatePacket);
|
||||
newcomer.sendPacket(updatePacket);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1108,7 +1102,7 @@ public class MapleMap {
|
||||
if (chr1.needQuestItem(questid, idrop.getItemId())) {
|
||||
mdrop.lockItem();
|
||||
try {
|
||||
c.announce(PacketCreator.dropItemFromMapObject(chr1, mdrop, dropper.getPosition(), dropPos, (byte) 1));
|
||||
c.sendPacket(PacketCreator.dropItemFromMapObject(chr1, mdrop, dropper.getPosition(), dropPos, (byte) 1));
|
||||
} finally {
|
||||
mdrop.unlockItem();
|
||||
}
|
||||
@@ -1127,7 +1121,7 @@ public class MapleMap {
|
||||
spawnAndAddRangedMapObject(mdrop, c -> {
|
||||
mdrop.lockItem();
|
||||
try {
|
||||
c.announce(PacketCreator.dropItemFromMapObject(c.getPlayer(), mdrop, dropper.getPosition(), droppos, (byte) 1));
|
||||
c.sendPacket(PacketCreator.dropItemFromMapObject(c.getPlayer(), mdrop, dropper.getPosition(), droppos, (byte) 1));
|
||||
} finally {
|
||||
mdrop.unlockItem();
|
||||
}
|
||||
@@ -1407,8 +1401,8 @@ public class MapleMap {
|
||||
MapleCharacter character = (MapleCharacter) mmo;
|
||||
if (character.isAlive()) {
|
||||
MapleStatEffect statEffect = mii.getItemEffect(buff);
|
||||
character.getClient().announce(PacketCreator.showOwnBuffEffect(buff, 1));
|
||||
broadcastMessage(character, PacketCreator.showBuffeffect(character.getId(), buff, 1), false);
|
||||
character.sendPacket(PacketCreator.showOwnBuffEffect(buff, 1));
|
||||
broadcastMessage(character, PacketCreator.showBuffEffect(character.getId(), buff, 1), false);
|
||||
statEffect.applyTo(character);
|
||||
}
|
||||
}
|
||||
@@ -1867,7 +1861,7 @@ public class MapleMap {
|
||||
getEventInstance().registerMonster(monster);
|
||||
}
|
||||
|
||||
spawnAndAddRangedMapObject(monster, c -> c.announce(PacketCreator.spawnMonster(monster, false)));
|
||||
spawnAndAddRangedMapObject(monster, c -> c.sendPacket(PacketCreator.spawnMonster(monster, false)));
|
||||
|
||||
monster.aggroUpdateController();
|
||||
updateBossSpawn(monster);
|
||||
@@ -1954,7 +1948,7 @@ public class MapleMap {
|
||||
getEventInstance().registerMonster(monster);
|
||||
}
|
||||
|
||||
spawnAndAddRangedMapObject(monster, c -> c.announce(PacketCreator.spawnMonster(monster, true)), null);
|
||||
spawnAndAddRangedMapObject(monster, c -> c.sendPacket(PacketCreator.spawnMonster(monster, true)), null);
|
||||
|
||||
monster.aggroUpdateController();
|
||||
updateBossSpawn(monster);
|
||||
@@ -2015,7 +2009,7 @@ public class MapleMap {
|
||||
monster.setPosition(spos);
|
||||
monster.setSpawnEffect(effect);
|
||||
|
||||
spawnAndAddRangedMapObject(monster, c -> c.announce(PacketCreator.spawnMonster(monster, true, effect)));
|
||||
spawnAndAddRangedMapObject(monster, c -> c.sendPacket(PacketCreator.spawnMonster(monster, true, effect)));
|
||||
|
||||
monster.aggroUpdateController();
|
||||
updateBossSpawn(monster);
|
||||
@@ -2028,7 +2022,7 @@ public class MapleMap {
|
||||
public void spawnFakeMonster(final MapleMonster monster) {
|
||||
monster.setMap(this);
|
||||
monster.setFake(true);
|
||||
spawnAndAddRangedMapObject(monster, c -> c.announce(PacketCreator.spawnFakeMonster(monster, 0)));
|
||||
spawnAndAddRangedMapObject(monster, c -> c.sendPacket(PacketCreator.spawnFakeMonster(monster, 0)));
|
||||
|
||||
spawnedMonstersOnMap.incrementAndGet();
|
||||
addSelfDestructive(monster);
|
||||
@@ -2043,7 +2037,7 @@ public class MapleMap {
|
||||
|
||||
public void spawnReactor(final MapleReactor reactor) {
|
||||
reactor.setMap(this);
|
||||
spawnAndAddRangedMapObject(reactor, c -> c.announce(reactor.makeSpawnData()));
|
||||
spawnAndAddRangedMapObject(reactor, c -> c.sendPacket(reactor.makeSpawnData()));
|
||||
}
|
||||
|
||||
public void spawnDoor(final MapleDoorObject door) {
|
||||
@@ -2069,7 +2063,7 @@ public class MapleMap {
|
||||
public void spawnSummon(final MapleSummon summon) {
|
||||
spawnAndAddRangedMapObject(summon, c -> {
|
||||
if (summon != null) {
|
||||
c.announce(PacketCreator.spawnSummon(summon, true));
|
||||
c.sendPacket(PacketCreator.spawnSummon(summon, true));
|
||||
}
|
||||
}, null);
|
||||
}
|
||||
@@ -2148,7 +2142,7 @@ public class MapleMap {
|
||||
spawnAndAddRangedMapObject(mdrop, c -> {
|
||||
mdrop.lockItem();
|
||||
try {
|
||||
c.announce(PacketCreator.dropItemFromMapObject(c.getPlayer(), mdrop, dropper.getPosition(), droppos, (byte) 1));
|
||||
c.sendPacket(PacketCreator.dropItemFromMapObject(c.getPlayer(), mdrop, dropper.getPosition(), droppos, (byte) 1));
|
||||
} finally {
|
||||
mdrop.unlockItem();
|
||||
}
|
||||
@@ -2402,7 +2396,7 @@ public class MapleMap {
|
||||
|
||||
if (mapid == 200090060) { // To Rien
|
||||
int travelTime = getWorldServer().getTransportationTime(1 * 60 * 1000);
|
||||
chr.announce(PacketCreator.getClock(travelTime / 1000));
|
||||
chr.sendPacket(PacketCreator.getClock(travelTime / 1000));
|
||||
TimerManager.getInstance().schedule(() -> {
|
||||
if (chr.getMapId() == 200090060) {
|
||||
chr.changeMap(140020300, 0);
|
||||
@@ -2410,7 +2404,7 @@ public class MapleMap {
|
||||
}, travelTime);
|
||||
} else if (mapid == 200090070) { // To Lith Harbor
|
||||
int travelTime = getWorldServer().getTransportationTime(1 * 60 * 1000);
|
||||
chr.announce(PacketCreator.getClock(travelTime / 1000));
|
||||
chr.sendPacket(PacketCreator.getClock(travelTime / 1000));
|
||||
TimerManager.getInstance().schedule(() -> {
|
||||
if (chr.getMapId() == 200090070) {
|
||||
chr.changeMap(104000000, 3);
|
||||
@@ -2418,7 +2412,7 @@ public class MapleMap {
|
||||
}, travelTime);
|
||||
} else if (mapid == 200090030) { // To Ereve (SkyFerry)
|
||||
int travelTime = getWorldServer().getTransportationTime(2 * 60 * 1000);
|
||||
chr.announce(PacketCreator.getClock(travelTime / 1000));
|
||||
chr.sendPacket(PacketCreator.getClock(travelTime / 1000));
|
||||
TimerManager.getInstance().schedule(() -> {
|
||||
if (chr.getMapId() == 200090030) {
|
||||
chr.changeMap(130000210, 0);
|
||||
@@ -2426,7 +2420,7 @@ public class MapleMap {
|
||||
}, travelTime);
|
||||
} else if (mapid == 200090031) { // To Victoria Island (SkyFerry)
|
||||
int travelTime = getWorldServer().getTransportationTime(2 * 60 * 1000);
|
||||
chr.announce(PacketCreator.getClock(travelTime / 1000));
|
||||
chr.sendPacket(PacketCreator.getClock(travelTime / 1000));
|
||||
TimerManager.getInstance().schedule(() -> {
|
||||
if (chr.getMapId() == 200090031) {
|
||||
chr.changeMap(101000400, 0);
|
||||
@@ -2434,7 +2428,7 @@ public class MapleMap {
|
||||
}, travelTime);
|
||||
} else if (mapid == 200090021) { // To Orbis (SkyFerry)
|
||||
int travelTime = getWorldServer().getTransportationTime(8 * 60 * 1000);
|
||||
chr.announce(PacketCreator.getClock(travelTime / 1000));
|
||||
chr.sendPacket(PacketCreator.getClock(travelTime / 1000));
|
||||
TimerManager.getInstance().schedule(() -> {
|
||||
if (chr.getMapId() == 200090021) {
|
||||
chr.changeMap(200000161, 0);
|
||||
@@ -2442,7 +2436,7 @@ public class MapleMap {
|
||||
}, travelTime);
|
||||
} else if (mapid == 200090020) { // To Ereve From Orbis (SkyFerry)
|
||||
int travelTime = getWorldServer().getTransportationTime(8 * 60 * 1000);
|
||||
chr.announce(PacketCreator.getClock(travelTime / 1000));
|
||||
chr.sendPacket(PacketCreator.getClock(travelTime / 1000));
|
||||
TimerManager.getInstance().schedule(() -> {
|
||||
if (chr.getMapId() == 200090020) {
|
||||
chr.changeMap(130000210, 0);
|
||||
@@ -2455,14 +2449,14 @@ public class MapleMap {
|
||||
}
|
||||
} else if (GameConstants.isAriantColiseumArena(mapid)) {
|
||||
int pqTimer = (10 * 60 * 1000);
|
||||
chr.announce(PacketCreator.getClock(pqTimer / 1000));
|
||||
chr.sendPacket(PacketCreator.getClock(pqTimer / 1000));
|
||||
}
|
||||
|
||||
MaplePet[] pets = chr.getPets();
|
||||
for (MaplePet pet : pets) {
|
||||
if (pet != null) {
|
||||
pet.setPos(getGroundBelow(chr.getPosition()));
|
||||
chr.announce(PacketCreator.showPet(chr, pet, false, false));
|
||||
chr.sendPacket(PacketCreator.showPet(chr, pet, false, false));
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
@@ -2470,7 +2464,7 @@ public class MapleMap {
|
||||
chr.commitExcludedItems(); // thanks OishiiKawaiiDesu for noticing pet item ignore registry erasing upon changing maps
|
||||
|
||||
if (chr.getMonsterCarnival() != null) {
|
||||
chr.getClient().announce(PacketCreator.getClock(chr.getMonsterCarnival().getTimeLeftSeconds()));
|
||||
chr.sendPacket(PacketCreator.getClock(chr.getMonsterCarnival().getTimeLeftSeconds()));
|
||||
if (isCPQMap()) {
|
||||
int team = -1;
|
||||
int oposition = -1;
|
||||
@@ -2482,7 +2476,7 @@ public class MapleMap {
|
||||
team = 1;
|
||||
oposition = 0;
|
||||
}
|
||||
chr.getClient().announce(PacketCreator.startMonsterCarnival(chr, team, oposition));
|
||||
chr.sendPacket(PacketCreator.startMonsterCarnival(chr, team, oposition));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2490,7 +2484,7 @@ public class MapleMap {
|
||||
|
||||
if (chr.getChalkboard() != null) {
|
||||
if (!GameConstants.isFreeMarketRoom(mapid)) {
|
||||
chr.announce(PacketCreator.useChalkboard(chr, false)); // update player's chalkboard when changing maps found thanks to Vcoc
|
||||
chr.sendPacket(PacketCreator.useChalkboard(chr, false)); // update player's chalkboard when changing maps found thanks to Vcoc
|
||||
} else {
|
||||
chr.setChalkboard(null);
|
||||
}
|
||||
@@ -2498,7 +2492,7 @@ public class MapleMap {
|
||||
|
||||
if (chr.isHidden()) {
|
||||
broadcastGMSpawnPlayerMapObjectMessage(chr, chr, true);
|
||||
chr.announce(PacketCreator.getGMEffect(0x10, (byte) 1));
|
||||
chr.sendPacket(PacketCreator.getGMEffect(0x10, (byte) 1));
|
||||
|
||||
List<Pair<MapleBuffStat, Integer>> dsstat = Collections.singletonList(new Pair<>(MapleBuffStat.DARKSIGHT, 0));
|
||||
broadcastGMMessage(chr, PacketCreator.giveForeignBuff(chr.getId(), dsstat), false);
|
||||
@@ -2512,11 +2506,11 @@ public class MapleMap {
|
||||
chr.getMap().getPortal("join00").setPortalStatus(false);
|
||||
}
|
||||
if (hasForcedEquip()) {
|
||||
chr.getClient().announce(PacketCreator.showForcedEquip(-1));
|
||||
chr.sendPacket(PacketCreator.showForcedEquip(-1));
|
||||
}
|
||||
if (specialEquip()) {
|
||||
chr.getClient().announce(PacketCreator.coconutScore(0, 0));
|
||||
chr.getClient().announce(PacketCreator.showForcedEquip(chr.getTeam()));
|
||||
chr.sendPacket(PacketCreator.coconutScore(0, 0));
|
||||
chr.sendPacket(PacketCreator.showForcedEquip(chr.getTeam()));
|
||||
}
|
||||
objectWLock.lock();
|
||||
try {
|
||||
@@ -2534,9 +2528,9 @@ public class MapleMap {
|
||||
dragon.setPosition(chr.getPosition());
|
||||
this.addMapObject(dragon);
|
||||
if (chr.isHidden()) {
|
||||
this.broadcastGMMessage(chr, PacketCreator.spawnDragon(dragon));
|
||||
this.broadcastGMPacket(chr, PacketCreator.spawnDragon(dragon));
|
||||
} else {
|
||||
this.broadcastMessage(chr, PacketCreator.spawnDragon(dragon));
|
||||
this.broadcastPacket(chr, PacketCreator.spawnDragon(dragon));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2550,34 +2544,34 @@ public class MapleMap {
|
||||
if (mapEffect != null) {
|
||||
mapEffect.sendStartData(chr.getClient());
|
||||
}
|
||||
chr.getClient().announce(PacketCreator.resetForcedStats());
|
||||
chr.sendPacket(PacketCreator.resetForcedStats());
|
||||
if (mapid == 914000200 || mapid == 914000210 || mapid == 914000220) {
|
||||
chr.getClient().announce(PacketCreator.aranGodlyStats());
|
||||
chr.sendPacket(PacketCreator.aranGodlyStats());
|
||||
}
|
||||
if (chr.getEventInstance() != null && chr.getEventInstance().isTimerStarted()) {
|
||||
chr.getClient().announce(PacketCreator.getClock((int) (chr.getEventInstance().getTimeLeft() / 1000)));
|
||||
chr.sendPacket(PacketCreator.getClock((int) (chr.getEventInstance().getTimeLeft() / 1000)));
|
||||
}
|
||||
if (chr.getFitness() != null && chr.getFitness().isTimerStarted()) {
|
||||
chr.getClient().announce(PacketCreator.getClock((int) (chr.getFitness().getTimeLeft() / 1000)));
|
||||
chr.sendPacket(PacketCreator.getClock((int) (chr.getFitness().getTimeLeft() / 1000)));
|
||||
}
|
||||
|
||||
if (chr.getOla() != null && chr.getOla().isTimerStarted()) {
|
||||
chr.getClient().announce(PacketCreator.getClock((int) (chr.getOla().getTimeLeft() / 1000)));
|
||||
chr.sendPacket(PacketCreator.getClock((int) (chr.getOla().getTimeLeft() / 1000)));
|
||||
}
|
||||
|
||||
if (mapid == 109060000) {
|
||||
chr.announce(PacketCreator.rollSnowBall(true, 0, null, null));
|
||||
chr.sendPacket(PacketCreator.rollSnowBall(true, 0, null, null));
|
||||
}
|
||||
|
||||
if (hasClock()) {
|
||||
Calendar cal = Calendar.getInstance();
|
||||
chr.getClient().announce((PacketCreator.getClockTime(cal.get(Calendar.HOUR_OF_DAY), cal.get(Calendar.MINUTE), cal.get(Calendar.SECOND))));
|
||||
chr.sendPacket(PacketCreator.getClockTime(cal.get(Calendar.HOUR_OF_DAY), cal.get(Calendar.MINUTE), cal.get(Calendar.SECOND)));
|
||||
}
|
||||
if (hasBoat() > 0) {
|
||||
if (hasBoat() == 1) {
|
||||
chr.getClient().announce((PacketCreator.boatPacket(true)));
|
||||
chr.sendPacket((PacketCreator.boatPacket(true)));
|
||||
} else {
|
||||
chr.getClient().announce(PacketCreator.boatPacket(false));
|
||||
chr.sendPacket(PacketCreator.boatPacket(false));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2715,18 +2709,18 @@ public class MapleMap {
|
||||
if (chr.getDragon() != null) {
|
||||
removeMapObject(chr.getDragon());
|
||||
if (chr.isHidden()) {
|
||||
this.broadcastGMMessage(chr, PacketCreator.removeDragon(chr.getId()));
|
||||
this.broadcastGMPacket(chr, PacketCreator.removeDragon(chr.getId()));
|
||||
} else {
|
||||
this.broadcastMessage(chr, PacketCreator.removeDragon(chr.getId()));
|
||||
this.broadcastPacket(chr, PacketCreator.removeDragon(chr.getId()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void broadcastMessage(final byte[] packet) {
|
||||
public void broadcastMessage(Packet packet) {
|
||||
broadcastMessage(null, packet, Double.POSITIVE_INFINITY, null);
|
||||
}
|
||||
|
||||
public void broadcastGMMessage(final byte[] packet) {
|
||||
public void broadcastGMMessage(Packet packet) {
|
||||
broadcastGMMessage(null, packet, Double.POSITIVE_INFINITY, null);
|
||||
}
|
||||
|
||||
@@ -2737,7 +2731,7 @@ public class MapleMap {
|
||||
* @param packet
|
||||
* @param repeatToSource
|
||||
*/
|
||||
public void broadcastMessage(MapleCharacter source, final byte[] packet, boolean repeatToSource) {
|
||||
public void broadcastMessage(MapleCharacter source, Packet packet, boolean repeatToSource) {
|
||||
broadcastMessage(repeatToSource ? null : source, packet, Double.POSITIVE_INFINITY, source.getPosition());
|
||||
}
|
||||
|
||||
@@ -2749,7 +2743,7 @@ public class MapleMap {
|
||||
* @param repeatToSource
|
||||
* @param ranged
|
||||
*/
|
||||
public void broadcastMessage(MapleCharacter source, final byte[] packet, boolean repeatToSource, boolean ranged) {
|
||||
public void broadcastMessage(MapleCharacter source, Packet packet, boolean repeatToSource, boolean ranged) {
|
||||
broadcastMessage(repeatToSource ? null : source, packet, ranged ? getRangedDistance() : Double.POSITIVE_INFINITY, source.getPosition());
|
||||
}
|
||||
|
||||
@@ -2759,7 +2753,7 @@ public class MapleMap {
|
||||
* @param packet
|
||||
* @param rangedFrom
|
||||
*/
|
||||
public void broadcastMessage(final byte[] packet, Point rangedFrom) {
|
||||
public void broadcastMessage(Packet packet, Point rangedFrom) {
|
||||
broadcastMessage(null, packet, getRangedDistance(), rangedFrom);
|
||||
}
|
||||
|
||||
@@ -2770,21 +2764,21 @@ public class MapleMap {
|
||||
* @param packet
|
||||
* @param rangedFrom
|
||||
*/
|
||||
public void broadcastMessage(MapleCharacter source, final byte[] packet, Point rangedFrom) {
|
||||
public void broadcastMessage(MapleCharacter source, Packet packet, Point rangedFrom) {
|
||||
broadcastMessage(source, packet, getRangedDistance(), rangedFrom);
|
||||
}
|
||||
|
||||
private void broadcastMessage(MapleCharacter source, final byte[] packet, double rangeSq, Point rangedFrom) {
|
||||
private void broadcastMessage(MapleCharacter source, Packet packet, double rangeSq, Point rangedFrom) {
|
||||
chrRLock.lock();
|
||||
try {
|
||||
for (MapleCharacter chr : characters) {
|
||||
if (chr != source) {
|
||||
if (rangeSq < Double.POSITIVE_INFINITY) {
|
||||
if (rangedFrom.distanceSq(chr.getPosition()) <= rangeSq) {
|
||||
chr.getClient().announce(packet);
|
||||
chr.sendPacket(packet);
|
||||
}
|
||||
} else {
|
||||
chr.getClient().announce(packet);
|
||||
chr.sendPacket(packet);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2808,15 +2802,15 @@ public class MapleMap {
|
||||
}
|
||||
}
|
||||
|
||||
public void broadcastBossHpMessage(MapleMonster mm, int bossHash, final byte[] packet) {
|
||||
public void broadcastBossHpMessage(MapleMonster mm, int bossHash, Packet packet) {
|
||||
broadcastBossHpMessage(mm, bossHash, null, packet, Double.POSITIVE_INFINITY, null);
|
||||
}
|
||||
|
||||
public void broadcastBossHpMessage(MapleMonster mm, int bossHash, final byte[] packet, Point rangedFrom) {
|
||||
public void broadcastBossHpMessage(MapleMonster mm, int bossHash, Packet packet, Point rangedFrom) {
|
||||
broadcastBossHpMessage(mm, bossHash, null, packet, getRangedDistance(), rangedFrom);
|
||||
}
|
||||
|
||||
private void broadcastBossHpMessage(MapleMonster mm, int bossHash, MapleCharacter source, final byte[] packet, double rangeSq, Point rangedFrom) {
|
||||
private void broadcastBossHpMessage(MapleMonster mm, int bossHash, MapleCharacter source, Packet packet, double rangeSq, Point rangedFrom) {
|
||||
chrRLock.lock();
|
||||
try {
|
||||
for (MapleCharacter chr : characters) {
|
||||
@@ -2847,14 +2841,14 @@ public class MapleMap {
|
||||
chrRLock.lock();
|
||||
try {
|
||||
for (MapleCharacter chr : characters) {
|
||||
final byte[] packet = PacketCreator.dropItemFromMapObject(chr, mdrop, dropperPos, dropPos, mod);
|
||||
Packet packet = PacketCreator.dropItemFromMapObject(chr, mdrop, dropperPos, dropPos, mod);
|
||||
|
||||
if (rangeSq < Double.POSITIVE_INFINITY) {
|
||||
if (rangedFrom.distanceSq(chr.getPosition()) <= rangeSq) {
|
||||
chr.announce(packet);
|
||||
chr.sendPacket(packet);
|
||||
}
|
||||
} else {
|
||||
chr.announce(packet);
|
||||
chr.sendPacket(packet);
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
@@ -2877,14 +2871,14 @@ public class MapleMap {
|
||||
for (MapleCharacter chr : characters) {
|
||||
if (chr.isGM()) {
|
||||
if (chr != source) {
|
||||
chr.announce(PacketCreator.spawnPlayerMapObject(chr.getClient(), player, enteringField));
|
||||
chr.sendPacket(PacketCreator.spawnPlayerMapObject(chr.getClient(), player, enteringField));
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (MapleCharacter chr : characters) {
|
||||
if (chr != source) {
|
||||
chr.announce(PacketCreator.spawnPlayerMapObject(chr.getClient(), player, enteringField));
|
||||
chr.sendPacket(PacketCreator.spawnPlayerMapObject(chr.getClient(), player, enteringField));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2898,7 +2892,7 @@ public class MapleMap {
|
||||
try {
|
||||
for (MapleCharacter chr : characters) {
|
||||
if (chr != source) {
|
||||
chr.announce(PacketCreator.updateCharLook(chr.getClient(), player));
|
||||
chr.sendPacket(PacketCreator.updateCharLook(chr.getClient(), player));
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
@@ -3723,21 +3717,21 @@ public class MapleMap {
|
||||
return seats;
|
||||
}
|
||||
|
||||
public void broadcastGMMessage(MapleCharacter source, final byte[] packet, boolean repeatToSource) {
|
||||
public void broadcastGMMessage(MapleCharacter source, Packet packet, boolean repeatToSource) {
|
||||
broadcastGMMessage(repeatToSource ? null : source, packet, Double.POSITIVE_INFINITY, source.getPosition());
|
||||
}
|
||||
|
||||
private void broadcastGMMessage(MapleCharacter source, final byte[] packet, double rangeSq, Point rangedFrom) {
|
||||
private void broadcastGMMessage(MapleCharacter source, Packet packet, double rangeSq, Point rangedFrom) {
|
||||
chrRLock.lock();
|
||||
try {
|
||||
for (MapleCharacter chr : characters) {
|
||||
if (chr != source && chr.isGM()) {
|
||||
if (rangeSq < Double.POSITIVE_INFINITY) {
|
||||
if (rangedFrom.distanceSq(chr.getPosition()) <= rangeSq) {
|
||||
chr.getClient().announce(packet);
|
||||
chr.sendPacket(packet);
|
||||
}
|
||||
} else {
|
||||
chr.getClient().announce(packet);
|
||||
chr.sendPacket(packet);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3746,12 +3740,12 @@ public class MapleMap {
|
||||
}
|
||||
}
|
||||
|
||||
public void broadcastNONGMMessage(MapleCharacter source, final byte[] packet, boolean repeatToSource) {
|
||||
public void broadcastNONGMMessage(MapleCharacter source, Packet packet, boolean repeatToSource) {
|
||||
chrRLock.lock();
|
||||
try {
|
||||
for (MapleCharacter chr : characters) {
|
||||
if (chr != source && !chr.isGM()) {
|
||||
chr.getClient().announce(packet);
|
||||
chr.sendPacket(packet);
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
|
||||
Reference in New Issue
Block a user