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

@@ -21,6 +21,7 @@
*/
package client;
import net.packet.Packet;
import net.server.PlayerStorage;
import tools.DatabaseConnection;
import tools.PacketCreator;
@@ -126,12 +127,12 @@ public class BuddyList {
}
}
public void broadcast(byte[] packet, PlayerStorage pstorage) {
public void broadcast(Packet packet, PlayerStorage pstorage) {
for(int bid : getBuddyIds()) {
MapleCharacter chr = pstorage.getCharacterById(bid);
if(chr != null && chr.isLoggedinWorld()) {
chr.announce(packet);
chr.sendPacket(packet);
}
}
}
@@ -167,7 +168,7 @@ public class BuddyList {
public void addBuddyRequest(MapleClient c, int cidFrom, String nameFrom, int channelFrom) {
put(new BuddylistEntry(nameFrom, "Default Group", cidFrom, channelFrom, false));
if (pendingRequests.isEmpty()) {
c.announce(PacketCreator.requestBuddylistAdd(cidFrom, c.getPlayer().getId(), nameFrom));
c.sendPacket(PacketCreator.requestBuddylistAdd(cidFrom, c.getPlayer().getId(), nameFrom));
} else {
pendingRequests.push(new CharacterNameAndId(cidFrom, nameFrom));
}

View File

@@ -45,6 +45,7 @@ import net.server.Server;
import net.server.audit.locks.MonitoredLockType;
import net.server.audit.locks.factory.MonitoredReentrantLockFactory;
import net.server.coordinator.world.MapleInviteCoordinator;
import net.server.guild.GuildPackets;
import net.server.guild.MapleAlliance;
import net.server.guild.MapleGuild;
import net.server.guild.MapleGuildCharacter;
@@ -76,7 +77,7 @@ import server.partyquest.PartyQuest;
import server.quest.MapleQuest;
import tools.*;
import tools.exceptions.NotEnabledException;
import tools.packets.Wedding;
import tools.packets.WeddingPackets;
import java.awt.*;
import java.lang.ref.WeakReference;
@@ -295,7 +296,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
statup.add(new Pair<>(s.getKey(), s.getValue()));
}
announce(PacketCreator.updatePlayerStats(statup, true, MapleCharacter.this));
sendPacket(PacketCreator.updatePlayerStats(statup, true, MapleCharacter.this));
}
});
@@ -758,7 +759,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
}
combocounter = (short) Math.min(30000, count);
if (count > 0) {
announce(PacketCreator.showCombo(combocounter));
sendPacket(PacketCreator.showCombo(combocounter));
}
}
@@ -824,7 +825,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
if (isGM() && hide != this.hidden) {
if (!hide) {
this.hidden = false;
announce(PacketCreator.getGMEffect(0x10, (byte) 0));
sendPacket(PacketCreator.getGMEffect(0x10, (byte) 0));
List<MapleBuffStat> dsstat = Collections.singletonList(MapleBuffStat.DARKSIGHT);
getMap().broadcastGMMessage(this, PacketCreator.cancelForeignBuff(id, dsstat), false);
getMap().broadcastSpawnPlayerMapObjectMessage(this, this, false);
@@ -839,7 +840,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
}
} else {
this.hidden = true;
announce(PacketCreator.getGMEffect(0x10, (byte) 1));
sendPacket(PacketCreator.getGMEffect(0x10, (byte) 1));
if (!login) {
getMap().broadcastNONGMMessage(this, PacketCreator.removePlayerFromMap(getId()), false);
}
@@ -847,7 +848,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
getMap().broadcastGMMessage(this, PacketCreator.giveForeignBuff(id, ldsstat), false);
this.releaseControlledMonsters();
}
announce(PacketCreator.enableActions());
sendPacket(PacketCreator.enableActions());
}
}
@@ -872,7 +873,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
private void cancelPlayerBuffs(List<MapleBuffStat> buffstats) {
if (client.getChannelServer().getPlayerStorage().getCharacterById(getId()) != null) {
updateLocalStats();
client.announce(PacketCreator.cancelBuff(buffstats));
sendPacket(PacketCreator.cancelBuff(buffstats));
if (buffstats.size() > 0) {
getMap().broadcastMessage(this, PacketCreator.cancelForeignBuff(getId(), buffstats), false);
}
@@ -1138,7 +1139,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
statup.add(new Pair<>(MapleStat.AVAILABLEAP, remainingAp));
statup.add(new Pair<>(MapleStat.AVAILABLESP, remainingSp[GameConstants.getSkillBook(job.getId())]));
statup.add(new Pair<>(MapleStat.JOB, job.getId()));
client.announce(PacketCreator.updatePlayerStats(statup, true, this));
sendPacket(PacketCreator.updatePlayerStats(statup, true, this));
} finally {
statWlock.unlock();
effLock.unlock();
@@ -1182,7 +1183,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
broadcastAcquaintances(PacketCreator.serverNotice(type, message));
}
public void broadcastAcquaintances(byte[] packet) {
public void broadcastAcquaintances(Packet packet) {
buddylist.broadcast(packet, getWorldServer().getPlayerStorage());
MapleFamily family = getFamily();
if(family != null) {
@@ -1196,10 +1197,10 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
/*
if(partnerid > 0) {
partner.announce(packet); not yet implemented
partner.sendPacket(packet); not yet implemented
}
*/
announce(packet);
sendPacket(packet);
}
public void changeKeybinding(int key, MapleKeyBinding keybinding) {
@@ -1663,7 +1664,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
if(partnerId > 0) {
final MapleCharacter partner = getWorldServer().getPlayerStorage().getCharacterById(partnerId);
if(partner != null && !partner.isAwayFromWorld()) {
partner.announce(Wedding.OnNotifyWeddingPartnerTransfer(id, mapid));
partner.sendPacket(WeddingPackets.OnNotifyWeddingPartnerTransfer(id, mapid));
}
}
}
@@ -1672,7 +1673,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
MapleInviteCoordinator.removePlayerIncomingInvites(id);
}
private void changeMapInternal(final MapleMap to, final Point pos, final byte[] warpPacket) {
private void changeMapInternal(final MapleMap to, final Point pos, Packet warpPacket) {
if (!canWarpMap) {
return;
}
@@ -1690,7 +1691,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
}
final MapleParty k = e;
client.announce(warpPacket);
sendPacket(warpPacket);
map.removePlayer(this);
if (client.getChannelServer().getPlayerStorage().getCharacterById(getId()) != null) {
map = to;
@@ -1702,7 +1703,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
try {
if (party != null) {
mpc.setMapId(to.getId());
client.announce(PacketCreator.updateParty(client.getChannel(), party, PartyOperation.SILENT_UPDATE, null));
sendPacket(PacketCreator.updateParty(client.getChannel(), party, PartyOperation.SILENT_UPDATE, null));
updatePartyMemberHPInternal();
}
} finally {
@@ -1739,7 +1740,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
}
// if this map has obstacle components moving, make it do so for this client
announce(PacketCreator.environmentMoveList(map.getEnvironment().entrySet()));
sendPacket(PacketCreator.environmentMoveList(map.getEnvironment().entrySet()));
}
}
@@ -1759,11 +1760,11 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
if (newLevel > -1) {
skills.put(skill, new SkillEntry(newLevel, newMasterlevel, expiration));
if (!GameConstants.isHiddenSkills(skill.getId())) {
this.client.announce(PacketCreator.updateSkill(skill.getId(), newLevel, newMasterlevel, expiration));
sendPacket(PacketCreator.updateSkill(skill.getId(), newLevel, newMasterlevel, expiration));
}
} else {
skills.remove(skill);
this.client.announce(PacketCreator.updateSkill(skill.getId(), newLevel, newMasterlevel, -1)); //Shouldn't use expiration anymore :)
sendPacket(PacketCreator.updateSkill(skill.getId(), newLevel, newMasterlevel, -1)); //Shouldn't use expiration anymore :)
try (Connection con = DatabaseConnection.getConnection();
PreparedStatement ps = con.prepareStatement("DELETE FROM skills WHERE skillid = ? AND characterid = ?")) {
ps.setInt(1, skill.getId());
@@ -1800,7 +1801,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
return;
}
client.announce(PacketCreator.showOwnBerserk(skilllevel, berserk));
sendPacket(PacketCreator.showOwnBerserk(skilllevel, berserk));
if (!isHidden) {
getMap().broadcastMessage(MapleCharacter.this, PacketCreator.showBerserk(getId(), skilllevel, berserk), false);
} else {
@@ -1924,7 +1925,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
if (ob instanceof MapleMapItem) {
MapleMapItem mapitem = (MapleMapItem) ob;
if (System.currentTimeMillis() - mapitem.getDropTime() < 400 || !mapitem.canBePickedBy(this)) {
client.announce(PacketCreator.enableActions());
sendPacket(PacketCreator.enableActions());
return;
}
@@ -1937,13 +1938,13 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
mapitem.lockItem();
try {
if (mapitem.isPickedUp()) {
client.announce(PacketCreator.showItemUnavailable());
client.announce(PacketCreator.enableActions());
sendPacket(PacketCreator.showItemUnavailable());
sendPacket(PacketCreator.enableActions());
return;
}
boolean isPet = petIndex > -1;
final byte[] pickupPacket = PacketCreator.removeItemFromMap(mapitem.getObjectId(), (isPet) ? 5 : 2, this.getId(), isPet, petIndex);
final Packet pickupPacket = PacketCreator.removeItemFromMap(mapitem.getObjectId(), (isPet) ? 5 : 2, this.getId(), isPet, petIndex);
Item mItem = mapitem.getItem();
boolean hasSpaceInventory = true;
@@ -1976,21 +1977,21 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
} else if (MapleInventoryManipulator.addFromDrop(client, mItem, true)) {
this.getMap().pickItemDrop(pickupPacket, mapitem);
} else {
client.announce(PacketCreator.enableActions());
sendPacket(PacketCreator.enableActions());
return;
}
} else {
client.announce(PacketCreator.showItemUnavailable());
client.announce(PacketCreator.enableActions());
sendPacket(PacketCreator.showItemUnavailable());
sendPacket(PacketCreator.enableActions());
return;
}
client.announce(PacketCreator.enableActions());
sendPacket(PacketCreator.enableActions());
return;
}
if (!this.needQuestItem(mapitem.getQuest(), mapitem.getItemId())) {
client.announce(PacketCreator.showItemUnavailable());
client.announce(PacketCreator.enableActions());
sendPacket(PacketCreator.showItemUnavailable());
sendPacket(PacketCreator.enableActions());
return;
}
@@ -2011,7 +2012,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
itemScript = info;
} else {
if (!MapleInventoryManipulator.addFromDrop(client, mItem, true)) {
client.announce(PacketCreator.enableActions());
sendPacket(PacketCreator.enableActions());
return;
}
}
@@ -2027,14 +2028,14 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
updateAriantScore();
}
} else {
client.announce(PacketCreator.enableActions());
sendPacket(PacketCreator.enableActions());
return;
}
this.getMap().pickItemDrop(pickupPacket, mapitem);
} else if(!hasSpaceInventory) {
client.announce(PacketCreator.getInventoryFull());
client.announce(PacketCreator.getShowInventoryFull());
sendPacket(PacketCreator.getInventoryFull());
sendPacket(PacketCreator.getShowInventoryFull());
}
} finally {
mapitem.unlockItem();
@@ -2045,7 +2046,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
ism.runItemScript(client, itemScript);
}
}
client.announce(PacketCreator.enableActions());
sendPacket(PacketCreator.enableActions());
}
public int countItem(int itemid) {
@@ -2076,7 +2077,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
}
public void announceBattleshipHp() {
announce(PacketCreator.skillCooldown(5221999, battleshipHp));
sendPacket(PacketCreator.skillCooldown(5221999, battleshipHp));
}
public void decreaseBattleshipHp(int decrease) {
@@ -2084,7 +2085,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
if (battleshipHp <= 0) {
Skill battleship = SkillFactory.getSkill(Corsair.BATTLE_SHIP);
int cooldown = battleship.getEffect(getSkillLevel(battleship)).getCooldown();
announce(PacketCreator.skillCooldown(Corsair.BATTLE_SHIP, cooldown));
sendPacket(PacketCreator.skillCooldown(Corsair.BATTLE_SHIP, cooldown));
addCooldown(Corsair.BATTLE_SHIP, Server.getInstance().getCurrentTime(), (long)(cooldown * 1000));
removeCooldown(5221999);
cancelEffectFromBuffStat(MapleBuffStat.MONSTER_RIDING);
@@ -2116,7 +2117,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
private void nextPendingRequest(MapleClient c) {
CharacterNameAndId pendingBuddyRequest = c.getPlayer().getBuddylist().pollPendingRequest();
if (pendingBuddyRequest != null) {
c.announce(PacketCreator.requestBuddylistAdd(pendingBuddyRequest.getId(), c.getPlayer().getId(), pendingBuddyRequest.getName()));
c.sendPacket(PacketCreator.requestBuddylistAdd(pendingBuddyRequest.getId(), c.getPlayer().getId(), pendingBuddyRequest.getName()));
}
}
@@ -2134,7 +2135,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
notifyRemoteChannel(client, getWorldServer().find(otherCid), otherCid, BuddyList.BuddyOperation.DELETED);
}
bl.remove(otherCid);
client.announce(PacketCreator.updateBuddylist(getBuddylist().getBuddies()));
sendPacket(PacketCreator.updateBuddylist(getBuddylist().getBuddies()));
nextPendingRequest(client);
}
@@ -2459,7 +2460,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
if(MapleCharacter.this.getHp() < localmaxhp) {
byte recHP = (byte) (healHP / YamlConfig.config.server.CHAIR_EXTRA_HEAL_MULTIPLIER);
client.announce(PacketCreator.showOwnRecovery(recHP));
sendPacket(PacketCreator.showOwnRecovery(recHP));
getMap().broadcastMessage(MapleCharacter.this, PacketCreator.showRecovery(id, recHP), false);
} else if (MapleCharacter.this.getMp() >= localmaxmp) {
stopChairTask(); // optimizing schedule management when player is already with full pool.
@@ -2507,7 +2508,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
if(MapleCharacter.this.getHp() < localmaxhp) {
if(healHP > 0) {
client.announce(PacketCreator.showOwnRecovery(healHP));
sendPacket(PacketCreator.showOwnRecovery(healHP));
getMap().broadcastMessage(MapleCharacter.this, PacketCreator.showRecovery(id, healHP), false);
}
}
@@ -2632,9 +2633,9 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
final List<Pair<MapleDisease, Integer>> debuff = Collections.singletonList(new Pair<>(disease, Integer.valueOf(skill.getX())));
if (disease != MapleDisease.SLOW) {
this.announce(PacketCreator.giveForeignDebuff(cid, debuff, skill));
this.sendPacket(PacketCreator.giveForeignDebuff(cid, debuff, skill));
} else {
this.announce(PacketCreator.giveForeignSlowDebuff(cid, debuff, skill));
this.sendPacket(PacketCreator.giveForeignSlowDebuff(cid, debuff, skill));
}
}
}
@@ -2662,7 +2663,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
}
final List<Pair<MapleDisease, Integer>> debuff = Collections.singletonList(new Pair<>(disease, Integer.valueOf(skill.getX())));
client.announce(PacketCreator.giveDebuff(debuff, skill));
sendPacket(PacketCreator.giveDebuff(debuff, skill));
if (disease != MapleDisease.SLOW) {
map.broadcastMessage(this, PacketCreator.giveForeignDebuff(id, debuff, skill), false);
@@ -2675,7 +2676,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
public void dispelDebuff(MapleDisease debuff) {
if (hasDisease(debuff)) {
long mask = debuff.getValue();
announce(PacketCreator.cancelDebuff(mask));
sendPacket(PacketCreator.cancelDebuff(mask));
if (debuff != MapleDisease.SLOW) {
map.broadcastMessage(this, PacketCreator.cancelForeignDebuff(id, mask), false);
@@ -2790,7 +2791,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
}
public void dropMessage(int type, String message) {
client.announce(PacketCreator.serverNotice(type, message));
sendPacket(PacketCreator.serverNotice(type, message));
}
public void enteredScript(String script, int mapid) {
@@ -2910,7 +2911,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
MapleCoolDownValueHolder mcdvh = bel.getValue();
if(curTime >= mcdvh.startTime + mcdvh.length) {
removeCooldown(mcdvh.skillId);
client.announce(PacketCreator.skillCooldown(mcdvh.skillId, 0));
sendPacket(PacketCreator.skillCooldown(mcdvh.skillId, 0));
}
}
}
@@ -2955,7 +2956,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
forceUpdateItem(item); //TEST :3
} else if (expiration != -1 && expiration < currenttime) {
if (!ItemConstants.isPet(item.getItemId())) {
client.announce(PacketCreator.itemExpired(item.getItemId()));
sendPacket(PacketCreator.itemExpired(item.getItemId()));
toberemove.add(item);
if (ItemConstants.isRateCoupon(item.getItemId())) {
deletedCoupon = true;
@@ -2967,7 +2968,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
}
if (ItemConstants.isExpirablePet(item.getItemId())) {
client.announce(PacketCreator.itemExpired(item.getItemId()));
sendPacket(PacketCreator.itemExpired(item.getItemId()));
toberemove.add(item);
} else {
item.setExpiration(-1);
@@ -3018,7 +3019,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
final List<ModifyInventory> mods = new LinkedList<>();
mods.add(new ModifyInventory(3, item));
mods.add(new ModifyInventory(0, item));
client.announce(PacketCreator.modifyInventory(true, mods));
sendPacket(PacketCreator.modifyInventory(true, mods));
}
public void gainGachaExp() {
@@ -3095,7 +3096,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
white = false;
}
client.announce(PacketCreator.getShowExpGain((int) gain, equip, party, inChat, white));
sendPacket(PacketCreator.getShowExpGain((int) gain, equip, party, inChat, white));
}
private synchronized void gainExpInternal(long gain, int equip, int party, boolean show, boolean inChat, boolean white) { // need of method synchonization here detected thanks to MedicOP
@@ -3159,10 +3160,10 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
updateSingleStat(MapleStat.FAME, thisFame);
if (fromPlayer != null) {
fromPlayer.announce(PacketCreator.giveFameResponse(mode, getName(), thisFame));
announce(PacketCreator.receiveFame(mode, fromPlayer.getName()));
fromPlayer.sendPacket(PacketCreator.giveFameResponse(mode, getName(), thisFame));
sendPacket(PacketCreator.receiveFame(mode, fromPlayer.getName()));
} else {
announce(PacketCreator.getShowFameGain(delta));
sendPacket(PacketCreator.getShowFameGain(delta));
}
return true;
@@ -3202,15 +3203,15 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
if (gain != 0) {
updateSingleStat(MapleStat.MESO, (int) nextMeso, enableActions);
if (show) {
client.announce(PacketCreator.getShowMesoGain(gain, inChat));
sendPacket(PacketCreator.getShowMesoGain(gain, inChat));
}
} else {
client.announce(PacketCreator.enableActions());
sendPacket(PacketCreator.enableActions());
}
}
public void genericGuildMessage(int code) {
this.client.announce(PacketCreator.genericGuildMessage((byte) code));
this.sendPacket(GuildPackets.genericGuildMessage((byte) code));
}
public int getAccountID() {
@@ -4033,7 +4034,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
}
if (!inactiveStats.isEmpty()) {
client.announce(PacketCreator.cancelBuff(inactiveStats));
sendPacket(PacketCreator.cancelBuff(inactiveStats));
getMap().broadcastMessage(this, PacketCreator.cancelForeignBuff(getId(), inactiveStats), false);
}
}
@@ -4309,7 +4310,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
if (this.isRidingBattleship()) {
List<Pair<MapleBuffStat, Integer>> statups = new ArrayList<>(1);
statups.add(new Pair<>(MapleBuffStat.MONSTER_RIDING, 0));
this.announce(PacketCreator.giveBuff(1932000, 5221006, statups));
this.sendPacket(PacketCreator.giveBuff(1932000, 5221006, statups));
this.announceBattleshipHp();
}
}
@@ -4403,7 +4404,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
}
addHP(healEffect.getHp());
client.announce(PacketCreator.showOwnBuffEffect(beholder, 2));
sendPacket(PacketCreator.showOwnBuffEffect(beholder, 2));
getMap().broadcastMessage(MapleCharacter.this, PacketCreator.summonSkill(getId(), beholder, 5), true);
getMap().broadcastMessage(MapleCharacter.this, PacketCreator.showOwnBuffEffect(beholder, 2), false);
}
@@ -4421,9 +4422,9 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
}
buffEffect.applyTo(MapleCharacter.this);
client.announce(PacketCreator.showOwnBuffEffect(beholder, 2));
sendPacket(PacketCreator.showOwnBuffEffect(beholder, 2));
getMap().broadcastMessage(MapleCharacter.this, PacketCreator.summonSkill(getId(), beholder, (int) (Math.random() * 3) + 6), true);
getMap().broadcastMessage(MapleCharacter.this, PacketCreator.showBuffeffect(getId(), beholder, 2), false);
getMap().broadcastMessage(MapleCharacter.this, PacketCreator.showBuffEffect(getId(), beholder, 2), false);
}
}, buffInterval, buffInterval);
}
@@ -4455,7 +4456,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
}
addHP(heal);
client.announce(PacketCreator.showOwnRecovery(heal));
sendPacket(PacketCreator.showOwnRecovery(heal));
getMap().broadcastMessage(MapleCharacter.this, PacketCreator.showRecovery(id, heal), false);
}
}, healInterval, healInterval);
@@ -4813,7 +4814,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
Set<Integer> exclItems = pe.getValue();
if (!exclItems.isEmpty()) {
client.announce(PacketCreator.loadExceptionList(this.getId(), pe.getKey(), petIndex, new ArrayList<>(exclItems)));
sendPacket(PacketCreator.loadExceptionList(this.getId(), pe.getKey(), petIndex, new ArrayList<>(exclItems)));
chrLock.lock();
try {
@@ -4837,7 +4838,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
Set<Integer> exclItems = pe.getValue();
if (!exclItems.isEmpty()) {
c.announce(PacketCreator.loadExceptionList(this.getId(), pe.getKey(), petIndex, new ArrayList<>(exclItems)));
c.sendPacket(PacketCreator.loadExceptionList(this.getId(), pe.getKey(), petIndex, new ArrayList<>(exclItems)));
}
}
}
@@ -5936,7 +5937,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
//Server.getInstance().getGuild(guildid, world, mgc).gainGP(40);
int allianceId = getGuild().getAllianceId();
if (allianceId > 0) {
Server.getInstance().allianceMessage(allianceId, PacketCreator.updateAllianceJobLevel(this), getId(), -1);
Server.getInstance().allianceMessage(allianceId, GuildPackets.updateAllianceJobLevel(this), getId(), -1);
}
} catch (Exception e) {
e.printStackTrace();
@@ -5955,10 +5956,10 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
}
List<Pair<MapleBuffStat, Integer>> stat = Collections.singletonList(new Pair<>(MapleBuffStat.ENERGY_CHARGE, energybar));
setBuffedValue(MapleBuffStat.ENERGY_CHARGE, energybar);
client.announce(PacketCreator.giveBuff(energybar, 0, stat));
client.announce(PacketCreator.showOwnBuffEffect(energycharge.getId(), 2));
getMap().broadcastMessage(this, PacketCreator.showBuffeffect(id, energycharge.getId(), 2));
getMap().broadcastMessage(this, PacketCreator.giveForeignBuff(energybar, stat));
sendPacket(PacketCreator.giveBuff(energybar, 0, stat));
sendPacket(PacketCreator.showOwnBuffEffect(energycharge.getId(), 2));
getMap().broadcastPacket(this, PacketCreator.showBuffEffect(id, energycharge.getId(), 2));
getMap().broadcastPacket(this, PacketCreator.giveForeignBuff(energybar, stat));
}
if (energybar >= 10000 && energybar < 11000) {
energybar = 15000;
@@ -5969,8 +5970,8 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
energybar = 0;
List<Pair<MapleBuffStat, Integer>> stat = Collections.singletonList(new Pair<>(MapleBuffStat.ENERGY_CHARGE, energybar));
setBuffedValue(MapleBuffStat.ENERGY_CHARGE, energybar);
client.announce(PacketCreator.giveBuff(energybar, 0, stat));
getMap().broadcastMessage(chr, PacketCreator.cancelForeignFirstDebuff(id, ((long) 1) << 50));
sendPacket(PacketCreator.giveBuff(energybar, 0, stat));
getMap().broadcastPacket(chr, PacketCreator.cancelForeignFirstDebuff(id, ((long) 1) << 50));
}
}, ceffect.getDuration());
}
@@ -5981,7 +5982,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
Skill combo = SkillFactory.getSkill(skillid);
List<Pair<MapleBuffStat, Integer>> stat = Collections.singletonList(new Pair<>(MapleBuffStat.COMBO, 1));
setBuffedValue(MapleBuffStat.COMBO, 1);
client.announce(PacketCreator.giveBuff(skillid, combo.getEffect(getSkillLevel(combo)).getDuration() + (int) ((getBuffedStarttime(MapleBuffStat.COMBO) - System.currentTimeMillis())), stat));
sendPacket(PacketCreator.giveBuff(skillid, combo.getEffect(getSkillLevel(combo)).getDuration() + (int) ((getBuffedStarttime(MapleBuffStat.COMBO) - System.currentTimeMillis())), stat));
getMap().broadcastMessage(this, PacketCreator.giveForeignBuff(getId(), stat), false);
}
@@ -6440,7 +6441,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
statup.add(new Pair<>(MapleStat.STR, str));
statup.add(new Pair<>(MapleStat.DEX, dex));
client.announce(PacketCreator.updatePlayerStats(statup, true, this));
sendPacket(PacketCreator.updatePlayerStats(statup, true, this));
} finally {
statWlock.unlock();
effLock.unlock();
@@ -6498,7 +6499,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
MapleFamilyEntry senior = familyEntry.getSenior();
if(senior != null) { //only send the message to direct senior
MapleCharacter seniorChr = senior.getChr();
if(seniorChr != null) seniorChr.announce(PacketCreator.levelUpMessage(1, level, getName()));
if(seniorChr != null) seniorChr.sendPacket(PacketCreator.levelUpMessage(1, level, getName()));
}
}
}
@@ -7496,7 +7497,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
}
public void yellowMessage(String m) {
announce(PacketCreator.sendYellowTip(m));
sendPacket(PacketCreator.sendYellowTip(m));
}
public void raiseQuestMobCount(int id) {
@@ -7604,7 +7605,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
}
unsitChairInternal();
client.announce(PacketCreator.enableActions());
sendPacket(PacketCreator.enableActions());
}
private void unsitChairInternal() {
@@ -7622,7 +7623,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
getMap().broadcastMessage(this, PacketCreator.showChair(this.getId(), 0), false);
}
announce(PacketCreator.cancelChair(-1));
sendPacket(PacketCreator.cancelChair(-1));
}
public void sitChair(int itemId) {
@@ -7632,14 +7633,14 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
setChair(itemId);
getMap().broadcastMessage(this, PacketCreator.showChair(this.getId(), itemId), false);
}
announce(PacketCreator.enableActions());
sendPacket(PacketCreator.enableActions());
} else if (itemId >= 0) { // sit on map chair
if (chair.get() < 0) {
setChair(itemId);
if (registerChairBuff()) {
getMap().broadcastMessage(this, PacketCreator.giveForeignChairSkillEffect(this.getId()), false);
}
announce(PacketCreator.cancelChair(itemId));
sendPacket(PacketCreator.cancelChair(itemId));
}
} else { // stand up
unsitChairInternal();
@@ -7684,8 +7685,8 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
}
addHP(-bloodEffect.getX());
announce(PacketCreator.showOwnBuffEffect(bloodEffect.getSourceId(), 5));
getMap().broadcastMessage(MapleCharacter.this, PacketCreator.showBuffeffect(getId(), bloodEffect.getSourceId(), 5), false);
sendPacket(PacketCreator.showOwnBuffEffect(bloodEffect.getSourceId(), 5));
getMap().broadcastMessage(MapleCharacter.this, PacketCreator.showBuffEffect(getId(), bloodEffect.getSourceId(), 5), false);
}
}, 4000, 4000);
}
@@ -7909,7 +7910,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
enforceMaxHpMp();
if (!hpmpupdate.isEmpty()) {
client.announce(PacketCreator.updatePlayerStats(hpmpupdate, true, this));
sendPacket(PacketCreator.updatePlayerStats(hpmpupdate, true, this));
}
if (oldmaxhp != localmaxhp) { // thanks Wh1SK3Y (Suwaidy) for pointing out a deadlock occuring related to party members HP
@@ -7927,7 +7928,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
try {
if (party != null) {
for (MapleCharacter partychar : this.getPartyMembersOnSameMap()) {
announce(PacketCreator.updatePartyMemberHP(partychar.getId(), partychar.getHp(), partychar.getCurrentMaxHp()));
sendPacket(PacketCreator.updatePartyMemberHP(partychar.getId(), partychar.getHp(), partychar.getCurrentMaxHp()));
}
}
} finally {
@@ -7944,7 +7945,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
if (mcvh.skillId != id) {
coolDowns.remove(mcvh.skillId);
if (packet) {
client.announce(PacketCreator.skillCooldown(mcvh.skillId, 0));
sendPacket(PacketCreator.skillCooldown(mcvh.skillId, 0));
}
}
}
@@ -8743,7 +8744,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
}
public void sendPolice(int greason, String reason, int duration) {
announce(PacketCreator.sendPolice(String.format("You have been blocked by the#b %s Police for %s.#k", "Cosmic", reason)));
sendPacket(PacketCreator.sendPolice(String.format("You have been blocked by the#b %s Police for %s.#k", "Cosmic", reason)));
this.isbanned = true;
TimerManager.getInstance().schedule(new Runnable() {
@Override
@@ -8763,7 +8764,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
FilePrinter.print(FilePrinter.AUTOBAN_DC, message);
}
//Server.getInstance().broadcastGMMessage(0, PacketCreator.serverNotice(1, getName() + " received this - " + text));
//announce(PacketCreator.sendPolice(text));
//sendPacket(PacketCreator.sendPolice(text));
//this.isbanned = true;
//TimerManager.getInstance().schedule(new Runnable() {
// @Override
@@ -8774,7 +8775,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
}
public void sendKeymap() {
client.announce(PacketCreator.getKeymap(keymap));
sendPacket(PacketCreator.getKeymap(keymap));
}
public void sendQuickmap() {
@@ -8785,12 +8786,12 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
pQuickslotKeyMapped = new MapleQuickslotBinding(MapleQuickslotBinding.DEFAULT_QUICKSLOTS);
}
this.announce(PacketCreator.QuickslotMappedInit(pQuickslotKeyMapped));
this.sendPacket(PacketCreator.QuickslotMappedInit(pQuickslotKeyMapped));
}
public void sendMacros() {
// Always send the macro packet to fix a client side bug when switching characters.
client.announce(PacketCreator.getMacros(skillMacros));
sendPacket(PacketCreator.getMacros(skillMacros));
}
public SkillMacro[] getMacros() {
@@ -8827,7 +8828,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
public void setBuddyCapacity(int capacity) {
buddylist.setCapacity(capacity);
client.announce(PacketCreator.updateBuddyCapacity(capacity));
sendPacket(PacketCreator.updateBuddyCapacity(capacity));
}
public void setBuffedValue(MapleBuffStat effect, int value) {
@@ -9301,7 +9302,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
if (newLimit != -1) {
this.saveCharToDB();
if (update) {
client.announce(PacketCreator.updateInventorySlotLimit(type, newLimit));
sendPacket(PacketCreator.updateInventorySlotLimit(type, newLimit));
}
return true;
} else {
@@ -9603,7 +9604,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
public void showDojoClock() {
if (GameConstants.isDojoBossArea(map.getId())) {
client.announce(PacketCreator.getClock((int) (getDojoTimeLeft() / 1000)));
sendPacket(PacketCreator.getClock((int) (getDojoTimeLeft() / 1000)));
}
}
@@ -9633,7 +9634,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
strLines.add("");
strLines.add(this.getClient().getChannelServer().getServerMessage().isEmpty() ? 0 : 1, "Get off my lawn!!");
this.announce(PacketCreator.getAvatarMega(mapOwner, medal, this.getClient().getChannel(), 5390006, strLines, true));
this.sendPacket(PacketCreator.getAvatarMega(mapOwner, medal, this.getClient().getChannel(), 5390006, strLines, true));
}
}
@@ -9653,7 +9654,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
rs.last();
int count = rs.getRow();
rs.first();
client.announce(PacketCreator.showNotes(rs, count));
sendPacket(PacketCreator.showNotes(rs, count));
}
} catch (SQLException e) {
e.printStackTrace();
@@ -9750,11 +9751,11 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
public void startMapEffect(String msg, int itemId, int duration) {
final MapleMapEffect mapEffect = new MapleMapEffect(msg, itemId);
getClient().announce(mapEffect.makeStartData());
sendPacket(mapEffect.makeStartData());
TimerManager.getInstance().schedule(new Runnable() {
@Override
public void run() {
getClient().announce(mapEffect.makeDestroyData());
sendPacket(mapEffect.makeDestroyData());
}
}, duration);
}
@@ -9787,8 +9788,8 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
removePet(pet, shift_left);
commitExcludedItems();
client.announce(PacketCreator.petStatUpdate(this));
client.announce(PacketCreator.enableActions());
sendPacket(PacketCreator.petStatUpdate(this));
sendPacket(PacketCreator.enableActions());
}
public void updateMacros(int position, SkillMacro updateMacro) {
@@ -9809,7 +9810,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
int curmaxhp = getCurrentMaxHp();
int curhp = getHp();
for (MapleCharacter partychar : this.getPartyMembersOnSameMap()) {
partychar.announce(PacketCreator.updatePartyMemberHP(getId(), curhp, curmaxhp));
partychar.sendPacket(PacketCreator.updatePartyMemberHP(getId(), curhp, curmaxhp));
}
}
}
@@ -9859,20 +9860,20 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
switch (questUpdate.getLeft()) {
case UPDATE:
announce(PacketCreator.updateQuest(chr, (MapleQuestStatus) objs[0], (Boolean) objs[1]));
sendPacket(PacketCreator.updateQuest(chr, (MapleQuestStatus) objs[0], (Boolean) objs[1]));
break;
case FORFEIT:
announce(PacketCreator.forfeitQuest((Short) objs[0]));
sendPacket(PacketCreator.forfeitQuest((Short) objs[0]));
break;
case COMPLETE:
announce(PacketCreator.completeQuest((Short) objs[0], (Long) objs[1]));
sendPacket(PacketCreator.completeQuest((Short) objs[0], (Long) objs[1]));
break;
case INFO:
MapleQuestStatus qs = (MapleQuestStatus) objs[0];
announce(PacketCreator.updateQuestInfo(qs.getQuest().getId(), qs.getNpc()));
sendPacket(PacketCreator.updateQuestInfo(qs.getQuest().getId(), qs.getNpc()));
break;
}
}
@@ -9933,7 +9934,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
private void expireQuest(MapleQuest quest) {
if (quest.forfeit(this)) {
announce(PacketCreator.questExpire(quest.getId()));
sendPacket(PacketCreator.questExpire(quest.getId()));
}
}
@@ -10028,7 +10029,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
public void questTimeLimit(final MapleQuest quest, int seconds) {
registerQuestExpire(quest, seconds * 1000);
announce(PacketCreator.addQuestTimeLimit(quest.getId(), seconds * 1000));
sendPacket(PacketCreator.addQuestTimeLimit(quest.getId(), seconds * 1000));
}
public void questTimeLimit2(final MapleQuest quest, long expires) {
@@ -10046,12 +10047,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
}
private void updateSingleStat(MapleStat stat, int newval, boolean itemReaction) {
announce(PacketCreator.updatePlayerStats(Collections.singletonList(new Pair<>(stat, Integer.valueOf(newval))), itemReaction, this));
}
@Deprecated(forRemoval = true)
public void announce(final byte[] packet) {
client.announce(packet);
sendPacket(PacketCreator.updatePlayerStats(Collections.singletonList(new Pair<>(stat, Integer.valueOf(newval))), itemReaction, this));
}
public void sendPacket(Packet packet) {
@@ -10070,16 +10066,16 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
@Override
public void sendDestroyData(MapleClient client) {
client.announce(PacketCreator.removePlayerFromMap(this.getObjectId()));
client.sendPacket(PacketCreator.removePlayerFromMap(this.getObjectId()));
}
@Override
public void sendSpawnData(MapleClient client) {
if (!this.isHidden() || client.getPlayer().gmLevel() > 1) {
client.announce(PacketCreator.spawnPlayerMapObject(client, this, false));
client.sendPacket(PacketCreator.spawnPlayerMapObject(client, this, false));
if (buffEffects.containsKey(getJobMapChair(job))) { // mustn't effLock, chrLock sendSpawnData
client.announce(PacketCreator.giveForeignChairSkillEffect(id));
client.sendPacket(PacketCreator.giveForeignChairSkillEffect(id));
}
}
@@ -10154,7 +10150,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
public void blockPortal(String scriptName) {
if (!blockedPortals.contains(scriptName) && scriptName != null) {
blockedPortals.add(scriptName);
client.announce(PacketCreator.enableActions());
sendPacket(PacketCreator.enableActions());
}
}
@@ -10178,7 +10174,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
public void updateAreaInfo(int area, String info) {
area_info.put(Short.valueOf((short) area), info);
announce(PacketCreator.updateAreaInfo(area, info));
sendPacket(PacketCreator.updateAreaInfo(area, info));
}
public String getAreaInfo(int area) {
@@ -10195,7 +10191,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
}
this.ban(reason);
announce(PacketCreator.sendPolice(String.format("You have been blocked by the#b %s Police for HACK reason.#k", "Cosmic")));
sendPacket(PacketCreator.sendPolice(String.format("You have been blocked by the#b %s Police for HACK reason.#k", "Cosmic")));
TimerManager.getInstance().schedule(new Runnable() {
@Override
public void run() {
@@ -11244,7 +11240,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
if (this.getCP() > this.getTotalCP()) {
this.setTotalCP(this.getCP());
}
this.getClient().announce(PacketCreator.CPUpdate(false, this.getCP(), this.getTotalCP(), getTeam()));
sendPacket(PacketCreator.CPUpdate(false, this.getCP(), this.getTotalCP(), getTeam()));
if (this.getParty() != null && getTeam() != -1) {
this.getMap().broadcastMessage(PacketCreator.CPUpdate(true, this.getMonsterCarnival().getCP(team), this.getMonsterCarnival().getTotalCP(team), getTeam()));
} else {

View File

@@ -30,9 +30,7 @@ import io.netty.handler.timeout.IdleStateEvent;
import net.MaplePacketHandler;
import net.PacketProcessor;
import net.netty.InvalidPacketHeaderException;
import net.packet.ByteBufOutPacket;
import net.packet.InPacket;
import net.packet.OutPacket;
import net.packet.Packet;
import net.packet.logging.LoggingUtil;
import net.packet.logging.MapleLogger;
@@ -45,6 +43,7 @@ import net.server.coordinator.session.Hwid;
import net.server.coordinator.session.IpAddresses;
import net.server.coordinator.session.SessionCoordinator;
import net.server.coordinator.session.SessionCoordinator.AntiMulticlientResult;
import net.server.guild.GuildPackets;
import net.server.guild.MapleGuild;
import net.server.guild.MapleGuildCharacter;
import net.server.world.*;
@@ -209,7 +208,7 @@ public class MapleClient extends ChannelInboundHandlerAdapter {
handler.handlePacket(accessor, this);
} catch (final Throwable t) {
FilePrinter.printError(FilePrinter.PACKET_HANDLER + handler.getClass().getName() + ".txt", t, "Error for " + (getPlayer() == null ? "" : "player ; " + getPlayer() + " on map ; " + getPlayer().getMapId() + " - ") + "account ; " + getAccountName() + "\r\n" + accessor);
//client.announce(PacketCreator.enableActions());//bugs sometimes
//client.sendPacket(PacketCreator.enableActions());//bugs sometimes
}
}
@@ -308,7 +307,7 @@ public class MapleClient extends ChannelInboundHandlerAdapter {
}
public void sendCharList(int server) {
this.announce(PacketCreator.getCharList(this, server, 0));
this.sendPacket(PacketCreator.getCharList(this, server, 0));
}
public List<MapleCharacter> loadCharacters(int serverId) {
@@ -1000,7 +999,7 @@ public class MapleClient extends ChannelInboundHandlerAdapter {
if (guild != null) {
final Server server = Server.getInstance();
server.setGuildMemberOnline(player, false, player.getClient().getChannel());
player.getClient().announce(PacketCreator.showGuildInfo(player));
player.sendPacket(GuildPackets.showGuildInfo(player));
}
if (bl != null) {
wserv.loggedOff(player.getName(), player.getId(), channel, player.getBuddylist().getBuddyIds());
@@ -1145,7 +1144,7 @@ public class MapleClient extends ChannelInboundHandlerAdapter {
public void checkIfIdle(final IdleStateEvent event) {
final long pingedAt = System.currentTimeMillis();
announce(PacketCreator.getPing());
sendPacket(PacketCreator.getPing());
TimerManager.getInstance().schedule(() -> {
try {
if (lastPong < pingedAt) {
@@ -1415,15 +1414,15 @@ public class MapleClient extends ChannelInboundHandlerAdapter {
private void announceDisableServerMessage() {
if (!this.getWorldServer().registerDisabledServerMessage(player.getId())) {
announce(PacketCreator.serverMessage(""));
sendPacket(PacketCreator.serverMessage(""));
}
}
public void announceServerMessage() {
announce(PacketCreator.serverMessage(this.getChannelServer().getServerMessage()));
sendPacket(PacketCreator.serverMessage(this.getChannelServer().getServerMessage()));
}
public synchronized void announceBossHpBar(MapleMonster mm, final int mobHash, final byte[] packet) {
public synchronized void announceBossHpBar(MapleMonster mm, final int mobHash, Packet packet) {
long timeNow = System.currentTimeMillis();
int targetHash = player.getTargetHpBarHash();
@@ -1431,55 +1430,31 @@ public class MapleClient extends ChannelInboundHandlerAdapter {
if (timeNow - player.getTargetHpBarTime() >= 5 * 1000) {
// is there a way to INTERRUPT this annoying thread running on the client that drops the boss bar after some time at every attack?
announceDisableServerMessage();
announce(packet);
sendPacket(packet);
player.setTargetHpBarHash(mobHash);
player.setTargetHpBarTime(timeNow);
}
} else {
announceDisableServerMessage();
announce(packet);
sendPacket(packet);
player.setTargetHpBarTime(timeNow);
}
}
@Deprecated(forRemoval = true, since = "Netty migration")
public void announce(final byte[] packet) { // thanks GitGud for noticing an opportunity for improvement by overcoming "synchronized announce"
announcerLock.lock();
try {
// session.write(packet);
sendPacket(packet);
} finally {
announcerLock.unlock();
}
}
// Workaround for old packets. All uses of Client#announce(byte[]) should be migrated to Client#sendPacket(OutPacket)
private void sendPacket(final byte[] packet) {
announcerLock.lock();
try {
OutPacket outPacket = new ByteBufOutPacket();
outPacket.writeBytes(packet);
ioChannel.writeAndFlush(outPacket);
} finally {
announcerLock.unlock();
}
}
public void sendPacket(Packet packet) {
announcerLock.lock();
try {
ioChannel.writeAndFlush(packet.getBytes());
ioChannel.writeAndFlush(packet);
} finally {
announcerLock.unlock();
}
}
public void announceHint(String msg, int length) {
announce(PacketCreator.sendHint(msg, length, 10));
announce(PacketCreator.enableActions());
sendPacket(PacketCreator.sendHint(msg, length, 10));
sendPacket(PacketCreator.enableActions());
}
public void changeChannel(int channel) {
@@ -1489,18 +1464,18 @@ public class MapleClient extends ChannelInboundHandlerAdapter {
return;
}
if (!player.isAlive() || FieldLimit.CANNOTMIGRATE.check(player.getMap().getFieldLimit())) {
announce(PacketCreator.enableActions());
sendPacket(PacketCreator.enableActions());
return;
} else if (MapleMiniDungeonInfo.isDungeonMap(player.getMapId())) {
announce(PacketCreator.serverNotice(5, "Changing channels or entering Cash Shop or MTS are disabled when inside a Mini-Dungeon."));
announce(PacketCreator.enableActions());
sendPacket(PacketCreator.serverNotice(5, "Changing channels or entering Cash Shop or MTS are disabled when inside a Mini-Dungeon."));
sendPacket(PacketCreator.enableActions());
return;
}
String[] socket = Server.getInstance().getInetSocket(this, getWorld(), channel);
if (socket == null) {
announce(PacketCreator.serverNotice(1, "Channel " + channel + " is currently disabled. Try another channel."));
announce(PacketCreator.enableActions());
sendPacket(PacketCreator.serverNotice(1, "Channel " + channel + " is currently disabled. Try another channel."));
sendPacket(PacketCreator.enableActions());
return;
}
@@ -1531,7 +1506,7 @@ public class MapleClient extends ChannelInboundHandlerAdapter {
player.setSessionTransitionState();
try {
announce(PacketCreator.getChannelChange(InetAddress.getByName(socket[0]), Integer.parseInt(socket[1])));
sendPacket(PacketCreator.getChannelChange(InetAddress.getByName(socket[0]), Integer.parseInt(socket[1])));
} catch (IOException e) {
e.printStackTrace();
}
@@ -1587,7 +1562,7 @@ public class MapleClient extends ChannelInboundHandlerAdapter {
}
public void enableCSActions() {
announce(PacketCreator.enableCSUse(player));
sendPacket(PacketCreator.enableCSUse(player));
}
public boolean canBypassPin() {

View File

@@ -21,6 +21,7 @@
*/
package client;
import net.packet.Packet;
import net.server.Server;
import net.server.world.World;
import tools.DatabaseConnection;
@@ -151,16 +152,16 @@ public class MapleFamily {
return members.get(cid);
}
public void broadcast(byte[] packet) {
public void broadcast(Packet packet) {
broadcast(packet, -1);
}
public void broadcast(byte[] packet, int ignoreID) {
public void broadcast(Packet packet, int ignoreID) {
for(MapleFamilyEntry entry : members.values()) {
MapleCharacter chr = entry.getChr();
if(chr != null) {
if(chr.getId() == ignoreID) continue;
chr.getClient().announce(packet);
chr.sendPacket(packet);
}
}
}
@@ -169,7 +170,7 @@ public class MapleFamily {
for(MapleFamilyEntry entry : members.values()) {
MapleCharacter chr = entry.getChr();
if(chr != null) {
chr.getClient().announce(PacketCreator.getFamilyInfo(entry));
chr.sendPacket(PacketCreator.getFamilyInfo(entry));
}
}
}

View File

@@ -19,6 +19,7 @@
*/
package client;
import net.packet.Packet;
import net.server.Server;
import tools.DatabaseConnection;
import tools.FilePrinter;
@@ -264,7 +265,7 @@ public class MapleFamilyEntry {
this.totalReputation += gain;
}
MapleCharacter chr = getChr();
if(chr != null) chr.announce(PacketCreator.sendGainRep(gain, from != null ? from.getName() : ""));
if(chr != null) chr.sendPacket(PacketCreator.sendGainRep(gain, from != null ? from.getName() : ""));
}
public void giveReputationToSenior(int gain, boolean includeSuperSenior) {
@@ -420,15 +421,15 @@ public class MapleFamilyEntry {
this.totalJuniors = totalJuniors;
}
public void announceToSenior(byte[] packet, boolean includeSuperSenior) {
public void announceToSenior(Packet packet, boolean includeSuperSenior) {
MapleFamilyEntry senior = getSenior();
if(senior != null) {
MapleCharacter seniorChr = senior.getChr();
if(seniorChr != null) seniorChr.announce(packet);
if(seniorChr != null) seniorChr.sendPacket(packet);
senior = senior.getSenior();
if(includeSuperSenior && senior != null) {
seniorChr = senior.getChr();
if(seniorChr != null) seniorChr.announce(packet);
if(seniorChr != null) seniorChr.sendPacket(packet);
}
}
}
@@ -437,11 +438,11 @@ public class MapleFamilyEntry {
MapleFamilyEntry senior = getSenior();
if(senior != null) {
MapleCharacter seniorChr = senior.getChr();
if(seniorChr != null) seniorChr.announce(PacketCreator.getFamilyInfo(senior));
if(seniorChr != null) seniorChr.sendPacket(PacketCreator.getFamilyInfo(senior));
senior = senior.getSenior();
if(includeSuperSenior && senior != null) {
seniorChr = senior.getChr();
if(seniorChr != null) seniorChr.announce(PacketCreator.getFamilyInfo(senior));
if(seniorChr != null) seniorChr.sendPacket(PacketCreator.getFamilyInfo(senior));
}
}
}

View File

@@ -84,10 +84,10 @@ public final class MonsterBook {
calculateLevel();
}
c.announce(PacketCreator.addCard(false, cardid, qty + 1));
c.announce(PacketCreator.showGainCard());
c.sendPacket(PacketCreator.addCard(false, cardid, qty + 1));
c.sendPacket(PacketCreator.showGainCard());
} else {
c.announce(PacketCreator.addCard(true, cardid, 5));
c.sendPacket(PacketCreator.addCard(true, cardid, 5));
}
}

View File

@@ -38,7 +38,7 @@ public class DisposeCommand extends Command {
public void execute(MapleClient c, String[] params) {
NPCScriptManager.getInstance().dispose(c);
QuestScriptManager.getInstance().dispose(c);
c.announce(PacketCreator.enableActions());
c.sendPacket(PacketCreator.enableActions());
c.removeClickedNPC();
c.getPlayer().message("You've been disposed.");
}

View File

@@ -27,7 +27,7 @@ import client.MapleCharacter;
import client.MapleClient;
import client.command.Command;
import net.server.Server;
import tools.PacketCreator;
import net.server.guild.GuildPackets;
import tools.Pair;
import java.util.List;
@@ -42,6 +42,6 @@ public class RanksCommand extends Command {
MapleCharacter player = c.getPlayer();
List<Pair<String, Integer>> worldRanking = Server.getInstance().getWorldPlayerRanking(player.getWorld());
player.announce(PacketCreator.showPlayerRanks(9010000, worldRanking));
player.sendPacket(GuildPackets.showPlayerRanks(9010000, worldRanking));
}
}

View File

@@ -73,15 +73,15 @@ public class BanCommand extends Command {
target.ban(reason);
target.yellowMessage("You have been banned by #b" + c.getPlayer().getName() + " #k.");
target.yellowMessage("Reason: " + reason);
c.announce(PacketCreator.getGMEffect(4, (byte) 0));
c.sendPacket(PacketCreator.getGMEffect(4, (byte) 0));
final MapleCharacter rip = target;
TimerManager.getInstance().schedule(() -> rip.getClient().disconnect(false, false), 5000); //5 Seconds
Server.getInstance().broadcastMessage(c.getWorld(), PacketCreator.serverNotice(6, "[RIP]: " + ign + " has been banned."));
} else if (MapleCharacter.ban(ign, reason, false)) {
c.announce(PacketCreator.getGMEffect(4, (byte) 0));
c.sendPacket(PacketCreator.getGMEffect(4, (byte) 0));
Server.getInstance().broadcastMessage(c.getWorld(), PacketCreator.serverNotice(6, "[RIP]: " + ign + " has been banned."));
} else {
c.announce(PacketCreator.getGMEffect(6, (byte) 1));
c.sendPacket(PacketCreator.getGMEffect(6, (byte) 1));
}
}
}

View File

@@ -37,6 +37,6 @@ public class MaxEnergyCommand extends Command {
public void execute(MapleClient c, String[] params) {
MapleCharacter player = c.getPlayer();
c.getPlayer().setDojoEnergy(10000);
c.announce(PacketCreator.getEnergy("energy", 10000));
c.sendPacket(PacketCreator.getEnergy("energy", 10000));
}
}

View File

@@ -53,7 +53,7 @@ public class MusicCommand extends Command {
sendMsg += "Syntax: #r!music <song>#k\r\n\r\n";
sendMsg += getSongList();
c.announce(PacketCreator.getNPCTalk(1052015, (byte) 0, sendMsg, "00 00", (byte) 0));
c.sendPacket(PacketCreator.getNPCTalk(1052015, (byte) 0, sendMsg, "00 00", (byte) 0));
return;
}
@@ -70,6 +70,6 @@ public class MusicCommand extends Command {
sendMsg += "Song not found, please enter a song below.\r\n\r\n";
sendMsg += getSongList();
c.announce(PacketCreator.getNPCTalk(1052015, (byte) 0, sendMsg, "00 00", (byte) 0));
c.sendPacket(PacketCreator.getNPCTalk(1052015, (byte) 0, sendMsg, "00 00", (byte) 0));
}
}

View File

@@ -43,13 +43,13 @@ public class TimerAllCommand extends Command {
if (params[0].equalsIgnoreCase("remove")) {
for (MapleCharacter victim : player.getWorldServer().getPlayerStorage().getAllCharacters()) {
victim.announce(PacketCreator.removeClock());
victim.sendPacket(PacketCreator.removeClock());
}
} else {
try {
int seconds = Integer.parseInt(params[0]);
for (MapleCharacter victim : player.getWorldServer().getPlayerStorage().getAllCharacters()) {
victim.announce(PacketCreator.getClock(seconds));
victim.sendPacket(PacketCreator.getClock(seconds));
}
} catch (NumberFormatException e) {
player.yellowMessage("Syntax: !timerall <seconds>|remove");

View File

@@ -44,10 +44,10 @@ public class TimerCommand extends Command {
MapleCharacter victim = c.getWorldServer().getPlayerStorage().getCharacterByName(params[0]);
if (victim != null) {
if (params[1].equalsIgnoreCase("remove")) {
victim.announce(PacketCreator.removeClock());
victim.sendPacket(PacketCreator.removeClock());
} else {
try {
victim.announce(PacketCreator.getClock(Integer.parseInt(params[1])));
victim.sendPacket(PacketCreator.getClock(Integer.parseInt(params[1])));
} catch (NumberFormatException e) {
player.yellowMessage("Syntax: !timer <playername> <seconds>|remove");
}

View File

@@ -43,13 +43,13 @@ public class TimerMapCommand extends Command {
if (params[0].equalsIgnoreCase("remove")) {
for (MapleCharacter victim : player.getMap().getCharacters()) {
victim.announce(PacketCreator.removeClock());
victim.sendPacket(PacketCreator.removeClock());
}
} else {
try {
int seconds = Integer.parseInt(params[0]);
for (MapleCharacter victim : player.getMap().getCharacters()) {
victim.announce(PacketCreator.getClock(seconds));
victim.sendPacket(PacketCreator.getClock(seconds));
}
} catch (NumberFormatException e) {
player.yellowMessage("Syntax: !timermap <seconds>|remove");

View File

@@ -55,7 +55,7 @@ public class WarpWorldCommand extends Command {
player.setSessionTransitionState();
player.setWorld(worldb);
player.saveCharToDB();//To set the new world :O (true because else 2 player instances are created, one in both worlds)
c.announce(PacketCreator.getChannelChange(InetAddress.getByName(socket[0]), Integer.parseInt(socket[1])));
c.sendPacket(PacketCreator.getChannelChange(InetAddress.getByName(socket[0]), Integer.parseInt(socket[1])));
} catch (UnknownHostException | NumberFormatException ex) {
ex.printStackTrace();
player.message("Unexpected error when changing worlds, are you sure the world you are trying to warp to has the same amount of channels?");

View File

@@ -90,7 +90,7 @@ public abstract class CharacterFactory {
if (!newchar.insertNewChar(recipe)) {
return -2;
}
c.announce(PacketCreator.addNewCharEntry(newchar));
c.sendPacket(PacketCreator.addNewCharEntry(newchar));
Server.getInstance().createCharacterEntry(newchar);
Server.getInstance().broadcastGMMessage(c.getWorld(), PacketCreator.sendYellowTip("[New Char]: " + c.getAccountName() + " has created a new character with IGN " + name));

View File

@@ -532,8 +532,8 @@ public class Equip extends Item {
showLevelupMessage(showStr, c); // thanks to Polaris dev team !
c.getPlayer().dropMessage(6, lvupStr);
c.announce(PacketCreator.showEquipmentLevelUp());
c.getPlayer().getMap().broadcastMessage(c.getPlayer(), PacketCreator.showForeignEffect(c.getPlayer().getId(), 15));
c.sendPacket(PacketCreator.showEquipmentLevelUp());
c.getPlayer().getMap().broadcastPacket(c.getPlayer(), PacketCreator.showForeignEffect(c.getPlayer().getId(), 15));
c.getPlayer().forceUpdateItem(this);
}

View File

@@ -202,7 +202,7 @@ public class MaplePet extends Item {
closeness = newCloseness;
while(newCloseness >= ExpTable.getClosenessNeededForLevel(level)) {
level += 1;
owner.getClient().announce(PacketCreator.showOwnPetLevelUp(slot));
owner.sendPacket(PacketCreator.showOwnPetLevelUp(slot));
owner.getMap().broadcastMessage(PacketCreator.showPetLevelUp(owner, slot));
}
}

View File

@@ -92,7 +92,7 @@ public class MapleInventoryManipulator {
quantity -= (newQ - oldQ);
eItem.setQuantity(newQ);
eItem.setExpiration(expiration);
c.announce(PacketCreator.modifyInventory(true, Collections.singletonList(new ModifyInventory(1, eItem))));
c.sendPacket(PacketCreator.modifyInventory(true, Collections.singletonList(new ModifyInventory(1, eItem))));
}
} else {
break;
@@ -109,17 +109,17 @@ public class MapleInventoryManipulator {
nItem.setExpiration(expiration);
short newSlot = inv.addItem(nItem);
if (newSlot == -1) {
c.announce(PacketCreator.getInventoryFull());
c.announce(PacketCreator.getShowInventoryFull());
c.sendPacket(PacketCreator.getInventoryFull());
c.sendPacket(PacketCreator.getShowInventoryFull());
return false;
}
if (owner != null) {
nItem.setOwner(owner);
}
c.announce(PacketCreator.modifyInventory(true, Collections.singletonList(new ModifyInventory(0, nItem))));
c.sendPacket(PacketCreator.modifyInventory(true, Collections.singletonList(new ModifyInventory(0, nItem))));
if(sandboxItem) chr.setHasSandboxItem();
} else {
c.announce(PacketCreator.enableActions());
c.sendPacket(PacketCreator.enableActions());
return false;
}
}
@@ -129,11 +129,11 @@ public class MapleInventoryManipulator {
nItem.setExpiration(expiration);
short newSlot = inv.addItem(nItem);
if (newSlot == -1) {
c.announce(PacketCreator.getInventoryFull());
c.announce(PacketCreator.getShowInventoryFull());
c.sendPacket(PacketCreator.getInventoryFull());
c.sendPacket(PacketCreator.getShowInventoryFull());
return false;
}
c.announce(PacketCreator.modifyInventory(true, Collections.singletonList(new ModifyInventory(0, nItem))));
c.sendPacket(PacketCreator.modifyInventory(true, Collections.singletonList(new ModifyInventory(0, nItem))));
if(MapleInventoryManipulator.isSandboxItem(nItem)) chr.setHasSandboxItem();
}
} else if (quantity == 1) {
@@ -145,11 +145,11 @@ public class MapleInventoryManipulator {
}
short newSlot = inv.addItem(nEquip);
if (newSlot == -1) {
c.announce(PacketCreator.getInventoryFull());
c.announce(PacketCreator.getShowInventoryFull());
c.sendPacket(PacketCreator.getInventoryFull());
c.sendPacket(PacketCreator.getShowInventoryFull());
return false;
}
c.announce(PacketCreator.modifyInventory(true, Collections.singletonList(new ModifyInventory(0, nEquip))));
c.sendPacket(PacketCreator.modifyInventory(true, Collections.singletonList(new ModifyInventory(0, nEquip))));
if(MapleInventoryManipulator.isSandboxItem(nEquip)) chr.setHasSandboxItem();
} else {
throw new RuntimeException("Trying to create equip with non-one quantity");
@@ -182,8 +182,8 @@ public class MapleInventoryManipulator {
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
int itemid = item.getItemId();
if (ii.isPickupRestricted(itemid) && chr.haveItemWithId(itemid, true)) {
c.announce(PacketCreator.getInventoryFull());
c.announce(PacketCreator.showItemUnavailable());
c.sendPacket(PacketCreator.getInventoryFull());
c.sendPacket(PacketCreator.showItemUnavailable());
return false;
}
short quantity = item.getQuantity();
@@ -203,7 +203,7 @@ public class MapleInventoryManipulator {
quantity -= (newQ - oldQ);
eItem.setQuantity(newQ);
item.setPosition(eItem.getPosition());
c.announce(PacketCreator.modifyInventory(true, Collections.singletonList(new ModifyInventory(1, eItem))));
c.sendPacket(PacketCreator.modifyInventory(true, Collections.singletonList(new ModifyInventory(1, eItem))));
}
} else {
break;
@@ -219,14 +219,14 @@ public class MapleInventoryManipulator {
nItem.setFlag(item.getFlag());
short newSlot = inv.addItem(nItem);
if (newSlot == -1) {
c.announce(PacketCreator.getInventoryFull());
c.announce(PacketCreator.getShowInventoryFull());
c.sendPacket(PacketCreator.getInventoryFull());
c.sendPacket(PacketCreator.getShowInventoryFull());
item.setQuantity((short) (quantity + newQ));
return false;
}
nItem.setPosition(newSlot);
item.setPosition(newSlot);
c.announce(PacketCreator.modifyInventory(true, Collections.singletonList(new ModifyInventory(0, nItem))));
c.sendPacket(PacketCreator.modifyInventory(true, Collections.singletonList(new ModifyInventory(0, nItem))));
if (MapleInventoryManipulator.isSandboxItem(nItem)) chr.setHasSandboxItem();
}
} else {
@@ -236,34 +236,34 @@ public class MapleInventoryManipulator {
short newSlot = inv.addItem(nItem);
if (newSlot == -1) {
c.announce(PacketCreator.getInventoryFull());
c.announce(PacketCreator.getShowInventoryFull());
c.sendPacket(PacketCreator.getInventoryFull());
c.sendPacket(PacketCreator.getShowInventoryFull());
return false;
}
nItem.setPosition(newSlot);
item.setPosition(newSlot);
c.announce(PacketCreator.modifyInventory(true, Collections.singletonList(new ModifyInventory(0, nItem))));
c.sendPacket(PacketCreator.modifyInventory(true, Collections.singletonList(new ModifyInventory(0, nItem))));
if (MapleInventoryManipulator.isSandboxItem(nItem)) chr.setHasSandboxItem();
c.announce(PacketCreator.enableActions());
c.sendPacket(PacketCreator.enableActions());
}
} else if (quantity == 1) {
short newSlot = inv.addItem(item);
if (newSlot == -1) {
c.announce(PacketCreator.getInventoryFull());
c.announce(PacketCreator.getShowInventoryFull());
c.sendPacket(PacketCreator.getInventoryFull());
c.sendPacket(PacketCreator.getShowInventoryFull());
return false;
}
item.setPosition(newSlot);
c.announce(PacketCreator.modifyInventory(true, Collections.singletonList(new ModifyInventory(0, item))));
c.sendPacket(PacketCreator.modifyInventory(true, Collections.singletonList(new ModifyInventory(0, item))));
if (MapleInventoryManipulator.isSandboxItem(item)) chr.setHasSandboxItem();
} else {
FilePrinter.printError(FilePrinter.ITEM, "Tried to pickup Equip id " + itemid + " containing more than 1 quantity --> " + quantity);
c.announce(PacketCreator.getInventoryFull());
c.announce(PacketCreator.showItemUnavailable());
c.sendPacket(PacketCreator.getInventoryFull());
c.sendPacket(PacketCreator.showItemUnavailable());
return false;
}
if (show) {
c.announce(PacketCreator.getShowItemGain(itemid, item.getQuantity()));
c.sendPacket(PacketCreator.getShowItemGain(itemid, item.getQuantity()));
}
return true;
}
@@ -429,9 +429,9 @@ public class MapleInventoryManipulator {
private static void announceModifyInventory(MapleClient c, Item item, boolean fromDrop, boolean allowZero) {
if (item.getQuantity() == 0 && !allowZero) {
c.announce(PacketCreator.modifyInventory(fromDrop, Collections.singletonList(new ModifyInventory(3, item))));
c.sendPacket(PacketCreator.modifyInventory(fromDrop, Collections.singletonList(new ModifyInventory(3, item))));
} else {
c.announce(PacketCreator.modifyInventory(fromDrop, Collections.singletonList(new ModifyInventory(1, item))));
c.sendPacket(PacketCreator.modifyInventory(fromDrop, Collections.singletonList(new ModifyInventory(1, item))));
}
}
@@ -498,7 +498,7 @@ public class MapleInventoryManipulator {
} else {
mods.add(new ModifyInventory(2, source, src));
}
c.announce(PacketCreator.modifyInventory(true, mods));
c.sendPacket(PacketCreator.modifyInventory(true, mods));
}
public static void equip(MapleClient c, short src, short dst) {
@@ -510,7 +510,7 @@ public class MapleInventoryManipulator {
Equip source = (Equip) eqpInv.getItem(src);
if (source == null || !ii.canWearEquipment(chr, source, dst)) {
c.announce(PacketCreator.enableActions());
c.sendPacket(PacketCreator.enableActions());
return;
} else if ((((source.getItemId() >= 1902000 && source.getItemId() <= 1902002) || source.getItemId() == 1912000) && chr.isCygnus()) || ((source.getItemId() >= 1902005 && source.getItemId() <= 1902007) || source.getItemId() == 1912005) && !chr.isCygnus()) {// Adventurer taming equipment
return;
@@ -527,8 +527,8 @@ public class MapleInventoryManipulator {
Item top = eqpdInv.getItem((short) -5);
if (top != null && ItemConstants.isOverall(top.getItemId())) {
if (eqpInv.isFull()) {
c.announce(PacketCreator.getInventoryFull());
c.announce(PacketCreator.getShowInventoryFull());
c.sendPacket(PacketCreator.getInventoryFull());
c.sendPacket(PacketCreator.getShowInventoryFull());
return;
}
unequip(c, (byte) -5, eqpInv.getNextFreeSlot());
@@ -537,8 +537,8 @@ public class MapleInventoryManipulator {
final Item bottom = eqpdInv.getItem((short) -6);
if (bottom != null && ItemConstants.isOverall(source.getItemId())) {
if (eqpInv.isFull()) {
c.announce(PacketCreator.getInventoryFull());
c.announce(PacketCreator.getShowInventoryFull());
c.sendPacket(PacketCreator.getInventoryFull());
c.sendPacket(PacketCreator.getShowInventoryFull());
return;
}
unequip(c, (byte) -6, eqpInv.getNextFreeSlot());
@@ -547,8 +547,8 @@ public class MapleInventoryManipulator {
Item weapon = eqpdInv.getItem((short) -11);
if (weapon != null && ii.isTwoHanded(weapon.getItemId())) {
if (eqpInv.isFull()) {
c.announce(PacketCreator.getInventoryFull());
c.announce(PacketCreator.getShowInventoryFull());
c.sendPacket(PacketCreator.getInventoryFull());
c.sendPacket(PacketCreator.getShowInventoryFull());
return;
}
unequip(c, (byte) -11, eqpInv.getNextFreeSlot());
@@ -557,8 +557,8 @@ public class MapleInventoryManipulator {
Item shield = eqpdInv.getItem((short) -10);
if (shield != null && ii.isTwoHanded(source.getItemId())) {
if (eqpInv.isFull()) {
c.announce(PacketCreator.getInventoryFull());
c.announce(PacketCreator.getShowInventoryFull());
c.sendPacket(PacketCreator.getInventoryFull());
c.sendPacket(PacketCreator.getShowInventoryFull());
return;
}
unequip(c, (byte) -10, eqpInv.getNextFreeSlot());
@@ -614,7 +614,7 @@ public class MapleInventoryManipulator {
}
mods.add(new ModifyInventory(2, source, src));
c.announce(PacketCreator.modifyInventory(true, mods));
c.sendPacket(PacketCreator.modifyInventory(true, mods));
chr.equipChanged();
}
@@ -632,7 +632,7 @@ public class MapleInventoryManipulator {
return;
}
if (target != null && src <= 0) {
c.announce(PacketCreator.getInventoryFull());
c.sendPacket(PacketCreator.getInventoryFull());
return;
}
@@ -656,7 +656,7 @@ public class MapleInventoryManipulator {
target.setPosition(src);
eqpdInv.addItemFromDB(target);
}
c.announce(PacketCreator.modifyInventory(true, Collections.singletonList(new ModifyInventory(2, source, src))));
c.sendPacket(PacketCreator.modifyInventory(true, Collections.singletonList(new ModifyInventory(2, source, src))));
chr.equipChanged();
}
@@ -712,7 +712,7 @@ public class MapleInventoryManipulator {
Item target = source.copy();
target.setQuantity(quantity);
source.setQuantity((short) (source.getQuantity() - quantity));
c.announce(PacketCreator.modifyInventory(true, Collections.singletonList(new ModifyInventory(1, source))));
c.sendPacket(PacketCreator.modifyInventory(true, Collections.singletonList(new ModifyInventory(1, source))));
if (ItemConstants.isNewYearCardEtc(itemId)) {
if(itemId == 4300000) {
@@ -742,7 +742,7 @@ public class MapleInventoryManipulator {
inv.removeSlot(src);
}
c.announce(PacketCreator.modifyInventory(true, Collections.singletonList(new ModifyInventory(3, source))));
c.sendPacket(PacketCreator.modifyInventory(true, Collections.singletonList(new ModifyInventory(3, source))));
if (src < 0) {
chr.equipChanged();
} else if (ItemConstants.isNewYearCardEtc(itemId)) {

View File

@@ -1,6 +1,6 @@
package client.keybind;
import tools.data.output.MaplePacketLittleEndianWriter;
import net.packet.OutPacket;
import java.util.Arrays;
@@ -31,25 +31,22 @@ public class MapleQuickslotBinding
this.m_aQuickslotKeyMapped = aKeys.clone();
}
public void Encode(MaplePacketLittleEndianWriter oPacket)
public void encode(OutPacket p)
{
// Quickslots are default.
// The client will skip them and call CQuickslotKeyMappedMan::DefaultQuickslotKeyMap.
if(Arrays.equals(this.m_aQuickslotKeyMapped, DEFAULT_QUICKSLOTS))
{
oPacket.writeBool(false);
if (Arrays.equals(this.m_aQuickslotKeyMapped, DEFAULT_QUICKSLOTS)) {
p.writeBool(false);
return;
}
oPacket.writeBool(true);
p.writeBool(true);
for(byte nKey : this.m_aQuickslotKeyMapped)
{
for(byte nKey : this.m_aQuickslotKeyMapped) {
// For some reason Nexon sends these as integers, similar to CFuncKeyMappedMan.
// However there's no evidence any key can be above 0xFF anyhow.
// Regardless, we need to encode an integer to avoid an error 38 crash; as CFuncKeyMapped::m_aQuickslotKeyMapped is int[8].
oPacket.writeInt(nKey);
p.writeInt(nKey);
}
}

View File

@@ -257,7 +257,7 @@ public class NewYearCardRecord {
MapleCharacter target = server.getWorld(world).getPlayerStorage().getCharacterById(receiverId);
if(target != null && target.isLoggedinWorld()) {
target.announce(PacketCreator.onNewYearCardRes(target, NewYearCardRecord.this, 0xC, 0));
target.sendPacket(PacketCreator.onNewYearCardRes(target, NewYearCardRecord.this, 0xC, 0));
}
}, 1000 * 60 * 60); //1 Hour
}

View File

@@ -77,7 +77,7 @@ public class BuybackProcessor {
map.broadcastMessage(PacketCreator.playSound("Buyback/" + jobString));
map.broadcastMessage(PacketCreator.earnTitleMessage(chr.getName() + " just bought back into the game!"));
chr.announce(PacketCreator.showBuybackEffect());
chr.sendPacket(PacketCreator.showBuybackEffect());
map.broadcastMessage(chr, PacketCreator.showForeignBuybackEffect(chr.getId()), false);
}
}

View File

@@ -65,8 +65,8 @@ public class MakerProcessor {
int fromLeftover = toCreate;
toCreate = ii.getMakerCrystalFromLeftover(toCreate);
if(toCreate == -1) {
c.announce(PacketCreator.serverNotice(1, ii.getName(fromLeftover) + " is unavailable for Monster Crystal conversion."));
c.announce(PacketCreator.makerEnableActions());
c.sendPacket(PacketCreator.serverNotice(1, ii.getName(fromLeftover) + " is unavailable for Monster Crystal conversion."));
c.sendPacket(PacketCreator.makerEnableActions());
return;
}
@@ -83,13 +83,13 @@ public class MakerProcessor {
if(p != null) {
recipe = MakerItemFactory.generateDisassemblyCrystalEntry(toDisassemble, p.getLeft(), p.getRight());
} else {
c.announce(PacketCreator.serverNotice(1, ii.getName(toCreate) + " is unavailable for Monster Crystal disassembly."));
c.announce(PacketCreator.makerEnableActions());
c.sendPacket(PacketCreator.serverNotice(1, ii.getName(toCreate) + " is unavailable for Monster Crystal disassembly."));
c.sendPacket(PacketCreator.makerEnableActions());
return;
}
} else {
c.announce(PacketCreator.serverNotice(1, "An unknown error occurred when trying to apply that item for disassembly."));
c.announce(PacketCreator.makerEnableActions());
c.sendPacket(PacketCreator.serverNotice(1, "An unknown error occurred when trying to apply that item for disassembly."));
c.sendPacket(PacketCreator.makerEnableActions());
return;
}
} else {
@@ -136,8 +136,8 @@ public class MakerProcessor {
if(!reagentids.isEmpty()) {
if(!removeOddMakerReagents(toCreate, reagentids)) {
c.announce(PacketCreator.serverNotice(1, "You can only use WATK and MATK Strengthening Gems on weapon items."));
c.announce(PacketCreator.makerEnableActions());
c.sendPacket(PacketCreator.serverNotice(1, "You can only use WATK and MATK Strengthening Gems on weapon items."));
c.sendPacket(PacketCreator.makerEnableActions());
return;
}
}
@@ -151,33 +151,33 @@ public class MakerProcessor {
switch(createStatus) {
case -1:// non-available for Maker itemid has been tried to forge
FilePrinter.printError(FilePrinter.EXPLOITS, "Player " + c.getPlayer().getName() + " tried to craft itemid " + toCreate + " using the Maker skill.");
c.announce(PacketCreator.serverNotice(1, "The requested item could not be crafted on this operation."));
c.announce(PacketCreator.makerEnableActions());
c.sendPacket(PacketCreator.serverNotice(1, "The requested item could not be crafted on this operation."));
c.sendPacket(PacketCreator.makerEnableActions());
break;
case 1: // no items
c.announce(PacketCreator.serverNotice(1, "You don't have all required items in your inventory to make " + ii.getName(toCreate) + "."));
c.announce(PacketCreator.makerEnableActions());
c.sendPacket(PacketCreator.serverNotice(1, "You don't have all required items in your inventory to make " + ii.getName(toCreate) + "."));
c.sendPacket(PacketCreator.makerEnableActions());
break;
case 2: // no meso
c.announce(PacketCreator.serverNotice(1, "You don't have enough mesos (" + GameConstants.numberWithCommas(recipe.getCost()) + ") to complete this operation."));
c.announce(PacketCreator.makerEnableActions());
c.sendPacket(PacketCreator.serverNotice(1, "You don't have enough mesos (" + GameConstants.numberWithCommas(recipe.getCost()) + ") to complete this operation."));
c.sendPacket(PacketCreator.makerEnableActions());
break;
case 3: // no req level
c.announce(PacketCreator.serverNotice(1, "You don't have enough level to complete this operation."));
c.announce(PacketCreator.makerEnableActions());
c.sendPacket(PacketCreator.serverNotice(1, "You don't have enough level to complete this operation."));
c.sendPacket(PacketCreator.makerEnableActions());
break;
case 4: // no req skill level
c.announce(PacketCreator.serverNotice(1, "You don't have enough Maker level to complete this operation."));
c.announce(PacketCreator.makerEnableActions());
c.sendPacket(PacketCreator.serverNotice(1, "You don't have enough Maker level to complete this operation."));
c.sendPacket(PacketCreator.makerEnableActions());
break;
case 5: // inventory full
c.announce(PacketCreator.serverNotice(1, "Your inventory is full."));
c.announce(PacketCreator.makerEnableActions());
c.sendPacket(PacketCreator.serverNotice(1, "Your inventory is full."));
c.sendPacket(PacketCreator.makerEnableActions());
break;
default:
@@ -214,14 +214,14 @@ public class MakerProcessor {
// thanks inhyuk for noticing missing MAKER_RESULT packets
if (type == 3) {
c.announce(PacketCreator.makerResultCrystal(recipe.getGainItems().get(0).getLeft(), recipe.getReqItems().get(0).getLeft()));
c.sendPacket(PacketCreator.makerResultCrystal(recipe.getGainItems().get(0).getLeft(), recipe.getReqItems().get(0).getLeft()));
} else if (type == 4) {
c.announce(PacketCreator.makerResultDesynth(recipe.getReqItems().get(0).getLeft(), recipe.getCost(), recipe.getGainItems()));
c.sendPacket(PacketCreator.makerResultDesynth(recipe.getReqItems().get(0).getLeft(), recipe.getCost(), recipe.getGainItems()));
} else {
c.announce(PacketCreator.makerResult(makerSucceeded, recipe.getGainItems().get(0).getLeft(), recipe.getGainItems().get(0).getRight(), recipe.getCost(), recipe.getReqItems(), stimulantid, new LinkedList<>(reagentids.keySet())));
c.sendPacket(PacketCreator.makerResult(makerSucceeded, recipe.getGainItems().get(0).getLeft(), recipe.getGainItems().get(0).getRight(), recipe.getCost(), recipe.getReqItems(), stimulantid, new LinkedList<>(reagentids.keySet())));
}
c.announce(PacketCreator.showMakerEffect(makerSucceeded));
c.sendPacket(PacketCreator.showMakerEffect(makerSucceeded));
c.getPlayer().getMap().broadcastMessage(c.getPlayer(), PacketCreator.showForeignMakerEffect(c.getPlayer().getId(), makerSucceeded), false);
if(toCreate == 4260003 && type == 3 && c.getPlayer().getQuestStatus(6033) == 1) {

View File

@@ -83,7 +83,7 @@ public class PetAutopotProcessor {
MapleClient c = this.c;
MapleCharacter chr = c.getPlayer();
if (!chr.isAlive()) {
c.announce(PacketCreator.enableActions());
c.sendPacket(PacketCreator.enableActions());
return;
}
@@ -102,7 +102,7 @@ public class PetAutopotProcessor {
toUse = useInv.getItem(slot);
if (toUse != null) {
if (toUse.getItemId() != itemId) {
c.announce(PacketCreator.enableActions());
c.sendPacket(PacketCreator.enableActions());
return;
}
@@ -111,7 +111,7 @@ public class PetAutopotProcessor {
// from now on, toUse becomes the "cursor" for the current pot being used
if (toUse.getQuantity() <= 0) {
if (!cursorOnNextAvailablePot(chr)) {
c.announce(PacketCreator.enableActions());
c.sendPacket(PacketCreator.enableActions());
return;
}
}
@@ -179,7 +179,7 @@ public class PetAutopotProcessor {
}
}
chr.announce(PacketCreator.enableActions());
chr.sendPacket(PacketCreator.enableActions());
}
}

View File

@@ -52,7 +52,7 @@ public class SpawnPetProcessor {
{
if (chr.haveItem(petid + 1)) {
chr.dropMessage(5, "You can't hatch your " + (petid == 5000028 ? "Dragon egg" : "Robo egg") + " if you already have a Baby " + (petid == 5000028 ? "Dragon." : "Robo."));
c.announce(PacketCreator.enableActions());
c.sendPacket(PacketCreator.enableActions());
return;
} else {
int evolveid = MapleDataTool.getInt("info/evol1", dataRoot.getData("Pet/" + petid + ".img"));
@@ -64,7 +64,7 @@ public class SpawnPetProcessor {
MapleInventoryManipulator.removeById(c, MapleInventoryType.CASH, petid, (short) 1, false, false);
MapleInventoryManipulator.addById(c, evolveid, (short) 1, null, petId, expiration);
c.announce(PacketCreator.enableActions());
c.sendPacket(PacketCreator.enableActions());
return;
}
}
@@ -86,8 +86,8 @@ public class SpawnPetProcessor {
pet.saveToDb();
chr.addPet(pet);
chr.getMap().broadcastMessage(c.getPlayer(), PacketCreator.showPet(c.getPlayer(), pet, false, false), true);
c.announce(PacketCreator.petStatUpdate(c.getPlayer()));
c.announce(PacketCreator.enableActions());
c.sendPacket(PacketCreator.petStatUpdate(c.getPlayer()));
c.sendPacket(PacketCreator.enableActions());
chr.commitExcludedItems();
chr.getClient().getWorldServer().registerPetHunger(chr, chr.getPetIndex(pet));

View File

@@ -117,7 +117,7 @@ public class DueyProcessor {
ps2.setInt(1, player.getId());
ps2.executeUpdate();
c.announce(PacketCreator.sendDueyParcelReceived(rs.getString("SenderName"), rs.getInt("Type") == 1));
c.sendPacket(PacketCreator.sendDueyParcelReceived(rs.getString("SenderName"), rs.getInt("Type") == 1));
}
}
}
@@ -305,21 +305,21 @@ public class DueyProcessor {
int recipientAccId = accIdCid.getLeft();
if (recipientAccId != -1) {
if (recipientAccId == c.getAccID()) {
c.announce(PacketCreator.sendDueyMSG(DueyProcessor.Actions.TOCLIENT_SEND_SAMEACC_ERROR.getCode()));
c.sendPacket(PacketCreator.sendDueyMSG(DueyProcessor.Actions.TOCLIENT_SEND_SAMEACC_ERROR.getCode()));
return;
}
} else {
c.announce(PacketCreator.sendDueyMSG(DueyProcessor.Actions.TOCLIENT_SEND_NAME_DOES_NOT_EXIST.getCode()));
c.sendPacket(PacketCreator.sendDueyMSG(DueyProcessor.Actions.TOCLIENT_SEND_NAME_DOES_NOT_EXIST.getCode()));
return;
}
} else {
c.announce(PacketCreator.sendDueyMSG(DueyProcessor.Actions.TOCLIENT_SEND_NOT_ENOUGH_MESOS.getCode()));
c.sendPacket(PacketCreator.sendDueyMSG(DueyProcessor.Actions.TOCLIENT_SEND_NOT_ENOUGH_MESOS.getCode()));
return;
}
int recipientCid = accIdCid.getRight();
if (recipientCid == -1) {
c.announce(PacketCreator.sendDueyMSG(DueyProcessor.Actions.TOCLIENT_SEND_NAME_DOES_NOT_EXIST.getCode()));
c.sendPacket(PacketCreator.sendDueyMSG(DueyProcessor.Actions.TOCLIENT_SEND_NAME_DOES_NOT_EXIST.getCode()));
return;
}
@@ -329,18 +329,18 @@ public class DueyProcessor {
int packageId = createPackage(sendMesos, sendMessage, c.getPlayer().getName(), recipientCid, quick);
if (packageId == -1) {
c.announce(PacketCreator.sendDueyMSG(DueyProcessor.Actions.TOCLIENT_SEND_ENABLE_ACTIONS.getCode()));
c.sendPacket(PacketCreator.sendDueyMSG(DueyProcessor.Actions.TOCLIENT_SEND_ENABLE_ACTIONS.getCode()));
return;
}
c.getPlayer().gainMeso((int) -finalcost, false);
int res = addPackageItemFromInventory(packageId, c, invTypeId, itemPos, amount);
if (res == 0) {
c.announce(PacketCreator.sendDueyMSG(DueyProcessor.Actions.TOCLIENT_SEND_SUCCESSFULLY_SENT.getCode()));
c.sendPacket(PacketCreator.sendDueyMSG(DueyProcessor.Actions.TOCLIENT_SEND_SUCCESSFULLY_SENT.getCode()));
} else if (res > 0) {
c.announce(PacketCreator.sendDueyMSG(DueyProcessor.Actions.TOCLIENT_SEND_ENABLE_ACTIONS.getCode()));
c.sendPacket(PacketCreator.sendDueyMSG(DueyProcessor.Actions.TOCLIENT_SEND_ENABLE_ACTIONS.getCode()));
} else {
c.announce(PacketCreator.sendDueyMSG(DueyProcessor.Actions.TOCLIENT_SEND_INCORRECT_REQUEST.getCode()));
c.sendPacket(PacketCreator.sendDueyMSG(DueyProcessor.Actions.TOCLIENT_SEND_INCORRECT_REQUEST.getCode()));
}
MapleClient rClient = null;
@@ -368,7 +368,7 @@ public class DueyProcessor {
if (c.tryacquireClient()) {
try {
removePackageFromDB(packageid);
c.announce(PacketCreator.removeItemFromDuey(playerRemove, packageid));
c.sendPacket(PacketCreator.removeItemFromDuey(playerRemove, packageid));
} finally {
c.releaseClient();
}
@@ -392,29 +392,29 @@ public class DueyProcessor {
}
if (dp == null) {
c.announce(PacketCreator.sendDueyMSG(Actions.TOCLIENT_RECV_UNKNOWN_ERROR.getCode()));
c.sendPacket(PacketCreator.sendDueyMSG(Actions.TOCLIENT_RECV_UNKNOWN_ERROR.getCode()));
FilePrinter.printError(FilePrinter.EXPLOITS + c.getPlayer().getName() + ".txt", c.getPlayer().getName() + " tried to receive package from duey with id " + packageId);
return;
}
if (dp.isDeliveringTime()) {
c.announce(PacketCreator.sendDueyMSG(Actions.TOCLIENT_RECV_UNKNOWN_ERROR.getCode()));
c.sendPacket(PacketCreator.sendDueyMSG(Actions.TOCLIENT_RECV_UNKNOWN_ERROR.getCode()));
return;
}
Item dpItem = dp.getItem();
if (dpItem != null) {
if (!c.getPlayer().canHoldMeso(dp.getMesos())) {
c.announce(PacketCreator.sendDueyMSG(Actions.TOCLIENT_RECV_UNKNOWN_ERROR.getCode()));
c.sendPacket(PacketCreator.sendDueyMSG(Actions.TOCLIENT_RECV_UNKNOWN_ERROR.getCode()));
return;
}
if (!MapleInventoryManipulator.checkSpace(c, dpItem.getItemId(), dpItem.getQuantity(), dpItem.getOwner())) {
int itemid = dpItem.getItemId();
if (MapleItemInformationProvider.getInstance().isPickupRestricted(itemid) && c.getPlayer().getInventory(ItemConstants.getInventoryType(itemid)).findById(itemid) != null) {
c.announce(PacketCreator.sendDueyMSG(Actions.TOCLIENT_RECV_RECEIVER_WITH_UNIQUE.getCode()));
c.sendPacket(PacketCreator.sendDueyMSG(Actions.TOCLIENT_RECV_RECEIVER_WITH_UNIQUE.getCode()));
} else {
c.announce(PacketCreator.sendDueyMSG(Actions.TOCLIENT_RECV_NO_FREE_SLOTS.getCode()));
c.sendPacket(PacketCreator.sendDueyMSG(Actions.TOCLIENT_RECV_NO_FREE_SLOTS.getCode()));
}
return;
@@ -440,15 +440,15 @@ public class DueyProcessor {
try {
long timeNow = System.currentTimeMillis();
if (timeNow - c.getPlayer().getNpcCooldown() < YamlConfig.config.server.BLOCK_NPC_RACE_CONDT) {
c.announce(PacketCreator.enableActions());
c.sendPacket(PacketCreator.enableActions());
return;
}
c.getPlayer().setNpcCooldown(timeNow);
if (quickDelivery) {
c.announce(PacketCreator.sendDuey(0x1A, null));
c.sendPacket(PacketCreator.sendDuey(0x1A, null));
} else {
c.announce(PacketCreator.sendDuey(0x8, loadPackages(c.getPlayer())));
c.sendPacket(PacketCreator.sendDuey(0x8, loadPackages(c.getPlayer())));
}
} finally {
c.releaseClient();

View File

@@ -275,7 +275,7 @@ public class FredrickProcessor {
byte response = canRetrieveFromFredrick(chr, items);
if (response != 0) {
chr.announce(PacketCreator.fredrickMessage(response));
chr.sendPacket(PacketCreator.fredrickMessage(response));
return;
}
@@ -294,7 +294,7 @@ public class FredrickProcessor {
FilePrinter.print(FilePrinter.FREDRICK + chr.getName() + ".txt", chr.getName() + " gained " + item.getQuantity() + " " + itemName + " (" + item.getItemId() + ")");
}
chr.announce(PacketCreator.fredrickMessage((byte) 0x1E));
chr.sendPacket(PacketCreator.fredrickMessage((byte) 0x1E));
removeFredrickLog(chr.getId());
} else {
chr.message("An unknown error has occured.");

View File

@@ -52,7 +52,7 @@ public class StorageProcessor {
if (chr.getLevel() < 15){
chr.dropMessage(1, "You may only use the storage once you have reached level 15.");
c.announce(PacketCreator.enableActions());
c.sendPacket(PacketCreator.enableActions());
return;
}
@@ -71,13 +71,13 @@ public class StorageProcessor {
Item item = storage.getItem(slot);
if (item != null) {
if (ii.isPickupRestricted(item.getItemId()) && chr.haveItemWithId(item.getItemId(), true)) {
c.announce(PacketCreator.getStorageError((byte) 0x0C));
c.sendPacket(PacketCreator.getStorageError((byte) 0x0C));
return;
}
int takeoutFee = storage.getTakeOutFee();
if (chr.getMeso() < takeoutFee) {
c.announce(PacketCreator.getStorageError((byte) 0x0B));
c.sendPacket(PacketCreator.getStorageError((byte) 0x0B));
return;
} else {
chr.gainMeso(-takeoutFee, false);
@@ -95,11 +95,11 @@ public class StorageProcessor {
storage.sendTakenOut(c, item.getInventoryType());
} else {
c.announce(PacketCreator.enableActions());
c.sendPacket(PacketCreator.enableActions());
return;
}
} else {
c.announce(PacketCreator.getStorageError((byte) 0x0A));
c.sendPacket(PacketCreator.getStorageError((byte) 0x0A));
}
}
} else if (mode == 5) { // store
@@ -115,17 +115,17 @@ public class StorageProcessor {
return;
}
if (quantity < 1) {
c.announce(PacketCreator.enableActions());
c.sendPacket(PacketCreator.enableActions());
return;
}
if (storage.isFull()) {
c.announce(PacketCreator.getStorageError((byte) 0x11));
c.sendPacket(PacketCreator.getStorageError((byte) 0x11));
return;
}
int storeFee = storage.getStoreFee();
if (chr.getMeso() < storeFee) {
c.announce(PacketCreator.getStorageError((byte) 0x0B));
c.sendPacket(PacketCreator.getStorageError((byte) 0x0B));
} else {
Item item;
@@ -134,7 +134,7 @@ public class StorageProcessor {
item = inv.getItem(slot);
if (item != null && item.getItemId() == itemId && (item.getQuantity() >= quantity || ItemConstants.isRechargeable(itemId))) {
if (ItemConstants.isWeddingRing(itemId) || ItemConstants.isWeddingToken(itemId)) {
c.announce(PacketCreator.enableActions());
c.sendPacket(PacketCreator.enableActions());
return;
}
@@ -144,7 +144,7 @@ public class StorageProcessor {
MapleInventoryManipulator.removeFromSlot(c, invType, slot, quantity, false);
} else {
c.announce(PacketCreator.enableActions());
c.sendPacket(PacketCreator.enableActions());
return;
}
@@ -168,7 +168,7 @@ public class StorageProcessor {
}
} else if (mode == 6) { // arrange items
if(YamlConfig.config.server.USE_STORAGE_ITEM_SORT) storage.arrangeItems(c);
c.announce(PacketCreator.enableActions());
c.sendPacket(PacketCreator.enableActions());
} else if (mode == 7) { // meso
int meso = slea.readInt();
int storageMesos = storage.getMeso();
@@ -177,13 +177,13 @@ public class StorageProcessor {
if (meso < 0 && (storageMesos - meso) < 0) {
meso = Integer.MIN_VALUE + storageMesos;
if (meso < playerMesos) {
c.announce(PacketCreator.enableActions());
c.sendPacket(PacketCreator.enableActions());
return;
}
} else if (meso > 0 && (playerMesos + meso) < 0) {
meso = Integer.MAX_VALUE - playerMesos;
if (meso > storageMesos) {
c.announce(PacketCreator.enableActions());
c.sendPacket(PacketCreator.enableActions());
return;
}
}
@@ -193,7 +193,7 @@ public class StorageProcessor {
FilePrinter.print(FilePrinter.STORAGE + c.getPlayer().getName() + ".txt", c.getPlayer().getName() + (meso > 0 ? " took out " : " stored ") + Math.abs(meso) + " mesos");
storage.sendMeso(c);
} else {
c.announce(PacketCreator.enableActions());
c.sendPacket(PacketCreator.enableActions());
return;
}
} else if (mode == 8) {// close... unless the player decides to enter cash shop!

View File

@@ -329,11 +329,11 @@ public class AssignAPProcessor {
}
chr.assignStrDexIntLuk(statGain[0], statGain[1], statGain[3], statGain[2]);
c.announce(PacketCreator.enableActions());
c.sendPacket(PacketCreator.enableActions());
//----------------------------------------------------------------------------------------
c.announce(PacketCreator.serverNotice(1, "Better AP applications detected:\r\nSTR: +" + statGain[0] + "\r\nDEX: +" + statGain[1] + "\r\nINT: +" + statGain[3] + "\r\nLUK: +" + statGain[2]));
c.sendPacket(PacketCreator.serverNotice(1, "Better AP applications detected:\r\nSTR: +" + statGain[0] + "\r\nDEX: +" + statGain[1] + "\r\nINT: +" + statGain[3] + "\r\nLUK: +" + statGain[2]));
} else {
if(slea.available() < 16) {
AutobanFactory.PACKET_EDIT.alert(chr, "Didn't send full packet for Auto Assign.");
@@ -353,7 +353,7 @@ public class AssignAPProcessor {
}
chr.assignStrDexIntLuk(statGain[0], statGain[1], statGain[3], statGain[2]);
c.announce(PacketCreator.enableActions());
c.sendPacket(PacketCreator.enableActions());
}
} finally {
c.unlockClient();
@@ -426,48 +426,48 @@ public class AssignAPProcessor {
case 64: // str
if (player.getStr() < 5) {
player.message("You don't have the minimum STR required to swap.");
c.announce(PacketCreator.enableActions());
c.sendPacket(PacketCreator.enableActions());
return false;
}
if (!player.assignStr(-1)) {
player.message("Couldn't execute AP reset operation.");
c.announce(PacketCreator.enableActions());
c.sendPacket(PacketCreator.enableActions());
return false;
}
break;
case 128: // dex
if (player.getDex() < 5) {
player.message("You don't have the minimum DEX required to swap.");
c.announce(PacketCreator.enableActions());
c.sendPacket(PacketCreator.enableActions());
return false;
}
if (!player.assignDex(-1)) {
player.message("Couldn't execute AP reset operation.");
c.announce(PacketCreator.enableActions());
c.sendPacket(PacketCreator.enableActions());
return false;
}
break;
case 256: // int
if (player.getInt() < 5) {
player.message("You don't have the minimum INT required to swap.");
c.announce(PacketCreator.enableActions());
c.sendPacket(PacketCreator.enableActions());
return false;
}
if (!player.assignInt(-1)) {
player.message("Couldn't execute AP reset operation.");
c.announce(PacketCreator.enableActions());
c.sendPacket(PacketCreator.enableActions());
return false;
}
break;
case 512: // luk
if (player.getLuk() < 5) {
player.message("You don't have the minimum LUK required to swap.");
c.announce(PacketCreator.enableActions());
c.sendPacket(PacketCreator.enableActions());
return false;
}
if (!player.assignLuk(-1)) {
player.message("Couldn't execute AP reset operation.");
c.announce(PacketCreator.enableActions());
c.sendPacket(PacketCreator.enableActions());
return false;
}
break;
@@ -475,14 +475,14 @@ public class AssignAPProcessor {
if(YamlConfig.config.server.USE_ENFORCE_HPMP_SWAP) {
if (APTo != 8192) {
player.message("You can only swap HP ability points to MP.");
c.announce(PacketCreator.enableActions());
c.sendPacket(PacketCreator.enableActions());
return false;
}
}
if (player.getHpMpApUsed() < 1) {
player.message("You don't have enough HPMP stat points to spend on AP Reset.");
c.announce(PacketCreator.enableActions());
c.sendPacket(PacketCreator.enableActions());
return false;
}
@@ -490,7 +490,7 @@ public class AssignAPProcessor {
int level_ = player.getLevel();
if (hp < level_ * 14 + 148) {
player.message("You don't have the minimum HP pool required to swap.");
c.announce(PacketCreator.enableActions());
c.sendPacket(PacketCreator.enableActions());
return false;
}
@@ -506,14 +506,14 @@ public class AssignAPProcessor {
if(YamlConfig.config.server.USE_ENFORCE_HPMP_SWAP) {
if (APTo != 2048) {
player.message("You can only swap MP ability points to HP.");
c.announce(PacketCreator.enableActions());
c.sendPacket(PacketCreator.enableActions());
return false;
}
}
if (player.getHpMpApUsed() < 1) {
player.message("You don't have enough HPMP stat points to spend on AP Reset.");
c.announce(PacketCreator.enableActions());
c.sendPacket(PacketCreator.enableActions());
return false;
}
@@ -534,7 +534,7 @@ public class AssignAPProcessor {
if (!canWash) {
player.message("You don't have the minimum MP pool required to swap.");
c.announce(PacketCreator.enableActions());
c.sendPacket(PacketCreator.enableActions());
return false;
}
@@ -546,7 +546,7 @@ public class AssignAPProcessor {
}
break;
default:
c.announce(PacketCreator.updatePlayerStats(PacketCreator.EMPTY_STATUPDATE, true, player));
c.sendPacket(PacketCreator.updatePlayerStats(PacketCreator.EMPTY_STATUPDATE, true, player));
return false;
}
@@ -571,47 +571,47 @@ public class AssignAPProcessor {
case 64:
if (!chr.assignStr(1)) {
chr.message("Couldn't execute AP assign operation.");
chr.announce(PacketCreator.enableActions());
chr.sendPacket(PacketCreator.enableActions());
return false;
}
break;
case 128: // Dex
if (!chr.assignDex(1)) {
chr.message("Couldn't execute AP assign operation.");
chr.announce(PacketCreator.enableActions());
chr.sendPacket(PacketCreator.enableActions());
return false;
}
break;
case 256: // Int
if (!chr.assignInt(1)) {
chr.message("Couldn't execute AP assign operation.");
chr.announce(PacketCreator.enableActions());
chr.sendPacket(PacketCreator.enableActions());
return false;
}
break;
case 512: // Luk
if (!chr.assignLuk(1)) {
chr.message("Couldn't execute AP assign operation.");
chr.announce(PacketCreator.enableActions());
chr.sendPacket(PacketCreator.enableActions());
return false;
}
break;
case 2048:
if (!chr.assignHP(calcHpChange(chr, usedAPReset), 1)) {
chr.message("Couldn't execute AP assign operation.");
chr.announce(PacketCreator.enableActions());
chr.sendPacket(PacketCreator.enableActions());
return false;
}
break;
case 8192:
if (!chr.assignMP(calcMpChange(chr, usedAPReset), 1)) {
chr.message("Couldn't execute AP assign operation.");
chr.announce(PacketCreator.enableActions());
chr.sendPacket(PacketCreator.enableActions());
return false;
}
break;
default:
chr.announce(PacketCreator.updatePlayerStats(PacketCreator.EMPTY_STATUPDATE, true, chr));
chr.sendPacket(PacketCreator.updatePlayerStats(PacketCreator.EMPTY_STATUPDATE, true, chr));
return false;
}
return true;

View File

@@ -41,7 +41,7 @@ public class AssignSPProcessor {
public static boolean canSPAssign(MapleClient c, int skillid) {
if (skillid == Aran.HIDDEN_FULL_DOUBLE || skillid == Aran.HIDDEN_FULL_TRIPLE || skillid == Aran.HIDDEN_OVER_DOUBLE || skillid == Aran.HIDDEN_OVER_TRIPLE) {
c.announce(PacketCreator.enableActions());
c.sendPacket(PacketCreator.enableActions());
return false;
}
@@ -82,7 +82,7 @@ public class AssignSPProcessor {
if (!isBeginnerSkill) {
player.gainSp(-1, GameConstants.getSkillBook(skillid/10000), false);
} else {
player.announce(PacketCreator.enableActions());
player.sendPacket(PacketCreator.enableActions());
}
if (skill.getId() == Aran.FULL_SWING) {
player.changeSkillLevel(skill, (byte) (curLevel + 1), player.getMasterLevel(skill), player.getSkillExpiration(skill));