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:
P0nk
2021-08-21 01:36:51 +02:00
parent b5cd6887ae
commit 8f6860d7d7
231 changed files with 6403 additions and 6927 deletions

View File

@@ -91,7 +91,7 @@ public class MapleDoorObject extends AbstractMapleMapObject {
public void warp(final MapleCharacter chr) {
MapleParty party = chr.getParty();
if (chr.getId() == ownerId || (party != null && party.getMemberById(ownerId) != null)) {
chr.announce(PacketCreator.playPortalSound());
chr.sendPacket(PacketCreator.playPortalSound());
if(!inTown() && party == null) {
chr.changeMap(to, getLinkedPortalId());
@@ -99,8 +99,8 @@ public class MapleDoorObject extends AbstractMapleMapObject {
chr.changeMap(to, getLinkedPortalPosition());
}
} else {
chr.getClient().announce(PacketCreator.blockedMessage(6));
chr.getClient().announce(PacketCreator.enableActions());
chr.sendPacket(PacketCreator.blockedMessage(6));
chr.sendPacket(PacketCreator.enableActions());
}
}
@@ -113,12 +113,12 @@ public class MapleDoorObject extends AbstractMapleMapObject {
MapleCharacter chr = client.getPlayer();
if (this.getFrom().getId() == chr.getMapId()) {
if (chr.getParty() != null && (this.getOwnerId() == chr.getId() || chr.getParty().getMemberById(this.getOwnerId()) != null)) {
chr.announce(PacketCreator.partyPortal(this.getFrom().getId(), this.getTo().getId(), this.toPosition()));
chr.sendPacket(PacketCreator.partyPortal(this.getFrom().getId(), this.getTo().getId(), this.toPosition()));
}
chr.announce(PacketCreator.spawnPortal(this.getFrom().getId(), this.getTo().getId(), this.toPosition()));
chr.sendPacket(PacketCreator.spawnPortal(this.getFrom().getId(), this.getTo().getId(), this.toPosition()));
if (!this.inTown()) {
chr.announce(PacketCreator.spawnDoor(this.getOwnerId(), this.getPosition(), launched));
chr.sendPacket(PacketCreator.spawnDoor(this.getOwnerId(), this.getPosition(), launched));
}
}
}
@@ -129,16 +129,16 @@ public class MapleDoorObject extends AbstractMapleMapObject {
if (from.getId() == chr.getMapId()) {
MapleParty party = chr.getParty();
if (party != null && (ownerId == chr.getId() || party.getMemberById(ownerId) != null)) {
client.announce(PacketCreator.partyPortal(999999999, 999999999, new Point(-1, -1)));
client.sendPacket(PacketCreator.partyPortal(999999999, 999999999, new Point(-1, -1)));
}
client.announce(PacketCreator.removeDoor(ownerId, inTown()));
client.sendPacket(PacketCreator.removeDoor(ownerId, inTown()));
}
}
public void sendDestroyData(MapleClient client, boolean partyUpdate) {
if (client != null && from.getId() == client.getPlayer().getMapId()) {
client.announce(PacketCreator.partyPortal(999999999, 999999999, new Point(-1, -1)));
client.announce(PacketCreator.removeDoor(ownerId, inTown()));
client.sendPacket(PacketCreator.partyPortal(999999999, 999999999, new Point(-1, -1)));
client.sendPacket(PacketCreator.removeDoor(ownerId, inTown()));
}
}

View File

@@ -46,7 +46,7 @@ public class MapleDragon extends AbstractAnimatedMapleMapObject {
@Override
public void sendSpawnData(MapleClient client) {
client.announce(PacketCreator.spawnDragon(this));
client.sendPacket(PacketCreator.spawnDragon(this));
}
@Override
@@ -56,7 +56,7 @@ public class MapleDragon extends AbstractAnimatedMapleMapObject {
@Override
public void sendDestroyData(MapleClient c) {
c.announce(PacketCreator.removeDragon(owner.getId()));
c.sendPacket(PacketCreator.removeDragon(owner.getId()));
}
public MapleCharacter getOwner() {

View File

@@ -156,7 +156,7 @@ public class MapleGenericPortal implements MaplePortal {
}
}
if (!changed) {
c.announce(PacketCreator.enableActions());
c.sendPacket(PacketCreator.enableActions());
}
}

View File

@@ -31,6 +31,7 @@ import client.inventory.manipulator.MapleInventoryManipulator;
import client.inventory.manipulator.MapleKarmaManipulator;
import client.processor.npc.FredrickProcessor;
import config.YamlConfig;
import net.packet.Packet;
import net.server.Server;
import net.server.audit.locks.MonitoredLockType;
import net.server.audit.locks.factory.MonitoredReentrantLockFactory;
@@ -83,7 +84,7 @@ public class MapleHiredMerchant extends AbstractMapleMapObject {
this.map = owner.getMap();
}
public void broadcastToVisitorsThreadsafe(final byte[] packet) {
public void broadcastToVisitorsThreadsafe(Packet packet) {
visitorLock.lock();
try {
broadcastToVisitors(packet);
@@ -92,10 +93,10 @@ public class MapleHiredMerchant extends AbstractMapleMapObject {
}
}
private void broadcastToVisitors(final byte[] packet) {
private void broadcastToVisitors(Packet packet) {
for (MapleCharacter visitor : visitors) {
if (visitor != null) {
visitor.getClient().announce(packet);
visitor.sendPacket(packet);
}
}
}
@@ -182,8 +183,8 @@ public class MapleHiredMerchant extends AbstractMapleMapObject {
if (visitor != null) {
visitor.setHiredMerchant(null);
visitor.getClient().announce(PacketCreator.leaveHiredMerchant(i + 1, 0x11));
visitor.getClient().announce(PacketCreator.hiredMerchantMaintenanceMessage());
visitor.sendPacket(PacketCreator.leaveHiredMerchant(i + 1, 0x11));
visitor.sendPacket(PacketCreator.hiredMerchantMaintenanceMessage());
visitors[i] = null;
}
@@ -197,8 +198,8 @@ public class MapleHiredMerchant extends AbstractMapleMapObject {
private void removeOwner(MapleCharacter owner) {
if (owner.getHiredMerchant() == this) {
owner.announce(PacketCreator.hiredMerchantOwnerLeave());
owner.announce(PacketCreator.leaveHiredMerchant(0x00, 0x03));
owner.sendPacket(PacketCreator.hiredMerchantOwnerLeave());
owner.sendPacket(PacketCreator.leaveHiredMerchant(0x00, 0x03));
owner.setHiredMerchant(null);
}
}
@@ -220,8 +221,8 @@ public class MapleHiredMerchant extends AbstractMapleMapObject {
iitem.setQuantity((short) (shopItem.getItem().getQuantity() * shopItem.getBundles()));
if (!MapleInventory.checkSpot(chr, iitem)) {
chr.announce(PacketCreator.serverNotice(1, "Have a slot available on your inventory to claim back the item."));
chr.announce(PacketCreator.enableActions());
chr.sendPacket(PacketCreator.serverNotice(1, "Have a slot available on your inventory to claim back the item."));
chr.sendPacket(PacketCreator.enableActions());
return;
}
@@ -229,7 +230,7 @@ public class MapleHiredMerchant extends AbstractMapleMapObject {
}
removeFromSlot(slot);
chr.announce(PacketCreator.updateHiredMerchant(this, chr));
chr.sendPacket(PacketCreator.updateHiredMerchant(this, chr));
}
if (YamlConfig.config.server.USE_ENFORCE_MERCHANT_SAVE) {
@@ -263,10 +264,10 @@ public class MapleHiredMerchant extends AbstractMapleMapObject {
newItem.setQuantity((short) ((pItem.getItem().getQuantity() * quantity)));
if (quantity < 1 || !pItem.isExist() || pItem.getBundles() < quantity) {
c.announce(PacketCreator.enableActions());
c.sendPacket(PacketCreator.enableActions());
return;
} else if (newItem.getInventoryType().equals(MapleInventoryType.EQUIP) && newItem.getQuantity() > 1) {
c.announce(PacketCreator.enableActions());
c.sendPacket(PacketCreator.enableActions());
return;
}
@@ -318,12 +319,12 @@ public class MapleHiredMerchant extends AbstractMapleMapObject {
}
} else {
c.getPlayer().dropMessage(1, "Your inventory is full. Please clear a slot before buying this item.");
c.announce(PacketCreator.enableActions());
c.sendPacket(PacketCreator.enableActions());
return;
}
} else {
c.getPlayer().dropMessage(1, "You don't have enough mesos to purchase this item.");
c.announce(PacketCreator.enableActions());
c.sendPacket(PacketCreator.enableActions());
return;
}
try {
@@ -461,15 +462,15 @@ public class MapleHiredMerchant extends AbstractMapleMapObject {
this.setOpen(false);
this.removeAllVisitors();
chr.announce(PacketCreator.getHiredMerchant(chr, this, false));
chr.sendPacket(PacketCreator.getHiredMerchant(chr, this, false));
} else if (!this.isOpen()) {
chr.announce(PacketCreator.getMiniRoomError(18));
chr.sendPacket(PacketCreator.getMiniRoomError(18));
return;
} else if (!this.addVisitor(chr)) {
chr.announce(PacketCreator.getMiniRoomError(2));
chr.sendPacket(PacketCreator.getMiniRoomError(2));
return;
} else {
chr.announce(PacketCreator.getHiredMerchant(chr, this, false));
chr.sendPacket(PacketCreator.getHiredMerchant(chr, this, false));
}
chr.setHiredMerchant(this);
} finally {
@@ -713,7 +714,7 @@ public class MapleHiredMerchant extends AbstractMapleMapObject {
@Override
public void sendSpawnData(MapleClient client) {
client.announce(PacketCreator.spawnHiredMerchantBox(this));
client.sendPacket(PacketCreator.spawnHiredMerchantBox(this));
}
public class SoldItem {

View File

@@ -2,24 +2,24 @@ package server.maps;
import client.MapleCharacter;
import client.MapleClient;
import net.packet.Packet;
import tools.PacketCreator;
import java.awt.*;
public class MapleKite extends AbstractMapleMapObject {
private final Point pos;
private final MapleCharacter owner;
private final String text;
private final int ft;
private final int itemid;
private Point pos;
private MapleCharacter owner;
private String text;
private int ft;
private int itemid;
public MapleKite(MapleCharacter owner, String text, int itemid) {
public MapleKite(MapleCharacter owner, String text, int itemId) {
this.owner = owner;
this.pos = owner.getPosition();
this.ft = owner.getFh();
this.text = text;
this.itemid = itemid;
this.itemid = itemId;
}
@Override
@@ -43,19 +43,19 @@ public class MapleKite extends AbstractMapleMapObject {
@Override
public void sendDestroyData(MapleClient client) {
client.announce(makeDestroyData());
client.sendPacket(makeDestroyData());
}
@Override
public void sendSpawnData(MapleClient client) {
client.announce(makeSpawnData());
client.sendPacket(makeSpawnData());
}
public final byte[] makeSpawnData() {
public final Packet makeSpawnData() {
return PacketCreator.spawnKite(getObjectId(), itemid, owner.getName(), text, pos, ft);
}
public final byte[] makeDestroyData() {
public final Packet makeDestroyData() {
return PacketCreator.removeKite(getObjectId(), 0);
}
}

View File

@@ -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 {

View File

@@ -22,27 +22,28 @@
package server.maps;
import client.MapleClient;
import net.packet.Packet;
import tools.PacketCreator;
public class MapleMapEffect {
private String msg;
private int itemId;
private boolean active = true;
private final String msg;
private final int itemId;
private final boolean active = true;
public MapleMapEffect(String msg, int itemId) {
this.msg = msg;
this.itemId = itemId;
}
public final byte[] makeDestroyData() {
public final Packet makeDestroyData() {
return PacketCreator.removeMapEffect();
}
public final byte[] makeStartData() {
public final Packet makeStartData() {
return PacketCreator.startMapEffect(msg, itemId, active);
}
public void sendStartData(MapleClient client) {
client.announce(makeStartData());
client.sendPacket(makeStartData());
}
}

View File

@@ -41,56 +41,58 @@ public class MapleMapItem extends AbstractMapleMapObject {
private Lock itemLock = MonitoredReentrantLockFactory.createLock(MonitoredLockType.MAP_ITEM);
public MapleMapItem(Item item, Point position, MapleMapObject dropper, MapleCharacter owner, MapleClient ownerClient, byte type, boolean playerDrop) {
setPosition(position);
this.item = item;
this.dropper = dropper;
setPosition(position);
this.item = item;
this.dropper = dropper;
this.character_ownerid = owner.getId();
this.party_ownerid = owner.getPartyId();
this.partyDrop = this.party_ownerid != -1;
this.ownerClient = owner.getClient();
this.meso = 0;
this.type = type;
this.playerDrop = playerDrop;
this.meso = 0;
this.type = type;
this.playerDrop = playerDrop;
}
public MapleMapItem(Item item, Point position, MapleMapObject dropper, MapleCharacter owner, MapleClient ownerClient, byte type, boolean playerDrop, int questid) {
setPosition(position);
this.item = item;
this.dropper = dropper;
setPosition(position);
this.item = item;
this.dropper = dropper;
this.character_ownerid = owner.getId();
this.party_ownerid = owner.getPartyId();
this.partyDrop = this.party_ownerid != -1;
this.ownerClient = owner.getClient();
this.ownerClient = owner.getClient();
this.meso = 0;
this.type = type;
this.playerDrop = playerDrop;
this.questid = questid;
this.type = type;
this.playerDrop = playerDrop;
this.questid = questid;
}
public MapleMapItem(int meso, Point position, MapleMapObject dropper, MapleCharacter owner, MapleClient ownerClient, byte type, boolean playerDrop) {
setPosition(position);
this.item = null;
this.dropper = dropper;
this.character_ownerid = owner.getId();
setPosition(position);
this.item = null;
this.dropper = dropper;
this.character_ownerid = owner.getId();
this.party_ownerid = owner.getPartyId();
this.partyDrop = this.party_ownerid != -1;
this.ownerClient = owner.getClient();
this.meso = meso;
this.type = type;
this.playerDrop = playerDrop;
this.type = type;
this.playerDrop = playerDrop;
}
public final Item getItem() {
return item;
return item;
}
public final int getQuest() {
return questid;
return questid;
}
public final int getItemId() {
if (meso > 0) return meso;
return item.getItemId();
if (meso > 0) {
return meso;
}
return item.getItemId();
}
public final MapleMapObject getDropper() {
@@ -203,7 +205,7 @@ public class MapleMapItem extends AbstractMapleMapObject {
if (chr.needQuestItem(questid, getItemId())) {
this.lockItem();
try {
client.announce(PacketCreator.dropItemFromMapObject(chr, this, null, getPosition(), (byte) 2));
client.sendPacket(PacketCreator.dropItemFromMapObject(chr, this, null, getPosition(), (byte) 2));
} finally {
this.unlockItem();
}
@@ -212,6 +214,6 @@ public class MapleMapItem extends AbstractMapleMapObject {
@Override
public void sendDestroyData(final MapleClient client) {
client.announce(PacketCreator.removeItemFromMap(getObjectId(), 1, 0));
client.sendPacket(PacketCreator.removeItemFromMap(getObjectId(), 1, 0));
}
}

View File

@@ -53,7 +53,7 @@ public class MapleMiniDungeon {
public boolean registerPlayer(MapleCharacter chr) {
int time = (int)((expireTime - System.currentTimeMillis()) / 1000);
if(time > 0) chr.getClient().announce(PacketCreator.getClock(time));
if(time > 0) chr.sendPacket(PacketCreator.getClock(time));
lock.lock();
try {
@@ -68,7 +68,7 @@ public class MapleMiniDungeon {
}
public boolean unregisterPlayer(MapleCharacter chr) {
chr.getClient().announce(PacketCreator.removeClock());
chr.sendPacket(PacketCreator.removeClock());
lock.lock();
try {

View File

@@ -23,6 +23,7 @@ package server.maps;
import client.MapleCharacter;
import client.MapleClient;
import net.packet.Packet;
import net.server.Server;
import tools.PacketCreator;
@@ -107,10 +108,10 @@ public class MapleMiniGame extends AbstractMapleMapObject {
MapleCharacter owner = this.getOwner();
if (GameType == MiniGameType.OMOK) {
owner.announce(PacketCreator.getMiniGameNewVisitor(this, challenger, 1));
owner.sendPacket(PacketCreator.getMiniGameNewVisitor(this, challenger, 1));
owner.getMap().broadcastMessage(PacketCreator.addOmokBox(owner, 2, 0));
} else if (GameType == MiniGameType.MATCH_CARD) {
owner.announce(PacketCreator.getMatchCardNewVisitor(this, challenger, 1));
owner.sendPacket(PacketCreator.getMatchCardNewVisitor(this, challenger, 1));
owner.getMap().broadcastMessage(PacketCreator.addMatchCardBox(owner, 2, 0));
}
}
@@ -135,13 +136,13 @@ public class MapleMiniGame extends AbstractMapleMapObject {
public void removeVisitor(boolean forceClose, MapleCharacter challenger) {
if (visitor == challenger) {
if (forceClose) {
visitor.announce(PacketCreator.getMiniGameClose(true, 4));
visitor.sendPacket(PacketCreator.getMiniGameClose(true, 4));
}
challenger.setMiniGame(null);
visitor = null;
this.getOwner().getClient().announce(PacketCreator.getMiniGameRemoveVisitor());
this.getOwner().sendPacket(PacketCreator.getMiniGameRemoveVisitor());
if (GameType == MiniGameType.OMOK) {
this.getOwner().getMap().broadcastMessage(PacketCreator.addOmokBox(owner, 1, 0));
} else if (GameType == MiniGameType.MATCH_CARD) {
@@ -154,16 +155,16 @@ public class MapleMiniGame extends AbstractMapleMapObject {
return visitor == challenger;
}
public void broadcastToOwner(final byte[] packet) {
public void broadcastToOwner(Packet packet) {
MapleClient c = owner.getClient();
if (c != null) {
c.announce(packet);
c.sendPacket(packet);
}
}
public void broadcastToVisitor(final byte[] packet) {
public void broadcastToVisitor(Packet packet) {
if (visitor != null) {
visitor.getClient().announce(packet);
visitor.sendPacket(packet);
}
}
@@ -384,7 +385,7 @@ public class MapleMiniGame extends AbstractMapleMapObject {
return loser;
}
public void broadcast(final byte[] packet) {
public void broadcast(Packet packet) {
broadcastToOwner(packet);
broadcastToVisitor(packet);
}
@@ -394,11 +395,11 @@ public class MapleMiniGame extends AbstractMapleMapObject {
}
public void sendOmok(MapleClient c, int type) {
c.announce(PacketCreator.getMiniGame(c, this, isOwner(c.getPlayer()), type));
c.sendPacket(PacketCreator.getMiniGame(c, this, isOwner(c.getPlayer()), type));
}
public void sendMatchCard(MapleClient c, int type) {
c.announce(PacketCreator.getMatchCard(c, this, isOwner(c.getPlayer()), type));
c.sendPacket(PacketCreator.getMatchCard(c, this, isOwner(c.getPlayer()), type));
}
public MapleCharacter getOwner() {

View File

@@ -26,6 +26,7 @@ import client.MapleClient;
import client.Skill;
import client.SkillFactory;
import constants.skills.*;
import net.packet.Packet;
import server.MapleStatEffect;
import server.life.MapleMonster;
import server.life.MobSkill;
@@ -128,18 +129,18 @@ public class MapleMist extends AbstractMapleMapObject {
throw new UnsupportedOperationException();
}
public final byte[] makeDestroyData() {
public final Packet makeDestroyData() {
return PacketCreator.removeMist(getObjectId());
}
public final byte[] makeSpawnData() {
public final Packet makeSpawnData() {
if (owner != null) {
return PacketCreator.spawnMist(getObjectId(), owner.getId(), getSourceSkill().getId(), owner.getSkillLevel(SkillFactory.getSkill(source.getSourceId())), this);
}
return PacketCreator.spawnMist(getObjectId(), mob.getId(), skill.getSkillId(), skill.getSkillLevel(), this);
}
public final byte[] makeFakeSpawnData(int level) {
public final Packet makeFakeSpawnData(int level) {
if (owner != null) {
return PacketCreator.spawnMist(getObjectId(), owner.getId(), getSourceSkill().getId(), level, this);
}
@@ -148,12 +149,12 @@ public class MapleMist extends AbstractMapleMapObject {
@Override
public void sendSpawnData(MapleClient client) {
client.announce(makeSpawnData());
client.sendPacket(makeSpawnData());
}
@Override
public void sendDestroyData(MapleClient client) {
client.announce(makeDestroyData());
client.sendPacket(makeDestroyData());
}
public boolean makeChanceResult() {

View File

@@ -29,6 +29,7 @@ import client.inventory.MapleInventoryType;
import client.inventory.manipulator.MapleInventoryManipulator;
import client.inventory.manipulator.MapleKarmaManipulator;
import net.opcodes.SendOpcode;
import net.packet.Packet;
import net.server.audit.locks.MonitoredLockType;
import net.server.audit.locks.factory.MonitoredReentrantLockFactory;
import server.MapleTrade;
@@ -169,13 +170,13 @@ public class MaplePlayerShop extends AbstractMapleMapObject {
visitor.setSlot(-1); //absolutely cant remove player slot for late players without dc'ing them... heh
for(int j = i; j < 2; j++) {
if(visitors[j] != null) owner.announce(PacketCreator.getPlayerShopRemoveVisitor(j + 1));
if(visitors[j] != null) owner.sendPacket(PacketCreator.getPlayerShopRemoveVisitor(j + 1));
visitors[j] = visitors[j + 1];
if(visitors[j] != null) visitors[j].setSlot(j);
}
visitors[2] = null;
for(int j = i; j < 2; j++) {
if(visitors[j] != null) owner.announce(PacketCreator.getPlayerShopNewVisitor(visitors[j], j + 1));
if(visitors[j] != null) owner.sendPacket(PacketCreator.getPlayerShopNewVisitor(visitors[j], j + 1));
}
this.broadcastRestoreToVisitors();
@@ -226,8 +227,8 @@ public class MaplePlayerShop extends AbstractMapleMapObject {
iitem.setQuantity((short) (shopItem.getItem().getQuantity() * shopItem.getBundles()));
if (!MapleInventory.checkSpot(chr, iitem)) {
chr.announce(PacketCreator.serverNotice(1, "Have a slot available on your inventory to claim back the item."));
chr.announce(PacketCreator.enableActions());
chr.sendPacket(PacketCreator.serverNotice(1, "Have a slot available on your inventory to claim back the item."));
chr.sendPacket(PacketCreator.enableActions());
return;
}
@@ -235,7 +236,7 @@ public class MaplePlayerShop extends AbstractMapleMapObject {
}
removeFromSlot(slot);
chr.announce(PacketCreator.getPlayerShopItemUpdate(this));
chr.sendPacket(PacketCreator.getPlayerShopItemUpdate(this));
}
}
}
@@ -254,10 +255,10 @@ public class MaplePlayerShop extends AbstractMapleMapObject {
newItem.setQuantity((short) ((pItem.getItem().getQuantity() * quantity)));
if (quantity < 1 || !pItem.isExist() || pItem.getBundles() < quantity) {
c.announce(PacketCreator.enableActions());
c.sendPacket(PacketCreator.enableActions());
return false;
} else if (newItem.getInventoryType().equals(MapleInventoryType.EQUIP) && newItem.getQuantity() > 1) {
c.announce(PacketCreator.enableActions());
c.sendPacket(PacketCreator.enableActions());
return false;
}
@@ -270,7 +271,7 @@ public class MaplePlayerShop extends AbstractMapleMapObject {
if (c.getPlayer().getMeso() >= price) {
if (!owner.canHoldMeso(price)) { // thanks Rohenn for noticing owner hold check misplaced
c.getPlayer().dropMessage(1, "Transaction failed since the shop owner can't hold any more mesos.");
c.announce(PacketCreator.enableActions());
c.sendPacket(PacketCreator.enableActions());
return false;
}
@@ -280,7 +281,7 @@ public class MaplePlayerShop extends AbstractMapleMapObject {
owner.gainMeso(price, true);
SoldItem soldItem = new SoldItem(c.getPlayer().getName(), pItem.getItem().getItemId(), quantity, price);
owner.announce(PacketCreator.getPlayerShopOwnerUpdate(soldItem, item));
owner.sendPacket(PacketCreator.getPlayerShopOwnerUpdate(soldItem, item));
synchronized (sold) {
sold.add(soldItem);
@@ -298,12 +299,12 @@ public class MaplePlayerShop extends AbstractMapleMapObject {
}
} else {
c.getPlayer().dropMessage(1, "Your inventory is full. Please clear a slot before buying this item.");
c.announce(PacketCreator.enableActions());
c.sendPacket(PacketCreator.enableActions());
return false;
}
} else {
c.getPlayer().dropMessage(1, "You don't have enough mesos to purchase this item.");
c.announce(PacketCreator.enableActions());
c.sendPacket(PacketCreator.enableActions());
return false;
}
@@ -317,12 +318,12 @@ public class MaplePlayerShop extends AbstractMapleMapObject {
}
}
public void broadcastToVisitors(final byte[] packet) {
public void broadcastToVisitors(Packet packet) {
visitorLock.lock();
try {
for (int i = 0; i < 3; i++) {
if (visitors[i] != null) {
visitors[i].getClient().announce(packet);
visitors[i].sendPacket(packet);
}
}
} finally {
@@ -335,13 +336,13 @@ public class MaplePlayerShop extends AbstractMapleMapObject {
try {
for (int i = 0; i < 3; i++) {
if (visitors[i] != null) {
visitors[i].getClient().announce(PacketCreator.getPlayerShopRemoveVisitor(i + 1));
visitors[i].sendPacket(PacketCreator.getPlayerShopRemoveVisitor(i + 1));
}
}
for (int i = 0; i < 3; i++) {
if (visitors[i] != null) {
visitors[i].getClient().announce(PacketCreator.getPlayerShop(this, false));
visitors[i].sendPacket(PacketCreator.getPlayerShop(this, false));
}
}
@@ -359,7 +360,7 @@ public class MaplePlayerShop extends AbstractMapleMapObject {
try {
for (int i = 0; i < 3; i++) {
if (visitors[i] != null) {
visitors[i].getClient().announce(PacketCreator.shopErrorMessage(10, 1));
visitors[i].sendPacket(PacketCreator.shopErrorMessage(10, 1));
visitorList.add(visitors[i]);
}
}
@@ -385,10 +386,10 @@ public class MaplePlayerShop extends AbstractMapleMapObject {
return mplew.getPacket();
}
public void broadcast(final byte[] packet) {
public void broadcast(Packet packet) {
MapleClient client = owner.getClient();
if (client != null) {
client.announce(packet);
client.sendPacket(packet);
}
broadcastToVisitors(packet);
}
@@ -447,7 +448,7 @@ public class MaplePlayerShop extends AbstractMapleMapObject {
public void sendShop(MapleClient c) {
visitorLock.lock();
try {
c.announce(PacketCreator.getPlayerShop(this, isOwner(c.getPlayer())));
c.sendPacket(PacketCreator.getPlayerShop(this, isOwner(c.getPlayer())));
} finally {
visitorLock.unlock();
}
@@ -512,7 +513,7 @@ public class MaplePlayerShop extends AbstractMapleMapObject {
}
if(target != null) {
target.getClient().announce(PacketCreator.shopErrorMessage(5, 1));
target.sendPacket(PacketCreator.shopErrorMessage(5, 1));
removeVisitor(target);
}
}
@@ -572,12 +573,12 @@ public class MaplePlayerShop extends AbstractMapleMapObject {
@Override
public void sendDestroyData(MapleClient client) {
client.announce(PacketCreator.removePlayerShopBox(this));
client.sendPacket(PacketCreator.removePlayerShopBox(this));
}
@Override
public void sendSpawnData(MapleClient client) {
client.announce(PacketCreator.updatePlayerShopBox(this));
client.sendPacket(PacketCreator.updatePlayerShopBox(this));
}
@Override

View File

@@ -23,6 +23,7 @@ package server.maps;
import client.MapleClient;
import config.YamlConfig;
import net.packet.Packet;
import net.server.audit.locks.MonitoredLockType;
import net.server.audit.locks.factory.MonitoredReentrantLockFactory;
import net.server.services.task.channel.OverallService;
@@ -166,21 +167,21 @@ public class MapleReactor extends AbstractMapleMapObject {
@Override
public void sendDestroyData(MapleClient client) {
client.announce(makeDestroyData());
client.sendPacket(makeDestroyData());
}
public final byte[] makeDestroyData() {
public final Packet makeDestroyData() {
return PacketCreator.destroyReactor(this);
}
@Override
public void sendSpawnData(MapleClient client) {
if (this.isAlive()) {
client.announce(makeSpawnData());
client.sendPacket(makeSpawnData());
}
}
public final byte[] makeSpawnData() {
public final Packet makeSpawnData() {
return PacketCreator.spawnReactor(this);
}

View File

@@ -50,12 +50,12 @@ public class MapleSummon extends AbstractAnimatedMapleMapObject {
@Override
public void sendSpawnData(MapleClient client) {
client.announce(PacketCreator.spawnSummon(this, false));
client.sendPacket(PacketCreator.spawnSummon(this, false));
}
@Override
public void sendDestroyData(MapleClient client) {
client.announce(PacketCreator.removeSummon(this, true));
client.sendPacket(PacketCreator.removeSummon(this, true));
}
public MapleCharacter getOwner() {