From da2d8abc56a9fd1c605b4d4563d4973edadf2646 Mon Sep 17 00:00:00 2001 From: P0nk Date: Sun, 22 Aug 2021 22:10:19 +0200 Subject: [PATCH] Handlers read from InPacket instead of SeekableLittleEndianAccessor --- src/main/java/client/MapleClient.java | 12 +- .../command/commands/gm3/PeCommand.java | 20 ++- .../processor/action/MakerProcessor.java | 31 +++-- .../processor/npc/StorageProcessor.java | 17 +-- .../processor/stat/AssignAPProcessor.java | 13 +- src/main/java/net/MaplePacketHandler.java | 3 +- src/main/java/net/packet/ByteBufInPacket.java | 2 +- src/main/java/net/packet/InPacket.java | 2 +- .../handlers/AbstractDealDamageHandler.java | 75 +++++----- .../AbstractMovementPacketHandler.java | 109 +++++++-------- .../channel/handlers/AcceptFamilyHandler.java | 10 +- .../channel/handlers/AdminChatHandler.java | 10 +- .../channel/handlers/AdminCommandHandler.java | 54 ++++---- .../channel/handlers/AdminLogHandler.java | 4 +- .../handlers/AllianceOperationHandler.java | 24 ++-- .../channel/handlers/AranComboHandler.java | 4 +- .../channel/handlers/AutoAggroHandler.java | 6 +- .../channel/handlers/AutoAssignHandler.java | 6 +- .../channel/handlers/BBSOperationHandler.java | 32 ++--- .../channel/handlers/BeholderHandler.java | 12 +- .../handlers/BuddylistModifyHandler.java | 14 +- .../channel/handlers/CancelBuffHandler.java | 6 +- .../channel/handlers/CancelChairHandler.java | 6 +- .../channel/handlers/CancelDebuffHandler.java | 4 +- .../handlers/CancelItemEffectHandler.java | 6 +- .../handlers/CashOperationHandler.java | 92 ++++++------- .../handlers/CashShopSurpriseHandler.java | 4 +- .../handlers/ChangeChannelHandler.java | 8 +- .../channel/handlers/ChangeMapHandler.java | 20 +-- .../handlers/ChangeMapSpecialHandler.java | 10 +- .../handlers/CharInfoRequestHandler.java | 8 +- .../channel/handlers/ClickGuideHandler.java | 4 +- .../handlers/CloseChalkboardHandler.java | 4 +- .../handlers/CloseRangeDamageHandler.java | 6 +- .../channel/handlers/CoconutHandler.java | 6 +- .../channel/handlers/CouponCodeHandler.java | 16 +-- .../channel/handlers/DamageSummonHandler.java | 12 +- .../handlers/DenyAllianceRequestHandler.java | 10 +- .../handlers/DenyGuildRequestHandler.java | 8 +- .../handlers/DenyPartyRequestHandler.java | 8 +- .../channel/handlers/DistributeAPHandler.java | 8 +- .../channel/handlers/DistributeSPHandler.java | 8 +- .../server/channel/handlers/DoorHandler.java | 8 +- .../server/channel/handlers/DueyHandler.java | 24 ++-- .../handlers/EnterCashShopHandler.java | 4 +- .../channel/handlers/EnterMTSHandler.java | 4 +- .../handlers/FaceExpressionHandler.java | 6 +- .../channel/handlers/FamilyAddHandler.java | 6 +- .../handlers/FamilyPreceptsHandler.java | 6 +- .../handlers/FamilySeparateHandler.java | 8 +- .../handlers/FamilySummonResponseHandler.java | 8 +- .../channel/handlers/FamilyUseHandler.java | 8 +- .../handlers/FieldDamageMobHandler.java | 8 +- .../channel/handlers/FredrickHandler.java | 6 +- .../channel/handlers/GeneralChatHandler.java | 8 +- .../channel/handlers/GiveFameHandler.java | 8 +- .../handlers/GrenadeEffectHandler.java | 10 +- .../handlers/GuildOperationHandler.java | 44 +++--- .../channel/handlers/HealOvertimeHandler.java | 10 +- .../handlers/HiredMerchantRequest.java | 4 +- .../channel/handlers/InnerPortalHandler.java | 4 +- .../handlers/InventoryMergeHandler.java | 8 +- .../handlers/InventorySortHandler.java | 8 +- .../channel/handlers/ItemMoveHandler.java | 14 +- .../channel/handlers/ItemPickupHandler.java | 12 +- .../channel/handlers/ItemRewardHandler.java | 8 +- .../channel/handlers/KeymapChangeHandler.java | 22 ++- .../handlers/LeftKnockbackHandler.java | 4 +- .../server/channel/handlers/MTSHandler.java | 80 +++++------ .../channel/handlers/MagicDamageHandler.java | 6 +- .../channel/handlers/MakerSkillHandler.java | 6 +- .../channel/handlers/MesoDropHandler.java | 8 +- .../channel/handlers/MessengerHandler.java | 14 +- .../handlers/MobBanishPlayerHandler.java | 6 +- .../handlers/MobDamageMobFriendlyHandler.java | 10 +- .../channel/handlers/MobDamageMobHandler.java | 14 +- .../channel/handlers/MonsterBombHandler.java | 6 +- .../handlers/MonsterBookCoverHandler.java | 6 +- .../handlers/MonsterCarnivalHandler.java | 8 +- .../channel/handlers/MoveDragonHandler.java | 18 +-- .../channel/handlers/MoveLifeHandler.java | 38 +++--- .../channel/handlers/MovePetHandler.java | 10 +- .../channel/handlers/MovePlayerHandler.java | 18 +-- .../channel/handlers/MoveSummonHandler.java | 18 +-- .../channel/handlers/MultiChatHandler.java | 12 +- .../channel/handlers/NPCAnimationHandler.java | 20 +-- .../channel/handlers/NPCMoreTalkHandler.java | 18 +-- .../channel/handlers/NPCShopHandler.java | 20 +-- .../channel/handlers/NPCTalkHandler.java | 6 +- .../channel/handlers/NewYearCardHandler.java | 16 +-- .../channel/handlers/NoteActionHandler.java | 20 +-- .../channel/handlers/OpenFamilyHandler.java | 4 +- .../handlers/OpenFamilyPedigreeHandler.java | 6 +- .../channel/handlers/OwlWarpHandler.java | 8 +- .../handlers/PartyOperationHandler.java | 14 +- .../handlers/PartySearchRegisterHandler.java | 4 +- .../handlers/PartySearchStartHandler.java | 12 +- .../handlers/PartySearchUpdateHandler.java | 4 +- .../channel/handlers/PetAutoPotHandler.java | 14 +- .../channel/handlers/PetChatHandler.java | 14 +- .../channel/handlers/PetCommandHandler.java | 12 +- .../handlers/PetExcludeItemsHandler.java | 12 +- .../channel/handlers/PetFoodHandler.java | 10 +- .../channel/handlers/PetLootHandler.java | 10 +- .../handlers/PlayerInteractionHandler.java | 96 ++++++------- .../handlers/PlayerLoggedinHandler.java | 6 +- .../handlers/PlayerMapTransitionHandler.java | 4 +- .../channel/handlers/QuestActionHandler.java | 37 ++--- .../QuickslotKeyMappedModifiedHandler.java | 8 +- .../channel/handlers/RPSActionHandler.java | 10 +- .../channel/handlers/RaiseIncExpHandler.java | 10 +- .../channel/handlers/RaiseUIStateHandler.java | 6 +- .../channel/handlers/RangedAttackHandler.java | 6 +- .../channel/handlers/ReactorHitHandler.java | 14 +- .../handlers/RemoteGachaponHandler.java | 8 +- .../channel/handlers/RemoteStoreHandler.java | 4 +- .../channel/handlers/ReportHandler.java | 14 +- .../channel/handlers/RingActionHandler.java | 32 ++--- .../channel/handlers/ScriptedItemHandler.java | 10 +- .../channel/handlers/ScrollHandler.java | 12 +- .../channel/handlers/SkillBookHandler.java | 10 +- .../channel/handlers/SkillEffectHandler.java | 14 +- .../channel/handlers/SkillMacroHandler.java | 16 +-- .../channel/handlers/SnowballHandler.java | 6 +- .../channel/handlers/SpawnPetHandler.java | 12 +- .../channel/handlers/SpecialMoveHandler.java | 26 ++-- .../channel/handlers/SpouseChatHandler.java | 8 +- .../channel/handlers/StorageHandler.java | 6 +- .../channel/handlers/SummonDamageHandler.java | 20 +-- .../channel/handlers/TakeDamageHandler.java | 18 +-- .../handlers/TouchMonsterDamageHandler.java | 6 +- .../channel/handlers/TouchReactorHandler.java | 8 +- .../handlers/TouchingCashShopHandler.java | 4 +- .../channel/handlers/TransferNameHandler.java | 8 +- .../handlers/TransferNameResultHandler.java | 6 +- .../handlers/TransferWorldHandler.java | 8 +- .../channel/handlers/TrockAddMapHandler.java | 10 +- .../channel/handlers/UseCashItemHandler.java | 128 +++++++++--------- .../channel/handlers/UseCatchItemHandler.java | 12 +- .../channel/handlers/UseChairHandler.java | 6 +- .../channel/handlers/UseDeathItemHandler.java | 6 +- .../channel/handlers/UseGachaExpHandler.java | 4 +- .../channel/handlers/UseHammerHandler.java | 4 +- .../handlers/UseItemEffectHandler.java | 6 +- .../channel/handlers/UseItemHandler.java | 10 +- .../channel/handlers/UseMapleLifeHandler.java | 6 +- .../channel/handlers/UseMountFoodHandler.java | 10 +- .../handlers/UseOwlOfMinervaHandler.java | 4 +- .../channel/handlers/UseSolomonHandler.java | 10 +- .../channel/handlers/UseSummonBagHandler.java | 10 +- .../handlers/UseWaterOfLifeHandler.java | 4 +- .../channel/handlers/WeddingHandler.java | 16 +-- .../channel/handlers/WeddingTalkHandler.java | 6 +- .../handlers/WeddingTalkMoreHandler.java | 4 +- .../channel/handlers/WhisperHandler.java | 10 +- .../server/handlers/CustomPacketHandler.java | 8 +- .../net/server/handlers/KeepAliveHandler.java | 4 +- .../handlers/LoginRequiringNoOpHandler.java | 4 +- .../handlers/login/AcceptToSHandler.java | 6 +- .../handlers/login/AfterLoginHandler.java | 14 +- .../handlers/login/CharSelectedHandler.java | 10 +- .../login/CharSelectedWithPicHandler.java | 12 +- .../login/CharlistRequestHandler.java | 10 +- .../handlers/login/CheckCharNameHandler.java | 6 +- .../handlers/login/CreateCharHandler.java | 26 ++-- .../handlers/login/DeleteCharHandler.java | 8 +- .../handlers/login/GuestLoginHandler.java | 6 +- .../handlers/login/LoginPasswordHandler.java | 12 +- .../handlers/login/RegisterPicHandler.java | 14 +- .../handlers/login/RegisterPinHandler.java | 8 +- .../handlers/login/RelogRequestHandler.java | 4 +- .../login/ServerStatusRequestHandler.java | 6 +- .../login/ServerlistRequestHandler.java | 4 +- .../handlers/login/SetGenderHandler.java | 8 +- .../handlers/login/ViewAllCharHandler.java | 4 +- .../login/ViewAllCharRegisterPicHandler.java | 16 +-- .../login/ViewAllCharSelectedHandler.java | 12 +- .../ViewAllCharSelectedWithPicHandler.java | 14 +- .../maps/AbstractAnimatedMapleMapObject.java | 12 +- src/main/java/tools/PacketCreator.java | 22 +-- .../exceptions/EmptyMovementException.java | 6 +- .../java/net/packet/ByteBufInPacketTest.java | 2 +- 182 files changed, 1223 insertions(+), 1230 deletions(-) diff --git a/src/main/java/client/MapleClient.java b/src/main/java/client/MapleClient.java index d5e5984a50..6da968698e 100644 --- a/src/main/java/client/MapleClient.java +++ b/src/main/java/client/MapleClient.java @@ -63,8 +63,6 @@ import server.maps.FieldLimit; import server.maps.MapleMap; import server.maps.MapleMiniDungeonInfo; import tools.*; -import tools.data.input.ByteArrayByteStream; -import tools.data.input.GenericSeekableLittleEndianAccessor; import javax.script.ScriptEngine; import java.io.IOException; @@ -199,15 +197,11 @@ public class MapleClient extends ChannelInboundHandlerAdapter { } if (handler != null && handler.validateState(this)) { - // TODO: pass InPacket directly to handler once all handlers have been ported, - // this is just a temporary workaround - final byte[] content = packet.getBytes(); - GenericSeekableLittleEndianAccessor accessor = new GenericSeekableLittleEndianAccessor(new ByteArrayByteStream(content)); try { - MapleLogger.logRecv(this, opcode, content); - handler.handlePacket(accessor, this); + MapleLogger.logRecv(this, opcode, packet.getBytes()); + handler.handlePacket(packet, 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); + FilePrinter.printError(FilePrinter.PACKET_HANDLER + handler.getClass().getName() + ".txt", t, "Error for " + (getPlayer() == null ? "" : "player ; " + getPlayer() + " on map ; " + getPlayer().getMapId() + " - ") + "account ; " + getAccountName() + "\r\n" + packet); //client.sendPacket(PacketCreator.enableActions());//bugs sometimes } } diff --git a/src/main/java/client/command/commands/gm3/PeCommand.java b/src/main/java/client/command/commands/gm3/PeCommand.java index 3f959663b9..ae1ccd600c 100644 --- a/src/main/java/client/command/commands/gm3/PeCommand.java +++ b/src/main/java/client/command/commands/gm3/PeCommand.java @@ -26,15 +26,13 @@ package client.command.commands.gm3; import client.MapleCharacter; import client.MapleClient; import client.command.Command; +import io.netty.buffer.Unpooled; import net.MaplePacketHandler; import net.PacketProcessor; -import net.packet.ByteBufOutPacket; -import net.packet.OutPacket; +import net.packet.ByteBufInPacket; +import net.packet.InPacket; import tools.FilePrinter; import tools.HexTool; -import tools.data.input.ByteArrayByteStream; -import tools.data.input.GenericSeekableLittleEndianAccessor; -import tools.data.input.SeekableLittleEndianAccessor; import java.io.FileReader; import java.io.IOException; @@ -62,17 +60,17 @@ public class PeCommand extends Command { return; } - OutPacket p = new ByteBufOutPacket(); - p.writeBytes(HexTool.getByteArrayFromHexString(packet)); - SeekableLittleEndianAccessor slea = new GenericSeekableLittleEndianAccessor(new ByteArrayByteStream(p.getBytes())); - short packetId = slea.readShort(); + + byte[] packetContent = HexTool.getByteArrayFromHexString(packet); + InPacket inPacket = new ByteBufInPacket(Unpooled.wrappedBuffer(packetContent)); + short packetId = inPacket.readShort(); final MaplePacketHandler packetHandler = PacketProcessor.getProcessor(0, c.getChannel()).getHandler(packetId); if (packetHandler != null && packetHandler.validateState(c)) { try { player.yellowMessage("Receiving: " + packet); - packetHandler.handlePacket(slea, c); + packetHandler.handlePacket(inPacket, c); } catch (final Throwable t) { - FilePrinter.printError(FilePrinter.PACKET_HANDLER + packetHandler.getClass().getName() + ".txt", t, "Error for " + (c.getPlayer() == null ? "" : "player ; " + c.getPlayer() + " on map ; " + c.getPlayer().getMapId() + " - ") + "account ; " + c.getAccountName() + "\r\n" + slea.toString()); + FilePrinter.printError(FilePrinter.PACKET_HANDLER + packetHandler.getClass().getName() + ".txt", t, "Error for " + (c.getPlayer() == null ? "" : "player ; " + c.getPlayer() + " on map ; " + c.getPlayer().getMapId() + " - ") + "account ; " + c.getAccountName() + "\r\n" + inPacket); } } } diff --git a/src/main/java/client/processor/action/MakerProcessor.java b/src/main/java/client/processor/action/MakerProcessor.java index ccbfd1d232..d27d5eabc4 100644 --- a/src/main/java/client/processor/action/MakerProcessor.java +++ b/src/main/java/client/processor/action/MakerProcessor.java @@ -28,6 +28,7 @@ import client.inventory.manipulator.MapleInventoryManipulator; import config.YamlConfig; import constants.game.GameConstants; import constants.inventory.ItemConstants; +import net.packet.InPacket; import server.MakerItemFactory; import server.MakerItemFactory.MakerItemCreateEntry; import server.MapleItemInformationProvider; @@ -49,11 +50,11 @@ public class MakerProcessor { private static MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); - public static void makerAction(SeekableLittleEndianAccessor slea, MapleClient c) { + public static void makerAction(InPacket p, MapleClient c) { if (c.tryacquireClient()) { try { - int type = slea.readInt(); - int toCreate = slea.readInt(); + int type = p.readInt(); + int toCreate = p.readInt(); int toDisassemble = -1, pos = -1; boolean makerSucceeded = true; @@ -72,16 +73,16 @@ public class MakerProcessor { recipe = MakerItemFactory.generateLeftoverCrystalEntry(fromLeftover, toCreate); } else if(type == 4) { // disassembling - slea.readInt(); // 1... probably inventory type - pos = slea.readInt(); + p.readInt(); // 1... probably inventory type + pos = p.readInt(); Item it = c.getPlayer().getInventory(MapleInventoryType.EQUIP).getItem((short) pos); if(it != null && it.getItemId() == toCreate) { toDisassemble = toCreate; - Pair>> p = generateDisassemblyInfo(toDisassemble); - if(p != null) { - recipe = MakerItemFactory.generateDisassemblyCrystalEntry(toDisassemble, p.getLeft(), p.getRight()); + Pair>> pair = generateDisassemblyInfo(toDisassemble); + if(pair != null) { + recipe = MakerItemFactory.generateDisassemblyCrystalEntry(toDisassemble, pair.getLeft(), pair.getRight()); } else { c.sendPacket(PacketCreator.serverNotice(1, ii.getName(toCreate) + " is unavailable for Monster Crystal disassembly.")); c.sendPacket(PacketCreator.makerEnableActions()); @@ -94,16 +95,16 @@ public class MakerProcessor { } } else { if(ItemConstants.isEquipment(toCreate)) { // only equips uses stimulant and reagents - if(slea.readByte() != 0) { // stimulant + if(p.readByte() != 0) { // stimulant stimulantid = ii.getMakerStimulant(toCreate); if(!c.getAbstractPlayerInteraction().haveItem(stimulantid)) { stimulantid = -1; } } - int reagents = Math.min(slea.readInt(), getMakerReagentSlots(toCreate)); + int reagents = Math.min(p.readInt(), getMakerReagentSlots(toCreate)); for(int i = 0; i < reagents; i++) { // crystals - int reagentid = slea.readInt(); + int reagentid = p.readInt(); if(ItemConstants.isMakerReagent(reagentid)) { Short rs = reagentids.get(reagentid); if(rs == null) { @@ -184,8 +185,8 @@ public class MakerProcessor { if(toDisassemble != -1) { MapleInventoryManipulator.removeFromSlot(c, MapleInventoryType.EQUIP, (short) pos, (short) 1, false); } else { - for (Pair p : recipe.getReqItems()) { - c.getAbstractPlayerInteraction().gainItem(p.getLeft(), (short) -p.getRight(), false); + for (Pair pair : recipe.getReqItems()) { + c.getAbstractPlayerInteraction().gainItem(pair.getLeft(), (short) -pair.getRight(), false); } } @@ -193,9 +194,9 @@ public class MakerProcessor { if(stimulantid == -1 && reagentids.isEmpty()) { if(cost > 0) c.getPlayer().gainMeso(-cost, false); - for (Pair p : recipe.getGainItems()) { + for (Pair pair : recipe.getGainItems()) { c.getPlayer().setCS(true); - c.getAbstractPlayerInteraction().gainItem(p.getLeft(), p.getRight().shortValue(), false); + c.getAbstractPlayerInteraction().gainItem(pair.getLeft(), pair.getRight().shortValue(), false); c.getPlayer().setCS(false); } } else { diff --git a/src/main/java/client/processor/npc/StorageProcessor.java b/src/main/java/client/processor/npc/StorageProcessor.java index 37dde5f809..cca5e158cc 100644 --- a/src/main/java/client/processor/npc/StorageProcessor.java +++ b/src/main/java/client/processor/npc/StorageProcessor.java @@ -31,6 +31,7 @@ import client.inventory.manipulator.MapleInventoryManipulator; import client.inventory.manipulator.MapleKarmaManipulator; import config.YamlConfig; import constants.inventory.ItemConstants; +import net.packet.InPacket; import server.MapleItemInformationProvider; import server.MapleStorage; import tools.FilePrinter; @@ -44,11 +45,11 @@ import tools.data.input.SeekableLittleEndianAccessor; */ public class StorageProcessor { - public static void storageAction(SeekableLittleEndianAccessor slea, MapleClient c) { + public static void storageAction(InPacket p, MapleClient c) { MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); MapleCharacter chr = c.getPlayer(); MapleStorage storage = chr.getStorage(); - byte mode = slea.readByte(); + byte mode = p.readByte(); if (chr.getLevel() < 15){ chr.dropMessage(1, "You may only use the storage once you have reached level 15."); @@ -59,8 +60,8 @@ public class StorageProcessor { if (c.tryacquireClient()) { try { if (mode == 4) { // take out - byte type = slea.readByte(); - byte slot = slea.readByte(); + byte type = p.readByte(); + byte slot = p.readByte(); if (slot < 0 || slot > storage.getSlots()) { // removal starts at zero AutobanFactory.PACKET_EDIT.alert(c.getPlayer(), c.getPlayer().getName() + " tried to packet edit with storage."); FilePrinter.print(FilePrinter.EXPLOITS + c.getPlayer().getName() + ".txt", c.getPlayer().getName() + " tried to work with storage slot " + slot); @@ -103,9 +104,9 @@ public class StorageProcessor { } } } else if (mode == 5) { // store - short slot = slea.readShort(); - int itemId = slea.readInt(); - short quantity = slea.readShort(); + short slot = p.readShort(); + int itemId = p.readInt(); + short quantity = p.readShort(); MapleInventoryType invType = ItemConstants.getInventoryType(itemId); MapleInventory inv = chr.getInventory(invType); if (slot < 1 || slot > inv.getSlotLimit()) { //player inv starts at one @@ -170,7 +171,7 @@ public class StorageProcessor { if(YamlConfig.config.server.USE_STORAGE_ITEM_SORT) storage.arrangeItems(c); c.sendPacket(PacketCreator.enableActions()); } else if (mode == 7) { // meso - int meso = slea.readInt(); + int meso = p.readInt(); int storageMesos = storage.getMeso(); int playerMesos = chr.getMeso(); if ((meso > 0 && storageMesos >= meso) || (meso < 0 && playerMesos >= -meso)) { diff --git a/src/main/java/client/processor/stat/AssignAPProcessor.java b/src/main/java/client/processor/stat/AssignAPProcessor.java index 0b127535ef..13cd40f0ae 100644 --- a/src/main/java/client/processor/stat/AssignAPProcessor.java +++ b/src/main/java/client/processor/stat/AssignAPProcessor.java @@ -30,6 +30,7 @@ import client.inventory.Item; import client.inventory.MapleInventoryType; import config.YamlConfig; import constants.skills.*; +import net.packet.InPacket; import tools.PacketCreator; import tools.Randomizer; import tools.data.input.SeekableLittleEndianAccessor; @@ -45,7 +46,7 @@ import java.util.List; */ public class AssignAPProcessor { - public static void APAutoAssignAction(SeekableLittleEndianAccessor slea, MapleClient c) { + public static void APAutoAssignAction(InPacket inPacket, MapleClient c) { MapleCharacter chr = c.getPlayer(); if (chr.getRemainingAp() < 1) return; @@ -58,12 +59,12 @@ public class AssignAPProcessor { statGain[0] = 0; statGain[1] = 0; statGain[2] = 0; statGain[3] = 0; int remainingAp = chr.getRemainingAp(); - slea.skip(8); + inPacket.skip(8); if(YamlConfig.config.server.USE_SERVER_AUTOASSIGNER) { // --------- Ronan Lana's AUTOASSIGNER --------- // This method excels for assigning APs in such a way to cover all equipments AP requirements. - byte opt = slea.readByte(); // useful for pirate autoassigning + byte opt = inPacket.readByte(); // useful for pirate autoassigning int str = 0, dex = 0, luk = 0, int_ = 0; List eqpStrList = new ArrayList<>(); @@ -335,7 +336,7 @@ public class AssignAPProcessor { 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) { + if(inPacket.available() < 16) { AutobanFactory.PACKET_EDIT.alert(chr, "Didn't send full packet for Auto Assign."); c.disconnect(true, false); @@ -343,8 +344,8 @@ public class AssignAPProcessor { } for (int i = 0; i < 2; i++) { - int type = slea.readInt(); - int tempVal = slea.readInt(); + int type = inPacket.readInt(); + int tempVal = inPacket.readInt(); if (tempVal < 0 || tempVal > remainingAp) { return; } diff --git a/src/main/java/net/MaplePacketHandler.java b/src/main/java/net/MaplePacketHandler.java index 6eb720c001..1d3b6293ae 100644 --- a/src/main/java/net/MaplePacketHandler.java +++ b/src/main/java/net/MaplePacketHandler.java @@ -22,9 +22,10 @@ package net; import client.MapleClient; +import net.packet.InPacket; import tools.data.input.SeekableLittleEndianAccessor; public interface MaplePacketHandler { - void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c); + void handlePacket(InPacket p, MapleClient c); boolean validateState(MapleClient c); } diff --git a/src/main/java/net/packet/ByteBufInPacket.java b/src/main/java/net/packet/ByteBufInPacket.java index 0977172354..277e44727d 100644 --- a/src/main/java/net/packet/ByteBufInPacket.java +++ b/src/main/java/net/packet/ByteBufInPacket.java @@ -38,7 +38,7 @@ public class ByteBufInPacket implements InPacket { } @Override - public Point readPoint() { + public Point readPos() { final short x = byteBuf.readShortLE(); final short y = byteBuf.readShortLE(); return new Point(x, y); diff --git a/src/main/java/net/packet/InPacket.java b/src/main/java/net/packet/InPacket.java index 2c899c2ade..37e5280899 100644 --- a/src/main/java/net/packet/InPacket.java +++ b/src/main/java/net/packet/InPacket.java @@ -7,7 +7,7 @@ public interface InPacket extends Packet { short readShort(); int readInt(); long readLong(); - Point readPoint(); + Point readPos(); String readString(); byte[] readBytes(int numberOfBytes); void skip(int numberOfBytes); diff --git a/src/main/java/net/server/channel/handlers/AbstractDealDamageHandler.java b/src/main/java/net/server/channel/handlers/AbstractDealDamageHandler.java index b0178a1256..d2363d58aa 100644 --- a/src/main/java/net/server/channel/handlers/AbstractDealDamageHandler.java +++ b/src/main/java/net/server/channel/handlers/AbstractDealDamageHandler.java @@ -29,6 +29,7 @@ import config.YamlConfig; import constants.game.GameConstants; import constants.skills.*; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import net.server.PlayerBuffValueHolder; import scripting.AbstractPlayerInteraction; import server.MapleStatEffect; @@ -524,15 +525,15 @@ public abstract class AbstractDealDamageHandler extends AbstractMaplePacketHandl } } - protected AttackInfo parseDamage(LittleEndianAccessor lea, MapleCharacter chr, boolean ranged, boolean magic) { + protected AttackInfo parseDamage(InPacket p, MapleCharacter chr, boolean ranged, boolean magic) { //2C 00 00 01 91 A1 12 00 A5 57 62 FC E2 75 99 10 00 47 80 01 04 01 C6 CC 02 DD FF 5F 00 AttackInfo ret = new AttackInfo(); - lea.readByte(); - ret.numAttackedAndDamage = lea.readByte(); + p.readByte(); + ret.numAttackedAndDamage = p.readByte(); ret.numAttacked = (ret.numAttackedAndDamage >>> 4) & 0xF; ret.numDamage = ret.numAttackedAndDamage & 0xF; ret.allDamage = new HashMap<>(); - ret.skill = lea.readInt(); + ret.skill = p.readInt(); ret.ranged = ranged; ret.magic = magic; @@ -542,45 +543,45 @@ public abstract class AbstractDealDamageHandler extends AbstractMaplePacketHandl } if (ret.skill == Evan.ICE_BREATH || ret.skill == Evan.FIRE_BREATH || ret.skill == FPArchMage.BIG_BANG || ret.skill == ILArchMage.BIG_BANG || ret.skill == Bishop.BIG_BANG || ret.skill == Gunslinger.GRENADE || ret.skill == Brawler.CORKSCREW_BLOW || ret.skill == ThunderBreaker.CORKSCREW_BLOW || ret.skill == NightWalker.POISON_BOMB) { - ret.charge = lea.readInt(); + ret.charge = p.readInt(); } else { ret.charge = 0; } - lea.skip(8); - ret.display = lea.readByte(); - ret.direction = lea.readByte(); - ret.stance = lea.readByte(); + p.skip(8); + ret.display = p.readByte(); + ret.direction = p.readByte(); + ret.stance = p.readByte(); if (ret.skill == ChiefBandit.MESO_EXPLOSION) { if (ret.numAttackedAndDamage == 0) { - lea.skip(10); - int bullets = lea.readByte(); + p.skip(10); + int bullets = p.readByte(); for (int j = 0; j < bullets; j++) { - int mesoid = lea.readInt(); - lea.skip(1); + int mesoid = p.readInt(); + p.skip(1); ret.allDamage.put(mesoid, null); } return ret; } else { - lea.skip(6); + p.skip(6); } for (int i = 0; i < ret.numAttacked + 1; i++) { - int oid = lea.readInt(); + int oid = p.readInt(); if (i < ret.numAttacked) { - lea.skip(12); - int bullets = lea.readByte(); + p.skip(12); + int bullets = p.readByte(); List allDamageNumbers = new ArrayList<>(); for (int j = 0; j < bullets; j++) { - int damage = lea.readInt(); + int damage = p.readInt(); allDamageNumbers.add(damage); } ret.allDamage.put(oid, allDamageNumbers); - lea.skip(4); + p.skip(4); } else { - int bullets = lea.readByte(); + int bullets = p.readByte(); for (int j = 0; j < bullets; j++) { - int mesoid = lea.readInt(); - lea.skip(1); + int mesoid = p.readInt(); + p.skip(1); ret.allDamage.put(mesoid, null); } } @@ -588,18 +589,18 @@ public abstract class AbstractDealDamageHandler extends AbstractMaplePacketHandl return ret; } if (ranged) { - lea.readByte(); - ret.speed = lea.readByte(); - lea.readByte(); - ret.rangedirection = lea.readByte(); - lea.skip(7); + p.readByte(); + ret.speed = p.readByte(); + p.readByte(); + ret.rangedirection = p.readByte(); + p.skip(7); if (ret.skill == Bowmaster.HURRICANE || ret.skill == Marksman.PIERCING_ARROW || ret.skill == Corsair.RAPID_FIRE || ret.skill == WindArcher.HURRICANE) { - lea.skip(4); + p.skip(4); } } else { - lea.readByte(); - ret.speed = lea.readByte(); - lea.skip(4); + p.readByte(); + ret.speed = p.readByte(); + p.skip(4); } // Find the base damage to base futher calculations on. @@ -739,8 +740,8 @@ public abstract class AbstractDealDamageHandler extends AbstractMaplePacketHandl calcDmgMax = fixed; } for (int i = 0; i < ret.numAttacked; i++) { - int oid = lea.readInt(); - lea.skip(14); + int oid = p.readInt(); + p.skip(14); List allDamageNumbers = new ArrayList<>(); MapleMonster monster = chr.getMap().getMonsterByOid(oid); @@ -814,7 +815,7 @@ public abstract class AbstractDealDamageHandler extends AbstractMaplePacketHandl } for (int j = 0; j < ret.numDamage; j++) { - int damage = lea.readInt(); + int damage = p.readInt(); long hitDmgMax = calcDmgMax; if(ret.skill == Buccaneer.BARRAGE || ret.skill == ThunderBreaker.BARRAGE) { if(j > 3) @@ -857,13 +858,13 @@ public abstract class AbstractDealDamageHandler extends AbstractMaplePacketHandl allDamageNumbers.add(damage); } if (ret.skill != Corsair.RAPID_FIRE || ret.skill != Aran.HIDDEN_FULL_DOUBLE || ret.skill != Aran.HIDDEN_FULL_TRIPLE || ret.skill != Aran.HIDDEN_OVER_DOUBLE || ret.skill != Aran.HIDDEN_OVER_TRIPLE) { - lea.skip(4); + p.skip(4); } ret.allDamage.put(oid, allDamageNumbers); } if (ret.skill == NightWalker.POISON_BOMB) { // Poison Bomb - lea.skip(4); - ret.position.setLocation(lea.readShort(), lea.readShort()); + p.skip(4); + ret.position.setLocation(p.readShort(), p.readShort()); } return ret; } diff --git a/src/main/java/net/server/channel/handlers/AbstractMovementPacketHandler.java b/src/main/java/net/server/channel/handlers/AbstractMovementPacketHandler.java index 2936ba10af..f3a56c6edf 100644 --- a/src/main/java/net/server/channel/handlers/AbstractMovementPacketHandler.java +++ b/src/main/java/net/server/channel/handlers/AbstractMovementPacketHandler.java @@ -26,6 +26,7 @@ import java.util.ArrayList; import java.util.List; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import server.maps.AnimatedMapleMapObject; import server.movement.AbsoluteLifeMovement; import server.movement.ChangeEquip; @@ -38,23 +39,23 @@ import tools.exceptions.EmptyMovementException; public abstract class AbstractMovementPacketHandler extends AbstractMaplePacketHandler { - protected List parseMovement(LittleEndianAccessor lea) throws EmptyMovementException { + protected List parseMovement(InPacket p) throws EmptyMovementException { List res = new ArrayList<>(); - byte numCommands = lea.readByte(); - if (numCommands < 1) throw new EmptyMovementException(lea); + byte numCommands = p.readByte(); + if (numCommands < 1) throw new EmptyMovementException(p); for (byte i = 0; i < numCommands; i++) { - byte command = lea.readByte(); + byte command = p.readByte(); switch (command) { case 0: // normal move case 5: case 17: { // Float - short xpos = lea.readShort(); - short ypos = lea.readShort(); - short xwobble = lea.readShort(); - short ywobble = lea.readShort(); - short fh = lea.readShort(); - byte newstate = lea.readByte(); - short duration = lea.readShort(); + short xpos = p.readShort(); + short ypos = p.readShort(); + short xwobble = p.readShort(); + short ywobble = p.readShort(); + short fh = p.readShort(); + byte newstate = p.readByte(); + short duration = p.readShort(); AbsoluteLifeMovement alm = new AbsoluteLifeMovement(command, new Point(xpos, ypos), duration, newstate); alm.setFh(fh); alm.setPixelsPerSecond(new Point(xwobble, ywobble)); @@ -71,10 +72,10 @@ public abstract class AbstractMovementPacketHandler extends AbstractMaplePacketH case 19: // Springs on maps case 20: // Aran Combat Step case 22: { - short xpos = lea.readShort(); - short ypos = lea.readShort(); - byte newstate = lea.readByte(); - short duration = lea.readShort(); + short xpos = p.readShort(); + short ypos = p.readShort(); + byte newstate = p.readByte(); + short duration = p.readShort(); RelativeLifeMovement rlm = new RelativeLifeMovement(command, new Point(xpos, ypos), duration, newstate); res.add(rlm); break; @@ -87,21 +88,21 @@ public abstract class AbstractMovementPacketHandler extends AbstractMaplePacketH case 11: //chair { // case 14: { - short xpos = lea.readShort(); - short ypos = lea.readShort(); - short xwobble = lea.readShort(); - short ywobble = lea.readShort(); - byte newstate = lea.readByte(); + short xpos = p.readShort(); + short ypos = p.readShort(); + short xwobble = p.readShort(); + short ywobble = p.readShort(); + byte newstate = p.readByte(); TeleportMovement tm = new TeleportMovement(command, new Point(xpos, ypos), newstate); tm.setPixelsPerSecond(new Point(xwobble, ywobble)); res.add(tm); break; } case 14: - lea.skip(9); // jump down (?) + p.skip(9); // jump down (?) break; case 10: // Change Equip - res.add(new ChangeEquip(lea.readByte())); + res.add(new ChangeEquip(p.readByte())); break; /*case 11: { // Chair short xpos = lea.readShort(); @@ -115,14 +116,14 @@ public abstract class AbstractMovementPacketHandler extends AbstractMaplePacketH break; }*/ case 15: { - short xpos = lea.readShort(); - short ypos = lea.readShort(); - short xwobble = lea.readShort(); - short ywobble = lea.readShort(); - short fh = lea.readShort(); - short ofh = lea.readShort(); - byte newstate = lea.readByte(); - short duration = lea.readShort(); + short xpos = p.readShort(); + short ypos = p.readShort(); + short xwobble = p.readShort(); + short ywobble = p.readShort(); + short fh = p.readShort(); + short ofh = p.readShort(); + byte newstate = p.readByte(); + short duration = p.readShort(); JumpDownMovement jdm = new JumpDownMovement(command, new Point(xpos, ypos), duration, newstate); jdm.setFh(fh); jdm.setPixelsPerSecond(new Point(xwobble, ywobble)); @@ -135,39 +136,39 @@ public abstract class AbstractMovementPacketHandler extends AbstractMaplePacketH short unk = lea.readShort(); AranMovement am = new AranMovement(command, null, unk, newstate); res.add(am);*/ - lea.skip(3); + p.skip(3); break; } default: System.out.println("Unhandled Case:" + command); - throw new EmptyMovementException(lea); + throw new EmptyMovementException(p); } } if (res.isEmpty()) { - throw new EmptyMovementException(lea); + throw new EmptyMovementException(p); } return res; } - protected void updatePosition(LittleEndianAccessor lea, AnimatedMapleMapObject target, int yOffset) throws EmptyMovementException { + protected void updatePosition(InPacket p, AnimatedMapleMapObject target, int yOffset) throws EmptyMovementException { - byte numCommands = lea.readByte(); - if (numCommands < 1) throw new EmptyMovementException(lea); + byte numCommands = p.readByte(); + if (numCommands < 1) throw new EmptyMovementException(p); for (byte i = 0; i < numCommands; i++) { - byte command = lea.readByte(); + byte command = p.readByte(); switch (command) { case 0: // normal move case 5: case 17: { // Float //Absolute movement - only this is important for the server, other movement can be passed to the client - short xpos = lea.readShort(); //is signed fine here? - short ypos = lea.readShort(); + short xpos = p.readShort(); //is signed fine here? + short ypos = p.readShort(); target.setPosition(new Point(xpos, ypos + yOffset)); - lea.skip(6); //xwobble = lea.readShort(); ywobble = lea.readShort(); fh = lea.readShort(); - byte newstate = lea.readByte(); + p.skip(6); //xwobble = lea.readShort(); ywobble = lea.readShort(); fh = lea.readShort(); + byte newstate = p.readByte(); target.setStance(newstate); - lea.readShort(); //duration + p.readShort(); //duration break; } case 1: @@ -181,10 +182,10 @@ public abstract class AbstractMovementPacketHandler extends AbstractMaplePacketH case 20: // Aran Combat Step case 22: { //Relative movement - server only cares about stance - lea.skip(4); //xpos = lea.readShort(); ypos = lea.readShort(); - byte newstate = lea.readByte(); + p.skip(4); //xpos = lea.readShort(); ypos = lea.readShort(); + byte newstate = p.readByte(); target.setStance(newstate); - lea.readShort(); //duration + p.readShort(); //duration break; } case 3: @@ -196,17 +197,17 @@ public abstract class AbstractMovementPacketHandler extends AbstractMaplePacketH { // case 14: { //Teleport movement - same as above - lea.skip(8); //xpos = lea.readShort(); ypos = lea.readShort(); xwobble = lea.readShort(); ywobble = lea.readShort(); - byte newstate = lea.readByte(); + p.skip(8); //xpos = lea.readShort(); ypos = lea.readShort(); xwobble = lea.readShort(); ywobble = lea.readShort(); + byte newstate = p.readByte(); target.setStance(newstate); break; } case 14: - lea.skip(9); // jump down (?) + p.skip(9); // jump down (?) break; case 10: // Change Equip //ignored server-side - lea.readByte(); + p.readByte(); break; /*case 11: { // Chair short xpos = lea.readShort(); @@ -221,10 +222,10 @@ public abstract class AbstractMovementPacketHandler extends AbstractMaplePacketH }*/ case 15: { //Jump down movement - stance only - lea.skip(12); //short xpos = lea.readShort(); ypos = lea.readShort(); xwobble = lea.readShort(); ywobble = lea.readShort(); fh = lea.readShort(); ofh = lea.readShort(); - byte newstate = lea.readByte(); + p.skip(12); //short xpos = lea.readShort(); ypos = lea.readShort(); xwobble = lea.readShort(); ywobble = lea.readShort(); fh = lea.readShort(); ofh = lea.readShort(); + byte newstate = p.readByte(); target.setStance(newstate); - lea.readShort(); // duration + p.readShort(); // duration break; } case 21: {//Causes aran to do weird stuff when attacking o.o @@ -232,12 +233,12 @@ public abstract class AbstractMovementPacketHandler extends AbstractMaplePacketH short unk = lea.readShort(); AranMovement am = new AranMovement(command, null, unk, newstate); res.add(am);*/ - lea.skip(3); + p.skip(3); break; } default: System.out.println("Unhandled Case:" + command); - throw new EmptyMovementException(lea); + throw new EmptyMovementException(p); } } } diff --git a/src/main/java/net/server/channel/handlers/AcceptFamilyHandler.java b/src/main/java/net/server/channel/handlers/AcceptFamilyHandler.java index 31b7c3fc77..cb12c611ed 100644 --- a/src/main/java/net/server/channel/handlers/AcceptFamilyHandler.java +++ b/src/main/java/net/server/channel/handlers/AcceptFamilyHandler.java @@ -27,6 +27,7 @@ import client.MapleFamily; import client.MapleFamilyEntry; import config.YamlConfig; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import net.server.coordinator.world.MapleInviteCoordinator; import net.server.coordinator.world.MapleInviteCoordinator.InviteResult; import net.server.coordinator.world.MapleInviteCoordinator.InviteType; @@ -34,7 +35,6 @@ import net.server.coordinator.world.MapleInviteCoordinator.MapleInviteResult; import tools.DatabaseConnection; import tools.FilePrinter; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; import java.sql.Connection; import java.sql.PreparedStatement; @@ -48,14 +48,14 @@ import java.sql.SQLException; public final class AcceptFamilyHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { if(!YamlConfig.config.server.USE_FAMILY_SYSTEM) { return; } MapleCharacter chr = c.getPlayer(); - int inviterId = slea.readInt(); - slea.readMapleAsciiString(); - boolean accept = slea.readByte() != 0; + int inviterId = p.readInt(); + p.readString(); + boolean accept = p.readByte() != 0; // String inviterName = slea.readMapleAsciiString(); MapleCharacter inviter = c.getWorldServer().getPlayerStorage().getCharacterById(inviterId); if(inviter != null) { diff --git a/src/main/java/net/server/channel/handlers/AdminChatHandler.java b/src/main/java/net/server/channel/handlers/AdminChatHandler.java index 16e4cd01a5..430b73c6e1 100644 --- a/src/main/java/net/server/channel/handlers/AdminChatHandler.java +++ b/src/main/java/net/server/channel/handlers/AdminChatHandler.java @@ -3,10 +3,10 @@ package net.server.channel.handlers; import client.MapleClient; import config.YamlConfig; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import net.packet.Packet; import tools.LogHelper; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; /** * @@ -15,14 +15,14 @@ import tools.data.input.SeekableLittleEndianAccessor; public class AdminChatHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { if (!c.getPlayer().isGM()) {//if ( (signed int)CWvsContext::GetAdminLevel((void *)v294) > 2 ) return; } - byte mode = slea.readByte(); + byte mode = p.readByte(); //not saving slides... - String message = slea.readMapleAsciiString(); - Packet packet = PacketCreator.serverNotice(slea.readByte(), message);//maybe I should make a check for the slea.readByte()... but I just hope gm's don't fuck things up :) + String message = p.readString(); + Packet packet = PacketCreator.serverNotice(p.readByte(), message);//maybe I should make a check for the slea.readByte()... but I just hope gm's don't fuck things up :) switch (mode) { case 0:// /alertall, /noticeall, /slideall c.getWorldServer().broadcastPacket(packet); diff --git a/src/main/java/net/server/channel/handlers/AdminCommandHandler.java b/src/main/java/net/server/channel/handlers/AdminCommandHandler.java index ef48f94718..300264dc3f 100644 --- a/src/main/java/net/server/channel/handlers/AdminCommandHandler.java +++ b/src/main/java/net/server/channel/handlers/AdminCommandHandler.java @@ -27,6 +27,7 @@ import client.inventory.MapleInventory; import client.inventory.MapleInventoryType; import client.inventory.manipulator.MapleInventoryManipulator; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import server.MapleItemInformationProvider; import server.life.MapleLifeFactory; import server.life.MapleMonster; @@ -35,7 +36,6 @@ import server.maps.MapleMapObjectType; import server.quest.MapleQuest; import tools.PacketCreator; import tools.Randomizer; -import tools.data.input.SeekableLittleEndianAccessor; import java.util.Arrays; import java.util.List; @@ -43,16 +43,16 @@ import java.util.List; public final class AdminCommandHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { if (!c.getPlayer().isGM()) { return; } - byte mode = slea.readByte(); + byte mode = p.readByte(); String victim; MapleCharacter target; switch (mode) { case 0x00: // Level1~Level8 & Package1~Package2 - int[][] toSpawn = MapleItemInformationProvider.getInstance().getSummonMobs(slea.readInt()); + int[][] toSpawn = MapleItemInformationProvider.getInstance().getSummonMobs(p.readInt()); for (int[] toSpawnChild : toSpawn) { if (Randomizer.nextInt(100) < toSpawnChild[1]) { c.getPlayer().getMap().spawnMonsterOnGroundBelow(MapleLifeFactory.getMonster(toSpawnChild[0]), c.getPlayer().getPosition()); @@ -61,7 +61,7 @@ public final class AdminCommandHandler extends AbstractMaplePacketHandler { c.sendPacket(PacketCreator.enableActions()); break; case 0x01: { // /d (inv) - byte type = slea.readByte(); + byte type = p.readByte(); MapleInventory in = c.getPlayer().getInventory(MapleInventoryType.getByType(type)); for (short i = 1; i <= in.getSlotLimit(); i++) { //TODO What is the point of this loop? if (in.getItem(i) != null) { @@ -72,16 +72,16 @@ public final class AdminCommandHandler extends AbstractMaplePacketHandler { break; } case 0x02: // Exp - c.getPlayer().setExp(slea.readInt()); + c.getPlayer().setExp(p.readInt()); break; case 0x03: // /ban c.getPlayer().yellowMessage("Please use !ban "); break; case 0x04: // /block - victim = slea.readMapleAsciiString(); - int type = slea.readByte(); //reason - int duration = slea.readInt(); - String description = slea.readMapleAsciiString(); + victim = p.readString(); + int type = p.readByte(); //reason + int duration = p.readInt(); + String description = p.readString(); String reason = c.getPlayer().getName() + " used /ban to ban"; target = c.getChannelServer().getPlayerStorage().getCharacterByName(victim); if (target != null) { @@ -102,10 +102,10 @@ public final class AdminCommandHandler extends AbstractMaplePacketHandler { } break; case 0x10: // /h, information added by vana -- ... hide ofcourse - c.getPlayer().Hide(slea.readByte() == 1); + c.getPlayer().Hide(p.readByte() == 1); break; case 0x11: // Entering a map - switch (slea.readByte()) { + switch (p.readByte()) { case 0:// /u StringBuilder sb = new StringBuilder("USERS ON THIS MAP: "); for (MapleCharacter mc : c.getPlayer().getMap().getCharacters()) { @@ -119,13 +119,13 @@ public final class AdminCommandHandler extends AbstractMaplePacketHandler { } break; case 0x12: // Send - victim = slea.readMapleAsciiString(); - int mapId = slea.readInt(); + victim = p.readString(); + int mapId = p.readInt(); c.getChannelServer().getPlayerStorage().getCharacterByName(victim).changeMap(c.getChannelServer().getMapFactory().getMap(mapId)); break; case 0x15: // Kill - int mobToKill = slea.readInt(); - int amount = slea.readInt(); + int mobToKill = p.readInt(); + int amount = p.readInt(); List monsterx = c.getPlayer().getMap().getMapObjectsInRange(c.getPlayer().getPosition(), Double.POSITIVE_INFINITY, Arrays.asList(MapleMapObjectType.MONSTER)); for (int x = 0; x < amount; x++) { MapleMonster monster = (MapleMonster) monsterx.get(x); @@ -135,17 +135,17 @@ public final class AdminCommandHandler extends AbstractMaplePacketHandler { } break; case 0x16: // Questreset - MapleQuest.getInstance(slea.readShort()).reset(c.getPlayer()); + MapleQuest.getInstance(p.readShort()).reset(c.getPlayer()); break; case 0x17: // Summon - int mobId = slea.readInt(); - int quantity = slea.readInt(); + int mobId = p.readInt(); + int quantity = p.readInt(); for (int i = 0; i < quantity; i++) { c.getPlayer().getMap().spawnMonsterOnGroundBelow(MapleLifeFactory.getMonster(mobId), c.getPlayer().getPosition()); } break; case 0x18: // Maple & Mobhp - int mobHp = slea.readInt(); + int mobHp = p.readInt(); c.getPlayer().dropMessage("Monsters HP"); List monsters = c.getPlayer().getMap().getMapObjectsInRange(c.getPlayer().getPosition(), Double.POSITIVE_INFINITY, Arrays.asList(MapleMapObjectType.MONSTER)); for (MapleMapObject mobs : monsters) { @@ -156,8 +156,8 @@ public final class AdminCommandHandler extends AbstractMaplePacketHandler { } break; case 0x1E: // Warn - victim = slea.readMapleAsciiString(); - String message = slea.readMapleAsciiString(); + victim = p.readString(); + String message = p.readString(); target = c.getChannelServer().getPlayerStorage().getCharacterByName(victim); if (target != null) { target.getClient().sendPacket(PacketCreator.serverNotice(1, message)); @@ -169,14 +169,14 @@ public final class AdminCommandHandler extends AbstractMaplePacketHandler { case 0x24:// /Artifact Ranking break; case 0x77: //Testing purpose - if (slea.available() == 4) { - System.out.println(slea.readInt()); - } else if (slea.available() == 2) { - System.out.println(slea.readShort()); + if (p.available() == 4) { + System.out.println(p.readInt()); + } else if (p.available() == 2) { + System.out.println(p.readShort()); } break; default: - System.out.println("New GM packet encountered (MODE : " + mode + ": " + slea.toString()); + System.out.println("New GM packet encountered (MODE : " + mode + ": " + p.toString()); break; } } diff --git a/src/main/java/net/server/channel/handlers/AdminLogHandler.java b/src/main/java/net/server/channel/handlers/AdminLogHandler.java index 4ff043db00..d1bb43d210 100644 --- a/src/main/java/net/server/channel/handlers/AdminLogHandler.java +++ b/src/main/java/net/server/channel/handlers/AdminLogHandler.java @@ -23,12 +23,12 @@ package net.server.channel.handlers; import client.MapleClient; import net.AbstractMaplePacketHandler; -import tools.data.input.SeekableLittleEndianAccessor; +import net.packet.InPacket; public final class AdminLogHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { //harhar } } \ No newline at end of file diff --git a/src/main/java/net/server/channel/handlers/AllianceOperationHandler.java b/src/main/java/net/server/channel/handlers/AllianceOperationHandler.java index 88b9979cd3..bc41e0304a 100644 --- a/src/main/java/net/server/channel/handlers/AllianceOperationHandler.java +++ b/src/main/java/net/server/channel/handlers/AllianceOperationHandler.java @@ -24,13 +24,13 @@ package net.server.channel.handlers; import client.MapleCharacter; import client.MapleClient; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import net.server.Server; import net.server.guild.GuildPackets; import net.server.guild.MapleAlliance; import net.server.guild.MapleGuild; import net.server.guild.MapleGuildCharacter; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; /** * @@ -39,7 +39,7 @@ import tools.data.input.SeekableLittleEndianAccessor; public final class AllianceOperationHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { MapleAlliance alliance = null; MapleCharacter chr = c.getPlayer(); @@ -52,7 +52,7 @@ public final class AllianceOperationHandler extends AbstractMaplePacketHandler { alliance = chr.getAlliance(); } - byte b = slea.readByte(); + byte b = p.readByte(); if (alliance == null) { if (b != 4) { c.sendPacket(PacketCreator.enableActions()); @@ -85,7 +85,7 @@ public final class AllianceOperationHandler extends AbstractMaplePacketHandler { break; } case 0x03: // Send Invite - String guildName = slea.readMapleAsciiString(); + String guildName = p.readString(); if (alliance.getGuilds().size() == alliance.getCapacity()) { chr.dropMessage(5, "Your alliance cannot comport any more guilds at the moment."); @@ -100,7 +100,7 @@ public final class AllianceOperationHandler extends AbstractMaplePacketHandler { return; } - int allianceid = slea.readInt(); + int allianceid = p.readInt(); //slea.readMapleAsciiString(); //recruiter's guild name alliance = Server.getInstance().getAlliance(allianceid); @@ -138,8 +138,8 @@ public final class AllianceOperationHandler extends AbstractMaplePacketHandler { break; } case 0x06: { // Expel Guild - int guildid = slea.readInt(); - int allianceid = slea.readInt(); + int guildid = p.readInt(); + int allianceid = p.readInt(); if (chr.getGuild().getAllianceId() == 0 || chr.getGuild().getAllianceId() != allianceid) { return; } @@ -158,7 +158,7 @@ public final class AllianceOperationHandler extends AbstractMaplePacketHandler { if (chr.getGuild().getAllianceId() == 0 || chr.getGuildId() < 1) { return; } - int victimid = slea.readInt(); + int victimid = p.readInt(); MapleCharacter player = Server.getInstance().getWorld(c.getWorld()).getPlayerStorage().getCharacterById(victimid); if (player.getAllianceRank() != 2) { return; @@ -171,14 +171,14 @@ public final class AllianceOperationHandler extends AbstractMaplePacketHandler { case 0x08: String[] ranks = new String[5]; for (int i = 0; i < 5; i++) { - ranks[i] = slea.readMapleAsciiString(); + ranks[i] = p.readString(); } Server.getInstance().setAllianceRanks(alliance.getId(), ranks); Server.getInstance().allianceMessage(alliance.getId(), GuildPackets.changeAllianceRankTitle(alliance.getId(), ranks), -1, -1); break; case 0x09: { - int int1 = slea.readInt(); - byte byte1 = slea.readByte(); + int int1 = p.readInt(); + byte byte1 = p.readByte(); //Server.getInstance().allianceMessage(alliance.getId(), sendChangeRank(chr.getGuild().getAllianceId(), chr.getId(), int1, byte1), -1, -1); MapleCharacter player = Server.getInstance().getWorld(c.getWorld()).getPlayerStorage().getCharacterById(int1); @@ -187,7 +187,7 @@ public final class AllianceOperationHandler extends AbstractMaplePacketHandler { break; } case 0x0A: - String notice = slea.readMapleAsciiString(); + String notice = p.readString(); Server.getInstance().setAllianceNotice(alliance.getId(), notice); Server.getInstance().allianceMessage(alliance.getId(), GuildPackets.allianceNotice(alliance.getId(), notice), -1, -1); diff --git a/src/main/java/net/server/channel/handlers/AranComboHandler.java b/src/main/java/net/server/channel/handlers/AranComboHandler.java index 1f5de34084..025462310f 100644 --- a/src/main/java/net/server/channel/handlers/AranComboHandler.java +++ b/src/main/java/net/server/channel/handlers/AranComboHandler.java @@ -27,12 +27,12 @@ import client.SkillFactory; import constants.game.GameConstants; import constants.skills.Aran; import net.AbstractMaplePacketHandler; -import tools.data.input.SeekableLittleEndianAccessor; +import net.packet.InPacket; public class AranComboHandler extends AbstractMaplePacketHandler { @Override - public void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public void handlePacket(InPacket p, MapleClient c) { final MapleCharacter player = c.getPlayer(); int skillLevel = player.getSkillLevel(SkillFactory.getSkill(Aran.COMBO_ABILITY)); if (GameConstants.isAran(player.getJob().getId()) && (skillLevel > 0 || player.getJob().getId() == 2000)) { diff --git a/src/main/java/net/server/channel/handlers/AutoAggroHandler.java b/src/main/java/net/server/channel/handlers/AutoAggroHandler.java index 448f2adb5e..d672fdd9bf 100644 --- a/src/main/java/net/server/channel/handlers/AutoAggroHandler.java +++ b/src/main/java/net/server/channel/handlers/AutoAggroHandler.java @@ -23,20 +23,20 @@ package net.server.channel.handlers; import client.MapleClient; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import server.life.MapleMonster; import server.maps.MapleMap; -import tools.data.input.SeekableLittleEndianAccessor; import client.MapleCharacter; public final class AutoAggroHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { MapleCharacter player = c.getPlayer(); if (player.isHidden()) return; // Don't auto aggro GM's in hide... MapleMap map = player.getMap(); - int oid = slea.readInt(); + int oid = p.readInt(); MapleMonster monster = map.getMonsterByOid(oid); if (monster != null) { diff --git a/src/main/java/net/server/channel/handlers/AutoAssignHandler.java b/src/main/java/net/server/channel/handlers/AutoAssignHandler.java index 41b5582263..181e74f89c 100644 --- a/src/main/java/net/server/channel/handlers/AutoAssignHandler.java +++ b/src/main/java/net/server/channel/handlers/AutoAssignHandler.java @@ -24,7 +24,7 @@ package net.server.channel.handlers; import client.MapleClient; import client.processor.stat.AssignAPProcessor; import net.AbstractMaplePacketHandler; -import tools.data.input.SeekableLittleEndianAccessor; +import net.packet.InPacket; /** * @@ -33,7 +33,7 @@ import tools.data.input.SeekableLittleEndianAccessor; public class AutoAssignHandler extends AbstractMaplePacketHandler { @Override - public void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - AssignAPProcessor.APAutoAssignAction(slea, c); + public void handlePacket(InPacket p, MapleClient c) { + AssignAPProcessor.APAutoAssignAction(p, c); } } diff --git a/src/main/java/net/server/channel/handlers/BBSOperationHandler.java b/src/main/java/net/server/channel/handlers/BBSOperationHandler.java index 318ecc1ec1..abecd65e68 100644 --- a/src/main/java/net/server/channel/handlers/BBSOperationHandler.java +++ b/src/main/java/net/server/channel/handlers/BBSOperationHandler.java @@ -24,9 +24,9 @@ package net.server.channel.handlers; import client.MapleCharacter; import client.MapleClient; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import net.server.guild.GuildPackets; import tools.DatabaseConnection; -import tools.data.input.SeekableLittleEndianAccessor; import java.sql.Connection; import java.sql.PreparedStatement; @@ -40,22 +40,22 @@ public final class BBSOperationHandler extends AbstractMaplePacketHandler { } @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { if (c.getPlayer().getGuildId() < 1) { return; } - byte mode = slea.readByte(); + byte mode = p.readByte(); int localthreadid = 0; switch (mode) { case 0: - boolean bEdit = slea.readByte() == 1; + boolean bEdit = p.readByte() == 1; if (bEdit) { - localthreadid = slea.readInt(); + localthreadid = p.readInt(); } - boolean bNotice = slea.readByte() == 1; - String title = correctLength(slea.readMapleAsciiString(), 25); - String text = correctLength(slea.readMapleAsciiString(), 600); - int icon = slea.readInt(); + boolean bNotice = p.readByte() == 1; + String title = correctLength(p.readString(), 25); + String text = correctLength(p.readString(), 600); + int icon = p.readInt(); if (icon >= 0x64 && icon <= 0x6a) { if (!c.getPlayer().haveItemWithId(5290000 + icon - 0x64, false)) { return; @@ -70,25 +70,25 @@ public final class BBSOperationHandler extends AbstractMaplePacketHandler { } break; case 1: - localthreadid = slea.readInt(); + localthreadid = p.readInt(); deleteBBSThread(c, localthreadid); break; case 2: - int start = slea.readInt(); + int start = p.readInt(); listBBSThreads(c, start * 10); break; case 3: // list thread + reply, following by id (int) - localthreadid = slea.readInt(); + localthreadid = p.readInt(); displayThread(c, localthreadid); break; case 4: // reply - localthreadid = slea.readInt(); - text = correctLength(slea.readMapleAsciiString(), 25); + localthreadid = p.readInt(); + text = correctLength(p.readString(), 25); newBBSReply(c, localthreadid, text); break; case 5: // delete reply - slea.readInt(); // we don't use this - int replyid = slea.readInt(); + p.readInt(); // we don't use this + int replyid = p.readInt(); deleteBBSReply(c, replyid); break; default: diff --git a/src/main/java/net/server/channel/handlers/BeholderHandler.java b/src/main/java/net/server/channel/handlers/BeholderHandler.java index 527c1b9063..22214e24fd 100644 --- a/src/main/java/net/server/channel/handlers/BeholderHandler.java +++ b/src/main/java/net/server/channel/handlers/BeholderHandler.java @@ -25,8 +25,8 @@ import client.MapleClient; import constants.skills.DarkKnight; import java.util.Collection; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import server.maps.MapleSummon; -import tools.data.input.SeekableLittleEndianAccessor; /** * @@ -35,10 +35,10 @@ import tools.data.input.SeekableLittleEndianAccessor; public final class BeholderHandler extends AbstractMaplePacketHandler {//Summon Skills noobs @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { //System.out.println(slea.toString()); Collection summons = c.getPlayer().getSummonsValues(); - int oid = slea.readInt(); + int oid = p.readInt(); MapleSummon summon = null; for (MapleSummon sum : summons) { if (sum.getObjectId() == oid) { @@ -46,11 +46,11 @@ public final class BeholderHandler extends AbstractMaplePacketHandler {//Summon } } if (summon != null) { - int skillId = slea.readInt(); + int skillId = p.readInt(); if (skillId == DarkKnight.AURA_OF_BEHOLDER) { - slea.readShort(); //Not sure. + p.readShort(); //Not sure. } else if (skillId == DarkKnight.HEX_OF_BEHOLDER) { - slea.readByte(); //Not sure. + p.readByte(); //Not sure. } //show to others here } else { c.getPlayer().clearSummons(); diff --git a/src/main/java/net/server/channel/handlers/BuddylistModifyHandler.java b/src/main/java/net/server/channel/handlers/BuddylistModifyHandler.java index 47b9c06389..e8e7ac563f 100644 --- a/src/main/java/net/server/channel/handlers/BuddylistModifyHandler.java +++ b/src/main/java/net/server/channel/handlers/BuddylistModifyHandler.java @@ -25,10 +25,10 @@ import client.*; import client.BuddyList.BuddyAddResult; import client.BuddyList.BuddyOperation; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import net.server.world.World; import tools.DatabaseConnection; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; import java.sql.Connection; import java.sql.PreparedStatement; @@ -76,13 +76,13 @@ public class BuddylistModifyHandler extends AbstractMaplePacketHandler { } @Override - public void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - int mode = slea.readByte(); + public void handlePacket(InPacket p, MapleClient c) { + int mode = p.readByte(); MapleCharacter player = c.getPlayer(); BuddyList buddylist = player.getBuddylist(); if (mode == 1) { // add - String addName = slea.readMapleAsciiString(); - String group = slea.readMapleAsciiString(); + String addName = p.readString(); + String group = p.readString(); if (group.length() > 16 || addName.length() < 4 || addName.length() > 13) { return; //hax. } @@ -165,7 +165,7 @@ public class BuddylistModifyHandler extends AbstractMaplePacketHandler { c.sendPacket(PacketCreator.updateBuddylist(buddylist.getBuddies())); } } else if (mode == 2) { // accept buddy - int otherCid = slea.readInt(); + int otherCid = p.readInt(); if (!buddylist.isFull()) { try { int channel = c.getWorldServer().find(otherCid);//worldInterface.find(otherCid); @@ -196,7 +196,7 @@ public class BuddylistModifyHandler extends AbstractMaplePacketHandler { } nextPendingRequest(c); } else if (mode == 3) { // delete - int otherCid = slea.readInt(); + int otherCid = p.readInt(); player.deleteBuddy(otherCid); } } diff --git a/src/main/java/net/server/channel/handlers/CancelBuffHandler.java b/src/main/java/net/server/channel/handlers/CancelBuffHandler.java index afd012632f..dc414831c7 100644 --- a/src/main/java/net/server/channel/handlers/CancelBuffHandler.java +++ b/src/main/java/net/server/channel/handlers/CancelBuffHandler.java @@ -26,14 +26,14 @@ import client.SkillFactory; import constants.skills.*; import net.AbstractMaplePacketHandler; import net.MaplePacketHandler; +import net.packet.InPacket; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; public final class CancelBuffHandler extends AbstractMaplePacketHandler implements MaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - int sourceid = slea.readInt(); + public final void handlePacket(InPacket p, MapleClient c) { + int sourceid = p.readInt(); switch (sourceid) { case FPArchMage.BIG_BANG: diff --git a/src/main/java/net/server/channel/handlers/CancelChairHandler.java b/src/main/java/net/server/channel/handlers/CancelChairHandler.java index 74a4cdbae9..cb8a5103a1 100644 --- a/src/main/java/net/server/channel/handlers/CancelChairHandler.java +++ b/src/main/java/net/server/channel/handlers/CancelChairHandler.java @@ -24,13 +24,13 @@ package net.server.channel.handlers; import client.MapleClient; import client.MapleCharacter; import net.AbstractMaplePacketHandler; -import tools.data.input.SeekableLittleEndianAccessor; +import net.packet.InPacket; public final class CancelChairHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - int id = slea.readShort(); + public final void handlePacket(InPacket p, MapleClient c) { + int id = p.readShort(); MapleCharacter mc = c.getPlayer(); if (id >= mc.getMap().getSeats()) { diff --git a/src/main/java/net/server/channel/handlers/CancelDebuffHandler.java b/src/main/java/net/server/channel/handlers/CancelDebuffHandler.java index 1d3927645d..043480896e 100644 --- a/src/main/java/net/server/channel/handlers/CancelDebuffHandler.java +++ b/src/main/java/net/server/channel/handlers/CancelDebuffHandler.java @@ -23,12 +23,12 @@ package net.server.channel.handlers; import client.MapleClient; import net.AbstractMaplePacketHandler; -import tools.data.input.SeekableLittleEndianAccessor; +import net.packet.InPacket; public final class CancelDebuffHandler extends AbstractMaplePacketHandler {//TIP: BAD STUFF LOL! @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { /*List diseases = c.getPlayer().getDiseases(); List diseases_ = new ArrayList(); for (MapleDisease disease : diseases) { diff --git a/src/main/java/net/server/channel/handlers/CancelItemEffectHandler.java b/src/main/java/net/server/channel/handlers/CancelItemEffectHandler.java index 65fcfeb7aa..0204ed349f 100644 --- a/src/main/java/net/server/channel/handlers/CancelItemEffectHandler.java +++ b/src/main/java/net/server/channel/handlers/CancelItemEffectHandler.java @@ -23,14 +23,14 @@ package net.server.channel.handlers; import client.MapleClient; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import server.MapleItemInformationProvider; -import tools.data.input.SeekableLittleEndianAccessor; public final class CancelItemEffectHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - int itemId = -slea.readInt(); + public final void handlePacket(InPacket p, MapleClient c) { + int itemId = -p.readInt(); if (MapleItemInformationProvider.getInstance().noCancelMouse(itemId)) { return; } diff --git a/src/main/java/net/server/channel/handlers/CashOperationHandler.java b/src/main/java/net/server/channel/handlers/CashOperationHandler.java index 727a20eaf7..50b4abe8de 100644 --- a/src/main/java/net/server/channel/handlers/CashOperationHandler.java +++ b/src/main/java/net/server/channel/handlers/CashOperationHandler.java @@ -32,6 +32,7 @@ import client.inventory.manipulator.MapleInventoryManipulator; import config.YamlConfig; import constants.inventory.ItemConstants; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import net.server.Server; import server.CashShop; import server.CashShop.CashItem; @@ -40,7 +41,6 @@ import server.MapleItemInformationProvider; import tools.FilePrinter; import tools.PacketCreator; import tools.Pair; -import tools.data.input.SeekableLittleEndianAccessor; import java.sql.SQLException; import java.util.Calendar; @@ -50,7 +50,7 @@ import java.util.Map; public final class CashOperationHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { MapleCharacter chr = c.getPlayer(); CashShop cs = chr.getCashShop(); @@ -61,11 +61,11 @@ public final class CashOperationHandler extends AbstractMaplePacketHandler { if (c.tryacquireClient()) { // thanks Thora for finding out an exploit within cash operations try { - final int action = slea.readByte(); + final int action = p.readByte(); if (action == 0x03 || action == 0x1E) { - slea.readByte(); - final int useNX = slea.readInt(); - final int snCS = slea.readInt(); + p.readByte(); + final int useNX = p.readInt(); + final int snCS = p.readInt(); CashItem cItem = CashItemFactory.getItem(snCS); if (!canBuy(chr, cItem, cs.getCash(useNX))) { FilePrinter.printError(FilePrinter.ITEM, "Denied to sell cash item with SN " + snCS); // preventing NPE here thanks to MedicOP @@ -101,10 +101,10 @@ public final class CashOperationHandler extends AbstractMaplePacketHandler { } c.sendPacket(PacketCreator.showCash(chr)); } else if (action == 0x04) {//TODO check for gender - int birthday = slea.readInt(); - CashItem cItem = CashItemFactory.getItem(slea.readInt()); - Map recipient = MapleCharacter.getCharacterFromDatabase(slea.readMapleAsciiString()); - String message = slea.readMapleAsciiString(); + int birthday = p.readInt(); + CashItem cItem = CashItemFactory.getItem(p.readInt()); + Map recipient = MapleCharacter.getCharacterFromDatabase(p.readString()); + String message = p.readString(); if (!canBuy(chr, cItem, cs.getCash(4)) || message.length() < 1 || message.length() > 73) { c.enableCSActions(); return; @@ -133,7 +133,7 @@ public final class CashOperationHandler extends AbstractMaplePacketHandler { } else if (action == 0x05) { // Modify wish list cs.clearWishList(); for (byte i = 0; i < 10; i++) { - int sn = slea.readInt(); + int sn = p.readInt(); CashItem cItem = CashItemFactory.getItem(sn); if (cItem != null && cItem.isOnSale() && sn != 0) { cs.addToWishList(sn); @@ -141,11 +141,11 @@ public final class CashOperationHandler extends AbstractMaplePacketHandler { } c.sendPacket(PacketCreator.showWishList(chr, true)); } else if (action == 0x06) { // Increase Inventory Slots - slea.skip(1); - int cash = slea.readInt(); - byte mode = slea.readByte(); + p.skip(1); + int cash = p.readInt(); + byte mode = p.readByte(); if (mode == 0) { - byte type = slea.readByte(); + byte type = p.readByte(); if (cs.getCash(cash) < 4000) { c.enableCSActions(); return; @@ -163,7 +163,7 @@ public final class CashOperationHandler extends AbstractMaplePacketHandler { FilePrinter.printError(FilePrinter.CASHITEM_BOUGHT, "Could not add " + qty + " slots of type " + type + " for player " + MapleCharacter.makeMapleReadable(chr.getName())); } } else { - CashItem cItem = CashItemFactory.getItem(slea.readInt()); + CashItem cItem = CashItemFactory.getItem(p.readInt()); int type = (cItem.getItemId() - 9110000) / 1000; if (!canBuy(chr, cItem, cs.getCash(cash))) { c.enableCSActions(); @@ -183,9 +183,9 @@ public final class CashOperationHandler extends AbstractMaplePacketHandler { } } } else if (action == 0x07) { // Increase Storage Slots - slea.skip(1); - int cash = slea.readInt(); - byte mode = slea.readByte(); + p.skip(1); + int cash = p.readInt(); + byte mode = p.readByte(); if (mode == 0) { if (cs.getCash(cash) < 4000) { c.enableCSActions(); @@ -207,7 +207,7 @@ public final class CashOperationHandler extends AbstractMaplePacketHandler { FilePrinter.printError(FilePrinter.CASHITEM_BOUGHT, "Could not add " + qty + " slots to " + MapleCharacter.makeMapleReadable(chr.getName()) + "'s account."); } } else { - CashItem cItem = CashItemFactory.getItem(slea.readInt()); + CashItem cItem = CashItemFactory.getItem(p.readInt()); if (!canBuy(chr, cItem, cs.getCash(cash))) { c.enableCSActions(); @@ -230,9 +230,9 @@ public final class CashOperationHandler extends AbstractMaplePacketHandler { } } } else if (action == 0x08) { // Increase Character Slots - slea.skip(1); - int cash = slea.readInt(); - CashItem cItem = CashItemFactory.getItem(slea.readInt()); + p.skip(1); + int cash = p.readInt(); + CashItem cItem = CashItemFactory.getItem(p.readInt()); if (!canBuy(chr, cItem, cs.getCash(cash))) { c.enableCSActions(); @@ -253,7 +253,7 @@ public final class CashOperationHandler extends AbstractMaplePacketHandler { return; } } else if (action == 0x0D) { // Take from Cash Inventory - Item item = cs.findByCashId(slea.readInt()); + Item item = cs.findByCashId(p.readInt()); if (item == null) { c.enableCSActions(); return; @@ -271,10 +271,10 @@ public final class CashOperationHandler extends AbstractMaplePacketHandler { } } } else if (action == 0x0E) { // Put into Cash Inventory - int cashId = slea.readInt(); - slea.skip(4); + int cashId = p.readInt(); + p.skip(4); - byte invType = slea.readByte(); + byte invType = p.readByte(); if (invType < 1 || invType > 5) { c.disconnect(false, false); return; @@ -298,12 +298,12 @@ public final class CashOperationHandler extends AbstractMaplePacketHandler { mi.removeSlot(item.getPosition()); c.sendPacket(PacketCreator.putIntoCashInventory(item, c.getAccID())); } else if (action == 0x1D) { //crush ring (action 28) - int birthday = slea.readInt(); + int birthday = p.readInt(); if (checkBirthday(c, birthday)) { - int toCharge = slea.readInt(); - int SN = slea.readInt(); - String recipientName = slea.readMapleAsciiString(); - String text = slea.readMapleAsciiString(); + int toCharge = p.readInt(); + int SN = p.readInt(); + String recipientName = p.readString(); + String text = p.readString(); CashItem itemRing = CashItemFactory.getItem(SN); MapleCharacter partner = c.getChannelServer().getPlayerStorage().getCharacterByName(recipientName); if (partner == null) { @@ -339,7 +339,7 @@ public final class CashOperationHandler extends AbstractMaplePacketHandler { c.sendPacket(PacketCreator.showCash(c.getPlayer())); } else if (action == 0x20) { - int serialNumber = slea.readInt(); // thanks GabrielSin for detecting a potential exploit with 1 meso cash items. + int serialNumber = p.readInt(); // thanks GabrielSin for detecting a potential exploit with 1 meso cash items. if (serialNumber / 10000000 != 8) { c.sendPacket(PacketCreator.showCashShopMessage((byte) 0xC0)); return; @@ -367,16 +367,14 @@ public final class CashOperationHandler extends AbstractMaplePacketHandler { } c.sendPacket(PacketCreator.showCash(c.getPlayer())); } else if (action == 0x23) { //Friendship :3 - int birthday = slea.readInt(); + int birthday = p.readInt(); if (checkBirthday(c, birthday)) { - int payment = slea.readByte(); - slea.skip(3); //0s - int snID = slea.readInt(); + int payment = p.readByte(); + p.skip(3); //0s + int snID = p.readInt(); CashItem itemRing = CashItemFactory.getItem(snID); - String sentTo = slea.readMapleAsciiString(); - int available = slea.readShort() - 1; - String text = slea.readAsciiString(available); - slea.readByte(); + String sentTo = p.readString(); + String text = p.readString(); MapleCharacter partner = c.getChannelServer().getPlayerStorage().getCharacterByName(sentTo); if (partner == null) { c.sendPacket(PacketCreator.showCashShopMessage((byte)0xBE)); @@ -405,15 +403,15 @@ public final class CashOperationHandler extends AbstractMaplePacketHandler { c.sendPacket(PacketCreator.showCash(c.getPlayer())); } else if (action == 0x2E) { //name change - CashItem cItem = CashItemFactory.getItem(slea.readInt()); + CashItem cItem = CashItemFactory.getItem(p.readInt()); if (cItem == null || !canBuy(chr, cItem, cs.getCash(4))) { c.sendPacket(PacketCreator.showCashShopMessage((byte)0)); c.enableCSActions(); return; } if(cItem.getSN() == 50600000 && YamlConfig.config.server.ALLOW_CASHSHOP_NAME_CHANGE) { - slea.readMapleAsciiString(); //old name - String newName = slea.readMapleAsciiString(); + p.readString(); //old name + String newName = p.readString(); if(!MapleCharacter.canCreateChar(newName) || chr.getLevel() < 10) { //(longest ban duration isn't tracked currently) c.sendPacket(PacketCreator.showCashShopMessage((byte)0)); c.enableCSActions(); @@ -434,14 +432,14 @@ public final class CashOperationHandler extends AbstractMaplePacketHandler { } c.enableCSActions(); } else if(action == 0x31) { //world transfer - CashItem cItem = CashItemFactory.getItem(slea.readInt()); + CashItem cItem = CashItemFactory.getItem(p.readInt()); if (cItem == null || !canBuy(chr, cItem, cs.getCash(4))) { c.sendPacket(PacketCreator.showCashShopMessage((byte)0)); c.enableCSActions(); return; } if(cItem.getSN() == 50600001 && YamlConfig.config.server.ALLOW_CASHSHOP_WORLD_TRANSFER) { - int newWorldSelection = slea.readInt(); + int newWorldSelection = p.readInt(); int worldTransferError = chr.checkWorldTransferEligibility(); if(worldTransferError != 0 || newWorldSelection >= Server.getInstance().getWorldsSize() || Server.getInstance().getWorldsSize() <= 1) { @@ -464,7 +462,7 @@ public final class CashOperationHandler extends AbstractMaplePacketHandler { } c.enableCSActions(); } else { - System.out.println("Unhandled action: " + action + "\n" + slea); + System.out.println("Unhandled action: " + action + "\n" + p); } } finally { c.releaseClient(); diff --git a/src/main/java/net/server/channel/handlers/CashShopSurpriseHandler.java b/src/main/java/net/server/channel/handlers/CashShopSurpriseHandler.java index b8b87625e6..6a8b3ec5a7 100644 --- a/src/main/java/net/server/channel/handlers/CashShopSurpriseHandler.java +++ b/src/main/java/net/server/channel/handlers/CashShopSurpriseHandler.java @@ -22,10 +22,10 @@ package net.server.channel.handlers; import client.MapleClient; import client.inventory.Item; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import server.CashShop; import tools.PacketCreator; import tools.Pair; -import tools.data.input.SeekableLittleEndianAccessor; /** * @@ -33,7 +33,7 @@ import tools.data.input.SeekableLittleEndianAccessor; */ public class CashShopSurpriseHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { CashShop cs = c.getPlayer().getCashShop(); if(cs.isOpened()) { diff --git a/src/main/java/net/server/channel/handlers/ChangeChannelHandler.java b/src/main/java/net/server/channel/handlers/ChangeChannelHandler.java index c02bb17b59..9bf5e5ccae 100644 --- a/src/main/java/net/server/channel/handlers/ChangeChannelHandler.java +++ b/src/main/java/net/server/channel/handlers/ChangeChannelHandler.java @@ -22,7 +22,7 @@ package net.server.channel.handlers; import net.AbstractMaplePacketHandler; -import tools.data.input.SeekableLittleEndianAccessor; +import net.packet.InPacket; import client.MapleClient; import client.autoban.AutobanFactory; import net.server.Server; @@ -34,9 +34,9 @@ import net.server.Server; public final class ChangeChannelHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - int channel = slea.readByte() + 1; - slea.readInt(); + public final void handlePacket(InPacket p, MapleClient c) { + int channel = p.readByte() + 1; + p.readInt(); c.getPlayer().getAutobanManager().setTimestamp(6, Server.getInstance().getCurrentTimestamp(), 3); if(c.getChannel() == channel) { AutobanFactory.GENERAL.alert(c.getPlayer(), "CCing to same channel."); diff --git a/src/main/java/net/server/channel/handlers/ChangeMapHandler.java b/src/main/java/net/server/channel/handlers/ChangeMapHandler.java index 071b568090..77f9df85de 100644 --- a/src/main/java/net/server/channel/handlers/ChangeMapHandler.java +++ b/src/main/java/net/server/channel/handlers/ChangeMapHandler.java @@ -26,12 +26,12 @@ import client.MapleClient; import client.inventory.MapleInventoryType; import client.inventory.manipulator.MapleInventoryManipulator; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import server.MapleTrade; import server.maps.MapleMap; import server.maps.MaplePortal; import tools.FilePrinter; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; import java.awt.*; import java.net.InetAddress; @@ -41,7 +41,7 @@ import java.util.Calendar; public final class ChangeMapHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { MapleCharacter chr = c.getPlayer(); if (chr.isChangingMaps() || chr.isBanned()) { @@ -55,7 +55,7 @@ public final class ChangeMapHandler extends AbstractMaplePacketHandler { if (chr.getTrade() != null) { MapleTrade.cancelTrade(chr, MapleTrade.TradeResult.UNSUCCESSFUL_ANOTHER_MAP); } - if (slea.available() == 0) { //Cash Shop :) + if (p.available() == 0) { //Cash Shop :) if (!chr.getCashShop().isOpened()) { c.disconnect(false, false); return; @@ -75,17 +75,17 @@ public final class ChangeMapHandler extends AbstractMaplePacketHandler { return; } try { - slea.readByte(); // 1 = from dying 0 = regular portals - int targetid = slea.readInt(); - String startwp = slea.readMapleAsciiString(); + p.readByte(); // 1 = from dying 0 = regular portals + int targetid = p.readInt(); + String startwp = p.readString(); MaplePortal portal = chr.getMap().getPortal(startwp); - slea.readByte(); - boolean wheel = slea.readByte() > 0; + p.readByte(); + boolean wheel = p.readByte() > 0; - boolean chasing = slea.readByte() == 1 && chr.isGM(); + boolean chasing = p.readByte() == 1 && chr.isGM(); if (chasing) { chr.setChasing(true); - chr.setPosition(new Point(slea.readInt(), slea.readInt())); + chr.setPosition(new Point(p.readInt(), p.readInt())); } if (targetid != -1) { diff --git a/src/main/java/net/server/channel/handlers/ChangeMapSpecialHandler.java b/src/main/java/net/server/channel/handlers/ChangeMapSpecialHandler.java index 0709f6170b..256e15f71b 100644 --- a/src/main/java/net/server/channel/handlers/ChangeMapSpecialHandler.java +++ b/src/main/java/net/server/channel/handlers/ChangeMapSpecialHandler.java @@ -23,18 +23,18 @@ package net.server.channel.handlers; import client.MapleClient; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import server.MapleTrade; import server.MapleTrade.TradeResult; import server.maps.MaplePortal; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; public final class ChangeMapSpecialHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - slea.readByte(); - String startwp = slea.readMapleAsciiString(); - slea.readShort(); + public final void handlePacket(InPacket p, MapleClient c) { + p.readByte(); + String startwp = p.readString(); + p.readShort(); MaplePortal portal = c.getPlayer().getMap().getPortal(startwp); if (portal == null || c.getPlayer().portalDelay() > currentServerTime() || c.getPlayer().getBlockedPortals().contains(portal.getScriptName())) { c.sendPacket(PacketCreator.enableActions()); diff --git a/src/main/java/net/server/channel/handlers/CharInfoRequestHandler.java b/src/main/java/net/server/channel/handlers/CharInfoRequestHandler.java index 822dd221b6..937c7b10bd 100644 --- a/src/main/java/net/server/channel/handlers/CharInfoRequestHandler.java +++ b/src/main/java/net/server/channel/handlers/CharInfoRequestHandler.java @@ -24,16 +24,16 @@ package net.server.channel.handlers; import client.MapleCharacter; import client.MapleClient; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import server.maps.MapleMapObject; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; public final class CharInfoRequestHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - slea.skip(4); - int cid = slea.readInt(); + public final void handlePacket(InPacket p, MapleClient c) { + p.skip(4); + int cid = p.readInt(); MapleMapObject target = c.getPlayer().getMap().getMapObject(cid); if (target != null) { if (target instanceof MapleCharacter) { diff --git a/src/main/java/net/server/channel/handlers/ClickGuideHandler.java b/src/main/java/net/server/channel/handlers/ClickGuideHandler.java index 7e7529b0cf..9e2e7f57d2 100644 --- a/src/main/java/net/server/channel/handlers/ClickGuideHandler.java +++ b/src/main/java/net/server/channel/handlers/ClickGuideHandler.java @@ -25,8 +25,8 @@ package net.server.channel.handlers; import client.MapleClient; import client.MapleJob; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import scripting.npc.NPCScriptManager; -import tools.data.input.SeekableLittleEndianAccessor; /** * @@ -34,7 +34,7 @@ import tools.data.input.SeekableLittleEndianAccessor; */ public class ClickGuideHandler extends AbstractMaplePacketHandler { @Override - public void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public void handlePacket(InPacket p, MapleClient c) { if (c.getPlayer().getJob().equals(MapleJob.NOBLESSE)) { NPCScriptManager.getInstance().start(c, 1101008, null); } else { diff --git a/src/main/java/net/server/channel/handlers/CloseChalkboardHandler.java b/src/main/java/net/server/channel/handlers/CloseChalkboardHandler.java index 797eba7a8d..7e532b246b 100644 --- a/src/main/java/net/server/channel/handlers/CloseChalkboardHandler.java +++ b/src/main/java/net/server/channel/handlers/CloseChalkboardHandler.java @@ -23,8 +23,8 @@ package net.server.channel.handlers; import client.MapleClient; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; /** * @@ -33,7 +33,7 @@ import tools.data.input.SeekableLittleEndianAccessor; public final class CloseChalkboardHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { c.getPlayer().setChalkboard(null); c.getPlayer().getMap().broadcastMessage(PacketCreator.useChalkboard(c.getPlayer(), true)); } diff --git a/src/main/java/net/server/channel/handlers/CloseRangeDamageHandler.java b/src/main/java/net/server/channel/handlers/CloseRangeDamageHandler.java index 10e8da6a68..7b638a6b95 100644 --- a/src/main/java/net/server/channel/handlers/CloseRangeDamageHandler.java +++ b/src/main/java/net/server/channel/handlers/CloseRangeDamageHandler.java @@ -25,10 +25,10 @@ import client.*; import config.YamlConfig; import constants.game.GameConstants; import constants.skills.*; +import net.packet.InPacket; import server.MapleStatEffect; import tools.PacketCreator; import tools.Pair; -import tools.data.input.SeekableLittleEndianAccessor; import java.util.Collections; import java.util.Iterator; @@ -37,7 +37,7 @@ import java.util.List; public final class CloseRangeDamageHandler extends AbstractDealDamageHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { MapleCharacter chr = c.getPlayer(); /*long timeElapsed = currentServerTime() - chr.getAutobanManager().getLastSpam(8); @@ -46,7 +46,7 @@ public final class CloseRangeDamageHandler extends AbstractDealDamageHandler { } chr.getAutobanManager().spam(8);*/ - AttackInfo attack = parseDamage(slea, chr, false, false); + AttackInfo attack = parseDamage(p, chr, false, false); if (chr.getBuffEffect(MapleBuffStat.MORPH) != null) { if(chr.getBuffEffect(MapleBuffStat.MORPH).isMorphWithoutAttack()) { // How are they attacking when the client won't let them? diff --git a/src/main/java/net/server/channel/handlers/CoconutHandler.java b/src/main/java/net/server/channel/handlers/CoconutHandler.java index 817286193a..a79d55111d 100644 --- a/src/main/java/net/server/channel/handlers/CoconutHandler.java +++ b/src/main/java/net/server/channel/handlers/CoconutHandler.java @@ -24,23 +24,23 @@ package net.server.channel.handlers; import client.MapleClient; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import server.events.gm.MapleCoconut; import server.events.gm.MapleCoconuts; import server.maps.MapleMap; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; /** * * @author kevintjuh93 */ public final class CoconutHandler extends AbstractMaplePacketHandler { - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { /*CB 00 A6 00 06 01 * A6 00 = coconut id * 06 01 = ? */ - int id = slea.readShort(); + int id = p.readShort(); MapleMap map = c.getPlayer().getMap(); MapleCoconut event = map.getCoconut(); MapleCoconuts nut = event.getCoconut(id); diff --git a/src/main/java/net/server/channel/handlers/CouponCodeHandler.java b/src/main/java/net/server/channel/handlers/CouponCodeHandler.java index 6920594961..317adf64a8 100644 --- a/src/main/java/net/server/channel/handlers/CouponCodeHandler.java +++ b/src/main/java/net/server/channel/handlers/CouponCodeHandler.java @@ -28,6 +28,7 @@ import client.MapleClient; import client.inventory.Item; import client.inventory.manipulator.MapleInventoryManipulator; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import net.server.Server; import server.CashShop; import server.MapleItemInformationProvider; @@ -35,7 +36,6 @@ import tools.DatabaseConnection; import tools.FilePrinter; import tools.PacketCreator; import tools.Pair; -import tools.data.input.SeekableLittleEndianAccessor; import java.sql.Connection; import java.sql.PreparedStatement; @@ -179,9 +179,9 @@ public final class CouponCodeHandler extends AbstractMaplePacketHandler { } @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - slea.skip(2); - String code = slea.readMapleAsciiString(); + public final void handlePacket(InPacket p, MapleClient c) { + p.skip(2); + String code = p.readString(); if (c.tryacquireClient()) { try { @@ -197,9 +197,9 @@ public final class CouponCodeHandler extends AbstractMaplePacketHandler { int nxPrepaid = 0; int mesos = 0; - for (Pair> p : codeRes.getRight()) { - type = p.getLeft(); - int quantity = p.getRight().getRight(); + for (Pair> pair : codeRes.getRight()) { + type = pair.getLeft(); + int quantity = pair.getRight().getRight(); CashShop cs = c.getPlayer().getCashShop(); switch (type) { @@ -227,7 +227,7 @@ public final class CouponCodeHandler extends AbstractMaplePacketHandler { break; default: - int item = p.getRight().getLeft(); + int item = pair.getRight().getLeft(); short qty; if (quantity > Short.MAX_VALUE) { diff --git a/src/main/java/net/server/channel/handlers/DamageSummonHandler.java b/src/main/java/net/server/channel/handlers/DamageSummonHandler.java index b32f36df46..8ecbdd2841 100644 --- a/src/main/java/net/server/channel/handlers/DamageSummonHandler.java +++ b/src/main/java/net/server/channel/handlers/DamageSummonHandler.java @@ -25,18 +25,18 @@ import client.MapleBuffStat; import client.MapleCharacter; import client.MapleClient; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import server.maps.MapleMapObject; import server.maps.MapleSummon; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; public final class DamageSummonHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - int oid = slea.readInt(); - slea.skip(1); // -1 - int damage = slea.readInt(); - int monsterIdFrom = slea.readInt(); + public final void handlePacket(InPacket p, MapleClient c) { + int oid = p.readInt(); + p.skip(1); // -1 + int damage = p.readInt(); + int monsterIdFrom = p.readInt(); MapleCharacter player = c.getPlayer(); MapleMapObject mmo = player.getMap().getMapObject(oid); diff --git a/src/main/java/net/server/channel/handlers/DenyAllianceRequestHandler.java b/src/main/java/net/server/channel/handlers/DenyAllianceRequestHandler.java index ca88b0b66f..f6850be4a8 100644 --- a/src/main/java/net/server/channel/handlers/DenyAllianceRequestHandler.java +++ b/src/main/java/net/server/channel/handlers/DenyAllianceRequestHandler.java @@ -22,8 +22,8 @@ package net.server.channel.handlers; import client.MapleClient; import client.MapleCharacter; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import net.server.guild.MapleAlliance; -import tools.data.input.SeekableLittleEndianAccessor; /** * @author Ronan @@ -31,10 +31,10 @@ import tools.data.input.SeekableLittleEndianAccessor; public final class DenyAllianceRequestHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - slea.readByte(); - String inviterName = slea.readMapleAsciiString(); - String guildName = slea.readMapleAsciiString(); + public final void handlePacket(InPacket p, MapleClient c) { + p.readByte(); + String inviterName = p.readString(); + String guildName = p.readString(); MapleCharacter chr = c.getWorldServer().getPlayerStorage().getCharacterByName(inviterName); if (chr != null) { diff --git a/src/main/java/net/server/channel/handlers/DenyGuildRequestHandler.java b/src/main/java/net/server/channel/handlers/DenyGuildRequestHandler.java index e68e116c15..612b6abf94 100644 --- a/src/main/java/net/server/channel/handlers/DenyGuildRequestHandler.java +++ b/src/main/java/net/server/channel/handlers/DenyGuildRequestHandler.java @@ -24,8 +24,8 @@ package net.server.channel.handlers; import client.MapleCharacter; import client.MapleClient; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import net.server.guild.MapleGuild; -import tools.data.input.SeekableLittleEndianAccessor; /** * @@ -34,9 +34,9 @@ import tools.data.input.SeekableLittleEndianAccessor; public final class DenyGuildRequestHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - slea.readByte(); - MapleCharacter cfrom = c.getWorldServer().getPlayerStorage().getCharacterByName(slea.readMapleAsciiString()); + public final void handlePacket(InPacket p, MapleClient c) { + p.readByte(); + MapleCharacter cfrom = c.getWorldServer().getPlayerStorage().getCharacterByName(p.readString()); if (cfrom != null) { MapleGuild.answerInvitation(c.getPlayer().getId(), c.getPlayer().getName(), cfrom.getGuildId(), false); } diff --git a/src/main/java/net/server/channel/handlers/DenyPartyRequestHandler.java b/src/main/java/net/server/channel/handlers/DenyPartyRequestHandler.java index d873996092..f6784887c9 100644 --- a/src/main/java/net/server/channel/handlers/DenyPartyRequestHandler.java +++ b/src/main/java/net/server/channel/handlers/DenyPartyRequestHandler.java @@ -24,18 +24,18 @@ package net.server.channel.handlers; import client.MapleCharacter; import client.MapleClient; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import net.server.coordinator.world.MapleInviteCoordinator; import net.server.coordinator.world.MapleInviteCoordinator.InviteResult; import net.server.coordinator.world.MapleInviteCoordinator.InviteType; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; public final class DenyPartyRequestHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - slea.readByte(); - String[] cname = slea.readMapleAsciiString().split("PS: "); + public final void handlePacket(InPacket p, MapleClient c) { + p.readByte(); + String[] cname = p.readString().split("PS: "); MapleCharacter cfrom = c.getChannelServer().getPlayerStorage().getCharacterByName(cname[cname.length - 1]); if (cfrom != null) { diff --git a/src/main/java/net/server/channel/handlers/DistributeAPHandler.java b/src/main/java/net/server/channel/handlers/DistributeAPHandler.java index c83c64158b..8f0f766b8c 100644 --- a/src/main/java/net/server/channel/handlers/DistributeAPHandler.java +++ b/src/main/java/net/server/channel/handlers/DistributeAPHandler.java @@ -24,14 +24,14 @@ package net.server.channel.handlers; import client.MapleClient; import client.processor.stat.AssignAPProcessor; import net.AbstractMaplePacketHandler; -import tools.data.input.SeekableLittleEndianAccessor; +import net.packet.InPacket; public final class DistributeAPHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - slea.readInt(); - int num = slea.readInt(); + public final void handlePacket(InPacket p, MapleClient c) { + p.readInt(); + int num = p.readInt(); AssignAPProcessor.APAssignAction(c, num); } diff --git a/src/main/java/net/server/channel/handlers/DistributeSPHandler.java b/src/main/java/net/server/channel/handlers/DistributeSPHandler.java index 22b6042445..ac324863bb 100644 --- a/src/main/java/net/server/channel/handlers/DistributeSPHandler.java +++ b/src/main/java/net/server/channel/handlers/DistributeSPHandler.java @@ -24,13 +24,13 @@ package net.server.channel.handlers; import client.MapleClient; import client.processor.stat.AssignSPProcessor; import net.AbstractMaplePacketHandler; -import tools.data.input.SeekableLittleEndianAccessor; +import net.packet.InPacket; public final class DistributeSPHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - slea.readInt(); - int skillid = slea.readInt(); + public final void handlePacket(InPacket p, MapleClient c) { + p.readInt(); + int skillid = p.readInt(); AssignSPProcessor.SPAssignAction(c, skillid); } diff --git a/src/main/java/net/server/channel/handlers/DoorHandler.java b/src/main/java/net/server/channel/handlers/DoorHandler.java index 72b7139f31..ccf5bc78d8 100644 --- a/src/main/java/net/server/channel/handlers/DoorHandler.java +++ b/src/main/java/net/server/channel/handlers/DoorHandler.java @@ -24,10 +24,10 @@ package net.server.channel.handlers; import client.MapleCharacter; import client.MapleClient; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import server.maps.MapleDoorObject; import server.maps.MapleMapObject; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; /** * @@ -35,9 +35,9 @@ import tools.data.input.SeekableLittleEndianAccessor; */ public final class DoorHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - int ownerid = slea.readInt(); - slea.readByte(); // specifies if backwarp or not, 1 town to target, 0 target to town + public final void handlePacket(InPacket p, MapleClient c) { + int ownerid = p.readInt(); + p.readByte(); // specifies if backwarp or not, 1 town to target, 0 target to town MapleCharacter chr = c.getPlayer(); if (chr.isChangingMaps() || chr.isBanned()) { diff --git a/src/main/java/net/server/channel/handlers/DueyHandler.java b/src/main/java/net/server/channel/handlers/DueyHandler.java index 3b28f14b62..a3be28c975 100644 --- a/src/main/java/net/server/channel/handlers/DueyHandler.java +++ b/src/main/java/net/server/channel/handlers/DueyHandler.java @@ -25,37 +25,37 @@ import client.MapleClient; import client.processor.npc.DueyProcessor; import config.YamlConfig; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; public final class DueyHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { if (!YamlConfig.config.server.USE_DUEY){ c.sendPacket(PacketCreator.enableActions()); return; } - byte operation = slea.readByte(); + byte operation = p.readByte(); if (operation == DueyProcessor.Actions.TOSERVER_RECV_ITEM.getCode()) { // on click 'O' Button, thanks inhyuk DueyProcessor.dueySendTalk(c, false); } else if (operation == DueyProcessor.Actions.TOSERVER_SEND_ITEM.getCode()) { - byte inventId = slea.readByte(); - short itemPos = slea.readShort(); - short amount = slea.readShort(); - int mesos = slea.readInt(); - String recipient = slea.readMapleAsciiString(); - boolean quick = slea.readByte() != 0; - String message = quick ? slea.readMapleAsciiString() : null; + byte inventId = p.readByte(); + short itemPos = p.readShort(); + short amount = p.readShort(); + int mesos = p.readInt(); + String recipient = p.readString(); + boolean quick = p.readByte() != 0; + String message = quick ? p.readString() : null; DueyProcessor.dueySendItem(c, inventId, itemPos, amount, mesos, message, recipient, quick); } else if (operation == DueyProcessor.Actions.TOSERVER_REMOVE_PACKAGE.getCode()) { - int packageid = slea.readInt(); + int packageid = p.readInt(); DueyProcessor.dueyRemovePackage(c, packageid, true); } else if (operation == DueyProcessor.Actions.TOSERVER_CLAIM_PACKAGE.getCode()) { - int packageid = slea.readInt(); + int packageid = p.readInt(); DueyProcessor.dueyClaimPackage(c, packageid); } else if (operation == DueyProcessor.Actions.TOSERVER_CLAIM_PACKAGE.getCode()) { diff --git a/src/main/java/net/server/channel/handlers/EnterCashShopHandler.java b/src/main/java/net/server/channel/handlers/EnterCashShopHandler.java index d66e2d3b8c..6c388f45e8 100644 --- a/src/main/java/net/server/channel/handlers/EnterCashShopHandler.java +++ b/src/main/java/net/server/channel/handlers/EnterCashShopHandler.java @@ -24,10 +24,10 @@ package net.server.channel.handlers; import client.MapleCharacter; import client.MapleClient; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import net.server.Server; import server.maps.MapleMiniDungeonInfo; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; /** * @@ -35,7 +35,7 @@ import tools.data.input.SeekableLittleEndianAccessor; */ public class EnterCashShopHandler extends AbstractMaplePacketHandler { @Override - public void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public void handlePacket(InPacket p, MapleClient c) { try { MapleCharacter mc = c.getPlayer(); diff --git a/src/main/java/net/server/channel/handlers/EnterMTSHandler.java b/src/main/java/net/server/channel/handlers/EnterMTSHandler.java index e766473a5d..38a2a597de 100644 --- a/src/main/java/net/server/channel/handlers/EnterMTSHandler.java +++ b/src/main/java/net/server/channel/handlers/EnterMTSHandler.java @@ -28,13 +28,13 @@ import client.inventory.Item; import client.processor.action.BuybackProcessor; import config.YamlConfig; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import net.server.Server; import server.MTSItemInfo; import server.maps.FieldLimit; import server.maps.MapleMiniDungeonInfo; import tools.DatabaseConnection; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; import java.sql.Connection; import java.sql.PreparedStatement; @@ -46,7 +46,7 @@ import java.util.List; public final class EnterMTSHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { MapleCharacter chr = c.getPlayer(); if(!chr.isAlive() && YamlConfig.config.server.USE_BUYBACK_SYSTEM) { diff --git a/src/main/java/net/server/channel/handlers/FaceExpressionHandler.java b/src/main/java/net/server/channel/handlers/FaceExpressionHandler.java index 11a162030b..8d96b7a8b0 100644 --- a/src/main/java/net/server/channel/handlers/FaceExpressionHandler.java +++ b/src/main/java/net/server/channel/handlers/FaceExpressionHandler.java @@ -25,13 +25,13 @@ import client.MapleClient; import client.MapleCharacter; import constants.inventory.ItemConstants; import net.AbstractMaplePacketHandler; -import tools.data.input.SeekableLittleEndianAccessor; +import net.packet.InPacket; public final class FaceExpressionHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { MapleCharacter chr = c.getPlayer(); - int emote = slea.readInt(); + int emote = p.readInt(); if (emote > 7) { int itemid = 5159992 + emote; // thanks RajanGrewal (Darter) for reporting unchecked emote itemid diff --git a/src/main/java/net/server/channel/handlers/FamilyAddHandler.java b/src/main/java/net/server/channel/handlers/FamilyAddHandler.java index ffc8115d25..d85ece4c3b 100644 --- a/src/main/java/net/server/channel/handlers/FamilyAddHandler.java +++ b/src/main/java/net/server/channel/handlers/FamilyAddHandler.java @@ -25,10 +25,10 @@ import client.MapleCharacter; import client.MapleClient; import config.YamlConfig; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import net.server.coordinator.world.MapleInviteCoordinator; import net.server.coordinator.world.MapleInviteCoordinator.InviteType; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; /** * @@ -37,11 +37,11 @@ import tools.data.input.SeekableLittleEndianAccessor; */ public final class FamilyAddHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { if(!YamlConfig.config.server.USE_FAMILY_SYSTEM) { return; } - String toAdd = slea.readMapleAsciiString(); + String toAdd = p.readString(); MapleCharacter addChr = c.getChannelServer().getPlayerStorage().getCharacterByName(toAdd); MapleCharacter chr = c.getPlayer(); if(addChr == null) { diff --git a/src/main/java/net/server/channel/handlers/FamilyPreceptsHandler.java b/src/main/java/net/server/channel/handlers/FamilyPreceptsHandler.java index 1ea23d9f5b..ee13da10f5 100644 --- a/src/main/java/net/server/channel/handlers/FamilyPreceptsHandler.java +++ b/src/main/java/net/server/channel/handlers/FamilyPreceptsHandler.java @@ -3,17 +3,17 @@ package net.server.channel.handlers; import client.MapleClient; import client.MapleFamily; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; public class FamilyPreceptsHandler extends AbstractMaplePacketHandler { @Override - public void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public void handlePacket(InPacket p, MapleClient c) { MapleFamily family = c.getPlayer().getFamily(); if(family == null) return; if(family.getLeader().getChr() != c.getPlayer()) return; //only the leader can set the precepts - String newPrecepts = slea.readMapleAsciiString(); + String newPrecepts = p.readString(); if(newPrecepts.length() > 200) return; family.setMessage(newPrecepts, true); //family.broadcastFamilyInfoUpdate(); //probably don't need to broadcast for this? diff --git a/src/main/java/net/server/channel/handlers/FamilySeparateHandler.java b/src/main/java/net/server/channel/handlers/FamilySeparateHandler.java index 02293785ac..36307a5ab1 100644 --- a/src/main/java/net/server/channel/handlers/FamilySeparateHandler.java +++ b/src/main/java/net/server/channel/handlers/FamilySeparateHandler.java @@ -24,20 +24,20 @@ import client.MapleFamily; import client.MapleFamilyEntry; import config.YamlConfig; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; public class FamilySeparateHandler extends AbstractMaplePacketHandler { @Override - public void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public void handlePacket(InPacket p, MapleClient c) { if(!YamlConfig.config.server.USE_FAMILY_SYSTEM) return; MapleFamily oldFamily = c.getPlayer().getFamily(); if(oldFamily == null) return; MapleFamilyEntry forkOn = null; boolean isSenior; - if(slea.available() > 0) { //packet 0x95 doesn't send id, since there is only one senior - forkOn = c.getPlayer().getFamily().getEntryByID(slea.readInt()); + if(p.available() > 0) { //packet 0x95 doesn't send id, since there is only one senior + forkOn = c.getPlayer().getFamily().getEntryByID(p.readInt()); if(!c.getPlayer().getFamilyEntry().isJunior(forkOn)) return; //packet editing? isSenior = true; } else { diff --git a/src/main/java/net/server/channel/handlers/FamilySummonResponseHandler.java b/src/main/java/net/server/channel/handlers/FamilySummonResponseHandler.java index dcbd6b22d9..d41a34e911 100644 --- a/src/main/java/net/server/channel/handlers/FamilySummonResponseHandler.java +++ b/src/main/java/net/server/channel/handlers/FamilySummonResponseHandler.java @@ -6,21 +6,21 @@ import client.MapleFamilyEntitlement; import client.MapleFamilyEntry; import config.YamlConfig; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import net.server.coordinator.world.MapleInviteCoordinator; import net.server.coordinator.world.MapleInviteCoordinator.InviteResult; import net.server.coordinator.world.MapleInviteCoordinator.InviteType; import net.server.coordinator.world.MapleInviteCoordinator.MapleInviteResult; import server.maps.MapleMap; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; public class FamilySummonResponseHandler extends AbstractMaplePacketHandler { @Override - public void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public void handlePacket(InPacket p, MapleClient c) { if(!YamlConfig.config.server.USE_FAMILY_SYSTEM) return; - slea.readMapleAsciiString(); //family name - boolean accept = slea.readByte() != 0; + p.readString(); //family name + boolean accept = p.readByte() != 0; MapleInviteResult inviteResult = MapleInviteCoordinator.answerInvite(InviteType.FAMILY_SUMMON, c.getPlayer().getId(), c.getPlayer(), accept); if(inviteResult.result == InviteResult.NOT_FOUND) return; MapleCharacter inviter = inviteResult.from; diff --git a/src/main/java/net/server/channel/handlers/FamilyUseHandler.java b/src/main/java/net/server/channel/handlers/FamilyUseHandler.java index 97f1e2abbf..d3a8288c64 100644 --- a/src/main/java/net/server/channel/handlers/FamilyUseHandler.java +++ b/src/main/java/net/server/channel/handlers/FamilyUseHandler.java @@ -27,12 +27,12 @@ import client.MapleFamilyEntitlement; import client.MapleFamilyEntry; import config.YamlConfig; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import net.server.coordinator.world.MapleInviteCoordinator; import net.server.coordinator.world.MapleInviteCoordinator.InviteType; import server.maps.FieldLimit; import server.maps.MapleMap; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; /** * @@ -41,11 +41,11 @@ import tools.data.input.SeekableLittleEndianAccessor; */ public final class FamilyUseHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { if(!YamlConfig.config.server.USE_FAMILY_SYSTEM) { return; } - MapleFamilyEntitlement type = MapleFamilyEntitlement.values()[slea.readInt()]; + MapleFamilyEntitlement type = MapleFamilyEntitlement.values()[p.readInt()]; int cost = type.getRepCost(); MapleFamilyEntry entry = c.getPlayer().getFamilyEntry(); if(entry.getReputation() < cost || entry.isEntitlementUsed(type)) { @@ -54,7 +54,7 @@ public final class FamilyUseHandler extends AbstractMaplePacketHandler { c.sendPacket(PacketCreator.getFamilyInfo(entry)); MapleCharacter victim; if(type == MapleFamilyEntitlement.FAMILY_REUINION || type == MapleFamilyEntitlement.SUMMON_FAMILY) { - victim = c.getChannelServer().getPlayerStorage().getCharacterByName(slea.readMapleAsciiString()); + victim = c.getChannelServer().getPlayerStorage().getCharacterByName(p.readString()); if(victim != null && victim != c.getPlayer()) { if(victim.getFamily() == c.getPlayer().getFamily()) { MapleMap targetMap = victim.getMap(); diff --git a/src/main/java/net/server/channel/handlers/FieldDamageMobHandler.java b/src/main/java/net/server/channel/handlers/FieldDamageMobHandler.java index 69b2954302..dbb7be9b47 100644 --- a/src/main/java/net/server/channel/handlers/FieldDamageMobHandler.java +++ b/src/main/java/net/server/channel/handlers/FieldDamageMobHandler.java @@ -23,19 +23,19 @@ import client.MapleCharacter; import client.MapleClient; import constants.game.GameConstants; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import server.life.MapleMonster; import server.life.MapleMonsterInformationProvider; import server.maps.MapleMap; import tools.FilePrinter; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; public class FieldDamageMobHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - int mobOid = slea.readInt(); // packet structure found thanks to Darter (Rajan) - int dmg = slea.readInt(); + public final void handlePacket(InPacket p, MapleClient c) { + int mobOid = p.readInt(); // packet structure found thanks to Darter (Rajan) + int dmg = p.readInt(); MapleCharacter chr = c.getPlayer(); MapleMap map = chr.getMap(); diff --git a/src/main/java/net/server/channel/handlers/FredrickHandler.java b/src/main/java/net/server/channel/handlers/FredrickHandler.java index 8c0f08af84..cb1e0fef0b 100644 --- a/src/main/java/net/server/channel/handlers/FredrickHandler.java +++ b/src/main/java/net/server/channel/handlers/FredrickHandler.java @@ -25,7 +25,7 @@ import client.MapleCharacter; import client.MapleClient; import client.processor.npc.FredrickProcessor; import net.AbstractMaplePacketHandler; -import tools.data.input.SeekableLittleEndianAccessor; +import net.packet.InPacket; /** * @@ -34,9 +34,9 @@ import tools.data.input.SeekableLittleEndianAccessor; public class FredrickHandler extends AbstractMaplePacketHandler { @Override - public void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public void handlePacket(InPacket p, MapleClient c) { MapleCharacter chr = c.getPlayer(); - byte operation = slea.readByte(); + byte operation = p.readByte(); switch (operation) { case 0x19: //Will never come... diff --git a/src/main/java/net/server/channel/handlers/GeneralChatHandler.java b/src/main/java/net/server/channel/handlers/GeneralChatHandler.java index cdad5a31c7..968ccb69c7 100644 --- a/src/main/java/net/server/channel/handlers/GeneralChatHandler.java +++ b/src/main/java/net/server/channel/handlers/GeneralChatHandler.java @@ -27,15 +27,15 @@ import client.autoban.AutobanFactory; import client.command.CommandsExecutor; import config.YamlConfig; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import tools.FilePrinter; import tools.LogHelper; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; public final class GeneralChatHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - String s = slea.readMapleAsciiString(); + public final void handlePacket(InPacket p, MapleClient c) { + String s = p.readString(); MapleCharacter chr = c.getPlayer(); if(chr.getAutobanManager().getLastSpam(7) + 200 > currentServerTime()) { c.sendPacket(PacketCreator.enableActions()); @@ -51,7 +51,7 @@ public final class GeneralChatHandler extends AbstractMaplePacketHandler { if (CommandsExecutor.isCommand(c, s)) { CommandsExecutor.getInstance().handle(c, s); } else if (heading != '/') { - int show = slea.readByte(); + int show = p.readByte(); if(chr.getMap().isMuted() && !chr.isGM()) { chr.dropMessage(5, "The map you are in is currently muted. Please try again later."); return; diff --git a/src/main/java/net/server/channel/handlers/GiveFameHandler.java b/src/main/java/net/server/channel/handlers/GiveFameHandler.java index 399b8499b7..791f87c460 100644 --- a/src/main/java/net/server/channel/handlers/GiveFameHandler.java +++ b/src/main/java/net/server/channel/handlers/GiveFameHandler.java @@ -26,16 +26,16 @@ import client.MapleCharacter.FameStatus; import client.MapleClient; import client.autoban.AutobanFactory; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import tools.FilePrinter; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; public final class GiveFameHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - MapleCharacter target = (MapleCharacter) c.getPlayer().getMap().getMapObject(slea.readInt()); - int mode = slea.readByte(); + public final void handlePacket(InPacket p, MapleClient c) { + MapleCharacter target = (MapleCharacter) c.getPlayer().getMap().getMapObject(p.readInt()); + int mode = p.readByte(); int famechange = 2 * mode - 1; MapleCharacter player = c.getPlayer(); if (target == null || target.getId() == player.getId() || player.getLevel() < 15) { diff --git a/src/main/java/net/server/channel/handlers/GrenadeEffectHandler.java b/src/main/java/net/server/channel/handlers/GrenadeEffectHandler.java index aeba09763e..71ddf86af2 100644 --- a/src/main/java/net/server/channel/handlers/GrenadeEffectHandler.java +++ b/src/main/java/net/server/channel/handlers/GrenadeEffectHandler.java @@ -24,9 +24,9 @@ import client.MapleClient; import constants.skills.Gunslinger; import constants.skills.NightWalker; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import tools.FilePrinter; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; import java.awt.*; @@ -36,11 +36,11 @@ import java.awt.*; public class GrenadeEffectHandler extends AbstractMaplePacketHandler { @Override - public void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public void handlePacket(InPacket p, MapleClient c) { MapleCharacter chr = c.getPlayer(); - Point position = new Point(slea.readInt(), slea.readInt()); - int keyDown = slea.readInt(); - int skillId = slea.readInt(); + Point position = new Point(p.readInt(), p.readInt()); + int keyDown = p.readInt(); + int skillId = p.readInt(); switch (skillId) { case NightWalker.POISON_BOMB: diff --git a/src/main/java/net/server/channel/handlers/GuildOperationHandler.java b/src/main/java/net/server/channel/handlers/GuildOperationHandler.java index 4434ac29dd..11067ba282 100644 --- a/src/main/java/net/server/channel/handlers/GuildOperationHandler.java +++ b/src/main/java/net/server/channel/handlers/GuildOperationHandler.java @@ -26,6 +26,7 @@ import client.MapleClient; import config.YamlConfig; import constants.game.GameConstants; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import net.server.Server; import net.server.coordinator.matchchecker.MatchCheckerListenerFactory.MatchCheckerType; import net.server.guild.GuildPackets; @@ -35,7 +36,6 @@ import net.server.guild.MapleGuildResponse; import net.server.world.MapleParty; import net.server.world.World; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; import java.util.HashSet; import java.util.Set; @@ -54,9 +54,9 @@ public final class GuildOperationHandler extends AbstractMaplePacketHandler { } @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { MapleCharacter mc = c.getPlayer(); - byte type = slea.readByte(); + byte type = p.readByte(); int allianceId = -1; switch (type) { case 0x00: @@ -71,7 +71,7 @@ public final class GuildOperationHandler extends AbstractMaplePacketHandler { mc.dropMessage(1, "You do not have " + GameConstants.numberWithCommas(YamlConfig.config.server.CREATE_GUILD_COST) + " mesos to create a Guild."); return; } - String guildName = slea.readMapleAsciiString(); + String guildName = p.readString(); if (!isGuildNameAcceptable(guildName)) { mc.dropMessage(1, "The Guild name you have chosen is not accepted."); return; @@ -107,7 +107,7 @@ public final class GuildOperationHandler extends AbstractMaplePacketHandler { return; } - String targetName = slea.readMapleAsciiString(); + String targetName = p.readString(); MapleGuildResponse mgr = MapleGuild.sendInvitation(c, targetName); if (mgr != null) { c.sendPacket(mgr.getPacket(targetName)); @@ -119,8 +119,8 @@ public final class GuildOperationHandler extends AbstractMaplePacketHandler { System.out.println("[Hack] " + mc.getName() + " attempted to join a guild when s/he is already in one."); return; } - int gid = slea.readInt(); - int cid = slea.readInt(); + int gid = p.readInt(); + int cid = p.readInt(); if (cid != mc.getId()) { System.out.println("[Hack] " + mc.getName() + " attempted to join a guild with a different character id."); return; @@ -151,8 +151,8 @@ public final class GuildOperationHandler extends AbstractMaplePacketHandler { mc.getMap().broadcastPacket(mc, GuildPackets.guildMarkChanged(mc.getId(), mc.getGuild())); break; case 0x07: - cid = slea.readInt(); - String name = slea.readMapleAsciiString(); + cid = p.readInt(); + String name = p.readString(); if (cid != mc.getId() || !name.equals(mc.getName()) || mc.getGuildId() <= 0) { System.out.println("[Hack] " + mc.getName() + " tried to quit guild under the name \"" + name + "\" and current guild id of " + mc.getGuildId() + "."); return; @@ -174,8 +174,8 @@ public final class GuildOperationHandler extends AbstractMaplePacketHandler { case 0x08: allianceId = mc.getGuild().getAllianceId(); - cid = slea.readInt(); - name = slea.readMapleAsciiString(); + cid = p.readInt(); + name = p.readString(); if (mc.getGuildRank() > 2 || mc.getGuildId() <= 0) { System.out.println("[Hack] " + mc.getName() + " is trying to expel without rank 1 or 2."); return; @@ -191,14 +191,14 @@ public final class GuildOperationHandler extends AbstractMaplePacketHandler { } String[] ranks = new String[5]; for (int i = 0; i < 5; i++) { - ranks[i] = slea.readMapleAsciiString(); + ranks[i] = p.readString(); } Server.getInstance().changeRankTitle(mc.getGuildId(), ranks); break; case 0x0e: - cid = slea.readInt(); - byte newRank = slea.readByte(); + cid = p.readInt(); + byte newRank = p.readByte(); if (mc.getGuildRank() > 2 || (newRank <= 2 && mc.getGuildRank() != 1) || mc.getGuildId() <= 0) { System.out.println("[Hack] " + mc.getName() + " is trying to change rank outside of his/her permissions."); return; @@ -217,10 +217,10 @@ public final class GuildOperationHandler extends AbstractMaplePacketHandler { c.sendPacket(PacketCreator.serverNotice(1, "You do not have " + GameConstants.numberWithCommas(YamlConfig.config.server.CHANGE_EMBLEM_COST) + " mesos to change the Guild emblem.")); return; } - short bg = slea.readShort(); - byte bgcolor = slea.readByte(); - short logo = slea.readShort(); - byte logocolor = slea.readByte(); + short bg = p.readShort(); + byte bgcolor = p.readByte(); + short logo = p.readShort(); + byte logocolor = p.readByte(); Server.getInstance().setGuildEmblem(mc.getGuildId(), bg, bgcolor, logo, logocolor); if (mc.getGuild() != null && mc.getGuild().getAllianceId() > 0) { @@ -237,14 +237,14 @@ public final class GuildOperationHandler extends AbstractMaplePacketHandler { if(mc.getGuildId() <= 0) System.out.println("[Hack] " + mc.getName() + " tried to change guild notice while not in a guild."); return; } - String notice = slea.readMapleAsciiString(); + String notice = p.readString(); if (notice.length() > 100) { return; } Server.getInstance().setGuildNotice(mc.getGuildId(), notice); break; case 0x1E: - slea.readInt(); + p.readInt(); World wserv = c.getWorldServer(); if (mc.getParty() != null) { @@ -254,7 +254,7 @@ public final class GuildOperationHandler extends AbstractMaplePacketHandler { int leaderid = wserv.getMatchCheckerCoordinator().getMatchConfirmationLeaderid(mc.getId()); if (leaderid != -1) { - boolean result = slea.readByte() != 0; + boolean result = p.readByte() != 0; if (result && wserv.getMatchCheckerCoordinator().isMatchConfirmationActive(mc.getId())) { MapleCharacter leader = wserv.getPlayerStorage().getCharacterById(leaderid); if (leader != null) { @@ -270,7 +270,7 @@ public final class GuildOperationHandler extends AbstractMaplePacketHandler { break; default: - System.out.println("Unhandled GUILD_OPERATION packet: \n" + slea.toString()); + System.out.println("Unhandled GUILD_OPERATION packet: \n" + p.toString()); } } } diff --git a/src/main/java/net/server/channel/handlers/HealOvertimeHandler.java b/src/main/java/net/server/channel/handlers/HealOvertimeHandler.java index ade95b5eda..f4f40112c7 100644 --- a/src/main/java/net/server/channel/handlers/HealOvertimeHandler.java +++ b/src/main/java/net/server/channel/handlers/HealOvertimeHandler.java @@ -26,22 +26,22 @@ import client.MapleClient; import client.autoban.AutobanFactory; import client.autoban.AutobanManager; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import net.server.Server; import server.maps.MapleMap; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; public final class HealOvertimeHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { MapleCharacter chr = c.getPlayer(); if(!chr.isLoggedinWorld()) return; AutobanManager abm = chr.getAutobanManager(); int timestamp = Server.getInstance().getCurrentTimestamp(); - slea.skip(8); + p.skip(8); - short healHP = slea.readShort(); + short healHP = p.readShort(); if (healHP != 0) { abm.setTimestamp(8, timestamp, 28); // thanks Vcoc & Thora for pointing out d/c happening here if ((abm.getLastSpam(0) + 1500) > timestamp) AutobanFactory.FAST_HP_HEALING.addPoint(abm, "Fast hp healing"); @@ -57,7 +57,7 @@ public final class HealOvertimeHandler extends AbstractMaplePacketHandler { chr.getMap().broadcastMessage(chr, PacketCreator.showHpHealed(chr.getId(), healHP), false); abm.spam(0, timestamp); } - short healMP = slea.readShort(); + short healMP = p.readShort(); if (healMP != 0 && healMP < 1000) { abm.setTimestamp(9, timestamp, 28); if ((abm.getLastSpam(1) + 1500) > timestamp) { diff --git a/src/main/java/net/server/channel/handlers/HiredMerchantRequest.java b/src/main/java/net/server/channel/handlers/HiredMerchantRequest.java index 71c3a25847..9bd6f9ec78 100644 --- a/src/main/java/net/server/channel/handlers/HiredMerchantRequest.java +++ b/src/main/java/net/server/channel/handlers/HiredMerchantRequest.java @@ -26,12 +26,12 @@ import client.MapleClient; import client.inventory.ItemFactory; import constants.game.GameConstants; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import server.maps.MapleMapObject; import server.maps.MapleMapObjectType; import server.maps.MaplePlayerShop; import server.maps.MaplePortal; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; import java.awt.*; import java.sql.SQLException; @@ -43,7 +43,7 @@ import java.util.Arrays; */ public final class HiredMerchantRequest extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { MapleCharacter chr = c.getPlayer(); try { diff --git a/src/main/java/net/server/channel/handlers/InnerPortalHandler.java b/src/main/java/net/server/channel/handlers/InnerPortalHandler.java index ca305b3af7..fd208d634b 100644 --- a/src/main/java/net/server/channel/handlers/InnerPortalHandler.java +++ b/src/main/java/net/server/channel/handlers/InnerPortalHandler.java @@ -23,7 +23,7 @@ package net.server.channel.handlers; import client.MapleClient; import net.AbstractMaplePacketHandler; -import tools.data.input.SeekableLittleEndianAccessor; +import net.packet.InPacket; /** * @@ -31,6 +31,6 @@ import tools.data.input.SeekableLittleEndianAccessor; */ public final class InnerPortalHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { } } \ No newline at end of file diff --git a/src/main/java/net/server/channel/handlers/InventoryMergeHandler.java b/src/main/java/net/server/channel/handlers/InventoryMergeHandler.java index 5a09df8d85..4c7f44c530 100644 --- a/src/main/java/net/server/channel/handlers/InventoryMergeHandler.java +++ b/src/main/java/net/server/channel/handlers/InventoryMergeHandler.java @@ -29,17 +29,17 @@ import client.inventory.MapleInventoryType; import client.inventory.manipulator.MapleInventoryManipulator; import config.YamlConfig; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import net.server.Server; import server.MapleItemInformationProvider; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; public final class InventoryMergeHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { MapleCharacter chr = c.getPlayer(); - slea.readInt(); + p.readInt(); chr.getAutobanManager().setTimestamp(2, Server.getInstance().getCurrentTimestamp(), 4); if(!YamlConfig.config.server.USE_ITEM_SORT) { @@ -47,7 +47,7 @@ public final class InventoryMergeHandler extends AbstractMaplePacketHandler { return; } - byte invType = slea.readByte(); + byte invType = p.readByte(); if (invType < 1 || invType > 5) { c.disconnect(false, false); return; diff --git a/src/main/java/net/server/channel/handlers/InventorySortHandler.java b/src/main/java/net/server/channel/handlers/InventorySortHandler.java index 028db91ac9..ecddb9ec7c 100644 --- a/src/main/java/net/server/channel/handlers/InventorySortHandler.java +++ b/src/main/java/net/server/channel/handlers/InventorySortHandler.java @@ -26,10 +26,10 @@ import client.MapleClient; import client.inventory.*; import config.YamlConfig; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import net.server.Server; import server.MapleItemInformationProvider; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; import java.util.ArrayList; import java.util.List; @@ -261,9 +261,9 @@ class PairedQuicksort { public final class InventorySortHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { MapleCharacter chr = c.getPlayer(); - slea.readInt(); + p.readInt(); chr.getAutobanManager().setTimestamp(3, Server.getInstance().getCurrentTimestamp(), 4); if(!YamlConfig.config.server.USE_ITEM_SORT) { @@ -271,7 +271,7 @@ public final class InventorySortHandler extends AbstractMaplePacketHandler { return; } - byte invType = slea.readByte(); + byte invType = p.readByte(); if (invType < 1 || invType > 5) { c.disconnect(false, false); return; diff --git a/src/main/java/net/server/channel/handlers/ItemMoveHandler.java b/src/main/java/net/server/channel/handlers/ItemMoveHandler.java index 2ad2df288d..b14cfe13d1 100644 --- a/src/main/java/net/server/channel/handlers/ItemMoveHandler.java +++ b/src/main/java/net/server/channel/handlers/ItemMoveHandler.java @@ -25,8 +25,8 @@ import client.MapleClient; import client.inventory.MapleInventoryType; import client.inventory.manipulator.MapleInventoryManipulator; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; /** * @@ -34,17 +34,17 @@ import tools.data.input.SeekableLittleEndianAccessor; */ public final class ItemMoveHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - slea.skip(4); + public final void handlePacket(InPacket p, MapleClient c) { + p.skip(4); if(c.getPlayer().getAutobanManager().getLastSpam(6) + 300 > currentServerTime()) { c.sendPacket(PacketCreator.enableActions()); return; } - MapleInventoryType type = MapleInventoryType.getByType(slea.readByte()); - short src = slea.readShort(); //is there any reason to use byte instead of short in src and action? - short action = slea.readShort(); - short quantity = slea.readShort(); + MapleInventoryType type = MapleInventoryType.getByType(p.readByte()); + short src = p.readShort(); //is there any reason to use byte instead of short in src and action? + short action = p.readShort(); + short quantity = p.readShort(); if (src < 0 && action > 0) { MapleInventoryManipulator.unequip(c, src, action); diff --git a/src/main/java/net/server/channel/handlers/ItemPickupHandler.java b/src/main/java/net/server/channel/handlers/ItemPickupHandler.java index fca88aae9f..669ec3327d 100644 --- a/src/main/java/net/server/channel/handlers/ItemPickupHandler.java +++ b/src/main/java/net/server/channel/handlers/ItemPickupHandler.java @@ -22,8 +22,8 @@ package net.server.channel.handlers; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import server.maps.MapleMapObject; -import tools.data.input.SeekableLittleEndianAccessor; import client.MapleCharacter; import client.MapleClient; import java.awt.Point; @@ -37,11 +37,11 @@ import tools.FilePrinter; public final class ItemPickupHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(final SeekableLittleEndianAccessor slea, final MapleClient c) { - slea.readInt(); //Timestamp - slea.readByte(); - slea.readPos(); //cpos - int oid = slea.readInt(); + public final void handlePacket(final InPacket p, final MapleClient c) { + p.readInt(); //Timestamp + p.readByte(); + p.readPos(); //cpos + int oid = p.readInt(); MapleCharacter chr = c.getPlayer(); MapleMapObject ob = chr.getMap().getMapObject(oid); if(ob == null) return; diff --git a/src/main/java/net/server/channel/handlers/ItemRewardHandler.java b/src/main/java/net/server/channel/handlers/ItemRewardHandler.java index eeeee09d7c..f4917fe0ec 100644 --- a/src/main/java/net/server/channel/handlers/ItemRewardHandler.java +++ b/src/main/java/net/server/channel/handlers/ItemRewardHandler.java @@ -27,13 +27,13 @@ import client.inventory.MapleInventoryType; import client.inventory.manipulator.MapleInventoryManipulator; import constants.inventory.ItemConstants; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import net.server.Server; import server.MapleItemInformationProvider; import server.MapleItemInformationProvider.RewardItem; import tools.PacketCreator; import tools.Pair; import tools.Randomizer; -import tools.data.input.SeekableLittleEndianAccessor; import java.util.List; @@ -43,9 +43,9 @@ import java.util.List; */ public final class ItemRewardHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - byte slot = (byte) slea.readShort(); - int itemId = slea.readInt(); // will load from xml I don't care. + public final void handlePacket(InPacket p, MapleClient c) { + byte slot = (byte) p.readShort(); + int itemId = p.readInt(); // will load from xml I don't care. Item it = c.getPlayer().getInventory(MapleInventoryType.USE).getItem(slot); // null check here thanks to Thora if (it == null || it.getItemId() != itemId || c.getPlayer().getInventory(MapleInventoryType.USE).countById(itemId) < 1) return; diff --git a/src/main/java/net/server/channel/handlers/KeymapChangeHandler.java b/src/main/java/net/server/channel/handlers/KeymapChangeHandler.java index d4d4ac8aa7..50b1e097a5 100644 --- a/src/main/java/net/server/channel/handlers/KeymapChangeHandler.java +++ b/src/main/java/net/server/channel/handlers/KeymapChangeHandler.java @@ -26,23 +26,21 @@ import client.MapleClient; import client.keybind.MapleKeyBinding; import client.Skill; import client.SkillFactory; -import client.autoban.AutobanFactory; import client.inventory.MapleInventoryType; import net.AbstractMaplePacketHandler; -import tools.FilePrinter; -import tools.data.input.SeekableLittleEndianAccessor; +import net.packet.InPacket; public final class KeymapChangeHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - if (slea.available() >= 8) { - int mode = slea.readInt(); + public final void handlePacket(InPacket p, MapleClient c) { + if (p.available() >= 8) { + int mode = p.readInt(); if(mode == 0) { - int numChanges = slea.readInt(); + int numChanges = p.readInt(); for (int i = 0; i < numChanges; i++) { - int key = slea.readInt(); - int type = slea.readByte(); - int action = slea.readInt(); + int key = p.readInt(); + int type = p.readByte(); + int action = p.readInt(); if(type == 1) { Skill skill = SkillFactory.getSkill(action); @@ -66,14 +64,14 @@ public final class KeymapChangeHandler extends AbstractMaplePacketHandler { c.getPlayer().changeKeybinding(key, new MapleKeyBinding(type, action)); } } else if(mode == 1) { // Auto HP Potion - int itemID = slea.readInt(); + int itemID = p.readInt(); if(itemID != 0 && c.getPlayer().getInventory(MapleInventoryType.USE).findById(itemID) == null) { c.disconnect(false, false); // Don't let them send a packet with a use item they dont have. return; } c.getPlayer().changeKeybinding(91, new MapleKeyBinding(7, itemID)); } else if(mode == 2) { // Auto MP Potion - int itemID = slea.readInt(); + int itemID = p.readInt(); if(itemID != 0 && c.getPlayer().getInventory(MapleInventoryType.USE).findById(itemID) == null) { c.disconnect(false, false); // Don't let them send a packet with a use item they dont have. return; diff --git a/src/main/java/net/server/channel/handlers/LeftKnockbackHandler.java b/src/main/java/net/server/channel/handlers/LeftKnockbackHandler.java index 7d5e223bbb..39faf88938 100644 --- a/src/main/java/net/server/channel/handlers/LeftKnockbackHandler.java +++ b/src/main/java/net/server/channel/handlers/LeftKnockbackHandler.java @@ -24,15 +24,15 @@ package net.server.channel.handlers; import client.MapleClient; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; /** * * @author kevintjuh93 */ public class LeftKnockbackHandler extends AbstractMaplePacketHandler { - public void handlePacket(SeekableLittleEndianAccessor slea, final MapleClient c) { + public void handlePacket(InPacket p, final MapleClient c) { c.sendPacket(PacketCreator.leftKnockBack()); c.sendPacket(PacketCreator.enableActions()); } diff --git a/src/main/java/net/server/channel/handlers/MTSHandler.java b/src/main/java/net/server/channel/handlers/MTSHandler.java index 007565f827..74b7fcf7a7 100644 --- a/src/main/java/net/server/channel/handlers/MTSHandler.java +++ b/src/main/java/net/server/channel/handlers/MTSHandler.java @@ -29,6 +29,7 @@ import client.inventory.MapleInventoryType; import client.inventory.manipulator.MapleInventoryManipulator; import constants.inventory.ItemConstants; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import net.packet.Packet; import net.server.Server; import net.server.channel.Channel; @@ -37,7 +38,6 @@ import server.MapleItemInformationProvider; import tools.DatabaseConnection; import tools.PacketCreator; import tools.Pair; -import tools.data.input.SeekableLittleEndianAccessor; import java.sql.Connection; import java.sql.PreparedStatement; @@ -50,52 +50,52 @@ import java.util.List; public final class MTSHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { // TODO add karma-to-untradeable flag on sold items here if (!c.getPlayer().getCashShop().isOpened()) { return; } - if (slea.available() > 0) { - byte op = slea.readByte(); + if (p.available() > 0) { + byte op = p.readByte(); if (op == 2) { //put item up for sale - byte itemtype = slea.readByte(); - int itemid = slea.readInt(); - slea.readShort(); - slea.skip(7); + byte itemtype = p.readByte(); + int itemid = p.readInt(); + p.readShort(); + p.skip(7); short stars = 1; if (itemtype == 1) { - slea.skip(32); + p.skip(32); } else { - stars = slea.readShort(); + stars = p.readShort(); } - slea.readMapleAsciiString(); //another useless thing (owner) + p.readString(); //another useless thing (owner) if (itemtype == 1) { - slea.skip(32); + p.skip(32); } else { - slea.readShort(); + p.readShort(); } short slot; short quantity; if (itemtype != 1) { if (itemid / 10000 == 207 || itemid / 10000 == 233) { - slea.skip(8); + p.skip(8); } - slot = (short) slea.readInt(); + slot = (short) p.readInt(); } else { - slot = (short) slea.readInt(); + slot = (short) p.readInt(); } if (itemtype != 1) { if (itemid / 10000 == 207 || itemid / 10000 == 233) { quantity = stars; - slea.skip(4); + p.skip(4); } else { - quantity = (short) slea.readInt(); + quantity = (short) p.readInt(); } } else { - quantity = (byte) slea.readInt(); + quantity = (byte) p.readInt(); } - int price = slea.readInt(); + int price = p.readInt(); if (itemtype == 1) { quantity = 1; } @@ -228,15 +228,15 @@ public final class MTSHandler extends AbstractMaplePacketHandler { } } else if (op == 3) { //send offer for wanted item } else if (op == 4) { //list wanted item - slea.readInt(); - slea.readInt(); - slea.readInt(); - slea.readShort(); - slea.readMapleAsciiString(); + p.readInt(); + p.readInt(); + p.readInt(); + p.readShort(); + p.readString(); } else if (op == 5) { //change page - int tab = slea.readInt(); - int type = slea.readInt(); - int page = slea.readInt(); + int tab = p.readInt(); + int type = p.readInt(); + int page = p.readInt(); c.getPlayer().changePage(page); if (tab == 4 && type == 0) { c.sendPacket(getCart(c.getPlayer().getId())); @@ -252,11 +252,11 @@ public final class MTSHandler extends AbstractMaplePacketHandler { c.sendPacket(PacketCreator.transferInventory(getTransfer(c.getPlayer().getId()))); c.sendPacket(PacketCreator.notYetSoldInv(getNotYetSold(c.getPlayer().getId()))); } else if (op == 6) { //search - int tab = slea.readInt(); - int type = slea.readInt(); - slea.readInt(); - int ci = slea.readInt(); - String search = slea.readMapleAsciiString(); + int tab = p.readInt(); + int type = p.readInt(); + p.readInt(); + int ci = p.readInt(); + String search = p.readString(); c.getPlayer().setSearch(search); c.getPlayer().changeTab(tab); c.getPlayer().changeType(type); @@ -268,7 +268,7 @@ public final class MTSHandler extends AbstractMaplePacketHandler { c.sendPacket(PacketCreator.transferInventory(getTransfer(c.getPlayer().getId()))); c.sendPacket(PacketCreator.notYetSoldInv(getNotYetSold(c.getPlayer().getId()))); } else if (op == 7) { //cancel sale - int id = slea.readInt(); //id of the item + int id = p.readInt(); //id of the item Connection con = null; try { con = DatabaseConnection.getConnection(); @@ -290,7 +290,7 @@ public final class MTSHandler extends AbstractMaplePacketHandler { c.sendPacket(PacketCreator.notYetSoldInv(getNotYetSold(c.getPlayer().getId()))); c.sendPacket(PacketCreator.transferInventory(getTransfer(c.getPlayer().getId()))); } else if (op == 8) { //transfer item from transfer inv. - int id = slea.readInt(); //id of the item + int id = p.readInt(); //id of the item Connection con = null; PreparedStatement ps; ResultSet rs; @@ -358,7 +358,7 @@ public final class MTSHandler extends AbstractMaplePacketHandler { System.out.println("MTS Transfer error: " + e); } } else if (op == 9) { //add to cart - int id = slea.readInt(); //id of the item + int id = p.readInt(); //id of the item Connection con; try { con = DatabaseConnection.getConnection(); @@ -392,7 +392,7 @@ public final class MTSHandler extends AbstractMaplePacketHandler { c.sendPacket(PacketCreator.transferInventory(getTransfer(c.getPlayer().getId()))); c.sendPacket(PacketCreator.notYetSoldInv(getNotYetSold(c.getPlayer().getId()))); } else if (op == 10) { //delete from cart - int id = slea.readInt(); //id of the item + int id = p.readInt(); //id of the item Connection con = null; try { con = DatabaseConnection.getConnection(); @@ -413,7 +413,7 @@ public final class MTSHandler extends AbstractMaplePacketHandler { } else if (op == 13) { //cancel wanted cart thing } else if (op == 14) { //buy auction item now } else if (op == 16) { //buy - int id = slea.readInt(); //id of the item + int id = p.readInt(); //id of the item Connection con = null; PreparedStatement ps; ResultSet rs; @@ -477,7 +477,7 @@ public final class MTSHandler extends AbstractMaplePacketHandler { c.sendPacket(PacketCreator.MTSFailBuy()); } } else if (op == 17) { //buy from cart - int id = slea.readInt(); //id of the item + int id = p.readInt(); //id of the item Connection con = null; PreparedStatement ps; ResultSet rs; @@ -537,7 +537,7 @@ public final class MTSHandler extends AbstractMaplePacketHandler { c.sendPacket(PacketCreator.MTSFailBuy()); } } else { - System.out.println("Unhandled OP(MTS): " + op + " Packet: " + slea.toString()); + System.out.println("Unhandled OP(MTS): " + op + " Packet: " + p.toString()); } } else { c.sendPacket(PacketCreator.showMTSCash(c.getPlayer())); diff --git a/src/main/java/net/server/channel/handlers/MagicDamageHandler.java b/src/main/java/net/server/channel/handlers/MagicDamageHandler.java index 963f0cc0ca..00549b7aa1 100644 --- a/src/main/java/net/server/channel/handlers/MagicDamageHandler.java +++ b/src/main/java/net/server/channel/handlers/MagicDamageHandler.java @@ -28,14 +28,14 @@ import constants.skills.Bishop; import constants.skills.Evan; import constants.skills.FPArchMage; import constants.skills.ILArchMage; +import net.packet.InPacket; import net.packet.Packet; import server.MapleStatEffect; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; public final class MagicDamageHandler extends AbstractDealDamageHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { MapleCharacter chr = c.getPlayer(); /*long timeElapsed = currentServerTime() - chr.getAutobanManager().getLastSpam(8); @@ -44,7 +44,7 @@ public final class MagicDamageHandler extends AbstractDealDamageHandler { } chr.getAutobanManager().spam(8);*/ - AttackInfo attack = parseDamage(slea, chr, false, true); + AttackInfo attack = parseDamage(p, chr, false, true); if (chr.getBuffEffect(MapleBuffStat.MORPH) != null) { if(chr.getBuffEffect(MapleBuffStat.MORPH).isMorphWithoutAttack()) { diff --git a/src/main/java/net/server/channel/handlers/MakerSkillHandler.java b/src/main/java/net/server/channel/handlers/MakerSkillHandler.java index 2a108e64d0..9c8806e688 100644 --- a/src/main/java/net/server/channel/handlers/MakerSkillHandler.java +++ b/src/main/java/net/server/channel/handlers/MakerSkillHandler.java @@ -24,7 +24,7 @@ package net.server.channel.handlers; import client.MapleClient; import client.processor.action.MakerProcessor; import net.AbstractMaplePacketHandler; -import tools.data.input.SeekableLittleEndianAccessor; +import net.packet.InPacket; /** * @@ -33,7 +33,7 @@ import tools.data.input.SeekableLittleEndianAccessor; public final class MakerSkillHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - MakerProcessor.makerAction(slea, c); + public final void handlePacket(InPacket p, MapleClient c) { + MakerProcessor.makerAction(p, c); } } diff --git a/src/main/java/net/server/channel/handlers/MesoDropHandler.java b/src/main/java/net/server/channel/handlers/MesoDropHandler.java index 196fbe327a..34679b8f5d 100644 --- a/src/main/java/net/server/channel/handlers/MesoDropHandler.java +++ b/src/main/java/net/server/channel/handlers/MesoDropHandler.java @@ -24,8 +24,8 @@ package net.server.channel.handlers; import client.MapleCharacter; import client.MapleClient; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; /** * @@ -34,14 +34,14 @@ import tools.data.input.SeekableLittleEndianAccessor; */ public final class MesoDropHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { MapleCharacter player = c.getPlayer(); if (!player.isAlive()) { c.sendPacket(PacketCreator.enableActions()); return; } - slea.skip(4); - int meso = slea.readInt(); + p.skip(4); + int meso = p.readInt(); if (c.tryacquireClient()) { // thanks imbee for noticing players not being able to throw mesos too fast try { diff --git a/src/main/java/net/server/channel/handlers/MessengerHandler.java b/src/main/java/net/server/channel/handlers/MessengerHandler.java index 1a84d63bef..107581d20d 100644 --- a/src/main/java/net/server/channel/handlers/MessengerHandler.java +++ b/src/main/java/net/server/channel/handlers/MessengerHandler.java @@ -24,6 +24,7 @@ package net.server.channel.handlers; import client.MapleCharacter; import client.MapleClient; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import net.server.coordinator.world.MapleInviteCoordinator; import net.server.coordinator.world.MapleInviteCoordinator.InviteResult; import net.server.coordinator.world.MapleInviteCoordinator.InviteType; @@ -32,21 +33,20 @@ import net.server.world.MapleMessenger; import net.server.world.MapleMessengerCharacter; import net.server.world.World; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; public final class MessengerHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { if (c.tryacquireClient()) { try { String input; - byte mode = slea.readByte(); + byte mode = p.readByte(); MapleCharacter player = c.getPlayer(); World world = c.getWorldServer(); MapleMessenger messenger = player.getMessenger(); switch (mode) { case 0x00: - int messengerid = slea.readInt(); + int messengerid = p.readInt(); if (messenger == null) { if (messengerid == 0) { MapleInviteCoordinator.removeInvite(InviteType.MESSENGER, player.getId()); @@ -84,7 +84,7 @@ public final class MessengerHandler extends AbstractMaplePacketHandler { if (messenger == null) { c.sendPacket(PacketCreator.messengerChat(player.getName() + " : This Maple Messenger is currently unavailable. Please quit this chat.")); } else if (messenger.getMembers().size() < 3) { - input = slea.readMapleAsciiString(); + input = p.readString(); MapleCharacter target = c.getChannelServer().getPlayerStorage().getCharacterByName(input); if (target != null) { if (target.getMessenger() == null) { @@ -109,13 +109,13 @@ public final class MessengerHandler extends AbstractMaplePacketHandler { } break; case 0x05: - String targeted = slea.readMapleAsciiString(); + String targeted = p.readString(); world.declineChat(targeted, player); break; case 0x06: if (messenger != null) { MapleMessengerCharacter messengerplayer = new MapleMessengerCharacter(player, player.getMessengerPosition()); - input = slea.readMapleAsciiString(); + input = p.readString(); world.messengerChat(messenger, input, messengerplayer.getName()); } break; diff --git a/src/main/java/net/server/channel/handlers/MobBanishPlayerHandler.java b/src/main/java/net/server/channel/handlers/MobBanishPlayerHandler.java index f99734d4bf..603428c75f 100644 --- a/src/main/java/net/server/channel/handlers/MobBanishPlayerHandler.java +++ b/src/main/java/net/server/channel/handlers/MobBanishPlayerHandler.java @@ -21,16 +21,16 @@ package net.server.channel.handlers; import client.MapleCharacter; import client.MapleClient; +import net.packet.InPacket; import server.life.MapleMonster; import server.life.MapleLifeFactory.BanishInfo; import net.AbstractMaplePacketHandler; -import tools.data.input.SeekableLittleEndianAccessor; public final class MobBanishPlayerHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - int mobid = slea.readInt(); // mob banish handling detected thanks to MedicOP + public final void handlePacket(InPacket p, MapleClient c) { + int mobid = p.readInt(); // mob banish handling detected thanks to MedicOP MapleCharacter chr = c.getPlayer(); MapleMonster mob = chr.getMap().getMonsterById(mobid); diff --git a/src/main/java/net/server/channel/handlers/MobDamageMobFriendlyHandler.java b/src/main/java/net/server/channel/handlers/MobDamageMobFriendlyHandler.java index 0f921988c0..ed3bb725bb 100644 --- a/src/main/java/net/server/channel/handlers/MobDamageMobFriendlyHandler.java +++ b/src/main/java/net/server/channel/handlers/MobDamageMobFriendlyHandler.java @@ -23,12 +23,12 @@ package net.server.channel.handlers; import client.MapleClient; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import scripting.event.EventInstanceManager; import server.life.MapleMonster; import server.maps.MapleMap; import tools.PacketCreator; import tools.Randomizer; -import tools.data.input.SeekableLittleEndianAccessor; /** * @@ -37,10 +37,10 @@ import tools.data.input.SeekableLittleEndianAccessor; public final class MobDamageMobFriendlyHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - int attacker = slea.readInt(); - slea.readInt(); - int damaged = slea.readInt(); + public final void handlePacket(InPacket p, MapleClient c) { + int attacker = p.readInt(); + p.readInt(); + int damaged = p.readInt(); MapleMap map = c.getPlayer().getMap(); MapleMonster monster = map.getMonsterByOid(damaged); diff --git a/src/main/java/net/server/channel/handlers/MobDamageMobHandler.java b/src/main/java/net/server/channel/handlers/MobDamageMobHandler.java index 989063f3f2..244dd6857a 100644 --- a/src/main/java/net/server/channel/handlers/MobDamageMobHandler.java +++ b/src/main/java/net/server/channel/handlers/MobDamageMobHandler.java @@ -27,12 +27,12 @@ import client.autoban.AutobanFactory; import client.status.MonsterStatus; import client.status.MonsterStatusEffect; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import server.life.MapleMonster; import server.life.MapleMonsterInformationProvider; import server.maps.MapleMap; import tools.FilePrinter; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; import java.util.Map; @@ -43,12 +43,12 @@ import java.util.Map; */ public final class MobDamageMobHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - int from = slea.readInt(); - slea.readInt(); - int to = slea.readInt(); - boolean magic = slea.readByte() == 0; - int dmg = slea.readInt(); + public final void handlePacket(InPacket p, MapleClient c) { + int from = p.readInt(); + p.readInt(); + int to = p.readInt(); + boolean magic = p.readByte() == 0; + int dmg = p.readInt(); MapleCharacter chr = c.getPlayer(); MapleMap map = chr.getMap(); diff --git a/src/main/java/net/server/channel/handlers/MonsterBombHandler.java b/src/main/java/net/server/channel/handlers/MonsterBombHandler.java index 7b1d637214..e11529f5f8 100644 --- a/src/main/java/net/server/channel/handlers/MonsterBombHandler.java +++ b/src/main/java/net/server/channel/handlers/MonsterBombHandler.java @@ -23,14 +23,14 @@ package net.server.channel.handlers; import client.MapleClient; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import server.life.MapleMonster; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; public final class MonsterBombHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - int oid = slea.readInt(); + public final void handlePacket(InPacket p, MapleClient c) { + int oid = p.readInt(); MapleMonster monster = c.getPlayer().getMap().getMonsterByOid(oid); if (!c.getPlayer().isAlive() || monster == null) { return; diff --git a/src/main/java/net/server/channel/handlers/MonsterBookCoverHandler.java b/src/main/java/net/server/channel/handlers/MonsterBookCoverHandler.java index b7b74987ce..30c2ad7d45 100644 --- a/src/main/java/net/server/channel/handlers/MonsterBookCoverHandler.java +++ b/src/main/java/net/server/channel/handlers/MonsterBookCoverHandler.java @@ -23,12 +23,12 @@ package net.server.channel.handlers; import client.MapleClient; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; public final class MonsterBookCoverHandler extends AbstractMaplePacketHandler { - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - int id = slea.readInt(); + public final void handlePacket(InPacket p, MapleClient c) { + int id = p.readInt(); if (id == 0 || id / 10000 == 238) { c.getPlayer().setMonsterBookCover(id); c.sendPacket(PacketCreator.changeCover(id)); diff --git a/src/main/java/net/server/channel/handlers/MonsterCarnivalHandler.java b/src/main/java/net/server/channel/handlers/MonsterCarnivalHandler.java index 4ca4d92e78..5274cc4413 100644 --- a/src/main/java/net/server/channel/handlers/MonsterCarnivalHandler.java +++ b/src/main/java/net/server/channel/handlers/MonsterCarnivalHandler.java @@ -25,6 +25,7 @@ import client.MapleCharacter; import client.MapleClient; import client.MapleDisease; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import net.server.world.MapleParty; import net.server.world.MaplePartyCharacter; import server.life.MapleLifeFactory; @@ -34,7 +35,6 @@ import server.partyquest.MapleCarnivalFactory.MCSkill; import server.partyquest.MonsterCarnival; import tools.PacketCreator; import tools.Pair; -import tools.data.input.SeekableLittleEndianAccessor; import java.awt.*; import java.util.List; @@ -47,12 +47,12 @@ import java.util.List; public final class MonsterCarnivalHandler extends AbstractMaplePacketHandler { @Override - public void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public void handlePacket(InPacket p, MapleClient c) { if (c.tryacquireClient()) { try { try { - int tab = slea.readByte(); - int num = slea.readByte(); + int tab = p.readByte(); + int num = p.readByte(); int neededCP = 0; if (tab == 0) { final List> mobs = c.getPlayer().getMap().getMobsToSpawn(); diff --git a/src/main/java/net/server/channel/handlers/MoveDragonHandler.java b/src/main/java/net/server/channel/handlers/MoveDragonHandler.java index e9b5ce4dfc..336a66fe75 100644 --- a/src/main/java/net/server/channel/handlers/MoveDragonHandler.java +++ b/src/main/java/net/server/channel/handlers/MoveDragonHandler.java @@ -23,9 +23,9 @@ package net.server.channel.handlers; import client.MapleCharacter; import client.MapleClient; +import net.packet.InPacket; import server.maps.MapleDragon; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; import tools.exceptions.EmptyMovementException; import java.awt.*; @@ -33,21 +33,21 @@ import java.awt.*; public class MoveDragonHandler extends AbstractMovementPacketHandler { @Override - public void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public void handlePacket(InPacket p, MapleClient c) { final MapleCharacter chr = c.getPlayer(); - final Point startPos = new Point(slea.readShort(), slea.readShort()); + final Point startPos = new Point(p.readShort(), p.readShort()); final MapleDragon dragon = chr.getDragon(); if (dragon != null) { try { - long movementDataStart = slea.getPosition(); - updatePosition(slea, dragon, 0); - long movementDataLength = slea.getPosition() - movementDataStart; //how many bytes were read by updatePosition - slea.seek(movementDataStart); + int movementDataStart = p.getPosition(); + updatePosition(p, dragon, 0); + long movementDataLength = p.getPosition() - movementDataStart; //how many bytes were read by updatePosition + p.seek(movementDataStart); if (chr.isHidden()) { - chr.getMap().broadcastGMPacket(chr, PacketCreator.moveDragon(dragon, startPos, slea, movementDataLength)); + chr.getMap().broadcastGMPacket(chr, PacketCreator.moveDragon(dragon, startPos, p, movementDataLength)); } else { - chr.getMap().broadcastMessage(chr, PacketCreator.moveDragon(dragon, startPos, slea, movementDataLength), dragon.getPosition()); + chr.getMap().broadcastMessage(chr, PacketCreator.moveDragon(dragon, startPos, p, movementDataLength), dragon.getPosition()); } } catch (EmptyMovementException e) {} } diff --git a/src/main/java/net/server/channel/handlers/MoveLifeHandler.java b/src/main/java/net/server/channel/handlers/MoveLifeHandler.java index 0bbf41d8aa..6e97b9243b 100644 --- a/src/main/java/net/server/channel/handlers/MoveLifeHandler.java +++ b/src/main/java/net/server/channel/handlers/MoveLifeHandler.java @@ -24,6 +24,7 @@ package net.server.channel.handlers; import client.MapleCharacter; import client.MapleClient; import config.YamlConfig; +import net.packet.InPacket; import server.life.MapleMonster; import server.life.MapleMonsterInformationProvider; import server.life.MobSkill; @@ -34,7 +35,6 @@ import server.maps.MapleMapObjectType; import tools.PacketCreator; import tools.Pair; import tools.Randomizer; -import tools.data.input.SeekableLittleEndianAccessor; import tools.exceptions.EmptyMovementException; import java.awt.*; @@ -49,7 +49,7 @@ import java.util.List; public final class MoveLifeHandler extends AbstractMovementPacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { MapleCharacter player = c.getPlayer(); MapleMap map = player.getMap(); @@ -57,8 +57,8 @@ public final class MoveLifeHandler extends AbstractMovementPacketHandler { return; } - int objectid = slea.readInt(); - short moveid = slea.readShort(); + int objectid = p.readInt(); + short moveid = p.readShort(); MapleMapObject mmo = map.getMapObject(objectid); if (mmo == null || mmo.getType() != MapleMapObjectType.MONSTER) { return; @@ -67,12 +67,12 @@ public final class MoveLifeHandler extends AbstractMovementPacketHandler { MapleMonster monster = (MapleMonster) mmo; List banishPlayers = null; - byte pNibbles = slea.readByte(); - byte rawActivity = slea.readByte(); - int skillId = slea.readByte() & 0xff; - int skillLv = slea.readByte() & 0xff; - short pOption = slea.readShort(); - slea.skip(8); + byte pNibbles = p.readByte(); + byte rawActivity = p.readByte(); + int skillId = p.readByte() & 0xff; + int skillLv = p.readByte() & 0xff; + short pOption = p.readShort(); + p.skip(8); if (rawActivity >= 0) { rawActivity = (byte) (rawActivity & 0xFF >> 1); @@ -139,10 +139,10 @@ public final class MoveLifeHandler extends AbstractMovementPacketHandler { } } - slea.readByte(); - slea.readInt(); // whatever - short start_x = slea.readShort(); // hmm.. startpos? - short start_y = slea.readShort(); // hmm... + p.readByte(); + p.readInt(); // whatever + short start_x = p.readShort(); // hmm.. startpos? + short start_y = p.readShort(); // hmm... Point startPos = new Point(start_x, start_y - 2); Point serverStartPos = new Point(monster.getPosition()); @@ -157,16 +157,16 @@ public final class MoveLifeHandler extends AbstractMovementPacketHandler { try { - long movementDataStart = slea.getPosition(); - updatePosition(slea, monster, -2); // Thanks Doodle & ZEROå‚‘æ´› for noticing sponge-based bosses moving out of stage in case of no-offset applied - long movementDataLength = slea.getPosition() - movementDataStart; //how many bytes were read by updatePosition - slea.seek(movementDataStart); + int movementDataStart = p.getPosition(); + updatePosition(p, monster, -2); // Thanks Doodle & ZEROå‚‘æ´› for noticing sponge-based bosses moving out of stage in case of no-offset applied + long movementDataLength = p.getPosition() - movementDataStart; //how many bytes were read by updatePosition + p.seek(movementDataStart); if (YamlConfig.config.server.USE_DEBUG_SHOW_RCVD_MVLIFE) { System.out.println((isSkill ? "SKILL " : (isAttack ? "ATTCK " : " ")) + "castPos: " + castPos + " rawAct: " + rawActivity + " opt: " + pOption + " skillID: " + useSkillId + " skillLV: " + useSkillLevel + " " + "allowSkill: " + nextMovementCouldBeSkill + " mobMp: " + mobMp); } - map.broadcastMessage(player, PacketCreator.moveMonster(objectid, nextMovementCouldBeSkill, rawActivity, useSkillId, useSkillLevel, pOption, startPos, slea, movementDataLength), serverStartPos); + map.broadcastMessage(player, PacketCreator.moveMonster(objectid, nextMovementCouldBeSkill, rawActivity, useSkillId, useSkillLevel, pOption, startPos, p, movementDataLength), serverStartPos); //updatePosition(res, monster, -2); //does this need to be done after the packet is broadcast? map.moveMonster(monster, monster.getPosition()); } catch (EmptyMovementException e) {} diff --git a/src/main/java/net/server/channel/handlers/MovePetHandler.java b/src/main/java/net/server/channel/handlers/MovePetHandler.java index 2cd3a154e8..122993002a 100644 --- a/src/main/java/net/server/channel/handlers/MovePetHandler.java +++ b/src/main/java/net/server/channel/handlers/MovePetHandler.java @@ -23,23 +23,23 @@ package net.server.channel.handlers; import client.MapleCharacter; import client.MapleClient; +import net.packet.InPacket; import server.movement.LifeMovementFragment; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; import tools.exceptions.EmptyMovementException; import java.util.List; public final class MovePetHandler extends AbstractMovementPacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - int petId = slea.readInt(); - slea.readLong(); + public final void handlePacket(InPacket p, MapleClient c) { + int petId = p.readInt(); + p.readLong(); // Point startPos = StreamUtil.readShortPoint(slea); List res; try { - res = parseMovement(slea); + res = parseMovement(p); } catch (EmptyMovementException e) { return; } diff --git a/src/main/java/net/server/channel/handlers/MovePlayerHandler.java b/src/main/java/net/server/channel/handlers/MovePlayerHandler.java index 058ee194c5..1a2f87f072 100644 --- a/src/main/java/net/server/channel/handlers/MovePlayerHandler.java +++ b/src/main/java/net/server/channel/handlers/MovePlayerHandler.java @@ -22,25 +22,25 @@ package net.server.channel.handlers; import client.MapleClient; +import net.packet.InPacket; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; import tools.exceptions.EmptyMovementException; public final class MovePlayerHandler extends AbstractMovementPacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - slea.skip(9); + public final void handlePacket(InPacket p, MapleClient c) { + p.skip(9); try { // thanks Sa for noticing empty movement sequences crashing players - long movementDataStart = slea.getPosition(); - updatePosition(slea, c.getPlayer(), 0); - long movementDataLength = slea.getPosition() - movementDataStart; //how many bytes were read by updatePosition - slea.seek(movementDataStart); + int movementDataStart = p.getPosition(); + updatePosition(p, c.getPlayer(), 0); + long movementDataLength = p.getPosition() - movementDataStart; //how many bytes were read by updatePosition + p.seek(movementDataStart); c.getPlayer().getMap().movePlayer(c.getPlayer(), c.getPlayer().getPosition()); if (c.getPlayer().isHidden()) { - c.getPlayer().getMap().broadcastGMMessage(c.getPlayer(), PacketCreator.movePlayer(c.getPlayer().getId(), slea, movementDataLength), false); + c.getPlayer().getMap().broadcastGMMessage(c.getPlayer(), PacketCreator.movePlayer(c.getPlayer().getId(), p, movementDataLength), false); } else { - c.getPlayer().getMap().broadcastMessage(c.getPlayer(), PacketCreator.movePlayer(c.getPlayer().getId(), slea, movementDataLength), false); + c.getPlayer().getMap().broadcastMessage(c.getPlayer(), PacketCreator.movePlayer(c.getPlayer().getId(), p, movementDataLength), false); } } catch (EmptyMovementException e) {} } diff --git a/src/main/java/net/server/channel/handlers/MoveSummonHandler.java b/src/main/java/net/server/channel/handlers/MoveSummonHandler.java index 2d74ea8ae6..b5a93f2380 100644 --- a/src/main/java/net/server/channel/handlers/MoveSummonHandler.java +++ b/src/main/java/net/server/channel/handlers/MoveSummonHandler.java @@ -23,9 +23,9 @@ package net.server.channel.handlers; import client.MapleCharacter; import client.MapleClient; +import net.packet.InPacket; import server.maps.MapleSummon; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; import tools.exceptions.EmptyMovementException; import java.awt.*; @@ -33,9 +33,9 @@ import java.util.Collection; public final class MoveSummonHandler extends AbstractMovementPacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - int oid = slea.readInt(); - Point startPos = new Point(slea.readShort(), slea.readShort()); + public final void handlePacket(InPacket p, MapleClient c) { + int oid = p.readInt(); + Point startPos = new Point(p.readShort(), p.readShort()); MapleCharacter player = c.getPlayer(); Collection summons = player.getSummonsValues(); MapleSummon summon = null; @@ -47,12 +47,12 @@ public final class MoveSummonHandler extends AbstractMovementPacketHandler { } if (summon != null) { try { - long movementDataStart = slea.getPosition(); - updatePosition(slea, summon, 0); - long movementDataLength = slea.getPosition() - movementDataStart; //how many bytes were read by updatePosition - slea.seek(movementDataStart); + int movementDataStart = p.getPosition(); + updatePosition(p, summon, 0); + long movementDataLength = p.getPosition() - movementDataStart; //how many bytes were read by updatePosition + p.seek(movementDataStart); - player.getMap().broadcastMessage(player, PacketCreator.moveSummon(player.getId(), oid, startPos, slea, movementDataLength), summon.getPosition()); + player.getMap().broadcastMessage(player, PacketCreator.moveSummon(player.getId(), oid, startPos, p, movementDataLength), summon.getPosition()); } catch (EmptyMovementException e) {} } } diff --git a/src/main/java/net/server/channel/handlers/MultiChatHandler.java b/src/main/java/net/server/channel/handlers/MultiChatHandler.java index c9d98c2aca..b7e65adfaa 100644 --- a/src/main/java/net/server/channel/handlers/MultiChatHandler.java +++ b/src/main/java/net/server/channel/handlers/MultiChatHandler.java @@ -26,28 +26,28 @@ import client.MapleClient; import client.autoban.AutobanFactory; import config.YamlConfig; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import net.server.Server; import net.server.world.World; import tools.FilePrinter; import tools.LogHelper; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; public final class MultiChatHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { MapleCharacter player = c.getPlayer(); if(player.getAutobanManager().getLastSpam(7) + 200 > currentServerTime()) { return; } - int type = slea.readByte(); // 0 for buddys, 1 for partys - int numRecipients = slea.readByte(); + int type = p.readByte(); // 0 for buddys, 1 for partys + int numRecipients = p.readByte(); int[] recipients = new int[numRecipients]; for (int i = 0; i < numRecipients; i++) { - recipients[i] = slea.readInt(); + recipients[i] = p.readInt(); } - String chattext = slea.readMapleAsciiString(); + String chattext = p.readString(); if (chattext.length() > Byte.MAX_VALUE && !player.isGM()) { AutobanFactory.PACKET_EDIT.alert(c.getPlayer(), c.getPlayer().getName() + " tried to packet edit chats."); FilePrinter.printError(FilePrinter.EXPLOITS + c.getPlayer().getName() + ".txt", c.getPlayer().getName() + " tried to send text with length of " + chattext.length()); diff --git a/src/main/java/net/server/channel/handlers/NPCAnimationHandler.java b/src/main/java/net/server/channel/handlers/NPCAnimationHandler.java index 499eb4bc83..c46b4d80c3 100644 --- a/src/main/java/net/server/channel/handlers/NPCAnimationHandler.java +++ b/src/main/java/net/server/channel/handlers/NPCAnimationHandler.java @@ -24,26 +24,26 @@ package net.server.channel.handlers; import client.MapleClient; import net.AbstractMaplePacketHandler; import net.opcodes.SendOpcode; +import net.packet.InPacket; import net.packet.OutPacket; -import tools.data.input.SeekableLittleEndianAccessor; public final class NPCAnimationHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { if (c.getPlayer().isChangingMaps()) { // possible cause of error 38 in some map transition scenarios, thanks Arnah return; } - OutPacket p = OutPacket.create(SendOpcode.NPC_ACTION); - int length = (int) slea.available(); + OutPacket op = OutPacket.create(SendOpcode.NPC_ACTION); + int length = p.available(); if (length == 6) { // NPC Talk - p.writeInt(slea.readInt()); - p.writeByte(slea.readByte()); // 2 bytes, thanks resinate - p.writeByte(slea.readByte()); + op.writeInt(p.readInt()); + op.writeByte(p.readByte()); // 2 bytes, thanks resinate + op.writeByte(p.readByte()); } else if (length > 6) { // NPC Move - byte[] bytes = slea.read(length - 9); - p.writeBytes(bytes); + byte[] bytes = p.readBytes(length - 9); + op.writeBytes(bytes); } - c.sendPacket(p); + c.sendPacket(op); } } diff --git a/src/main/java/net/server/channel/handlers/NPCMoreTalkHandler.java b/src/main/java/net/server/channel/handlers/NPCMoreTalkHandler.java index 54a0754920..d4fbad56c3 100644 --- a/src/main/java/net/server/channel/handlers/NPCMoreTalkHandler.java +++ b/src/main/java/net/server/channel/handlers/NPCMoreTalkHandler.java @@ -23,9 +23,9 @@ package net.server.channel.handlers; import client.MapleClient; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import scripting.npc.NPCScriptManager; import scripting.quest.QuestScriptManager; -import tools.data.input.SeekableLittleEndianAccessor; /** * @@ -33,12 +33,12 @@ import tools.data.input.SeekableLittleEndianAccessor; */ public final class NPCMoreTalkHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - byte lastMsg = slea.readByte(); // 00 (last msg type I think) - byte action = slea.readByte(); // 00 = end chat, 01 == follow + public final void handlePacket(InPacket p, MapleClient c) { + byte lastMsg = p.readByte(); // 00 (last msg type I think) + byte action = p.readByte(); // 00 = end chat, 01 == follow if (lastMsg == 2) { if (action != 0) { - String returnText = slea.readMapleAsciiString(); + String returnText = p.readString(); if (c.getQM() != null) { c.getQM().setGetText(returnText); if (c.getQM().isStart()) { @@ -57,10 +57,10 @@ public final class NPCMoreTalkHandler extends AbstractMaplePacketHandler { } } else { int selection = -1; - if (slea.available() >= 4) { - selection = slea.readInt(); - } else if (slea.available() > 0) { - selection = slea.readByte(); + if (p.available() >= 4) { + selection = p.readInt(); + } else if (p.available() > 0) { + selection = p.readByte(); } if (c.getQM() != null) { if (c.getQM().isStart()) { diff --git a/src/main/java/net/server/channel/handlers/NPCShopHandler.java b/src/main/java/net/server/channel/handlers/NPCShopHandler.java index 48475b441f..5845ae1f76 100644 --- a/src/main/java/net/server/channel/handlers/NPCShopHandler.java +++ b/src/main/java/net/server/channel/handlers/NPCShopHandler.java @@ -25,20 +25,20 @@ import client.MapleClient; import client.autoban.AutobanFactory; import constants.inventory.ItemConstants; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import tools.FilePrinter; -import tools.data.input.SeekableLittleEndianAccessor; /** * * @author Matze */ public final class NPCShopHandler extends AbstractMaplePacketHandler { - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - byte bmode = slea.readByte(); + public final void handlePacket(InPacket p, MapleClient c) { + byte bmode = p.readByte(); if (bmode == 0) { // mode 0 = buy :) - short slot = slea.readShort();// slot - int itemId = slea.readInt(); - short quantity = slea.readShort(); + short slot = p.readShort();// slot + int itemId = p.readInt(); + short quantity = p.readShort(); if (quantity < 1) { AutobanFactory.PACKET_EDIT.alert(c.getPlayer(), c.getPlayer().getName() + " tried to packet edit a npc shop."); FilePrinter.printError(FilePrinter.EXPLOITS + c.getPlayer().getName() + ".txt", c.getPlayer().getName() + " tried to buy quantity " + quantity + " of item id " + itemId); @@ -47,12 +47,12 @@ public final class NPCShopHandler extends AbstractMaplePacketHandler { } c.getPlayer().getShop().buy(c, slot, itemId, quantity); } else if (bmode == 1) { // sell ;) - short slot = slea.readShort(); - int itemId = slea.readInt(); - short quantity = slea.readShort(); + short slot = p.readShort(); + int itemId = p.readInt(); + short quantity = p.readShort(); c.getPlayer().getShop().sell(c, ItemConstants.getInventoryType(itemId), slot, quantity); } else if (bmode == 2) { // recharge ;) - byte slot = (byte) slea.readShort(); + byte slot = (byte) p.readShort(); c.getPlayer().getShop().recharge(c, slot); } else if (bmode == 3) { // leaving :( c.getPlayer().setShop(null); diff --git a/src/main/java/net/server/channel/handlers/NPCTalkHandler.java b/src/main/java/net/server/channel/handlers/NPCTalkHandler.java index 4cffe9c820..1236e9b5f5 100644 --- a/src/main/java/net/server/channel/handlers/NPCTalkHandler.java +++ b/src/main/java/net/server/channel/handlers/NPCTalkHandler.java @@ -25,17 +25,17 @@ import client.MapleClient; import client.processor.npc.DueyProcessor; import config.YamlConfig; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import scripting.npc.NPCScriptManager; import server.life.MapleNPC; import server.life.MaplePlayerNPC; import server.maps.MapleMapObject; import tools.FilePrinter; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; public final class NPCTalkHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { if (!c.getPlayer().isAlive()) { c.sendPacket(PacketCreator.enableActions()); return; @@ -46,7 +46,7 @@ public final class NPCTalkHandler extends AbstractMaplePacketHandler { return; } - int oid = slea.readInt(); + int oid = p.readInt(); MapleMapObject obj = c.getPlayer().getMap().getMapObject(oid); if (obj instanceof MapleNPC) { MapleNPC npc = (MapleNPC) obj; diff --git a/src/main/java/net/server/channel/handlers/NewYearCardHandler.java b/src/main/java/net/server/channel/handlers/NewYearCardHandler.java index 4bee6e232c..59e727e6ac 100644 --- a/src/main/java/net/server/channel/handlers/NewYearCardHandler.java +++ b/src/main/java/net/server/channel/handlers/NewYearCardHandler.java @@ -25,10 +25,10 @@ import client.inventory.Item; import client.newyear.NewYearCardRecord; import constants.inventory.ItemConstants; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import net.server.Server; import tools.DatabaseConnection; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; import java.sql.Connection; import java.sql.PreparedStatement; @@ -44,24 +44,24 @@ import java.sql.SQLException; public final class NewYearCardHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { final MapleCharacter player = c.getPlayer(); - byte reqMode = slea.readByte(); //[00] -> NewYearReq (0 = Send) + byte reqMode = p.readByte(); //[00] -> NewYearReq (0 = Send) if(reqMode == 0) { // card has been sent if(player.haveItem(2160101)) { // new year's card - short slot = slea.readShort(); //[00 2C] -> nPOS (Item Slot Pos) - int itemid = slea.readInt(); //[00 20 F5 E5] -> nItemID (item id) + short slot = p.readShort(); //[00 2C] -> nPOS (Item Slot Pos) + int itemid = p.readInt(); //[00 20 F5 E5] -> nItemID (item id) int status = getValidNewYearCardStatus(itemid, player, slot); if(status == 0) { if(player.canHold(4300000, 1)) { - String receiver = slea.readMapleAsciiString(); //[04 00 54 65 73 74] -> sReceiverName (person to send to) + String receiver = p.readString(); //[04 00 54 65 73 74] -> sReceiverName (person to send to) int receiverid = getReceiverId(receiver, c.getWorld()); if(receiverid != -1) { if(receiverid != c.getPlayer().getId()) { - String message = slea.readMapleAsciiString(); //[06 00 4C 65 74 74 65 72] -> sContent (message) + String message = p.readString(); //[06 00 4C 65 74 74 65 72] -> sContent (message) NewYearCardRecord newyear = new NewYearCardRecord(player.getId(), player.getName(), receiverid, receiver, message); NewYearCardRecord.saveNewYearCard(newyear); @@ -89,7 +89,7 @@ public final class NewYearCardHandler extends AbstractMaplePacketHandler { player.sendPacket(PacketCreator.onNewYearCardRes(player, -1, 5, 0x11)); // have no card to send } } else { //receiver accepted the card - int cardid = slea.readInt(); + int cardid = p.readInt(); NewYearCardRecord newyear = NewYearCardRecord.loadNewYearCard(cardid); diff --git a/src/main/java/net/server/channel/handlers/NoteActionHandler.java b/src/main/java/net/server/channel/handlers/NoteActionHandler.java index e151dd4e97..45823e232e 100644 --- a/src/main/java/net/server/channel/handlers/NoteActionHandler.java +++ b/src/main/java/net/server/channel/handlers/NoteActionHandler.java @@ -23,9 +23,9 @@ package net.server.channel.handlers; import client.MapleClient; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import tools.DatabaseConnection; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; import java.sql.Connection; import java.sql.PreparedStatement; @@ -34,11 +34,11 @@ import java.sql.SQLException; public final class NoteActionHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - int action = slea.readByte(); + public final void handlePacket(InPacket p, MapleClient c) { + int action = p.readByte(); if (action == 0 && c.getPlayer().getCashShop().getAvailableNotes() > 0) { - String charname = slea.readMapleAsciiString(); - String message = slea.readMapleAsciiString(); + String charname = p.readString(); + String message = p.readString(); try { if (c.getPlayer().getCashShop().isOpened()) { c.sendPacket(PacketCreator.showCashInventory(c)); @@ -50,13 +50,13 @@ public final class NoteActionHandler extends AbstractMaplePacketHandler { e.printStackTrace(); } } else if (action == 1) { - int num = slea.readByte(); - slea.readByte(); - slea.readByte(); + int num = p.readByte(); + p.readByte(); + p.readByte(); int fame = 0; for (int i = 0; i < num; i++) { - int id = slea.readInt(); - slea.readByte(); //Fame, but we read it from the database :) + int id = p.readInt(); + p.readByte(); //Fame, but we read it from the database :) try (Connection con = DatabaseConnection.getConnection()) { try (PreparedStatement ps = con.prepareStatement("SELECT `fame` FROM notes WHERE id=? AND deleted=0")) { diff --git a/src/main/java/net/server/channel/handlers/OpenFamilyHandler.java b/src/main/java/net/server/channel/handlers/OpenFamilyHandler.java index 5f8f834078..2544cb397f 100644 --- a/src/main/java/net/server/channel/handlers/OpenFamilyHandler.java +++ b/src/main/java/net/server/channel/handlers/OpenFamilyHandler.java @@ -23,8 +23,8 @@ import client.MapleCharacter; import client.MapleClient; import config.YamlConfig; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; /** * @@ -32,7 +32,7 @@ import tools.data.input.SeekableLittleEndianAccessor; */ public final class OpenFamilyHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { if(!YamlConfig.config.server.USE_FAMILY_SYSTEM) return; MapleCharacter chr = c.getPlayer(); c.sendPacket(PacketCreator.getFamilyInfo(chr.getFamilyEntry())); diff --git a/src/main/java/net/server/channel/handlers/OpenFamilyPedigreeHandler.java b/src/main/java/net/server/channel/handlers/OpenFamilyPedigreeHandler.java index eb3c02de09..99feadeaba 100644 --- a/src/main/java/net/server/channel/handlers/OpenFamilyPedigreeHandler.java +++ b/src/main/java/net/server/channel/handlers/OpenFamilyPedigreeHandler.java @@ -23,8 +23,8 @@ import client.MapleCharacter; import client.MapleClient; import config.YamlConfig; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; /** * @@ -32,9 +32,9 @@ import tools.data.input.SeekableLittleEndianAccessor; */ public final class OpenFamilyPedigreeHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { if(!YamlConfig.config.server.USE_FAMILY_SYSTEM) return; - MapleCharacter target = c.getChannelServer().getPlayerStorage().getCharacterByName(slea.readMapleAsciiString()); + MapleCharacter target = c.getChannelServer().getPlayerStorage().getCharacterByName(p.readString()); if(target != null && target.getFamily() != null) { c.sendPacket(PacketCreator.showPedigree(target.getFamilyEntry())); } diff --git a/src/main/java/net/server/channel/handlers/OwlWarpHandler.java b/src/main/java/net/server/channel/handlers/OwlWarpHandler.java index 587ecb8dde..6600d7e921 100644 --- a/src/main/java/net/server/channel/handlers/OwlWarpHandler.java +++ b/src/main/java/net/server/channel/handlers/OwlWarpHandler.java @@ -22,10 +22,10 @@ package net.server.channel.handlers; import client.MapleClient; import constants.game.GameConstants; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import server.maps.MapleHiredMerchant; import server.maps.MaplePlayerShop; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; /* * @author Ronan @@ -33,9 +33,9 @@ import tools.data.input.SeekableLittleEndianAccessor; public final class OwlWarpHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - int ownerid = slea.readInt(); - int mapid = slea.readInt(); + public final void handlePacket(InPacket p, MapleClient c) { + int ownerid = p.readInt(); + int mapid = p.readInt(); if(ownerid == c.getPlayer().getId()) { c.sendPacket(PacketCreator.serverNotice(1, "You cannot visit your own shop.")); diff --git a/src/main/java/net/server/channel/handlers/PartyOperationHandler.java b/src/main/java/net/server/channel/handlers/PartyOperationHandler.java index 443dd9b107..9653b72883 100644 --- a/src/main/java/net/server/channel/handlers/PartyOperationHandler.java +++ b/src/main/java/net/server/channel/handlers/PartyOperationHandler.java @@ -25,6 +25,7 @@ import client.MapleCharacter; import client.MapleClient; import config.YamlConfig; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import net.server.coordinator.world.MapleInviteCoordinator; import net.server.coordinator.world.MapleInviteCoordinator.InviteResult; import net.server.coordinator.world.MapleInviteCoordinator.InviteType; @@ -34,15 +35,14 @@ import net.server.world.MaplePartyCharacter; import net.server.world.PartyOperation; import net.server.world.World; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; import java.util.List; public final class PartyOperationHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - int operation = slea.readByte(); + public final void handlePacket(InPacket p, MapleClient c) { + int operation = p.readByte(); MapleCharacter player = c.getPlayer(); World world = c.getWorldServer(); MapleParty party = player.getParty(); @@ -62,7 +62,7 @@ public final class PartyOperationHandler extends AbstractMaplePacketHandler { break; } case 3: { // join - int partyid = slea.readInt(); + int partyid = p.readInt(); MapleInviteResult inviteRes = MapleInviteCoordinator.answerInvite(InviteType.PARTY, player.getId(), partyid, true); InviteResult res = inviteRes.result; @@ -74,7 +74,7 @@ public final class PartyOperationHandler extends AbstractMaplePacketHandler { break; } case 4: { // invite - String name = slea.readMapleAsciiString(); + String name = p.readString(); MapleCharacter invited = world.getPlayerStorage().getCharacterByName(name); if (invited != null) { if(invited.getLevel() < 10 && (!YamlConfig.config.server.USE_PARTY_FOR_STARTERS || player.getLevel() >= 10)) { //min requirement is level 10 @@ -112,12 +112,12 @@ public final class PartyOperationHandler extends AbstractMaplePacketHandler { break; } case 5: { // expel - int cid = slea.readInt(); + int cid = p.readInt(); MapleParty.expelFromParty(party, c, cid); break; } case 6: { // change leader - int newLeader = slea.readInt(); + int newLeader = p.readInt(); MaplePartyCharacter newLeadr = party.getMemberById(newLeader); world.updateParty(party.getId(), PartyOperation.CHANGE_LEADER, newLeadr); break; diff --git a/src/main/java/net/server/channel/handlers/PartySearchRegisterHandler.java b/src/main/java/net/server/channel/handlers/PartySearchRegisterHandler.java index e0f3f57030..5807bec4ae 100644 --- a/src/main/java/net/server/channel/handlers/PartySearchRegisterHandler.java +++ b/src/main/java/net/server/channel/handlers/PartySearchRegisterHandler.java @@ -22,7 +22,7 @@ package net.server.channel.handlers; import net.AbstractMaplePacketHandler; -import tools.data.input.SeekableLittleEndianAccessor; +import net.packet.InPacket; import client.MapleClient; /** @@ -32,5 +32,5 @@ import client.MapleClient; public class PartySearchRegisterHandler extends AbstractMaplePacketHandler { @Override - public void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) {} + public void handlePacket(InPacket p, MapleClient c) {} } \ No newline at end of file diff --git a/src/main/java/net/server/channel/handlers/PartySearchStartHandler.java b/src/main/java/net/server/channel/handlers/PartySearchStartHandler.java index eb8c569e22..f302295109 100644 --- a/src/main/java/net/server/channel/handlers/PartySearchStartHandler.java +++ b/src/main/java/net/server/channel/handlers/PartySearchStartHandler.java @@ -24,10 +24,10 @@ package net.server.channel.handlers; import client.MapleCharacter; import client.MapleClient; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import net.server.world.MapleParty; import net.server.world.World; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; /** * @@ -37,9 +37,9 @@ import tools.data.input.SeekableLittleEndianAccessor; */ public class PartySearchStartHandler extends AbstractMaplePacketHandler { @Override - public void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - int min = slea.readInt(); - int max = slea.readInt(); + public void handlePacket(InPacket p, MapleClient c) { + int min = p.readInt(); + int max = p.readInt(); MapleCharacter chr = c.getPlayer(); if (min > max) { @@ -60,8 +60,8 @@ public class PartySearchStartHandler extends AbstractMaplePacketHandler { return; } - slea.readInt(); // members - int jobs = slea.readInt(); + p.readInt(); // members + int jobs = p.readInt(); MapleParty party = c.getPlayer().getParty(); if (party == null || !c.getPlayer().isPartyLeader()) return; diff --git a/src/main/java/net/server/channel/handlers/PartySearchUpdateHandler.java b/src/main/java/net/server/channel/handlers/PartySearchUpdateHandler.java index fb448c7f3d..42926cb956 100644 --- a/src/main/java/net/server/channel/handlers/PartySearchUpdateHandler.java +++ b/src/main/java/net/server/channel/handlers/PartySearchUpdateHandler.java @@ -23,12 +23,12 @@ package net.server.channel.handlers; import client.MapleClient; import net.AbstractMaplePacketHandler; -import tools.data.input.SeekableLittleEndianAccessor; +import net.packet.InPacket; public final class PartySearchUpdateHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { c.getWorldServer().getPartySearchCoordinator().unregisterPartyLeader(c.getPlayer()); } } \ No newline at end of file diff --git a/src/main/java/net/server/channel/handlers/PetAutoPotHandler.java b/src/main/java/net/server/channel/handlers/PetAutoPotHandler.java index 1e20797d52..7dbf99477a 100644 --- a/src/main/java/net/server/channel/handlers/PetAutoPotHandler.java +++ b/src/main/java/net/server/channel/handlers/PetAutoPotHandler.java @@ -25,19 +25,19 @@ import client.MapleCharacter; import client.MapleClient; import client.processor.action.PetAutopotProcessor; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import server.MapleItemInformationProvider; import server.MapleStatEffect; -import tools.data.input.SeekableLittleEndianAccessor; public final class PetAutoPotHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - slea.readByte(); - slea.readLong(); - slea.readInt(); - short slot = slea.readShort(); - int itemId = slea.readInt(); + public final void handlePacket(InPacket p, MapleClient c) { + p.readByte(); + p.readLong(); + p.readInt(); + short slot = p.readShort(); + int itemId = p.readInt(); MapleCharacter chr = c.getPlayer(); MapleStatEffect stat = MapleItemInformationProvider.getInstance().getItemEffect(itemId); diff --git a/src/main/java/net/server/channel/handlers/PetChatHandler.java b/src/main/java/net/server/channel/handlers/PetChatHandler.java index b2e13d74e5..a155735432 100644 --- a/src/main/java/net/server/channel/handlers/PetChatHandler.java +++ b/src/main/java/net/server/channel/handlers/PetChatHandler.java @@ -25,24 +25,24 @@ import client.MapleClient; import client.autoban.AutobanFactory; import config.YamlConfig; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import tools.FilePrinter; import tools.LogHelper; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; public final class PetChatHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - int petId = slea.readInt(); - slea.readInt(); - slea.readByte(); - int act = slea.readByte(); + public final void handlePacket(InPacket p, MapleClient c) { + int petId = p.readInt(); + p.readInt(); + p.readByte(); + int act = p.readByte(); byte pet = c.getPlayer().getPetIndex(petId); if ((pet < 0 || pet > 3) || (act < 0 || act > 9)) { return; } - String text = slea.readMapleAsciiString(); + String text = p.readString(); if (text.length() > Byte.MAX_VALUE) { AutobanFactory.PACKET_EDIT.alert(c.getPlayer(), c.getPlayer().getName() + " tried to packet edit with pets."); FilePrinter.printError(FilePrinter.EXPLOITS + c.getPlayer().getName() + ".txt", c.getPlayer().getName() + " tried to send text with length of " + text.length()); diff --git a/src/main/java/net/server/channel/handlers/PetCommandHandler.java b/src/main/java/net/server/channel/handlers/PetCommandHandler.java index d71ef7e748..7ed148273a 100644 --- a/src/main/java/net/server/channel/handlers/PetCommandHandler.java +++ b/src/main/java/net/server/channel/handlers/PetCommandHandler.java @@ -27,16 +27,16 @@ import client.inventory.MaplePet; import client.inventory.PetCommand; import client.inventory.PetDataFactory; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import tools.PacketCreator; import tools.Randomizer; -import tools.data.input.SeekableLittleEndianAccessor; public final class PetCommandHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { MapleCharacter chr = c.getPlayer(); - int petId = slea.readInt(); + int petId = p.readInt(); byte petIndex = chr.getPetIndex(petId); MaplePet pet; if (petIndex == -1) { @@ -44,9 +44,9 @@ public final class PetCommandHandler extends AbstractMaplePacketHandler { } else { pet = chr.getPet(petIndex); } - slea.readInt(); - slea.readByte(); - byte command = slea.readByte(); + p.readInt(); + p.readByte(); + byte command = p.readByte(); PetCommand petCommand = PetDataFactory.getPetCommand(pet.getItemId(), command); if (petCommand == null) { return; diff --git a/src/main/java/net/server/channel/handlers/PetExcludeItemsHandler.java b/src/main/java/net/server/channel/handlers/PetExcludeItemsHandler.java index 0b0fb48c44..64bb073e47 100644 --- a/src/main/java/net/server/channel/handlers/PetExcludeItemsHandler.java +++ b/src/main/java/net/server/channel/handlers/PetExcludeItemsHandler.java @@ -26,7 +26,7 @@ import client.MapleClient; import client.autoban.AutobanFactory; import client.inventory.MaplePet; import net.AbstractMaplePacketHandler; -import tools.data.input.SeekableLittleEndianAccessor; +import net.packet.InPacket; /** * @author BubblesDev @@ -35,9 +35,9 @@ import tools.data.input.SeekableLittleEndianAccessor; public final class PetExcludeItemsHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - final int petId = slea.readInt(); - slea.skip(4); // timestamp + public final void handlePacket(InPacket p, MapleClient c) { + final int petId = p.readInt(); + p.skip(4); // timestamp MapleCharacter chr = c.getPlayer(); byte petIndex = chr.getPetIndex(petId); @@ -49,9 +49,9 @@ public final class PetExcludeItemsHandler extends AbstractMaplePacketHandler { } chr.resetExcluded(petId); - byte amount = slea.readByte(); + byte amount = p.readByte(); for (int i = 0; i < amount; i++) { - int itemId = slea.readInt(); + int itemId = p.readInt(); if (itemId >= 0) { chr.addExcluded(petId, itemId); } else { diff --git a/src/main/java/net/server/channel/handlers/PetFoodHandler.java b/src/main/java/net/server/channel/handlers/PetFoodHandler.java index 8f16b27b59..6c1594b901 100644 --- a/src/main/java/net/server/channel/handlers/PetFoodHandler.java +++ b/src/main/java/net/server/channel/handlers/PetFoodHandler.java @@ -30,14 +30,14 @@ import client.inventory.MapleInventoryType; import client.inventory.MaplePet; import client.inventory.manipulator.MapleInventoryManipulator; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import net.server.Server; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; public final class PetFoodHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { MapleCharacter chr = c.getPlayer(); AutobanManager abm = chr.getAutobanManager(); if (abm.getLastSpam(2) + 500 > currentServerTime()) { @@ -45,7 +45,7 @@ public final class PetFoodHandler extends AbstractMaplePacketHandler { return; } abm.spam(2); - slea.readInt(); // timestamp issue detected thanks to Masterrulax + p.readInt(); // timestamp issue detected thanks to Masterrulax abm.setTimestamp(1, Server.getInstance().getCurrentTimestamp(), 3); if (chr.getNoPets() == 0) { c.sendPacket(PacketCreator.enableActions()); @@ -66,8 +66,8 @@ public final class PetFoodHandler extends AbstractMaplePacketHandler { MaplePet pet = chr.getPet(slot); if(pet == null) return; - short pos = slea.readShort(); - int itemId = slea.readInt(); + short pos = p.readShort(); + int itemId = p.readInt(); if (c.tryacquireClient()) { try { diff --git a/src/main/java/net/server/channel/handlers/PetLootHandler.java b/src/main/java/net/server/channel/handlers/PetLootHandler.java index e3cda96fcb..c00637060b 100644 --- a/src/main/java/net/server/channel/handlers/PetLootHandler.java +++ b/src/main/java/net/server/channel/handlers/PetLootHandler.java @@ -25,10 +25,10 @@ import client.MapleCharacter; import client.MapleClient; import client.inventory.MaplePet; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import server.maps.MapleMapItem; import server.maps.MapleMapObject; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; import java.util.Set; @@ -38,18 +38,18 @@ import java.util.Set; */ public final class PetLootHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { MapleCharacter chr = c.getPlayer(); - int petIndex = chr.getPetIndex(slea.readInt()); + int petIndex = chr.getPetIndex(p.readInt()); MaplePet pet = chr.getPet(petIndex); if (pet == null || !pet.isSummoned()) { c.sendPacket(PacketCreator.enableActions()); return; } - slea.skip(13); - int oid = slea.readInt(); + p.skip(13); + int oid = p.readInt(); MapleMapObject ob = chr.getMap().getMapObject(oid); try { MapleMapItem mapitem = (MapleMapItem) ob; diff --git a/src/main/java/net/server/channel/handlers/PlayerInteractionHandler.java b/src/main/java/net/server/channel/handlers/PlayerInteractionHandler.java index 373a23b320..65425b0880 100644 --- a/src/main/java/net/server/channel/handlers/PlayerInteractionHandler.java +++ b/src/main/java/net/server/channel/handlers/PlayerInteractionHandler.java @@ -33,13 +33,13 @@ import config.YamlConfig; import constants.game.GameConstants; import constants.inventory.ItemConstants; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import server.MapleItemInformationProvider; import server.MapleTrade; import server.maps.*; import server.maps.MapleMiniGame.MiniGameType; import tools.FilePrinter; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; import java.awt.*; import java.sql.SQLException; @@ -126,14 +126,14 @@ public final class PlayerInteractionHandler extends AbstractMaplePacketHandler { } @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { if (!c.tryacquireClient()) { // thanks GabrielSin for pointing dupes within player interactions c.sendPacket(PacketCreator.enableActions()); return; } try { - byte mode = slea.readByte(); + byte mode = p.readByte(); final MapleCharacter chr = c.getPlayer(); if (mode == Action.CREATE.getCode()) { @@ -142,7 +142,7 @@ public final class PlayerInteractionHandler extends AbstractMaplePacketHandler { return; } - byte createType = slea.readByte(); + byte createType = p.readByte(); if (createType == 3) { // trade MapleTrade.startTrade(chr); } else if (createType == 1) { // omok mini game @@ -152,16 +152,16 @@ public final class PlayerInteractionHandler extends AbstractMaplePacketHandler { return; } - String desc = slea.readMapleAsciiString(); + String desc = p.readString(); String pw; - if (slea.readByte() != 0) { - pw = slea.readMapleAsciiString(); + if (p.readByte() != 0) { + pw = p.readString(); } else { pw = ""; } - int type = slea.readByte(); + int type = p.readByte(); if (type > 11) { type = 11; } else if (type < 0) { @@ -186,16 +186,16 @@ public final class PlayerInteractionHandler extends AbstractMaplePacketHandler { return; } - String desc = slea.readMapleAsciiString(); + String desc = p.readString(); String pw; - if (slea.readByte() != 0) { - pw = slea.readMapleAsciiString(); + if (p.readByte() != 0) { + pw = p.readString(); } else { pw = ""; } - int type = slea.readByte(); + int type = p.readByte(); if (type > 2) { type = 2; } else if (type < 0) { @@ -236,9 +236,9 @@ public final class PlayerInteractionHandler extends AbstractMaplePacketHandler { return; } - String desc = slea.readMapleAsciiString(); - slea.skip(3); - int itemId = slea.readInt(); + String desc = p.readString(); + p.skip(3); + int itemId = p.readInt(); if (chr.getInventory(MapleInventoryType.CASH).countById(itemId) < 1) { chr.sendPacket(PacketCreator.getMiniRoomError(6)); return; @@ -260,7 +260,7 @@ public final class PlayerInteractionHandler extends AbstractMaplePacketHandler { } } } else if (mode == Action.INVITE.getCode()) { - int otherCid = slea.readInt(); + int otherCid = p.readInt(); MapleCharacter other = chr.getMap().getCharacterById(otherCid); if (other == null || chr.getId() == other.getId()) { return; @@ -280,14 +280,14 @@ public final class PlayerInteractionHandler extends AbstractMaplePacketHandler { } else { if (isTradeOpen(chr)) return; - int oid = slea.readInt(); + int oid = p.readInt(); MapleMapObject ob = chr.getMap().getMapObject(oid); if (ob instanceof MaplePlayerShop) { MaplePlayerShop shop = (MaplePlayerShop) ob; shop.visitShop(chr); } else if (ob instanceof MapleMiniGame) { - slea.skip(1); - String pw = slea.available() > 1 ? slea.readMapleAsciiString() : ""; + p.skip(1); + String pw = p.available() > 1 ? p.readString() : ""; MapleMiniGame game = (MapleMiniGame) ob; if(game.checkPassword(pw)) { @@ -316,19 +316,19 @@ public final class PlayerInteractionHandler extends AbstractMaplePacketHandler { } else if (mode == Action.CHAT.getCode()) { // chat lol MapleHiredMerchant merchant = chr.getHiredMerchant(); if (chr.getTrade() != null) { - chr.getTrade().chat(slea.readMapleAsciiString()); + chr.getTrade().chat(p.readString()); } else if (chr.getPlayerShop() != null) { //mini game MaplePlayerShop shop = chr.getPlayerShop(); if (shop != null) { - shop.chat(c, slea.readMapleAsciiString()); + shop.chat(c, p.readString()); } } else if (chr.getMiniGame() != null) { MapleMiniGame game = chr.getMiniGame(); if (game != null) { - game.chat(c, slea.readMapleAsciiString()); + game.chat(c, p.readString()); } } else if (merchant != null) { - merchant.sendMessage(chr, slea.readMapleAsciiString()); + merchant.sendMessage(chr, p.readString()); } } else if (mode == Action.EXIT.getCode()) { if (chr.getTrade() != null) { @@ -342,10 +342,10 @@ public final class PlayerInteractionHandler extends AbstractMaplePacketHandler { if (isTradeOpen(chr)) return; if (mode == Action.OPEN_STORE.getCode()) { - slea.readByte(); //01 + p.readByte(); //01 } else { - slea.readShort(); - int birthday = slea.readInt(); + p.readShort(); + int birthday = p.readInt(); if (!CashOperationHandler.checkBirthday(c, birthday)) { // birthday check here found thanks to lucasziron c.sendPacket(PacketCreator.serverNotice(1, "Please check again the birthday date.")); return; @@ -420,7 +420,7 @@ public final class PlayerInteractionHandler extends AbstractMaplePacketHandler { } } else if (mode == Action.ANSWER_TIE.getCode()) { MapleMiniGame game = chr.getMiniGame(); - if (slea.readByte() != 0) { + if (p.readByte() != 0) { game.minigameMatchDraw(); } else { game.denyTie(chr); @@ -439,13 +439,13 @@ public final class PlayerInteractionHandler extends AbstractMaplePacketHandler { game.broadcast(PacketCreator.getMiniGameSkipVisitor(game)); } } else if (mode == Action.MOVE_OMOK.getCode()) { - int x = slea.readInt(); // x point - int y = slea.readInt(); // y point - int type = slea.readByte(); // piece ( 1 or 2; Owner has one piece, visitor has another, it switches every game.) + int x = p.readInt(); // x point + int y = p.readInt(); // y point + int type = p.readByte(); // piece ( 1 or 2; Owner has one piece, visitor has another, it switches every game.) chr.getMiniGame().setPiece(x, y, type, chr); } else if (mode == Action.SELECT_CARD.getCode()) { - int turn = slea.readByte(); // 1st turn = 1; 2nd turn = 0 - int slot = slea.readByte(); // slot + int turn = p.readByte(); // 1st turn = 1; 2nd turn = 0 + int slot = p.readByte(); // slot MapleMiniGame game = chr.getMiniGame(); int firstslot = game.getFirstSlot(); if (turn == 1) { @@ -469,14 +469,14 @@ public final class PlayerInteractionHandler extends AbstractMaplePacketHandler { game.broadcast(PacketCreator.getMatchCardSelect(game, turn, slot, firstslot, 1)); } } else if (mode == Action.SET_MESO.getCode()) { - chr.getTrade().setMeso(slea.readInt()); + chr.getTrade().setMeso(p.readInt()); } else if (mode == Action.SET_ITEMS.getCode()) { MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); - MapleInventoryType ivType = MapleInventoryType.getByType(slea.readByte()); - short pos = slea.readShort(); + MapleInventoryType ivType = MapleInventoryType.getByType(p.readByte()); + short pos = p.readShort(); Item item = chr.getInventory(ivType).getItem(pos); - short quantity = slea.readShort(); - byte targetSlot = slea.readByte(); + short quantity = p.readShort(); + byte targetSlot = p.readByte(); if (targetSlot < 1 || targetSlot > 9) { System.out.println("[Hack] " + chr.getName() + " Trying to dupe on trade slot."); @@ -556,9 +556,9 @@ public final class PlayerInteractionHandler extends AbstractMaplePacketHandler { } else if (mode == Action.ADD_ITEM.getCode() || mode == Action.PUT_ITEM.getCode()) { if (isTradeOpen(chr)) return; - MapleInventoryType ivType = MapleInventoryType.getByType(slea.readByte()); - short slot = slea.readShort(); - short bundles = slea.readShort(); + MapleInventoryType ivType = MapleInventoryType.getByType(p.readByte()); + short slot = p.readShort(); + short bundles = p.readShort(); Item ivItem = chr.getInventory(ivType).getItem(slot); if (ivItem == null || ivItem.isUntradeable()) { @@ -576,7 +576,7 @@ public final class PlayerInteractionHandler extends AbstractMaplePacketHandler { return; } - short perBundle = slea.readShort(); + short perBundle = p.readShort(); if (ItemConstants.isRechargeable(ivItem.getItemId())) { perBundle = 1; @@ -587,7 +587,7 @@ public final class PlayerInteractionHandler extends AbstractMaplePacketHandler { return; } - int price = slea.readInt(); + int price = p.readInt(); if (perBundle <= 0 || perBundle * bundles > 2000 || bundles <= 0 || price <= 0 || price > Integer.MAX_VALUE) { AutobanFactory.PACKET_EDIT.alert(chr, chr.getName() + " tried to packet edit with hired merchants."); FilePrinter.printError(FilePrinter.EXPLOITS + chr.getName() + ".txt", chr.getName() + " might of possibly packet edited Hired Merchants\nperBundle: " + perBundle + "\nperBundle * bundles (This multiplied cannot be greater than 2000): " + perBundle * bundles + "\nbundles: " + bundles + "\nprice: " + price); @@ -656,7 +656,7 @@ public final class PlayerInteractionHandler extends AbstractMaplePacketHandler { return; } - int slot = slea.readShort(); + int slot = p.readShort(); if (slot >= shop.getItems().size() || slot < 0) { AutobanFactory.PACKET_EDIT.alert(chr, chr.getName() + " tried to packet edit with a player shop."); FilePrinter.printError(FilePrinter.EXPLOITS + chr.getName() + ".txt", chr.getName() + " tried to remove item at slot " + slot); @@ -687,8 +687,8 @@ public final class PlayerInteractionHandler extends AbstractMaplePacketHandler { } else if (mode == Action.BUY.getCode() || mode == Action.MERCHANT_BUY.getCode()) { if (isTradeOpen(chr)) return; - int itemid = slea.readByte(); - short quantity = slea.readShort(); + int itemid = p.readByte(); + short quantity = p.readShort(); if (quantity < 1) { AutobanFactory.PACKET_EDIT.alert(chr, chr.getName() + " tried to packet edit with a hired merchant and or player shop."); FilePrinter.printError(FilePrinter.EXPLOITS + chr.getName() + ".txt", chr.getName() + " tried to buy item " + itemid + " with quantity " + quantity); @@ -715,7 +715,7 @@ public final class PlayerInteractionHandler extends AbstractMaplePacketHandler { return; } - int slot = slea.readShort(); + int slot = p.readShort(); if (slot >= merchant.getItems().size() || slot < 0) { AutobanFactory.PACKET_EDIT.alert(chr, chr.getName() + " tried to packet edit with a hired merchant."); FilePrinter.printError(FilePrinter.EXPLOITS + chr.getName() + ".txt", chr.getName() + " tried to remove item at slot " + slot); @@ -751,11 +751,11 @@ public final class PlayerInteractionHandler extends AbstractMaplePacketHandler { chr.setHiredMerchant(null); c.sendPacket(PacketCreator.enableActions()); } else if (mode == Action.BAN_PLAYER.getCode()) { - slea.skip(1); + p.skip(1); MaplePlayerShop shop = chr.getPlayerShop(); if (shop != null && shop.isOwner(chr)) { - shop.banPlayer(slea.readMapleAsciiString()); + shop.banPlayer(p.readString()); } } else if (mode == Action.EXPEL.getCode()) { MapleMiniGame miniGame = chr.getMiniGame(); diff --git a/src/main/java/net/server/channel/handlers/PlayerLoggedinHandler.java b/src/main/java/net/server/channel/handlers/PlayerLoggedinHandler.java index bff68265fd..7a82e12622 100644 --- a/src/main/java/net/server/channel/handlers/PlayerLoggedinHandler.java +++ b/src/main/java/net/server/channel/handlers/PlayerLoggedinHandler.java @@ -27,6 +27,7 @@ import client.keybind.MapleKeyBinding; import config.YamlConfig; import constants.game.GameConstants; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import net.server.PlayerBuffValueHolder; import net.server.Server; import net.server.channel.Channel; @@ -46,7 +47,6 @@ import tools.DatabaseConnection; import tools.FilePrinter; import tools.PacketCreator; import tools.Pair; -import tools.data.input.SeekableLittleEndianAccessor; import tools.packets.WeddingPackets; import java.sql.Connection; @@ -84,8 +84,8 @@ public final class PlayerLoggedinHandler extends AbstractMaplePacketHandler { } @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - final int cid = slea.readInt(); // TODO: investigate if this is the "client id" supplied in PacketCreator#getServerIP() + public final void handlePacket(InPacket p, MapleClient c) { + final int cid = p.readInt(); // TODO: investigate if this is the "client id" supplied in PacketCreator#getServerIP() final Server server = Server.getInstance(); if (!c.tryacquireClient()) { diff --git a/src/main/java/net/server/channel/handlers/PlayerMapTransitionHandler.java b/src/main/java/net/server/channel/handlers/PlayerMapTransitionHandler.java index 9e1fed873e..2e6facb4c1 100644 --- a/src/main/java/net/server/channel/handlers/PlayerMapTransitionHandler.java +++ b/src/main/java/net/server/channel/handlers/PlayerMapTransitionHandler.java @@ -24,11 +24,11 @@ import client.MapleBuffStat; import client.MapleCharacter; import client.MapleClient; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import server.life.MapleMonster; import server.maps.MapleMapObject; import tools.PacketCreator; import tools.Pair; -import tools.data.input.SeekableLittleEndianAccessor; import java.util.Collections; import java.util.List; @@ -40,7 +40,7 @@ import java.util.List; public final class PlayerMapTransitionHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { MapleCharacter chr = c.getPlayer(); chr.setMapTransitionComplete(); diff --git a/src/main/java/net/server/channel/handlers/QuestActionHandler.java b/src/main/java/net/server/channel/handlers/QuestActionHandler.java index a35b2a0239..48cb29affe 100644 --- a/src/main/java/net/server/channel/handlers/QuestActionHandler.java +++ b/src/main/java/net/server/channel/handlers/QuestActionHandler.java @@ -25,6 +25,7 @@ import java.awt.Point; import client.MapleCharacter; import client.MapleClient; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import scripting.quest.QuestScriptManager; import server.quest.MapleQuest; import server.life.MapleNPC; @@ -37,12 +38,12 @@ import tools.data.input.SeekableLittleEndianAccessor; public final class QuestActionHandler extends AbstractMaplePacketHandler { // isNpcNearby thanks to GabrielSin - private static boolean isNpcNearby(SeekableLittleEndianAccessor slea, MapleCharacter player, MapleQuest quest, int npcId) { + private static boolean isNpcNearby(InPacket p, MapleCharacter player, MapleQuest quest, int npcId) { Point playerP; Point pos = player.getPosition(); - if(slea.available() >= 4) { - playerP = new Point(slea.readShort(), slea.readShort()); + if(p.available() >= 4) { + playerP = new Point(p.readShort(), p.readShort()); if (playerP.distance(pos) > 1000) { // thanks Darter (YungMoozi) for reporting unchecked player position playerP = pos; } @@ -67,19 +68,19 @@ public final class QuestActionHandler extends AbstractMaplePacketHandler { } @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - byte action = slea.readByte(); - short questid = slea.readShort(); + public final void handlePacket(InPacket p, MapleClient c) { + byte action = p.readByte(); + short questid = p.readShort(); MapleCharacter player = c.getPlayer(); MapleQuest quest = MapleQuest.getInstance(questid); if (action == 0) { // Restore lost item, Credits Darter ( Rajan ) - slea.readInt(); - int itemid = slea.readInt(); + p.readInt(); + int itemid = p.readInt(); quest.restoreLostItem(player, itemid); } else if (action == 1) { //Start Quest - int npc = slea.readInt(); - if(!isNpcNearby(slea, player, quest, npc)) { + int npc = p.readInt(); + if(!isNpcNearby(p, player, quest, npc)) { return; } @@ -87,14 +88,14 @@ public final class QuestActionHandler extends AbstractMaplePacketHandler { quest.start(player, npc); } } else if (action == 2) { // Complete Quest - int npc = slea.readInt(); - if(!isNpcNearby(slea, player, quest, npc)) { + int npc = p.readInt(); + if(!isNpcNearby(p, player, quest, npc)) { return; } if(quest.canComplete(player, npc)) { - if (slea.available() >= 2) { - int selection = slea.readShort(); + if (p.available() >= 2) { + int selection = p.readShort(); quest.complete(player, npc, selection); } else { quest.complete(player, npc); @@ -103,8 +104,8 @@ public final class QuestActionHandler extends AbstractMaplePacketHandler { } else if (action == 3) {// forfeit quest quest.forfeit(player); } else if (action == 4) { // scripted start quest - int npc = slea.readInt(); - if(!isNpcNearby(slea, player, quest, npc)) { + int npc = p.readInt(); + if(!isNpcNearby(p, player, quest, npc)) { return; } @@ -112,8 +113,8 @@ public final class QuestActionHandler extends AbstractMaplePacketHandler { QuestScriptManager.getInstance().start(c, questid, npc); } } else if (action == 5) { // scripted end quests - int npc = slea.readInt(); - if(!isNpcNearby(slea, player, quest, npc)) { + int npc = p.readInt(); + if(!isNpcNearby(p, player, quest, npc)) { return; } diff --git a/src/main/java/net/server/channel/handlers/QuickslotKeyMappedModifiedHandler.java b/src/main/java/net/server/channel/handlers/QuickslotKeyMappedModifiedHandler.java index 74f3f5d64f..256417f65d 100644 --- a/src/main/java/net/server/channel/handlers/QuickslotKeyMappedModifiedHandler.java +++ b/src/main/java/net/server/channel/handlers/QuickslotKeyMappedModifiedHandler.java @@ -3,7 +3,7 @@ package net.server.channel.handlers; import client.MapleClient; import client.keybind.MapleQuickslotBinding; import net.AbstractMaplePacketHandler; -import tools.data.input.SeekableLittleEndianAccessor; +import net.packet.InPacket; /** * @@ -12,10 +12,10 @@ import tools.data.input.SeekableLittleEndianAccessor; public class QuickslotKeyMappedModifiedHandler extends AbstractMaplePacketHandler { @Override - public void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) + public void handlePacket(InPacket p, MapleClient c) { // Invalid size for the packet. - if(slea.available() != MapleQuickslotBinding.QUICKSLOT_SIZE * Integer.BYTES || + if(p.available() != MapleQuickslotBinding.QUICKSLOT_SIZE * Integer.BYTES || // not logged in-game c.getPlayer() == null) { @@ -26,7 +26,7 @@ public class QuickslotKeyMappedModifiedHandler extends AbstractMaplePacketHandle for(int i = 0; i < MapleQuickslotBinding.QUICKSLOT_SIZE; i++) { - aQuickslotKeyMapped[i] = (byte) slea.readInt(); + aQuickslotKeyMapped[i] = (byte) p.readInt(); } c.getPlayer().changeQuickslotKeybinding(aQuickslotKeyMapped); diff --git a/src/main/java/net/server/channel/handlers/RPSActionHandler.java b/src/main/java/net/server/channel/handlers/RPSActionHandler.java index 8ff86854a6..f6d8c67086 100644 --- a/src/main/java/net/server/channel/handlers/RPSActionHandler.java +++ b/src/main/java/net/server/channel/handlers/RPSActionHandler.java @@ -3,9 +3,9 @@ package net.server.channel.handlers; import client.MapleCharacter; import client.MapleClient; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import server.minigame.MapleRockPaperScissor; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; /** * @Author Arnah @@ -15,19 +15,19 @@ import tools.data.input.SeekableLittleEndianAccessor; public final class RPSActionHandler extends AbstractMaplePacketHandler{ @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c){ + public final void handlePacket(InPacket p, MapleClient c){ MapleCharacter chr = c.getPlayer(); MapleRockPaperScissor rps = chr.getRPS(); if (c.tryacquireClient()) { try { - if(slea.available() == 0 || !chr.getMap().containsNPC(9000019)){ + if(p.available() == 0 || !chr.getMap().containsNPC(9000019)){ if(rps != null){ rps.dispose(c); } return; } - final byte mode = slea.readByte(); + final byte mode = p.readByte(); switch (mode){ case 0: // start game case 5: // retry @@ -41,7 +41,7 @@ public final class RPSActionHandler extends AbstractMaplePacketHandler{ } break; case 1: // answer - if(rps == null || !rps.answer(c, slea.readByte())){ + if(rps == null || !rps.answer(c, p.readByte())){ c.sendPacket(PacketCreator.rpsMode((byte) 0x0D));// 13 } break; diff --git a/src/main/java/net/server/channel/handlers/RaiseIncExpHandler.java b/src/main/java/net/server/channel/handlers/RaiseIncExpHandler.java index aaf4f237dd..ff2cc381f5 100644 --- a/src/main/java/net/server/channel/handlers/RaiseIncExpHandler.java +++ b/src/main/java/net/server/channel/handlers/RaiseIncExpHandler.java @@ -7,11 +7,11 @@ import client.inventory.MapleInventory; import client.inventory.MapleInventoryType; import client.inventory.manipulator.MapleInventoryManipulator; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import server.MapleItemInformationProvider; import server.MapleItemInformationProvider.QuestConsItem; import server.quest.MapleQuest; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; import java.util.Map; @@ -23,10 +23,10 @@ import java.util.Map; public class RaiseIncExpHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - byte inventorytype = slea.readByte();//nItemIT - short slot = slea.readShort();//nSlotPosition - int itemid = slea.readInt();//nItemID + public final void handlePacket(InPacket p, MapleClient c) { + byte inventorytype = p.readByte();//nItemIT + short slot = p.readShort();//nSlotPosition + int itemid = p.readInt();//nItemID if (c.tryacquireClient()) { try { diff --git a/src/main/java/net/server/channel/handlers/RaiseUIStateHandler.java b/src/main/java/net/server/channel/handlers/RaiseUIStateHandler.java index 287de88347..e1898b696a 100644 --- a/src/main/java/net/server/channel/handlers/RaiseUIStateHandler.java +++ b/src/main/java/net/server/channel/handlers/RaiseUIStateHandler.java @@ -5,9 +5,9 @@ import client.MapleCharacter; import client.MapleClient; import client.MapleQuestStatus; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import scripting.quest.QuestScriptManager; import server.quest.MapleQuest; -import tools.data.input.SeekableLittleEndianAccessor; /** * @@ -16,8 +16,8 @@ import tools.data.input.SeekableLittleEndianAccessor; public class RaiseUIStateHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - int infoNumber = slea.readShort(); + public final void handlePacket(InPacket p, MapleClient c) { + int infoNumber = p.readShort(); if (c.tryacquireClient()) { try { diff --git a/src/main/java/net/server/channel/handlers/RangedAttackHandler.java b/src/main/java/net/server/channel/handlers/RangedAttackHandler.java index b61c193f16..231928b404 100644 --- a/src/main/java/net/server/channel/handlers/RangedAttackHandler.java +++ b/src/main/java/net/server/channel/handlers/RangedAttackHandler.java @@ -31,18 +31,18 @@ import config.YamlConfig; import constants.game.GameConstants; import constants.inventory.ItemConstants; import constants.skills.*; +import net.packet.InPacket; import net.packet.Packet; import server.MapleItemInformationProvider; import server.MapleStatEffect; import tools.PacketCreator; import tools.Randomizer; -import tools.data.input.SeekableLittleEndianAccessor; public final class RangedAttackHandler extends AbstractDealDamageHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { MapleCharacter chr = c.getPlayer(); /*long timeElapsed = currentServerTime() - chr.getAutobanManager().getLastSpam(8); @@ -51,7 +51,7 @@ public final class RangedAttackHandler extends AbstractDealDamageHandler { } chr.getAutobanManager().spam(8);*/ - AttackInfo attack = parseDamage(slea, chr, true, false); + AttackInfo attack = parseDamage(p, chr, true, false); if (chr.getBuffEffect(MapleBuffStat.MORPH) != null) { if(chr.getBuffEffect(MapleBuffStat.MORPH).isMorphWithoutAttack()) { diff --git a/src/main/java/net/server/channel/handlers/ReactorHitHandler.java b/src/main/java/net/server/channel/handlers/ReactorHitHandler.java index 33ceb3e3b2..91fdc2ac2b 100644 --- a/src/main/java/net/server/channel/handlers/ReactorHitHandler.java +++ b/src/main/java/net/server/channel/handlers/ReactorHitHandler.java @@ -23,23 +23,23 @@ package net.server.channel.handlers; import client.MapleClient; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import server.maps.MapleReactor; -import tools.data.input.SeekableLittleEndianAccessor; /** * @author Lerk */ public final class ReactorHitHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { //System.out.println(slea); //To see if there are any differences with packets //CD 00 6B 00 00 00 01 00 00 00 03 00 00 00 20 03 F7 03 00 00 //[CD 00] [66 00 00 00] [00 00 00 00] [02 00] [00 00 19 01] [00 00 00 00] - int oid = slea.readInt(); - int charPos = slea.readInt(); - short stance = slea.readShort(); - slea.skip(4); - int skillid = slea.readInt(); + int oid = p.readInt(); + int charPos = p.readInt(); + short stance = p.readShort(); + p.skip(4); + int skillid = p.readInt(); MapleReactor reactor = c.getPlayer().getMap().getReactorByOid(oid); if (reactor != null) { reactor.hitReactor(true, charPos, stance, skillid, c); diff --git a/src/main/java/net/server/channel/handlers/RemoteGachaponHandler.java b/src/main/java/net/server/channel/handlers/RemoteGachaponHandler.java index e06eb3704f..fc5fb2647f 100644 --- a/src/main/java/net/server/channel/handlers/RemoteGachaponHandler.java +++ b/src/main/java/net/server/channel/handlers/RemoteGachaponHandler.java @@ -25,8 +25,8 @@ import client.MapleClient; import client.autoban.AutobanFactory; import constants.inventory.ItemConstants; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import scripting.npc.NPCScriptManager; -import tools.data.input.SeekableLittleEndianAccessor; /** * @@ -34,9 +34,9 @@ import tools.data.input.SeekableLittleEndianAccessor; */ public final class RemoteGachaponHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - int ticket = slea.readInt(); - int gacha = slea.readInt(); + public final void handlePacket(InPacket p, MapleClient c) { + int ticket = p.readInt(); + int gacha = p.readInt(); if (ticket != 5451000){ AutobanFactory.GENERAL.alert(c.getPlayer(), " Tried to use RemoteGachaponHandler with item id: " + ticket); c.disconnect(false, false); diff --git a/src/main/java/net/server/channel/handlers/RemoteStoreHandler.java b/src/main/java/net/server/channel/handlers/RemoteStoreHandler.java index bda4500775..cdf12ce72c 100644 --- a/src/main/java/net/server/channel/handlers/RemoteStoreHandler.java +++ b/src/main/java/net/server/channel/handlers/RemoteStoreHandler.java @@ -25,9 +25,9 @@ package net.server.channel.handlers; import client.MapleCharacter; import client.MapleClient; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import server.maps.MapleHiredMerchant; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; /** * @@ -35,7 +35,7 @@ import tools.data.input.SeekableLittleEndianAccessor; */ public class RemoteStoreHandler extends AbstractMaplePacketHandler { @Override - public void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public void handlePacket(InPacket p, MapleClient c) { MapleCharacter chr = c.getPlayer(); MapleHiredMerchant hm = getMerchant(c); if (hm != null && hm.isOwner(chr)) { diff --git a/src/main/java/net/server/channel/handlers/ReportHandler.java b/src/main/java/net/server/channel/handlers/ReportHandler.java index 3d4a1635c4..401a76ca12 100644 --- a/src/main/java/net/server/channel/handlers/ReportHandler.java +++ b/src/main/java/net/server/channel/handlers/ReportHandler.java @@ -24,10 +24,10 @@ package net.server.channel.handlers; import client.MapleCharacter; import client.MapleClient; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import net.server.Server; import tools.DatabaseConnection; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; import java.sql.Connection; import java.sql.PreparedStatement; @@ -40,11 +40,11 @@ import java.util.Calendar; * @author BubblesDev */ public final class ReportHandler extends AbstractMaplePacketHandler { - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - int type = slea.readByte(); //01 = Conversation claim 00 = illegal program - String victim = slea.readMapleAsciiString(); - int reason = slea.readByte(); - String description = slea.readMapleAsciiString(); + public final void handlePacket(InPacket p, MapleClient c) { + int type = p.readByte(); //01 = Conversation claim 00 = illegal program + String victim = p.readString(); + int reason = p.readByte(); + String description = p.readString(); if (type == 0) { if (c.getPlayer().getPossibleReports() > 0) { if (c.getPlayer().getMeso() > 299) { @@ -61,7 +61,7 @@ public final class ReportHandler extends AbstractMaplePacketHandler { Server.getInstance().broadcastGMMessage(c.getWorld(), PacketCreator.serverNotice(6, victim + " was reported for: " + description)); addReport(c.getPlayer().getId(), MapleCharacter.getIdByName(victim), 0, description, null); } else if (type == 1) { - String chatlog = slea.readMapleAsciiString(); + String chatlog = p.readString(); if (chatlog == null) { return; } diff --git a/src/main/java/net/server/channel/handlers/RingActionHandler.java b/src/main/java/net/server/channel/handlers/RingActionHandler.java index f2e9a5d0ef..38fce5153c 100644 --- a/src/main/java/net/server/channel/handlers/RingActionHandler.java +++ b/src/main/java/net/server/channel/handlers/RingActionHandler.java @@ -30,6 +30,7 @@ import client.inventory.MapleInventoryType; import client.inventory.manipulator.MapleInventoryManipulator; import client.processor.npc.DueyProcessor; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import net.server.channel.Channel; import net.server.world.World; import scripting.event.EventInstanceManager; @@ -37,7 +38,6 @@ import server.MapleItemInformationProvider; import tools.DatabaseConnection; import tools.PacketCreator; import tools.Pair; -import tools.data.input.SeekableLittleEndianAccessor; import tools.packets.WeddingPackets; import java.sql.Connection; @@ -291,13 +291,13 @@ public final class RingActionHandler extends AbstractMaplePacketHandler { } @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - byte mode = slea.readByte(); + public final void handlePacket(InPacket p, MapleClient c) { + byte mode = p.readByte(); String name; byte slot; switch(mode) { case 0: // Send Proposal - sendEngageProposal(c, slea.readMapleAsciiString(), slea.readInt()); + sendEngageProposal(c, p.readString(), p.readInt()); break; case 1: // Cancel Proposal @@ -307,9 +307,9 @@ public final class RingActionHandler extends AbstractMaplePacketHandler { break; case 2: // Accept/Deny Proposal - final boolean accepted = slea.readByte() > 0; - name = slea.readMapleAsciiString(); - final int id = slea.readInt(); + final boolean accepted = p.readByte() > 0; + name = p.readString(); + final int id = p.readInt(); final MapleCharacter source = c.getWorldServer().getPlayerStorage().getCharacterByName(name); final MapleCharacter target = c.getPlayer(); @@ -362,13 +362,13 @@ public final class RingActionHandler extends AbstractMaplePacketHandler { break; case 3: // Break Engagement - breakMarriageRing(c.getPlayer(), slea.readInt()); + breakMarriageRing(c.getPlayer(), p.readInt()); break; case 5: // Invite %s to Wedding - name = slea.readMapleAsciiString(); - int marriageId = slea.readInt(); - slot = slea.readByte(); // this is an int + name = p.readString(); + int marriageId = p.readInt(); + slot = p.readByte(); // this is an int int itemId; try { @@ -438,8 +438,8 @@ public final class RingActionHandler extends AbstractMaplePacketHandler { break; case 6: // Open Wedding Invitation - slot = (byte) slea.readInt(); - int invitationid = slea.readInt(); + slot = (byte) p.readInt(); + int invitationid = p.readInt(); if(invitationid == 4031406 || invitationid == 4031407) { Item item = c.getPlayer().getInventory(MapleInventoryType.ETC).getItem(slot); @@ -470,14 +470,14 @@ public final class RingActionHandler extends AbstractMaplePacketHandler { boolean isMarrying = (player.getId() == eim.getIntProperty("groomId") || player.getId() == eim.getIntProperty("brideId")); if (isMarrying) { - int amount = slea.readShort(); + int amount = p.readShort(); if (amount > 10) { amount = 10; } String wishlistItems = ""; for (int i = 0; i < amount; i++) { - String s = slea.readMapleAsciiString(); + String s = p.readString(); wishlistItems += (s + "\r\n"); } @@ -498,7 +498,7 @@ public final class RingActionHandler extends AbstractMaplePacketHandler { break; default: - System.out.println("Unhandled RING_ACTION Mode: " + slea.toString()); + System.out.println("Unhandled RING_ACTION Mode: " + p.toString()); break; } diff --git a/src/main/java/net/server/channel/handlers/ScriptedItemHandler.java b/src/main/java/net/server/channel/handlers/ScriptedItemHandler.java index 73678c9025..22cc91acfd 100644 --- a/src/main/java/net/server/channel/handlers/ScriptedItemHandler.java +++ b/src/main/java/net/server/channel/handlers/ScriptedItemHandler.java @@ -25,10 +25,10 @@ import client.MapleClient; import client.inventory.Item; import constants.inventory.ItemConstants; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import scripting.item.ItemScriptManager; import server.MapleItemInformationProvider; import server.MapleItemInformationProvider.ScriptedItem; -import tools.data.input.SeekableLittleEndianAccessor; /** * @@ -36,10 +36,10 @@ import tools.data.input.SeekableLittleEndianAccessor; */ public final class ScriptedItemHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - slea.readInt(); // trash stamp, thanks RMZero213 - short itemSlot = slea.readShort(); // item slot, thanks RMZero213 - int itemId = slea.readInt(); + public final void handlePacket(InPacket p, MapleClient c) { + p.readInt(); // trash stamp, thanks RMZero213 + short itemSlot = p.readShort(); // item slot, thanks RMZero213 + int itemId = p.readInt(); MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); ScriptedItem info = ii.getScriptedItemInfo(itemId); diff --git a/src/main/java/net/server/channel/handlers/ScrollHandler.java b/src/main/java/net/server/channel/handlers/ScrollHandler.java index 2bb16041ad..25b4f6f8c9 100644 --- a/src/main/java/net/server/channel/handlers/ScrollHandler.java +++ b/src/main/java/net/server/channel/handlers/ScrollHandler.java @@ -30,9 +30,9 @@ import client.inventory.Equip.ScrollResult; import client.inventory.manipulator.MapleInventoryManipulator; import constants.inventory.ItemConstants; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import server.MapleItemInformationProvider; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; import java.util.ArrayList; import java.util.List; @@ -45,13 +45,13 @@ import java.util.Map; public final class ScrollHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { if (c.tryacquireClient()) { try { - slea.readInt(); // whatever... - short slot = slea.readShort(); - short dst = slea.readShort(); - byte ws = (byte) slea.readShort(); + p.readInt(); // whatever... + short slot = p.readShort(); + short dst = p.readShort(); + byte ws = (byte) p.readShort(); boolean whiteScroll = false; // white scroll being used? boolean legendarySpirit = false; // legendary spirit skill if ((ws & 2) == 2) { diff --git a/src/main/java/net/server/channel/handlers/SkillBookHandler.java b/src/main/java/net/server/channel/handlers/SkillBookHandler.java index 37bee76147..e73931e4c4 100644 --- a/src/main/java/net/server/channel/handlers/SkillBookHandler.java +++ b/src/main/java/net/server/channel/handlers/SkillBookHandler.java @@ -30,23 +30,23 @@ import client.inventory.MapleInventory; import client.inventory.MapleInventoryType; import client.inventory.manipulator.MapleInventoryManipulator; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import server.MapleItemInformationProvider; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; import java.util.Map; public final class SkillBookHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { if (!c.getPlayer().isAlive()) { c.sendPacket(PacketCreator.enableActions()); return; } - slea.readInt(); - short slot = slea.readShort(); - int itemId = slea.readInt(); + p.readInt(); + short slot = p.readShort(); + int itemId = p.readInt(); boolean canuse; boolean success = false; diff --git a/src/main/java/net/server/channel/handlers/SkillEffectHandler.java b/src/main/java/net/server/channel/handlers/SkillEffectHandler.java index 01d7e6bc03..9f40281af3 100644 --- a/src/main/java/net/server/channel/handlers/SkillEffectHandler.java +++ b/src/main/java/net/server/channel/handlers/SkillEffectHandler.java @@ -24,17 +24,17 @@ package net.server.channel.handlers; import client.MapleClient; import constants.skills.*; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; public final class SkillEffectHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - int skillId = slea.readInt(); - int level = slea.readByte(); - byte flags = slea.readByte(); - int speed = slea.readByte(); - byte aids = slea.readByte();//Mmmk + public final void handlePacket(InPacket p, MapleClient c) { + int skillId = p.readInt(); + int level = p.readByte(); + byte flags = p.readByte(); + int speed = p.readByte(); + byte aids = p.readByte();//Mmmk switch (skillId) { case FPMage.EXPLOSION: case FPArchMage.BIG_BANG: diff --git a/src/main/java/net/server/channel/handlers/SkillMacroHandler.java b/src/main/java/net/server/channel/handlers/SkillMacroHandler.java index d071b74b56..6665a1c109 100644 --- a/src/main/java/net/server/channel/handlers/SkillMacroHandler.java +++ b/src/main/java/net/server/channel/handlers/SkillMacroHandler.java @@ -26,28 +26,28 @@ import client.MapleClient; import client.SkillMacro; import client.autoban.AutobanFactory; import net.AbstractMaplePacketHandler; -import tools.data.input.SeekableLittleEndianAccessor; +import net.packet.InPacket; public final class SkillMacroHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { MapleCharacter chr = c.getPlayer(); - int num = slea.readByte(); + int num = p.readByte(); if (num > 5) return; for (int i = 0; i < num; i++) { - String name = slea.readMapleAsciiString(); + String name = p.readString(); if (name.length() > 12) { AutobanFactory.PACKET_EDIT.alert(chr, "Invalid name length " + name + " (" + name.length() + ") for skill macro."); c.disconnect(false, false); break; } - int shout = slea.readByte(); - int skill1 = slea.readInt(); - int skill2 = slea.readInt(); - int skill3 = slea.readInt(); + int shout = p.readByte(); + int skill1 = p.readInt(); + int skill2 = p.readInt(); + int skill3 = p.readInt(); SkillMacro macro = new SkillMacro(skill1, skill2, skill3, name, shout, i); chr.updateMacros(i, macro); } diff --git a/src/main/java/net/server/channel/handlers/SnowballHandler.java b/src/main/java/net/server/channel/handlers/SnowballHandler.java index bf892385c6..fb401d7579 100644 --- a/src/main/java/net/server/channel/handlers/SnowballHandler.java +++ b/src/main/java/net/server/channel/handlers/SnowballHandler.java @@ -24,9 +24,9 @@ package net.server.channel.handlers; import client.MapleCharacter; import client.MapleClient; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import server.events.gm.MapleSnowball; import server.maps.MapleMap; -import tools.data.input.SeekableLittleEndianAccessor; /** * @@ -34,13 +34,13 @@ import tools.data.input.SeekableLittleEndianAccessor; */ public final class SnowballHandler extends AbstractMaplePacketHandler{ - public void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public void handlePacket(InPacket p, MapleClient c) { //D3 00 02 00 00 A5 01 MapleCharacter chr = c.getPlayer(); MapleMap map = chr.getMap(); final MapleSnowball snowball = map.getSnowball(chr.getTeam()); final MapleSnowball othersnowball = map.getSnowball(chr.getTeam() == 0 ? (byte) 1 : 0); - int what = slea.readByte(); + int what = p.readByte(); //slea.skip(4); if (snowball == null || othersnowball == null || snowball.getSnowmanHP() == 0) return; diff --git a/src/main/java/net/server/channel/handlers/SpawnPetHandler.java b/src/main/java/net/server/channel/handlers/SpawnPetHandler.java index be1a203ad7..1ee75d4ff1 100644 --- a/src/main/java/net/server/channel/handlers/SpawnPetHandler.java +++ b/src/main/java/net/server/channel/handlers/SpawnPetHandler.java @@ -24,16 +24,16 @@ package net.server.channel.handlers; import client.MapleClient; import client.processor.action.SpawnPetProcessor; import net.AbstractMaplePacketHandler; -import tools.data.input.SeekableLittleEndianAccessor; +import net.packet.InPacket; public final class SpawnPetHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - slea.readInt(); - byte slot = slea.readByte(); - slea.readByte(); - boolean lead = slea.readByte() == 1; + public final void handlePacket(InPacket p, MapleClient c) { + p.readInt(); + byte slot = p.readByte(); + p.readByte(); + boolean lead = p.readByte() == 1; SpawnPetProcessor.processSpawnPet(c, slot, lead); } diff --git a/src/main/java/net/server/channel/handlers/SpecialMoveHandler.java b/src/main/java/net/server/channel/handlers/SpecialMoveHandler.java index 93935599b6..2a51169b91 100644 --- a/src/main/java/net/server/channel/handlers/SpecialMoveHandler.java +++ b/src/main/java/net/server/channel/handlers/SpecialMoveHandler.java @@ -28,22 +28,22 @@ import client.SkillFactory; import config.YamlConfig; import constants.skills.*; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import net.server.Server; import server.MapleStatEffect; import server.life.MapleMonster; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; import java.awt.*; public final class SpecialMoveHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { MapleCharacter chr = c.getPlayer(); - slea.readInt(); + p.readInt(); chr.getAutobanManager().setTimestamp(4, Server.getInstance().getCurrentTimestamp(), 28); - int skillid = slea.readInt(); + int skillid = p.readInt(); /* if ((!GameConstants.isPqSkillMap(chr.getMapId()) && GameConstants.isPqSkill(skillid)) || (!chr.isGM() && GameConstants.isGMSkills(skillid)) || (!GameConstants.isInJobTree(skillid, chr.getJob().getId()) && !chr.isGM())) { @@ -55,7 +55,7 @@ public final class SpecialMoveHandler extends AbstractMaplePacketHandler { */ Point pos = null; - int __skillLevel = slea.readByte(); + int __skillLevel = p.readByte(); Skill skill = SkillFactory.getSkill(skillid); int skillLevel = chr.getSkillLevel(skill); if (skillid % 10000000 == 1010 || skillid % 10000000 == 1011) { @@ -84,10 +84,10 @@ public final class SpecialMoveHandler extends AbstractMaplePacketHandler { } } if (skillid == Hero.MONSTER_MAGNET || skillid == Paladin.MONSTER_MAGNET || skillid == DarkKnight.MONSTER_MAGNET) { // Monster Magnet - int num = slea.readInt(); + int num = p.readInt(); for (int i = 0; i < num; i++) { - int mobOid = slea.readInt(); - byte success = slea.readByte(); + int mobOid = p.readInt(); + byte success = p.readByte(); chr.getMap().broadcastMessage(chr, PacketCreator.catchMonster(mobOid, success), false); MapleMonster monster = chr.getMap().getMonsterByOid(mobOid); if (monster != null) { @@ -101,7 +101,7 @@ public final class SpecialMoveHandler extends AbstractMaplePacketHandler { } } } - byte direction = slea.readByte(); // thanks MedicOP for pointing some 3rd-party related issues with Magnet + byte direction = p.readByte(); // thanks MedicOP for pointing some 3rd-party related issues with Magnet chr.getMap().broadcastMessage(chr, PacketCreator.showBuffEffect(chr.getId(), skillid, chr.getSkillLevel(skillid), 1, direction), false); c.sendPacket(PacketCreator.enableActions()); return; @@ -113,14 +113,14 @@ public final class SpecialMoveHandler extends AbstractMaplePacketHandler { int gain = -lose * (ef.getY() / 100); chr.addMP(gain); } else if (skillid == SuperGM.HEAL_PLUS_DISPEL) { - slea.skip(11); + p.skip(11); chr.getMap().broadcastMessage(chr, PacketCreator.showBuffEffect(chr.getId(), skillid, chr.getSkillLevel(skillid)), false); } else if (skillid % 10000000 == 1004) { - slea.readShort(); + p.readShort(); } - if (slea.available() == 5) { - pos = new Point(slea.readShort(), slea.readShort()); + if (p.available() == 5) { + pos = new Point(p.readShort(), p.readShort()); } if (chr.isAlive()) { if (skill.getId() != Priest.MYSTIC_DOOR) { diff --git a/src/main/java/net/server/channel/handlers/SpouseChatHandler.java b/src/main/java/net/server/channel/handlers/SpouseChatHandler.java index 9c0f142d82..0672b03361 100644 --- a/src/main/java/net/server/channel/handlers/SpouseChatHandler.java +++ b/src/main/java/net/server/channel/handlers/SpouseChatHandler.java @@ -25,15 +25,15 @@ import client.MapleCharacter; import client.MapleClient; import config.YamlConfig; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import tools.LogHelper; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; public final class SpouseChatHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - slea.readMapleAsciiString();//recipient - String msg = slea.readMapleAsciiString(); + public final void handlePacket(InPacket p, MapleClient c) { + p.readString();//recipient + String msg = p.readString(); int partnerId = c.getPlayer().getPartnerId(); if (partnerId > 0) { // yay marriage diff --git a/src/main/java/net/server/channel/handlers/StorageHandler.java b/src/main/java/net/server/channel/handlers/StorageHandler.java index 7289db93ba..5ba5f3bcb9 100644 --- a/src/main/java/net/server/channel/handlers/StorageHandler.java +++ b/src/main/java/net/server/channel/handlers/StorageHandler.java @@ -24,7 +24,7 @@ package net.server.channel.handlers; import client.MapleClient; import client.processor.npc.StorageProcessor; import net.AbstractMaplePacketHandler; -import tools.data.input.SeekableLittleEndianAccessor; +import net.packet.InPacket; /** * @@ -32,7 +32,7 @@ import tools.data.input.SeekableLittleEndianAccessor; */ public final class StorageHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - StorageProcessor.storageAction(slea, c); + public final void handlePacket(InPacket p, MapleClient c) { + StorageProcessor.storageAction(p, c); } } \ No newline at end of file diff --git a/src/main/java/net/server/channel/handlers/SummonDamageHandler.java b/src/main/java/net/server/channel/handlers/SummonDamageHandler.java index 379a288d20..8651d94ee6 100644 --- a/src/main/java/net/server/channel/handlers/SummonDamageHandler.java +++ b/src/main/java/net/server/channel/handlers/SummonDamageHandler.java @@ -31,6 +31,7 @@ import client.inventory.MapleInventoryType; import client.inventory.MapleWeaponType; import client.status.MonsterStatusEffect; import constants.skills.Outlaw; +import net.packet.InPacket; import server.MapleItemInformationProvider; import server.MapleStatEffect; import server.life.MapleMonster; @@ -38,7 +39,6 @@ import server.life.MapleMonsterInformationProvider; import server.maps.MapleSummon; import tools.FilePrinter; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; import java.util.ArrayList; import java.util.List; @@ -66,8 +66,8 @@ public final class SummonDamageHandler extends AbstractDealDamageHandler { } @Override - public void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - int oid = slea.readInt(); + public void handlePacket(InPacket p, MapleClient c) { + int oid = p.readInt(); MapleCharacter player = c.getPlayer(); if (!player.isAlive()) { return; @@ -83,15 +83,15 @@ public final class SummonDamageHandler extends AbstractDealDamageHandler { } Skill summonSkill = SkillFactory.getSkill(summon.getSkill()); MapleStatEffect summonEffect = summonSkill.getEffect(summon.getSkillLevel()); - slea.skip(4); + p.skip(4); List allDamage = new ArrayList<>(); - byte direction = slea.readByte(); - int numAttacked = slea.readByte(); - slea.skip(8); // I failed lol (mob x,y and summon x,y), Thanks Gerald + byte direction = p.readByte(); + int numAttacked = p.readByte(); + p.skip(8); // I failed lol (mob x,y and summon x,y), Thanks Gerald for (int x = 0; x < numAttacked; x++) { - int monsterOid = slea.readInt(); // attacked oid - slea.skip(18); - int damage = slea.readInt(); + int monsterOid = p.readInt(); // attacked oid + p.skip(18); + int damage = p.readInt(); allDamage.add(new SummonAttackEntry(monsterOid, damage)); } player.getMap().broadcastMessage(player, PacketCreator.summonAttack(player.getId(), summon.getObjectId(), direction, allDamage), summon.getPosition()); diff --git a/src/main/java/net/server/channel/handlers/TakeDamageHandler.java b/src/main/java/net/server/channel/handlers/TakeDamageHandler.java index 6acda7e7e0..03d725e207 100644 --- a/src/main/java/net/server/channel/handlers/TakeDamageHandler.java +++ b/src/main/java/net/server/channel/handlers/TakeDamageHandler.java @@ -33,6 +33,7 @@ import constants.game.GameConstants; import constants.inventory.ItemConstants; import constants.skills.Aran; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import server.MapleStatEffect; import server.life.MapleLifeFactory.loseItem; import server.life.*; @@ -41,7 +42,6 @@ import server.maps.MapleMapObject; import tools.FilePrinter; import tools.PacketCreator; import tools.Randomizer; -import tools.data.input.SeekableLittleEndianAccessor; import java.awt.*; import java.util.ArrayList; @@ -51,14 +51,14 @@ import java.util.List; public final class TakeDamageHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { List banishPlayers = new ArrayList<>(); MapleCharacter chr = c.getPlayer(); - slea.readInt(); - byte damagefrom = slea.readByte(); - slea.readByte(); //Element - int damage = slea.readInt(); + p.readInt(); + byte damagefrom = p.readByte(); + p.readByte(); //Element + int damage = p.readInt(); int oid = 0, monsteridfrom = 0, pgmr = 0, direction = 0; int pos_x = 0, pos_y = 0, fake = 0; boolean is_pgmr = false, is_pg = true, is_deadly = false; @@ -66,8 +66,8 @@ public final class TakeDamageHandler extends AbstractMaplePacketHandler { MapleMonster attacker = null; final MapleMap map = chr.getMap(); if (damagefrom != -3 && damagefrom != -4) { - monsteridfrom = slea.readInt(); - oid = slea.readInt(); + monsteridfrom = p.readInt(); + oid = p.readInt(); try { MapleMapObject mmo = map.getMapObject(oid); @@ -141,7 +141,7 @@ public final class TakeDamageHandler extends AbstractMaplePacketHandler { return; } - direction = slea.readByte(); + direction = p.readByte(); } if (damagefrom != -1 && damagefrom != -2 && attacker != null) { MobAttackInfo attackInfo = MobAttackInfoFactory.getMobAttackInfo(attacker, damagefrom); diff --git a/src/main/java/net/server/channel/handlers/TouchMonsterDamageHandler.java b/src/main/java/net/server/channel/handlers/TouchMonsterDamageHandler.java index fc2cd68b6e..b256844fa0 100644 --- a/src/main/java/net/server/channel/handlers/TouchMonsterDamageHandler.java +++ b/src/main/java/net/server/channel/handlers/TouchMonsterDamageHandler.java @@ -24,14 +24,14 @@ package net.server.channel.handlers; import client.MapleBuffStat; import client.MapleClient; import client.MapleCharacter; -import tools.data.input.SeekableLittleEndianAccessor; +import net.packet.InPacket; public final class TouchMonsterDamageHandler extends AbstractDealDamageHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { MapleCharacter chr = c.getPlayer(); if (chr.getEnergyBar() == 15000 || chr.getBuffedValue(MapleBuffStat.BODY_PRESSURE) != null) { - applyAttack(parseDamage(slea, chr, false, false), c.getPlayer(), 1); + applyAttack(parseDamage(p, chr, false, false), c.getPlayer(), 1); } } } diff --git a/src/main/java/net/server/channel/handlers/TouchReactorHandler.java b/src/main/java/net/server/channel/handlers/TouchReactorHandler.java index a5685f34a3..5dff064559 100644 --- a/src/main/java/net/server/channel/handlers/TouchReactorHandler.java +++ b/src/main/java/net/server/channel/handlers/TouchReactorHandler.java @@ -23,9 +23,9 @@ package net.server.channel.handlers; import client.MapleClient; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import scripting.reactor.ReactorScriptManager; import server.maps.MapleReactor; -import tools.data.input.SeekableLittleEndianAccessor; /** * @@ -34,11 +34,11 @@ import tools.data.input.SeekableLittleEndianAccessor; public final class TouchReactorHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - int oid = slea.readInt(); + public final void handlePacket(InPacket p, MapleClient c) { + int oid = p.readInt(); MapleReactor reactor = c.getPlayer().getMap().getReactorByOid(oid); if (reactor != null) { - if (slea.readByte() != 0) { + if (p.readByte() != 0) { ReactorScriptManager.getInstance().touch(c, reactor); } else { ReactorScriptManager.getInstance().untouch(c, reactor); diff --git a/src/main/java/net/server/channel/handlers/TouchingCashShopHandler.java b/src/main/java/net/server/channel/handlers/TouchingCashShopHandler.java index 5679254814..b093d75189 100644 --- a/src/main/java/net/server/channel/handlers/TouchingCashShopHandler.java +++ b/src/main/java/net/server/channel/handlers/TouchingCashShopHandler.java @@ -23,8 +23,8 @@ package net.server.channel.handlers; import client.MapleClient; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; /** * @@ -32,7 +32,7 @@ import tools.data.input.SeekableLittleEndianAccessor; */ public final class TouchingCashShopHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { c.sendPacket(PacketCreator.showCash(c.getPlayer())); } } diff --git a/src/main/java/net/server/channel/handlers/TransferNameHandler.java b/src/main/java/net/server/channel/handlers/TransferNameHandler.java index 6aebf3b4a7..5723892ad7 100644 --- a/src/main/java/net/server/channel/handlers/TransferNameHandler.java +++ b/src/main/java/net/server/channel/handlers/TransferNameHandler.java @@ -24,9 +24,9 @@ import client.MapleCharacter; import client.MapleClient; import config.YamlConfig; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import tools.DatabaseConnection; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; import java.sql.*; import java.util.Calendar; @@ -39,9 +39,9 @@ import java.util.Calendar; public final class TransferNameHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - slea.readInt(); //cid - int birthday = slea.readInt(); + public final void handlePacket(InPacket p, MapleClient c) { + p.readInt(); //cid + int birthday = p.readInt(); if (!CashOperationHandler.checkBirthday(c, birthday)) { c.sendPacket(PacketCreator.showCashShopMessage((byte) 0xC4)); c.sendPacket(PacketCreator.enableActions()); diff --git a/src/main/java/net/server/channel/handlers/TransferNameResultHandler.java b/src/main/java/net/server/channel/handlers/TransferNameResultHandler.java index fbe86a1f68..850e38fc10 100644 --- a/src/main/java/net/server/channel/handlers/TransferNameResultHandler.java +++ b/src/main/java/net/server/channel/handlers/TransferNameResultHandler.java @@ -23,8 +23,8 @@ package net.server.channel.handlers; import client.MapleCharacter; import client.MapleClient; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; /** * @@ -33,8 +33,8 @@ import tools.data.input.SeekableLittleEndianAccessor; public final class TransferNameResultHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - String name = slea.readMapleAsciiString(); + public final void handlePacket(InPacket p, MapleClient c) { + String name = p.readString(); c.sendPacket(PacketCreator.sendNameTransferCheck(name, MapleCharacter.canCreateChar(name))); } } \ No newline at end of file diff --git a/src/main/java/net/server/channel/handlers/TransferWorldHandler.java b/src/main/java/net/server/channel/handlers/TransferWorldHandler.java index 6dcee7e311..6dfd77b8f7 100644 --- a/src/main/java/net/server/channel/handlers/TransferWorldHandler.java +++ b/src/main/java/net/server/channel/handlers/TransferWorldHandler.java @@ -24,10 +24,10 @@ import client.MapleCharacter; import client.MapleClient; import config.YamlConfig; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import net.server.Server; import tools.DatabaseConnection; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; import java.sql.*; @@ -39,9 +39,9 @@ import java.sql.*; public final class TransferWorldHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - slea.readInt(); //cid - int birthday = slea.readInt(); + public final void handlePacket(InPacket p, MapleClient c) { + p.readInt(); //cid + int birthday = p.readInt(); if (!CashOperationHandler.checkBirthday(c, birthday)) { c.sendPacket(PacketCreator.showCashShopMessage((byte) 0xC4)); c.sendPacket(PacketCreator.enableActions()); diff --git a/src/main/java/net/server/channel/handlers/TrockAddMapHandler.java b/src/main/java/net/server/channel/handlers/TrockAddMapHandler.java index a261a0f41e..dcf2d78959 100644 --- a/src/main/java/net/server/channel/handlers/TrockAddMapHandler.java +++ b/src/main/java/net/server/channel/handlers/TrockAddMapHandler.java @@ -24,9 +24,9 @@ package net.server.channel.handlers; import client.MapleCharacter; import client.MapleClient; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import server.maps.FieldLimit; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; /** * @@ -35,12 +35,12 @@ import tools.data.input.SeekableLittleEndianAccessor; public final class TrockAddMapHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { MapleCharacter chr = c.getPlayer(); - byte type = slea.readByte(); - boolean vip = slea.readByte() == 1; + byte type = p.readByte(); + boolean vip = p.readByte() == 1; if (type == 0x00) { - int mapId = slea.readInt(); + int mapId = p.readInt(); if (vip) chr.deleteFromVipTrocks(mapId); else diff --git a/src/main/java/net/server/channel/handlers/UseCashItemHandler.java b/src/main/java/net/server/channel/handlers/UseCashItemHandler.java index de4ef33990..3ff2fc3f7f 100644 --- a/src/main/java/net/server/channel/handlers/UseCashItemHandler.java +++ b/src/main/java/net/server/channel/handlers/UseCashItemHandler.java @@ -34,6 +34,7 @@ import config.YamlConfig; import constants.game.GameConstants; import constants.inventory.ItemConstants; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import net.server.Server; import server.MapleItemInformationProvider; import server.MapleShop; @@ -42,7 +43,6 @@ import server.TimerManager; import server.maps.*; import tools.PacketCreator; import tools.Pair; -import tools.data.input.SeekableLittleEndianAccessor; import java.sql.SQLException; import java.util.ArrayList; @@ -52,7 +52,7 @@ import java.util.List; public final class UseCashItemHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { final MapleCharacter player = c.getPlayer(); long timeNow = currentServerTime(); @@ -64,8 +64,8 @@ public final class UseCashItemHandler extends AbstractMaplePacketHandler { player.setLastUsedCashItem(timeNow); MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); - short position = slea.readShort(); - int itemId = slea.readInt(); + short position = p.readShort(); + int itemId = p.readInt(); int itemType = itemId / 10000; MapleInventory cashInv = player.getInventory(MapleInventoryType.CASH); @@ -94,11 +94,11 @@ public final class UseCashItemHandler extends AbstractMaplePacketHandler { if (itemType == 504) { // vip teleport rock String error1 = "Either the player could not be found or you were trying to teleport to an illegal location."; - boolean vip = slea.readByte() == 1 && itemId / 1000 >= 5041; + boolean vip = p.readByte() == 1 && itemId / 1000 >= 5041; remove(c, position, itemId); boolean success = false; if (!vip) { - int mapId = slea.readInt(); + int mapId = p.readInt(); if (itemId / 1000 >= 5041 || mapId / 100000000 == player.getMapId() / 100000000) { //check vip or same continent MapleMap targetMap = c.getChannelServer().getMapFactory().getMap(mapId); if (!FieldLimit.CANNOTVIPROCK.check(targetMap.getFieldLimit()) && (targetMap.getForcedReturnId() == 999999999 || mapId < 100000000)) { @@ -111,7 +111,7 @@ public final class UseCashItemHandler extends AbstractMaplePacketHandler { player.dropMessage(1, "You cannot teleport between continents with this teleport rock."); } } else { - String name = slea.readMapleAsciiString(); + String name = p.readString(); MapleCharacter victim = c.getChannelServer().getPlayerStorage().getCharacterByName(name); if (victim != null) { @@ -142,12 +142,12 @@ public final class UseCashItemHandler extends AbstractMaplePacketHandler { } if (itemId > 5050000) { - int SPTo = slea.readInt(); + int SPTo = p.readInt(); if (!AssignSPProcessor.canSPAssign(c, SPTo)) { // exploit found thanks to Arnah return; } - int SPFrom = slea.readInt(); + int SPFrom = p.readInt(); Skill skillSPTo = SkillFactory.getSkill(SPTo); Skill skillSPFrom = SkillFactory.getSkill(SPFrom); byte curLevel = player.getSkillLevel(skillSPTo); @@ -188,8 +188,8 @@ public final class UseCashItemHandler extends AbstractMaplePacketHandler { } } } else { - int APTo = slea.readInt(); - int APFrom = slea.readInt(); + int APTo = p.readInt(); + int APFrom = p.readInt(); if (!AssignAPProcessor.APResetAction(c, APFrom, APTo)) { return; @@ -199,15 +199,15 @@ public final class UseCashItemHandler extends AbstractMaplePacketHandler { } else if (itemType == 506) { Item eq = null; if (itemId == 5060000) { // Item tag. - int equipSlot = slea.readShort(); + int equipSlot = p.readShort(); if (equipSlot == 0) { return; } eq = player.getInventory(MapleInventoryType.EQUIPPED).getItem((short) equipSlot); eq.setOwner(player.getName()); } else if (itemId == 5060001 || itemId == 5061000 || itemId == 5061001 || itemId == 5061002 || itemId == 5061003) { // Sealing lock - MapleInventoryType type = MapleInventoryType.getByType((byte) slea.readInt()); - eq = player.getInventory(type).getItem((short) slea.readInt()); + MapleInventoryType type = MapleInventoryType.getByType((byte) p.readInt()); + eq = player.getInventory(type).getItem((short) p.readInt()); if (eq == null) { //Check if the type is EQUIPMENT? return; } @@ -235,8 +235,8 @@ public final class UseCashItemHandler extends AbstractMaplePacketHandler { // double-remove found thanks to BHB } else if (itemId == 5060002) { // Incubator - byte inventory2 = (byte) slea.readInt(); - short slot2 = (short) slea.readInt(); + byte inventory2 = (byte) p.readInt(); + short slot2 = (short) p.readInt(); Item item2 = player.getInventory(MapleInventoryType.getByType(inventory2)).getItem(slot2); if (item2 == null) // hacking { @@ -248,7 +248,7 @@ public final class UseCashItemHandler extends AbstractMaplePacketHandler { } return; } - slea.readInt(); // time stamp + p.readInt(); // time stamp if (eq != null) { player.forceUpdateItem(eq); remove(c, position, itemId); @@ -258,14 +258,14 @@ public final class UseCashItemHandler extends AbstractMaplePacketHandler { switch ((itemId / 1000) % 10) { case 1: // Megaphone if (player.getLevel() > 9) { - player.getClient().getChannelServer().broadcastPacket(PacketCreator.serverNotice(2, medal + player.getName() + " : " + slea.readMapleAsciiString())); + player.getClient().getChannelServer().broadcastPacket(PacketCreator.serverNotice(2, medal + player.getName() + " : " + p.readString())); } else { player.dropMessage(1, "You may not use this until you're level 10."); return; } break; case 2: // Super megaphone - Server.getInstance().broadcastMessage(c.getWorld(), PacketCreator.serverNotice(3, c.getChannel(), medal + player.getName() + " : " + slea.readMapleAsciiString(), (slea.readByte() != 0))); + Server.getInstance().broadcastMessage(c.getWorld(), PacketCreator.serverNotice(3, c.getChannel(), medal + player.getName() + " : " + p.readString(), (p.readByte() != 0))); break; case 5: // Maple TV int tvType = itemId % 10; @@ -276,26 +276,26 @@ public final class UseCashItemHandler extends AbstractMaplePacketHandler { if (tvType >= 3) { megassenger = true; if (tvType == 3) { - slea.readByte(); + p.readByte(); } - ear = 1 == slea.readByte(); + ear = 1 == p.readByte(); } else if (tvType != 2) { - slea.readByte(); + p.readByte(); } if (tvType != 4) { - victim = c.getChannelServer().getPlayerStorage().getCharacterByName(slea.readMapleAsciiString()); + victim = c.getChannelServer().getPlayerStorage().getCharacterByName(p.readString()); } } List messages = new LinkedList<>(); StringBuilder builder = new StringBuilder(); for (int i = 0; i < 5; i++) { - String message = slea.readMapleAsciiString(); + String message = p.readString(); if (megassenger) { builder.append(" ").append(message); } messages.add(message); } - slea.readInt(); + p.readInt(); if (!MapleTVEffect.broadcastMapleTVIfNotActive(player, victim, messages, tvType)) { player.dropMessage(1, "MapleTV is already in use."); @@ -308,11 +308,11 @@ public final class UseCashItemHandler extends AbstractMaplePacketHandler { break; case 6: //item megaphone - String msg = medal + player.getName() + " : " + slea.readMapleAsciiString(); - whisper = slea.readByte() == 1; + String msg = medal + player.getName() + " : " + p.readString(); + whisper = p.readByte() == 1; Item item = null; - if (slea.readByte() == 1) { //item - item = player.getInventory(MapleInventoryType.getByType((byte) slea.readInt())).getItem((short) slea.readInt()); + if (p.readByte() == 1) { //item + item = player.getInventory(MapleInventoryType.getByType((byte) p.readInt())).getItem((short) p.readInt()); if (item == null) //hack { return; @@ -323,22 +323,22 @@ public final class UseCashItemHandler extends AbstractMaplePacketHandler { Server.getInstance().broadcastMessage(c.getWorld(), PacketCreator.itemMegaphone(msg, whisper, c.getChannel(), item)); break; case 7: //triple megaphone - int lines = slea.readByte(); + int lines = p.readByte(); if (lines < 1 || lines > 3) //hack { return; } String[] msg2 = new String[lines]; for (int i = 0; i < lines; i++) { - msg2[i] = medal + player.getName() + " : " + slea.readMapleAsciiString(); + msg2[i] = medal + player.getName() + " : " + p.readString(); } - whisper = slea.readByte() == 1; + whisper = p.readByte() == 1; Server.getInstance().broadcastMessage(c.getWorld(), PacketCreator.getMultiMegaphone(msg2, c.getChannel(), whisper)); break; } remove(c, position, itemId); } else if (itemType == 508) { // thanks tmskdl12 for graduation banner; thanks ratency for first pointing lack of Kite handling - MapleKite kite = new MapleKite(player, slea.readMapleAsciiString(), itemId); + MapleKite kite = new MapleKite(player, p.readString(), itemId); if (!GameConstants.isFreeMarketRoom(player.getMapId())) { player.getMap().spawnKite(kite); @@ -347,8 +347,8 @@ public final class UseCashItemHandler extends AbstractMaplePacketHandler { c.sendPacket(PacketCreator.sendCannotSpawnKite()); } } else if (itemType == 509) { - String sendTo = slea.readMapleAsciiString(); - String msg = slea.readMapleAsciiString(); + String sendTo = p.readString(); + String msg = p.readString(); try { player.sendNote(sendTo, msg, (byte) 0); } catch (SQLException e) { @@ -364,7 +364,7 @@ public final class UseCashItemHandler extends AbstractMaplePacketHandler { ii.getItemEffect(ii.getStateChangeItem(itemId)).applyTo(mChar); } } - player.getMap().startMapEffect(ii.getMsg(itemId).replaceFirst("%s", player.getName()).replaceFirst("%s", slea.readMapleAsciiString()), itemId); + player.getMap().startMapEffect(ii.getMsg(itemId).replaceFirst("%s", player.getName()).replaceFirst("%s", p.readString()), itemId); remove(c, position, itemId); } else if (itemType == 517) { MaplePet pet = player.getPet(0); @@ -372,7 +372,7 @@ public final class UseCashItemHandler extends AbstractMaplePacketHandler { c.sendPacket(PacketCreator.enableActions()); return; } - String newName = slea.readMapleAsciiString(); + String newName = p.readString(); pet.setName(newName); pet.saveToDb(); @@ -389,7 +389,7 @@ public final class UseCashItemHandler extends AbstractMaplePacketHandler { remove(c, position, itemId); c.sendPacket(PacketCreator.enableActions()); } else if (itemType == 523) { - int itemid = slea.readInt(); + int itemid = p.readInt(); if (!YamlConfig.config.server.USE_ENFORCE_ITEM_SUGGESTION) { c.getWorldServer().addOwlItemSearch(itemid); @@ -407,10 +407,10 @@ public final class UseCashItemHandler extends AbstractMaplePacketHandler { for (byte i = 0; i < 3; i++) { MaplePet pet = player.getPet(i); if (pet != null) { - Pair p = pet.canConsume(itemId); + Pair pair = pet.canConsume(itemId); - if (p.getRight()) { - pet.gainClosenessFullness(player, p.getLeft(), 100, 1); + if (pair.getRight()) { + pet.gainClosenessFullness(player, pair.getLeft(), 100, 1); remove(c, position, itemId); break; } @@ -431,23 +431,23 @@ public final class UseCashItemHandler extends AbstractMaplePacketHandler { return; } - player.setChalkboard(slea.readMapleAsciiString()); + player.setChalkboard(p.readString()); player.getMap().broadcastMessage(PacketCreator.useChalkboard(player, false)); player.sendPacket(PacketCreator.enableActions()); //remove(c, position, itemId); thanks Conrad for noticing chalkboards shouldn't be depleted upon use } else if (itemType == 539) { List strLines = new LinkedList<>(); for (int i = 0; i < 4; i++) { - strLines.add(slea.readMapleAsciiString()); + strLines.add(p.readString()); } final int world = c.getWorld(); - Server.getInstance().broadcastMessage(world, PacketCreator.getAvatarMega(player, medal, c.getChannel(), itemId, strLines, (slea.readByte() != 0))); + Server.getInstance().broadcastMessage(world, PacketCreator.getAvatarMega(player, medal, c.getChannel(), itemId, strLines, (p.readByte() != 0))); TimerManager.getInstance().schedule(() -> Server.getInstance().broadcastMessage(world, PacketCreator.byeAvatarMega()), 1000 * 10); remove(c, position, itemId); } else if (itemType == 540) { - slea.readByte(); - slea.readInt(); + p.readByte(); + p.readInt(); if (itemId == 5400000) { //name change c.sendPacket(PacketCreator.showNameChangeCancel(player.cancelPendingNameChange())); } else if (itemId == 5401000) { //world transfer @@ -462,14 +462,14 @@ public final class UseCashItemHandler extends AbstractMaplePacketHandler { return; } - String name = slea.readMapleAsciiString(); - int face = slea.readInt(); - int hair = slea.readInt(); - int haircolor = slea.readInt(); - int skin = slea.readInt(); - int gender = slea.readInt(); - int jobid = slea.readInt(); - int improveSp = slea.readInt(); + String name = p.readString(); + int face = p.readInt(); + int hair = p.readInt(); + int haircolor = p.readInt(); + int skin = p.readInt(); + int gender = p.readInt(); + int jobid = p.readInt(); + int improveSp = p.readInt(); int createStatus = switch (jobid) { case 0 -> WarriorCreator.createCharacter(c, name, face, hair + haircolor, skin, gender, improveSp); @@ -504,8 +504,8 @@ public final class UseCashItemHandler extends AbstractMaplePacketHandler { } else if (itemType == 550) { //Extend item expiration c.sendPacket(PacketCreator.enableActions()); } else if (itemType == 552) { - MapleInventoryType type = MapleInventoryType.getByType((byte) slea.readInt()); - short slot = (short) slea.readInt(); + MapleInventoryType type = MapleInventoryType.getByType((byte) p.readInt()); + short slot = (short) p.readInt(); Item item = player.getInventory(type).getItem(slot); if (item == null || item.getQuantity() <= 0 || MapleKarmaManipulator.hasKarmaFlag(item) || !ii.isKarmaAble(item.getItemId())) { c.sendPacket(PacketCreator.enableActions()); @@ -519,9 +519,9 @@ public final class UseCashItemHandler extends AbstractMaplePacketHandler { } else if (itemType == 552) { //DS EGG THING c.sendPacket(PacketCreator.enableActions()); } else if (itemType == 557) { - slea.readInt(); - int itemSlot = slea.readInt(); - slea.readInt(); + p.readInt(); + int itemSlot = p.readInt(); + p.readInt(); final Equip equip = (Equip) player.getInventory(MapleInventoryType.EQUIP).getItem((short) itemSlot); if (equip.getVicious() >= 2 || player.getInventory(MapleInventoryType.CASH).findById(5570000) == null) { return; @@ -533,18 +533,18 @@ public final class UseCashItemHandler extends AbstractMaplePacketHandler { c.sendPacket(PacketCreator.sendHammerData(equip.getVicious())); player.forceUpdateItem(equip); } else if (itemType == 561) { //VEGA'S SPELL - if (slea.readInt() != 1) { + if (p.readInt() != 1) { return; } - final byte eSlot = (byte) slea.readInt(); + final byte eSlot = (byte) p.readInt(); final Item eitem = player.getInventory(MapleInventoryType.EQUIP).getItem(eSlot); - if (slea.readInt() != 2) { + if (p.readInt() != 2) { return; } - final byte uSlot = (byte) slea.readInt(); + final byte uSlot = (byte) p.readInt(); final Item uitem = player.getInventory(MapleInventoryType.USE).getItem(uSlot); if (eitem == null || uitem == null) { return; @@ -595,7 +595,7 @@ public final class UseCashItemHandler extends AbstractMaplePacketHandler { client.sendPacket(PacketCreator.enableActions()); }, 1000 * 3); } else { - System.out.println("NEW CASH ITEM: " + itemType + "\n" + slea); + System.out.println("NEW CASH ITEM: " + itemType + "\n" + p); c.sendPacket(PacketCreator.enableActions()); } } diff --git a/src/main/java/net/server/channel/handlers/UseCatchItemHandler.java b/src/main/java/net/server/channel/handlers/UseCatchItemHandler.java index f20b5e4c57..d914b57f11 100644 --- a/src/main/java/net/server/channel/handlers/UseCatchItemHandler.java +++ b/src/main/java/net/server/channel/handlers/UseCatchItemHandler.java @@ -28,11 +28,11 @@ import client.inventory.MapleInventoryType; import client.inventory.manipulator.MapleInventoryManipulator; import constants.inventory.ItemConstants; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import net.server.Server; import server.MapleItemInformationProvider; import server.life.MapleMonster; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; /** * @@ -40,14 +40,14 @@ import tools.data.input.SeekableLittleEndianAccessor; */ public final class UseCatchItemHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { MapleCharacter chr = c.getPlayer(); AutobanManager abm = chr.getAutobanManager(); - slea.readInt(); + p.readInt(); abm.setTimestamp(5, Server.getInstance().getCurrentTimestamp(), 4); - slea.readShort(); - int itemId = slea.readInt(); - int monsterid = slea.readInt(); + p.readShort(); + int itemId = p.readInt(); + int monsterid = p.readInt(); MapleMonster mob = chr.getMap().getMonsterByOid(monsterid); if (chr.getInventory(ItemConstants.getInventoryType(itemId)).countById(itemId) <= 0) { diff --git a/src/main/java/net/server/channel/handlers/UseChairHandler.java b/src/main/java/net/server/channel/handlers/UseChairHandler.java index 857fcdb704..3f4ddb5f1b 100644 --- a/src/main/java/net/server/channel/handlers/UseChairHandler.java +++ b/src/main/java/net/server/channel/handlers/UseChairHandler.java @@ -25,12 +25,12 @@ import client.MapleClient; import client.inventory.MapleInventoryType; import constants.inventory.ItemConstants; import net.AbstractMaplePacketHandler; -import tools.data.input.SeekableLittleEndianAccessor; +import net.packet.InPacket; public final class UseChairHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - int itemId = slea.readInt(); + public final void handlePacket(InPacket p, MapleClient c) { + int itemId = p.readInt(); // thanks Darter (YungMoozi) for reporting unchecked chair item if (!ItemConstants.isChair(itemId) || c.getPlayer().getInventory(MapleInventoryType.SETUP).findById(itemId) == null) { diff --git a/src/main/java/net/server/channel/handlers/UseDeathItemHandler.java b/src/main/java/net/server/channel/handlers/UseDeathItemHandler.java index a8579a0397..6fc431902d 100644 --- a/src/main/java/net/server/channel/handlers/UseDeathItemHandler.java +++ b/src/main/java/net/server/channel/handlers/UseDeathItemHandler.java @@ -23,13 +23,13 @@ package net.server.channel.handlers; import client.MapleClient; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; public final class UseDeathItemHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - int itemId = slea.readInt(); + public final void handlePacket(InPacket p, MapleClient c) { + int itemId = p.readInt(); c.getPlayer().setItemEffect(itemId); c.sendPacket(PacketCreator.itemEffect(c.getPlayer().getId(), itemId)); } diff --git a/src/main/java/net/server/channel/handlers/UseGachaExpHandler.java b/src/main/java/net/server/channel/handlers/UseGachaExpHandler.java index 5356016443..4e93f71668 100644 --- a/src/main/java/net/server/channel/handlers/UseGachaExpHandler.java +++ b/src/main/java/net/server/channel/handlers/UseGachaExpHandler.java @@ -25,8 +25,8 @@ package net.server.channel.handlers; import client.MapleClient; import client.autoban.AutobanFactory; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; /** * @@ -37,7 +37,7 @@ import tools.data.input.SeekableLittleEndianAccessor; public class UseGachaExpHandler extends AbstractMaplePacketHandler { @Override - public void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public void handlePacket(InPacket p, MapleClient c) { if (c.tryacquireClient()) { try { diff --git a/src/main/java/net/server/channel/handlers/UseHammerHandler.java b/src/main/java/net/server/channel/handlers/UseHammerHandler.java index 57802103de..50df56ac2e 100644 --- a/src/main/java/net/server/channel/handlers/UseHammerHandler.java +++ b/src/main/java/net/server/channel/handlers/UseHammerHandler.java @@ -23,15 +23,15 @@ package net.server.channel.handlers; import client.MapleClient; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; /** * * @author Jay Estrella */ public final class UseHammerHandler extends AbstractMaplePacketHandler { - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { c.sendPacket(PacketCreator.sendHammerMessage()); } } diff --git a/src/main/java/net/server/channel/handlers/UseItemEffectHandler.java b/src/main/java/net/server/channel/handlers/UseItemEffectHandler.java index eabb6c36ed..81a323694f 100644 --- a/src/main/java/net/server/channel/handlers/UseItemEffectHandler.java +++ b/src/main/java/net/server/channel/handlers/UseItemEffectHandler.java @@ -25,14 +25,14 @@ import client.MapleClient; import client.inventory.Item; import client.inventory.MapleInventoryType; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; public final class UseItemEffectHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { Item toUse; - int itemId = slea.readInt(); + int itemId = p.readInt(); if (itemId == 4290001 || itemId == 4290000) { toUse = c.getPlayer().getInventory(MapleInventoryType.ETC).findById(itemId); } else { diff --git a/src/main/java/net/server/channel/handlers/UseItemHandler.java b/src/main/java/net/server/channel/handlers/UseItemHandler.java index 7a716b28b2..9832a3b6e0 100644 --- a/src/main/java/net/server/channel/handlers/UseItemHandler.java +++ b/src/main/java/net/server/channel/handlers/UseItemHandler.java @@ -30,17 +30,17 @@ import client.inventory.manipulator.MapleInventoryManipulator; import config.YamlConfig; import constants.inventory.ItemConstants; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import server.MapleItemInformationProvider; import server.MapleStatEffect; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; /** * @author Matze */ public final class UseItemHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { MapleCharacter chr = c.getPlayer(); if (!chr.isAlive()) { @@ -48,9 +48,9 @@ public final class UseItemHandler extends AbstractMaplePacketHandler { return; } MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); - slea.readInt(); - short slot = slea.readShort(); - int itemId = slea.readInt(); + p.readInt(); + short slot = p.readShort(); + int itemId = p.readInt(); Item toUse = chr.getInventory(MapleInventoryType.USE).getItem(slot); if (toUse != null && toUse.getQuantity() > 0 && toUse.getItemId() == itemId) { if (itemId == 2050004) { diff --git a/src/main/java/net/server/channel/handlers/UseMapleLifeHandler.java b/src/main/java/net/server/channel/handlers/UseMapleLifeHandler.java index 36a2000e9b..4c701e2c5b 100644 --- a/src/main/java/net/server/channel/handlers/UseMapleLifeHandler.java +++ b/src/main/java/net/server/channel/handlers/UseMapleLifeHandler.java @@ -22,8 +22,8 @@ package net.server.channel.handlers; import client.MapleCharacter; import client.MapleClient; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; /** * @@ -31,7 +31,7 @@ import tools.data.input.SeekableLittleEndianAccessor; */ public class UseMapleLifeHandler extends AbstractMaplePacketHandler { @Override - public void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public void handlePacket(InPacket p, MapleClient c) { MapleCharacter player = c.getPlayer(); long timeNow = currentServerTime(); @@ -43,7 +43,7 @@ public class UseMapleLifeHandler extends AbstractMaplePacketHandler { } player.setLastUsedCashItem(timeNow); - String name = slea.readMapleAsciiString(); + String name = p.readString(); if(MapleCharacter.canCreateChar(name)) { c.sendPacket(PacketCreator.sendMapleLifeCharacterInfo()); } else { diff --git a/src/main/java/net/server/channel/handlers/UseMountFoodHandler.java b/src/main/java/net/server/channel/handlers/UseMountFoodHandler.java index 8a44e3c5d0..4f5c4e6ae7 100644 --- a/src/main/java/net/server/channel/handlers/UseMountFoodHandler.java +++ b/src/main/java/net/server/channel/handlers/UseMountFoodHandler.java @@ -30,8 +30,8 @@ import client.inventory.MapleInventoryType; import client.inventory.manipulator.MapleInventoryManipulator; import constants.game.ExpTable; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; /** * @author PurpleMadness @@ -39,10 +39,10 @@ import tools.data.input.SeekableLittleEndianAccessor; */ public final class UseMountFoodHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - slea.skip(4); - short pos = slea.readShort(); - int itemid = slea.readInt(); + public final void handlePacket(InPacket p, MapleClient c) { + p.skip(4); + short pos = p.readShort(); + int itemid = p.readInt(); MapleCharacter chr = c.getPlayer(); MapleMount mount = chr.getMount(); diff --git a/src/main/java/net/server/channel/handlers/UseOwlOfMinervaHandler.java b/src/main/java/net/server/channel/handlers/UseOwlOfMinervaHandler.java index c8d21ef126..4c333285a7 100644 --- a/src/main/java/net/server/channel/handlers/UseOwlOfMinervaHandler.java +++ b/src/main/java/net/server/channel/handlers/UseOwlOfMinervaHandler.java @@ -22,9 +22,9 @@ package net.server.channel.handlers; import client.MapleClient; import constants.game.GameConstants; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import tools.PacketCreator; import tools.Pair; -import tools.data.input.SeekableLittleEndianAccessor; import java.util.Comparator; import java.util.LinkedList; @@ -37,7 +37,7 @@ import java.util.PriorityQueue; public final class UseOwlOfMinervaHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { List> owlSearched = c.getWorldServer().getOwlSearchedItems(); List owlLeaderboards; diff --git a/src/main/java/net/server/channel/handlers/UseSolomonHandler.java b/src/main/java/net/server/channel/handlers/UseSolomonHandler.java index dbc984b42c..57502d2d87 100644 --- a/src/main/java/net/server/channel/handlers/UseSolomonHandler.java +++ b/src/main/java/net/server/channel/handlers/UseSolomonHandler.java @@ -28,9 +28,9 @@ import client.inventory.MapleInventory; import client.inventory.MapleInventoryType; import client.inventory.manipulator.MapleInventoryManipulator; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import server.MapleItemInformationProvider; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; /** * @@ -41,10 +41,10 @@ import tools.data.input.SeekableLittleEndianAccessor; public final class UseSolomonHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - slea.readInt(); - short slot = slea.readShort(); - int itemId = slea.readInt(); + public final void handlePacket(InPacket p, MapleClient c) { + p.readInt(); + short slot = p.readShort(); + int itemId = p.readInt(); MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); if (c.tryacquireClient()) { diff --git a/src/main/java/net/server/channel/handlers/UseSummonBagHandler.java b/src/main/java/net/server/channel/handlers/UseSummonBagHandler.java index 3b9322d072..a683db171e 100644 --- a/src/main/java/net/server/channel/handlers/UseSummonBagHandler.java +++ b/src/main/java/net/server/channel/handlers/UseSummonBagHandler.java @@ -26,11 +26,11 @@ import client.inventory.Item; import client.inventory.MapleInventoryType; import client.inventory.manipulator.MapleInventoryManipulator; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import server.MapleItemInformationProvider; import server.life.MapleLifeFactory; import tools.PacketCreator; import tools.Randomizer; -import tools.data.input.SeekableLittleEndianAccessor; /** * @@ -39,15 +39,15 @@ import tools.data.input.SeekableLittleEndianAccessor; public final class UseSummonBagHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { //[4A 00][6C 4C F2 02][02 00][63 0B 20 00] if (!c.getPlayer().isAlive()) { c.sendPacket(PacketCreator.enableActions()); return; } - slea.readInt(); - short slot = slea.readShort(); - int itemId = slea.readInt(); + p.readInt(); + short slot = p.readShort(); + int itemId = p.readInt(); Item toUse = c.getPlayer().getInventory(MapleInventoryType.USE).getItem(slot); if (toUse != null && toUse.getQuantity() > 0 && toUse.getItemId() == itemId) { MapleInventoryManipulator.removeFromSlot(c, MapleInventoryType.USE, slot, (short) 1, false); diff --git a/src/main/java/net/server/channel/handlers/UseWaterOfLifeHandler.java b/src/main/java/net/server/channel/handlers/UseWaterOfLifeHandler.java index 49439db7d6..34b5707310 100644 --- a/src/main/java/net/server/channel/handlers/UseWaterOfLifeHandler.java +++ b/src/main/java/net/server/channel/handlers/UseWaterOfLifeHandler.java @@ -23,12 +23,12 @@ package net.server.channel.handlers; import client.MapleClient; import net.AbstractMaplePacketHandler; -import tools.data.input.SeekableLittleEndianAccessor; +import net.packet.InPacket; public final class UseWaterOfLifeHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { c.getAbstractPlayerInteraction().openNpc(1032102, "waterOfLife"); } } \ No newline at end of file diff --git a/src/main/java/net/server/channel/handlers/WeddingHandler.java b/src/main/java/net/server/channel/handlers/WeddingHandler.java index 0d9f4c3f41..452fd5d7f1 100644 --- a/src/main/java/net/server/channel/handlers/WeddingHandler.java +++ b/src/main/java/net/server/channel/handlers/WeddingHandler.java @@ -17,9 +17,9 @@ import client.inventory.manipulator.MapleKarmaManipulator; import config.YamlConfig; import constants.inventory.ItemConstants; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import server.MapleMarriage; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; import tools.packets.WeddingPackets; import java.util.Collections; @@ -32,17 +32,17 @@ import java.util.List; public final class WeddingHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { if (c.tryacquireClient()) { try { MapleCharacter chr = c.getPlayer(); - final byte mode = slea.readByte(); + final byte mode = p.readByte(); if (mode == 6) { //additem - short slot = slea.readShort(); - int itemid = slea.readInt(); - short quantity = slea.readShort(); + short slot = p.readShort(); + int itemid = p.readInt(); + short quantity = p.readShort(); MapleMarriage marriage = c.getPlayer().getMarriageInstance(); if (marriage != null) { @@ -102,8 +102,8 @@ public final class WeddingHandler extends AbstractMaplePacketHandler { c.sendPacket(PacketCreator.enableActions()); } } else if (mode == 7) { // take items - slea.readByte(); // invType - int itemPos = slea.readByte(); + p.readByte(); // invType + int itemPos = p.readByte(); MapleMarriage marriage = chr.getMarriageInstance(); if (marriage != null) { diff --git a/src/main/java/net/server/channel/handlers/WeddingTalkHandler.java b/src/main/java/net/server/channel/handlers/WeddingTalkHandler.java index dec9329860..d511a7b7c3 100644 --- a/src/main/java/net/server/channel/handlers/WeddingTalkHandler.java +++ b/src/main/java/net/server/channel/handlers/WeddingTalkHandler.java @@ -22,9 +22,9 @@ package net.server.channel.handlers; import client.MapleClient; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import scripting.event.EventInstanceManager; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; import tools.packets.WeddingPackets; /** @@ -34,8 +34,8 @@ import tools.packets.WeddingPackets; public final class WeddingTalkHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - byte action = slea.readByte(); + public final void handlePacket(InPacket p, MapleClient c) { + byte action = p.readByte(); if(action == 1) { EventInstanceManager eim = c.getPlayer().getEventInstance(); diff --git a/src/main/java/net/server/channel/handlers/WeddingTalkMoreHandler.java b/src/main/java/net/server/channel/handlers/WeddingTalkMoreHandler.java index fd77aacc28..2610eca967 100644 --- a/src/main/java/net/server/channel/handlers/WeddingTalkMoreHandler.java +++ b/src/main/java/net/server/channel/handlers/WeddingTalkMoreHandler.java @@ -22,9 +22,9 @@ package net.server.channel.handlers; import client.MapleClient; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import scripting.event.EventInstanceManager; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; import tools.packets.WeddingPackets; /** @@ -34,7 +34,7 @@ import tools.packets.WeddingPackets; public final class WeddingTalkMoreHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { EventInstanceManager eim = c.getPlayer().getEventInstance(); if(eim != null && !(c.getPlayer().getId() == eim.getIntProperty("groomId") || c.getPlayer().getId() == eim.getIntProperty("brideId"))) { eim.gridInsert(c.getPlayer(), 1); diff --git a/src/main/java/net/server/channel/handlers/WhisperHandler.java b/src/main/java/net/server/channel/handlers/WhisperHandler.java index db0bbf9c29..1dbafd3000 100644 --- a/src/main/java/net/server/channel/handlers/WhisperHandler.java +++ b/src/main/java/net/server/channel/handlers/WhisperHandler.java @@ -26,11 +26,11 @@ import client.MapleClient; import client.autoban.AutobanFactory; import config.YamlConfig; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import tools.FilePrinter; import tools.LogHelper; import tools.PacketCreator; import tools.PacketCreator.WhisperFlag; -import tools.data.input.SeekableLittleEndianAccessor; /** * @author Chronos @@ -44,9 +44,9 @@ public final class WhisperHandler extends AbstractMaplePacketHandler { public static final byte RT_DIFFERENT_CHANNEL = 0x03; @Override - public void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - byte request = slea.readByte(); - String name = slea.readMapleAsciiString(); + public void handlePacket(InPacket p, MapleClient c) { + byte request = p.readByte(); + String name = p.readString(); MapleCharacter target = c.getWorldServer().getPlayerStorage().getCharacterByName(name); if (target == null) { @@ -59,7 +59,7 @@ public final class WhisperHandler extends AbstractMaplePacketHandler { handleFind(c.getPlayer(), target, WhisperFlag.LOCATION); break; case WhisperFlag.WHISPER | WhisperFlag.REQUEST: - String message = slea.readMapleAsciiString(); + String message = p.readString(); handleWhisper(message, c.getPlayer(), target); break; case WhisperFlag.LOCATION_FRIEND | WhisperFlag.REQUEST: diff --git a/src/main/java/net/server/handlers/CustomPacketHandler.java b/src/main/java/net/server/handlers/CustomPacketHandler.java index 7b69f880a3..ab2e926809 100644 --- a/src/main/java/net/server/handlers/CustomPacketHandler.java +++ b/src/main/java/net/server/handlers/CustomPacketHandler.java @@ -23,14 +23,14 @@ package net.server.handlers; import client.MapleClient; import net.MaplePacketHandler; +import net.packet.InPacket; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; public class CustomPacketHandler implements MaplePacketHandler { @Override - public void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - if (slea.available() > 0 && c.getGMLevel() == 4) {//w/e - c.sendPacket(PacketCreator.customPacket(slea.read((int) slea.available()))); + public void handlePacket(InPacket p, MapleClient c) { + if (p.available() > 0 && c.getGMLevel() == 4) {//w/e + c.sendPacket(PacketCreator.customPacket(p.readBytes((int) p.available()))); } } diff --git a/src/main/java/net/server/handlers/KeepAliveHandler.java b/src/main/java/net/server/handlers/KeepAliveHandler.java index 93f51774a2..7d354de2cc 100644 --- a/src/main/java/net/server/handlers/KeepAliveHandler.java +++ b/src/main/java/net/server/handlers/KeepAliveHandler.java @@ -23,11 +23,11 @@ package net.server.handlers; import client.MapleClient; import net.MaplePacketHandler; -import tools.data.input.SeekableLittleEndianAccessor; +import net.packet.InPacket; public class KeepAliveHandler implements MaplePacketHandler { @Override - public void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public void handlePacket(InPacket p, MapleClient c) { c.pongReceived(); } diff --git a/src/main/java/net/server/handlers/LoginRequiringNoOpHandler.java b/src/main/java/net/server/handlers/LoginRequiringNoOpHandler.java index fbb86cb941..faa369a5cd 100644 --- a/src/main/java/net/server/handlers/LoginRequiringNoOpHandler.java +++ b/src/main/java/net/server/handlers/LoginRequiringNoOpHandler.java @@ -23,7 +23,7 @@ package net.server.handlers; import client.MapleClient; import net.MaplePacketHandler; -import tools.data.input.SeekableLittleEndianAccessor; +import net.packet.InPacket; public final class LoginRequiringNoOpHandler implements MaplePacketHandler { private static LoginRequiringNoOpHandler instance = new LoginRequiringNoOpHandler(); @@ -32,7 +32,7 @@ public final class LoginRequiringNoOpHandler implements MaplePacketHandler { return instance; } - public void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public void handlePacket(InPacket p, MapleClient c) { } public boolean validateState(MapleClient c) { diff --git a/src/main/java/net/server/handlers/login/AcceptToSHandler.java b/src/main/java/net/server/handlers/login/AcceptToSHandler.java index d6771a0cd9..21eff0b084 100644 --- a/src/main/java/net/server/handlers/login/AcceptToSHandler.java +++ b/src/main/java/net/server/handlers/login/AcceptToSHandler.java @@ -2,8 +2,8 @@ package net.server.handlers.login; import client.MapleClient; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; /** * @@ -17,8 +17,8 @@ public final class AcceptToSHandler extends AbstractMaplePacketHandler { } @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - if (slea.available() == 0 || slea.readByte() != 1 || c.acceptToS()) { + public final void handlePacket(InPacket p, MapleClient c) { + if (p.available() == 0 || p.readByte() != 1 || c.acceptToS()) { c.disconnect(false, false);//Client dc's but just because I am cool I do this (: return; } diff --git a/src/main/java/net/server/handlers/login/AfterLoginHandler.java b/src/main/java/net/server/handlers/login/AfterLoginHandler.java index 5c66d75284..6518dbd378 100644 --- a/src/main/java/net/server/handlers/login/AfterLoginHandler.java +++ b/src/main/java/net/server/handlers/login/AfterLoginHandler.java @@ -23,18 +23,18 @@ package net.server.handlers.login; import client.MapleClient; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import net.server.coordinator.session.SessionCoordinator; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; public final class AfterLoginHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - byte c2 = slea.readByte(); + public final void handlePacket(InPacket p, MapleClient c) { + byte c2 = p.readByte(); byte c3 = 5; - if (slea.available() > 0) { - c3 = slea.readByte(); + if (p.available() > 0) { + c3 = p.readByte(); } if (c2 == 1 && c3 == 1) { if (c.getPin() == null || c.getPin().equals("")) { @@ -43,14 +43,14 @@ public final class AfterLoginHandler extends AbstractMaplePacketHandler { c.sendPacket(PacketCreator.requestPin()); } } else if (c2 == 1 && c3 == 0) { - String pin = slea.readMapleAsciiString(); + String pin = p.readString(); if (c.checkPin(pin)) { c.sendPacket(PacketCreator.pinAccepted()); } else { c.sendPacket(PacketCreator.requestPinAfterFailure()); } } else if (c2 == 2 && c3 == 0) { - String pin = slea.readMapleAsciiString(); + String pin = p.readString(); if (c.checkPin(pin)) { c.sendPacket(PacketCreator.registerPin()); } else { diff --git a/src/main/java/net/server/handlers/login/CharSelectedHandler.java b/src/main/java/net/server/handlers/login/CharSelectedHandler.java index d39311c5ad..597da67347 100644 --- a/src/main/java/net/server/handlers/login/CharSelectedHandler.java +++ b/src/main/java/net/server/handlers/login/CharSelectedHandler.java @@ -23,6 +23,7 @@ package net.server.handlers.login; import client.MapleClient; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import net.server.Server; import net.server.coordinator.session.Hwid; import net.server.coordinator.session.SessionCoordinator; @@ -31,7 +32,6 @@ import net.server.world.World; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; import java.net.InetAddress; import java.net.UnknownHostException; @@ -50,11 +50,11 @@ public final class CharSelectedHandler extends AbstractMaplePacketHandler { } @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - int charId = slea.readInt(); + public final void handlePacket(InPacket p, MapleClient c) { + int charId = p.readInt(); - String macs = slea.readMapleAsciiString(); - String hostString = slea.readMapleAsciiString(); + String macs = p.readString(); + String hostString = p.readString(); final Hwid hwid; try { diff --git a/src/main/java/net/server/handlers/login/CharSelectedWithPicHandler.java b/src/main/java/net/server/handlers/login/CharSelectedWithPicHandler.java index c6eb13ca78..355be8dc0f 100644 --- a/src/main/java/net/server/handlers/login/CharSelectedWithPicHandler.java +++ b/src/main/java/net/server/handlers/login/CharSelectedWithPicHandler.java @@ -2,6 +2,7 @@ package net.server.handlers.login; import client.MapleClient; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import net.server.Server; import net.server.coordinator.session.Hwid; import net.server.coordinator.session.SessionCoordinator; @@ -10,7 +11,6 @@ import net.server.world.World; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; import java.net.InetAddress; import java.net.UnknownHostException; @@ -29,12 +29,12 @@ public class CharSelectedWithPicHandler extends AbstractMaplePacketHandler { } @Override - public void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - String pic = slea.readMapleAsciiString(); - int charId = slea.readInt(); + public void handlePacket(InPacket p, MapleClient c) { + String pic = p.readString(); + int charId = p.readInt(); - String macs = slea.readMapleAsciiString(); - String hostString = slea.readMapleAsciiString(); + String macs = p.readString(); + String hostString = p.readString(); final Hwid hwid; try { diff --git a/src/main/java/net/server/handlers/login/CharlistRequestHandler.java b/src/main/java/net/server/handlers/login/CharlistRequestHandler.java index d34c7bfa76..77122c6b98 100644 --- a/src/main/java/net/server/handlers/login/CharlistRequestHandler.java +++ b/src/main/java/net/server/handlers/login/CharlistRequestHandler.java @@ -23,18 +23,18 @@ package net.server.handlers.login; import client.MapleClient; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import net.server.Server; import net.server.channel.Channel; import net.server.world.World; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; public final class CharlistRequestHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - slea.readByte(); - int world = slea.readByte(); + public final void handlePacket(InPacket p, MapleClient c) { + p.readByte(); + int world = p.readByte(); World wserv = Server.getInstance().getWorld(world); if(wserv == null || wserv.isWorldCapacityFull()) { @@ -42,7 +42,7 @@ public final class CharlistRequestHandler extends AbstractMaplePacketHandler { return; } - int channel = slea.readByte() + 1; + int channel = p.readByte() + 1; Channel ch = wserv.getChannel(channel); if(ch == null) { c.sendPacket(PacketCreator.getServerStatus(2)); diff --git a/src/main/java/net/server/handlers/login/CheckCharNameHandler.java b/src/main/java/net/server/handlers/login/CheckCharNameHandler.java index 696c236516..cb51e1614b 100644 --- a/src/main/java/net/server/handlers/login/CheckCharNameHandler.java +++ b/src/main/java/net/server/handlers/login/CheckCharNameHandler.java @@ -24,14 +24,14 @@ package net.server.handlers.login; import client.MapleCharacter; import client.MapleClient; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; public final class CheckCharNameHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - String name = slea.readMapleAsciiString(); + public final void handlePacket(InPacket p, MapleClient c) { + String name = p.readString(); c.sendPacket(PacketCreator.charNameResponse(name, !MapleCharacter.canCreateChar(name))); } } diff --git a/src/main/java/net/server/handlers/login/CreateCharHandler.java b/src/main/java/net/server/handlers/login/CreateCharHandler.java index 6c3c13f4aa..4d0ec82c56 100644 --- a/src/main/java/net/server/handlers/login/CreateCharHandler.java +++ b/src/main/java/net/server/handlers/login/CreateCharHandler.java @@ -26,9 +26,9 @@ import client.creator.novice.BeginnerCreator; import client.creator.novice.LegendCreator; import client.creator.novice.NoblesseCreator; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import tools.FilePrinter; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; import java.util.Arrays; import java.util.HashSet; @@ -52,20 +52,20 @@ public final class CreateCharHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - String name = slea.readMapleAsciiString(); - int job = slea.readInt(); - int face = slea.readInt(); + public final void handlePacket(InPacket p, MapleClient c) { + String name = p.readString(); + int job = p.readInt(); + int face = p.readInt(); - int hair = slea.readInt(); - int haircolor = slea.readInt(); - int skincolor = slea.readInt(); + int hair = p.readInt(); + int haircolor = p.readInt(); + int skincolor = p.readInt(); - int top = slea.readInt(); - int bottom = slea.readInt(); - int shoes = slea.readInt(); - int weapon = slea.readInt(); - int gender = slea.readByte(); + int top = p.readInt(); + int bottom = p.readInt(); + int shoes = p.readInt(); + int weapon = p.readInt(); + int gender = p.readByte(); int [] items = new int [] {weapon, top, bottom, shoes, hair, face}; for (int item : items) { diff --git a/src/main/java/net/server/handlers/login/DeleteCharHandler.java b/src/main/java/net/server/handlers/login/DeleteCharHandler.java index e1f5626825..178fc66d48 100644 --- a/src/main/java/net/server/handlers/login/DeleteCharHandler.java +++ b/src/main/java/net/server/handlers/login/DeleteCharHandler.java @@ -24,11 +24,11 @@ package net.server.handlers.login; import client.MapleClient; import client.MapleFamily; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import net.server.Server; import tools.DatabaseConnection; import tools.FilePrinter; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; import java.sql.Connection; import java.sql.PreparedStatement; @@ -38,9 +38,9 @@ import java.sql.SQLException; public final class DeleteCharHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - String pic = slea.readMapleAsciiString(); - int cid = slea.readInt(); + public final void handlePacket(InPacket p, MapleClient c) { + String pic = p.readString(); + int cid = p.readInt(); if (c.checkPic(pic)) { //check for family, guild leader, pending marriage, world transfer try (Connection con = DatabaseConnection.getConnection(); diff --git a/src/main/java/net/server/handlers/login/GuestLoginHandler.java b/src/main/java/net/server/handlers/login/GuestLoginHandler.java index 09979eee8f..dc543fe344 100644 --- a/src/main/java/net/server/handlers/login/GuestLoginHandler.java +++ b/src/main/java/net/server/handlers/login/GuestLoginHandler.java @@ -23,8 +23,8 @@ package net.server.handlers.login; import client.MapleClient; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; /* * @author David @@ -32,9 +32,9 @@ import tools.data.input.SeekableLittleEndianAccessor; public final class GuestLoginHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { c.sendPacket(PacketCreator.sendGuestTOS()); //System.out.println(slea.toString()); - new LoginPasswordHandler().handlePacket(slea, c); + new LoginPasswordHandler().handlePacket(p, c); } } diff --git a/src/main/java/net/server/handlers/login/LoginPasswordHandler.java b/src/main/java/net/server/handlers/login/LoginPasswordHandler.java index 31594ac886..cd7110c64d 100644 --- a/src/main/java/net/server/handlers/login/LoginPasswordHandler.java +++ b/src/main/java/net/server/handlers/login/LoginPasswordHandler.java @@ -25,13 +25,13 @@ import client.DefaultDates; import client.MapleClient; import config.YamlConfig; import net.MaplePacketHandler; +import net.packet.InPacket; import net.server.Server; import net.server.coordinator.session.Hwid; import tools.BCrypt; import tools.DatabaseConnection; import tools.HexTool; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; import java.io.UnsupportedEncodingException; import java.nio.charset.StandardCharsets; @@ -54,19 +54,19 @@ public final class LoginPasswordHandler implements MaplePacketHandler { } @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { String remoteHost = c.getRemoteAddress(); if (remoteHost.contentEquals("null")) { c.sendPacket(PacketCreator.getLoginFailed(14)); // thanks Alchemist for noting remoteHost could be null return; } - String login = slea.readMapleAsciiString(); - String pwd = slea.readMapleAsciiString(); + String login = p.readString(); + String pwd = p.readString(); c.setAccountName(login); - slea.skip(6); // localhost masked the initial part with zeroes... - byte[] hwidNibbles = slea.read(4); + p.skip(6); // localhost masked the initial part with zeroes... + byte[] hwidNibbles = p.readBytes(4); Hwid hwid = new Hwid(HexTool.bytesToHex(hwidNibbles)); int loginok = c.login(login, pwd, hwid); diff --git a/src/main/java/net/server/handlers/login/RegisterPicHandler.java b/src/main/java/net/server/handlers/login/RegisterPicHandler.java index de7c850d60..61b52da062 100644 --- a/src/main/java/net/server/handlers/login/RegisterPicHandler.java +++ b/src/main/java/net/server/handlers/login/RegisterPicHandler.java @@ -2,6 +2,7 @@ package net.server.handlers.login; import client.MapleClient; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import net.server.Server; import net.server.coordinator.session.Hwid; import net.server.coordinator.session.SessionCoordinator; @@ -10,7 +11,6 @@ import net.server.world.World; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; import java.net.InetAddress; import java.net.UnknownHostException; @@ -29,12 +29,12 @@ public final class RegisterPicHandler extends AbstractMaplePacketHandler { } @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - slea.readByte(); - int charId = slea.readInt(); + public final void handlePacket(InPacket p, MapleClient c) { + p.readByte(); + int charId = p.readInt(); - String macs = slea.readMapleAsciiString(); - String hostString = slea.readMapleAsciiString(); + String macs = p.readString(); + String hostString = p.readString(); final Hwid hwid; try { @@ -65,7 +65,7 @@ public final class RegisterPicHandler extends AbstractMaplePacketHandler { return; } - String pic = slea.readMapleAsciiString(); + String pic = p.readString(); if (c.getPic() == null || c.getPic().equals("")) { c.setPic(pic); diff --git a/src/main/java/net/server/handlers/login/RegisterPinHandler.java b/src/main/java/net/server/handlers/login/RegisterPinHandler.java index 1caa92af07..d3252e08de 100644 --- a/src/main/java/net/server/handlers/login/RegisterPinHandler.java +++ b/src/main/java/net/server/handlers/login/RegisterPinHandler.java @@ -23,22 +23,22 @@ package net.server.handlers.login; import client.MapleClient; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import net.server.coordinator.session.SessionCoordinator; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; /* * @author Rob */ public final class RegisterPinHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - byte c2 = slea.readByte(); + public final void handlePacket(InPacket p, MapleClient c) { + byte c2 = p.readByte(); if (c2 == 0) { SessionCoordinator.getInstance().closeSession(c, null); c.updateLoginState(MapleClient.LOGIN_NOTLOGGEDIN); } else { - String pin = slea.readMapleAsciiString(); + String pin = p.readString(); if (pin != null) { c.setPin(pin); c.sendPacket(PacketCreator.pinRegistered()); diff --git a/src/main/java/net/server/handlers/login/RelogRequestHandler.java b/src/main/java/net/server/handlers/login/RelogRequestHandler.java index 4a5a0c2a8d..1659fe4272 100644 --- a/src/main/java/net/server/handlers/login/RelogRequestHandler.java +++ b/src/main/java/net/server/handlers/login/RelogRequestHandler.java @@ -23,8 +23,8 @@ package net.server.handlers.login; import client.MapleClient; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; public final class RelogRequestHandler extends AbstractMaplePacketHandler { @Override @@ -33,7 +33,7 @@ public final class RelogRequestHandler extends AbstractMaplePacketHandler { } @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { c.sendPacket(PacketCreator.getRelogResponse()); } } diff --git a/src/main/java/net/server/handlers/login/ServerStatusRequestHandler.java b/src/main/java/net/server/handlers/login/ServerStatusRequestHandler.java index fe0588600c..d07861ca34 100644 --- a/src/main/java/net/server/handlers/login/ServerStatusRequestHandler.java +++ b/src/main/java/net/server/handlers/login/ServerStatusRequestHandler.java @@ -23,16 +23,16 @@ package net.server.handlers.login; import client.MapleClient; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import net.server.Server; import net.server.world.World; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; public final class ServerStatusRequestHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - byte world = (byte) slea.readShort(); + public final void handlePacket(InPacket p, MapleClient c) { + byte world = (byte) p.readShort(); World wserv = Server.getInstance().getWorld(world); if(wserv != null) { int status = wserv.getWorldCapacityStatus(); diff --git a/src/main/java/net/server/handlers/login/ServerlistRequestHandler.java b/src/main/java/net/server/handlers/login/ServerlistRequestHandler.java index b71fb74062..2bac0b5198 100644 --- a/src/main/java/net/server/handlers/login/ServerlistRequestHandler.java +++ b/src/main/java/net/server/handlers/login/ServerlistRequestHandler.java @@ -24,17 +24,17 @@ package net.server.handlers.login; import client.MapleClient; import constants.game.GameConstants; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import net.server.Server; import net.server.world.World; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; import java.util.List; public final class ServerlistRequestHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { Server server = Server.getInstance(); List worlds = server.getWorlds(); c.requestedServerlist(worlds.size()); diff --git a/src/main/java/net/server/handlers/login/SetGenderHandler.java b/src/main/java/net/server/handlers/login/SetGenderHandler.java index 548a302611..ed07ab7476 100644 --- a/src/main/java/net/server/handlers/login/SetGenderHandler.java +++ b/src/main/java/net/server/handlers/login/SetGenderHandler.java @@ -24,10 +24,10 @@ package net.server.handlers.login; import client.MapleClient; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import net.server.Server; import net.server.coordinator.session.SessionCoordinator; import tools.PacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; /** * @@ -35,11 +35,11 @@ import tools.data.input.SeekableLittleEndianAccessor; */ public class SetGenderHandler extends AbstractMaplePacketHandler { @Override - public void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public void handlePacket(InPacket p, MapleClient c) { if (c.getGender() == 10) { //Packet shouldn't come if Gender isn't 10. - byte confirmed = slea.readByte(); + byte confirmed = p.readByte(); if (confirmed == 0x01) { - c.setGender(slea.readByte()); + c.setGender(p.readByte()); c.sendPacket(PacketCreator.getAuthSuccess(c)); Server.getInstance().registerLoginState(c); diff --git a/src/main/java/net/server/handlers/login/ViewAllCharHandler.java b/src/main/java/net/server/handlers/login/ViewAllCharHandler.java index a31ea3fe3a..cd07bcb66e 100644 --- a/src/main/java/net/server/handlers/login/ViewAllCharHandler.java +++ b/src/main/java/net/server/handlers/login/ViewAllCharHandler.java @@ -25,16 +25,16 @@ import client.MapleCharacter; import client.MapleClient; import config.YamlConfig; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import net.server.Server; import tools.PacketCreator; import tools.Pair; -import tools.data.input.SeekableLittleEndianAccessor; import java.util.List; public final class ViewAllCharHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public final void handlePacket(InPacket p, MapleClient c) { try { if(!c.canRequestCharlist()) { // client breaks if the charlist request pops too soon c.sendPacket(PacketCreator.showAllCharacter(0, 0)); diff --git a/src/main/java/net/server/handlers/login/ViewAllCharRegisterPicHandler.java b/src/main/java/net/server/handlers/login/ViewAllCharRegisterPicHandler.java index a4ee26afa5..203736bc70 100644 --- a/src/main/java/net/server/handlers/login/ViewAllCharRegisterPicHandler.java +++ b/src/main/java/net/server/handlers/login/ViewAllCharRegisterPicHandler.java @@ -2,6 +2,7 @@ package net.server.handlers.login; import client.MapleClient; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import net.server.Server; import net.server.coordinator.session.Hwid; import net.server.coordinator.session.SessionCoordinator; @@ -11,7 +12,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import tools.PacketCreator; import tools.Randomizer; -import tools.data.input.SeekableLittleEndianAccessor; import java.net.InetAddress; import java.net.UnknownHostException; @@ -30,13 +30,13 @@ public final class ViewAllCharRegisterPicHandler extends AbstractMaplePacketHand } @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - slea.readByte(); - int charId = slea.readInt(); - slea.readInt(); // please don't let the client choose which world they should login + public final void handlePacket(InPacket p, MapleClient c) { + p.readByte(); + int charId = p.readInt(); + p.readInt(); // please don't let the client choose which world they should login - String mac = slea.readMapleAsciiString(); - String hostString = slea.readMapleAsciiString(); + String mac = p.readString(); + String hostString = p.readString(); final Hwid hwid; try { @@ -77,7 +77,7 @@ public final class ViewAllCharRegisterPicHandler extends AbstractMaplePacketHand int channel = Randomizer.rand(1, server.getWorld(c.getWorld()).getChannelsSize()); c.setChannel(channel); - String pic = slea.readMapleAsciiString(); + String pic = p.readString(); c.setPic(pic); String[] socket = server.getInetSocket(c, c.getWorld(), channel); diff --git a/src/main/java/net/server/handlers/login/ViewAllCharSelectedHandler.java b/src/main/java/net/server/handlers/login/ViewAllCharSelectedHandler.java index 8320ff5681..184370263a 100644 --- a/src/main/java/net/server/handlers/login/ViewAllCharSelectedHandler.java +++ b/src/main/java/net/server/handlers/login/ViewAllCharSelectedHandler.java @@ -23,6 +23,7 @@ package net.server.handlers.login; import client.MapleClient; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import net.server.Server; import net.server.coordinator.session.Hwid; import net.server.coordinator.session.SessionCoordinator; @@ -32,7 +33,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import tools.PacketCreator; import tools.Randomizer; -import tools.data.input.SeekableLittleEndianAccessor; import java.net.InetAddress; import java.net.UnknownHostException; @@ -51,12 +51,12 @@ public final class ViewAllCharSelectedHandler extends AbstractMaplePacketHandler } @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - int charId = slea.readInt(); - slea.readInt(); // please don't let the client choose which world they should login + public final void handlePacket(InPacket p, MapleClient c) { + int charId = p.readInt(); + p.readInt(); // please don't let the client choose which world they should login - String macs = slea.readMapleAsciiString(); - String hostString = slea.readMapleAsciiString(); + String macs = p.readString(); + String hostString = p.readString(); final Hwid hwid; try { diff --git a/src/main/java/net/server/handlers/login/ViewAllCharSelectedWithPicHandler.java b/src/main/java/net/server/handlers/login/ViewAllCharSelectedWithPicHandler.java index 8dfeb6cac3..79faa3734d 100644 --- a/src/main/java/net/server/handlers/login/ViewAllCharSelectedWithPicHandler.java +++ b/src/main/java/net/server/handlers/login/ViewAllCharSelectedWithPicHandler.java @@ -2,6 +2,7 @@ package net.server.handlers.login; import client.MapleClient; import net.AbstractMaplePacketHandler; +import net.packet.InPacket; import net.server.Server; import net.server.coordinator.session.Hwid; import net.server.coordinator.session.SessionCoordinator; @@ -11,7 +12,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import tools.PacketCreator; import tools.Randomizer; -import tools.data.input.SeekableLittleEndianAccessor; import java.net.InetAddress; import java.net.UnknownHostException; @@ -30,14 +30,14 @@ public class ViewAllCharSelectedWithPicHandler extends AbstractMaplePacketHandle } @Override - public void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + public void handlePacket(InPacket p, MapleClient c) { - String pic = slea.readMapleAsciiString(); - int charId = slea.readInt(); - slea.readInt(); // please don't let the client choose which world they should login + String pic = p.readString(); + int charId = p.readInt(); + p.readInt(); // please don't let the client choose which world they should login - String macs = slea.readMapleAsciiString(); - String hostString = slea.readMapleAsciiString(); + String macs = p.readString(); + String hostString = p.readString(); final Hwid hwid; try { diff --git a/src/main/java/server/maps/AbstractAnimatedMapleMapObject.java b/src/main/java/server/maps/AbstractAnimatedMapleMapObject.java index 2623240159..3fc3098012 100644 --- a/src/main/java/server/maps/AbstractAnimatedMapleMapObject.java +++ b/src/main/java/server/maps/AbstractAnimatedMapleMapObject.java @@ -23,12 +23,8 @@ package server.maps; import java.util.Arrays; -import net.packet.ByteBufOutPacket; -import net.packet.OutPacket; -import net.packet.Packet; -import tools.data.input.ByteArrayByteStream; -import tools.data.input.GenericSeekableLittleEndianAccessor; -import tools.data.input.SeekableLittleEndianAccessor; +import io.netty.buffer.Unpooled; +import net.packet.*; public abstract class AbstractAnimatedMapleMapObject extends AbstractMapleMapObject implements AnimatedMapleMapObject { public static final int IDLE_MOVEMENT_PACKET_LENGTH = 15; @@ -51,7 +47,7 @@ public abstract class AbstractAnimatedMapleMapObject extends AbstractMapleMapObj return Math.abs(stance) % 2 == 1; } - public SeekableLittleEndianAccessor getIdleMovement() { + public InPacket getIdleMovement() { final byte[] idleMovementBytes = IDLE_MOVEMENT_PACKET.getBytes(); byte[] movementData = Arrays.copyOf(idleMovementBytes, idleMovementBytes.length); //seems wasteful to create a whole packet writer when only a few values are changed @@ -62,7 +58,7 @@ public abstract class AbstractAnimatedMapleMapObject extends AbstractMapleMapObj movementData[4] = (byte) (y & 0xFF); //y movementData[5] = (byte) (y >> 8 & 0xFF); movementData[12] = (byte) (getStance() & 0xFF); - return new GenericSeekableLittleEndianAccessor(new ByteArrayByteStream(movementData)); + return new ByteBufInPacket(Unpooled.wrappedBuffer(movementData)); } private static Packet createIdleMovementPacket() { diff --git a/src/main/java/tools/PacketCreator.java b/src/main/java/tools/PacketCreator.java index b9d9b9c946..b2d623befe 100644 --- a/src/main/java/tools/PacketCreator.java +++ b/src/main/java/tools/PacketCreator.java @@ -39,6 +39,7 @@ import constants.skills.ThunderBreaker; import net.encryption.InitializationVector; import net.opcodes.SendOpcode; import net.packet.ByteBufOutPacket; +import net.packet.InPacket; import net.packet.OutPacket; import net.packet.Packet; import net.server.PlayerCoolDownValueHolder; @@ -2206,11 +2207,11 @@ public class PacketCreator { return p; } - private static void rebroadcastMovementList(OutPacket op, SeekableLittleEndianAccessor slea, long movementDataLength) { + private static void rebroadcastMovementList(OutPacket op, InPacket ip, long movementDataLength) { //movement command length is sent by client, probably not a big issue? (could be calculated on server) //if multiple write/reads are slow, could use (and cache?) a byte[] buffer for (long i = 0; i < movementDataLength; i++) { - op.writeByte(slea.readByte()); + op.writeByte(ip.readByte()); } } @@ -2221,24 +2222,25 @@ public class PacketCreator { } } - public static Packet movePlayer(int chrId, SeekableLittleEndianAccessor movementSlea, long movementDataLength) { + public static Packet movePlayer(int chrId, InPacket movementPacket, long movementDataLength) { OutPacket p = OutPacket.create(SendOpcode.MOVE_PLAYER); p.writeInt(chrId); p.writeInt(0); - rebroadcastMovementList(p, movementSlea, movementDataLength); + rebroadcastMovementList(p, movementPacket, movementDataLength); return p; } - public static Packet moveSummon(int cid, int oid, Point startPos, SeekableLittleEndianAccessor movementSlea, long movementDataLength) { + public static Packet moveSummon(int cid, int oid, Point startPos, InPacket movementPacket, long movementDataLength) { final OutPacket p = OutPacket.create(SendOpcode.MOVE_SUMMON); p.writeInt(cid); p.writeInt(oid); p.writePos(startPos); - rebroadcastMovementList(p, movementSlea, movementDataLength); + rebroadcastMovementList(p, movementPacket, movementDataLength); return p; } - public static Packet moveMonster(int oid, boolean skillPossible, int skill, int skillId, int skillLevel, int pOption, Point startPos, SeekableLittleEndianAccessor movementSlea, long movementDataLength) { + public static Packet moveMonster(int oid, boolean skillPossible, int skill, int skillId, int skillLevel, int pOption, + Point startPos, InPacket movementPacket, long movementDataLength) { final OutPacket p = OutPacket.create(SendOpcode.MOVE_MONSTER); p.writeInt(oid); p.writeByte(0); @@ -2248,7 +2250,7 @@ public class PacketCreator { p.writeByte(skillLevel); p.writeShort(pOption); p.writePos(startPos); - rebroadcastMovementList(p, movementSlea, movementDataLength); + rebroadcastMovementList(p, movementPacket, movementDataLength); return p; } @@ -7287,11 +7289,11 @@ public class PacketCreator { return p; } - public static Packet moveDragon(MapleDragon dragon, Point startPos, SeekableLittleEndianAccessor movementSlea, long movementDataLength) { + public static Packet moveDragon(MapleDragon dragon, Point startPos, InPacket movementPacket, long movementDataLength) { final OutPacket p = OutPacket.create(SendOpcode.MOVE_DRAGON); p.writeInt(dragon.getOwner().getId()); p.writePos(startPos); - rebroadcastMovementList(p, movementSlea, movementDataLength); + rebroadcastMovementList(p, movementPacket, movementDataLength); return p; } diff --git a/src/main/java/tools/exceptions/EmptyMovementException.java b/src/main/java/tools/exceptions/EmptyMovementException.java index cab98953b6..a1458df02e 100644 --- a/src/main/java/tools/exceptions/EmptyMovementException.java +++ b/src/main/java/tools/exceptions/EmptyMovementException.java @@ -19,7 +19,7 @@ */ package tools.exceptions; -import tools.data.input.LittleEndianAccessor; +import net.packet.InPacket; /** @@ -28,8 +28,8 @@ import tools.data.input.LittleEndianAccessor; */ public class EmptyMovementException extends Exception { - public EmptyMovementException(LittleEndianAccessor lea) { - super("Empty movement: " + lea); + public EmptyMovementException(InPacket inPacket) { + super("Empty movement: " + inPacket); } } diff --git a/src/test/java/net/packet/ByteBufInPacketTest.java b/src/test/java/net/packet/ByteBufInPacketTest.java index 80a611abd8..fd55ff3e61 100644 --- a/src/test/java/net/packet/ByteBufInPacketTest.java +++ b/src/test/java/net/packet/ByteBufInPacketTest.java @@ -72,7 +72,7 @@ class ByteBufInPacketTest { byteBuf.writeShortLE((short) writtenPoint.getX()); byteBuf.writeShortLE((short) writtenPoint.getY()); - Point readPoint = inPacket.readPoint(); + Point readPoint = inPacket.readPos(); assertEquals(writtenPoint, readPoint); }