diff --git a/.gitignore b/.gitignore index 42448d234..9935ae14a 100644 --- a/.gitignore +++ b/.gitignore @@ -35,4 +35,6 @@ docker .gradle gradle .idea -.idea/ \ No newline at end of file +.idea/ +Server/worldprops/ +Management-Server/managementprops/ \ No newline at end of file diff --git a/Server/src/main/java/Server/core/game/content/ame/AntiMacroEvent.java b/Server/src/main/java/Server/core/game/content/ame/AntiMacroEvent.java index 2f98fdf65..652c86308 100644 --- a/Server/src/main/java/Server/core/game/content/ame/AntiMacroEvent.java +++ b/Server/src/main/java/Server/core/game/content/ame/AntiMacroEvent.java @@ -2,7 +2,7 @@ package core.game.content.ame; import core.game.content.activity.ActivityPlugin; import core.game.node.entity.player.Player; -import core.game.node.entity.player.info.login.SavingModule; + import core.game.node.item.Item; import core.game.world.map.Location; import core.game.world.map.zone.ZoneRestriction; @@ -12,7 +12,7 @@ import core.tools.RandomFunction; * Handles an anti-macro event. * @author Emperor */ -public abstract class AntiMacroEvent extends ActivityPlugin implements SavingModule { +public abstract class AntiMacroEvent extends ActivityPlugin { /** * The random locations to teleport to if unresponsive. diff --git a/Server/src/main/java/Server/core/game/content/ame/AntiMacroHandler.java b/Server/src/main/java/Server/core/game/content/ame/AntiMacroHandler.java index ea1c5efdd..229c429a3 100644 --- a/Server/src/main/java/Server/core/game/content/ame/AntiMacroHandler.java +++ b/Server/src/main/java/Server/core/game/content/ame/AntiMacroHandler.java @@ -6,7 +6,7 @@ import core.game.world.map.zone.impl.WildernessZone; import core.game.node.entity.skill.Skills; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; -import core.game.node.entity.player.info.login.SavingModule; + import core.game.world.GameWorld; import core.game.world.map.zone.ZoneRestriction; import core.tools.RandomFunction; @@ -20,7 +20,7 @@ import java.util.Map; * @author Emperor * @author ceik */ -public final class AntiMacroHandler implements SavingModule { +public final class AntiMacroHandler { /** * The delay between periods in which it attempts to spawn a random event. @@ -76,42 +76,6 @@ public final class AntiMacroHandler implements SavingModule { return hasEvent() && event.isSaveRequired(); } - @Override - public void save(ByteBuffer buffer) { - if (hasEvent()) { - buffer.put((byte) 1); - ByteBufferUtils.putString(event.getName(), buffer); - buffer.put((byte) 0); - int index = buffer.position(); - event.save(buffer); - buffer.put(index - 1, (byte) (buffer.position() - index)); - } - buffer.put((byte) 0); - } - - @Override - public void parse(ByteBuffer buffer) { - event = null; - while (true) { - switch (buffer.get() & 0xFF) { - case 0: - return; - case 1: - event = EVENTS.get(ByteBufferUtils.getString(buffer)); - int length = buffer.get() & 0xFF; - ByteBuffer buf = ByteBuffer.allocate(length); - for (int i = 0; i < length; i++) { - buf.put(buffer.get()); - } - buf.flip(); - if (event != null) { - (event = event.create(player)).parse(buf); - } - break; - } - } - } - /** * Gets called every game pulse. */ diff --git a/Server/src/main/java/Server/core/game/content/ame/events/SandwichLadyNPC.kt b/Server/src/main/java/Server/core/game/content/ame/events/SandwichLadyNPC.kt index 1fe55e010..c20dd1a2b 100644 --- a/Server/src/main/java/Server/core/game/content/ame/events/SandwichLadyNPC.kt +++ b/Server/src/main/java/Server/core/game/content/ame/events/SandwichLadyNPC.kt @@ -13,8 +13,6 @@ import java.nio.ByteBuffer @Initializable class SandwichLadyEvent : AntiMacroEvent("Sandwich Lady",false,false, 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23){ - override fun parse(buffer: ByteBuffer?) { - } override fun start(player: Player?, login: Boolean, vararg args: Any?): Boolean { super.init(player) @@ -26,9 +24,6 @@ class SandwichLadyEvent : AntiMacroEvent("Sandwich Lady",false,false, 0,1,2,3,4, return true } - override fun save(buffer: ByteBuffer?) { - } - override fun configure() { } diff --git a/Server/src/main/java/Server/core/game/content/ame/events/drilldemon/DrillDemonEvent.java b/Server/src/main/java/Server/core/game/content/ame/events/drilldemon/DrillDemonEvent.java index 806407cfa..a464a572f 100644 --- a/Server/src/main/java/Server/core/game/content/ame/events/drilldemon/DrillDemonEvent.java +++ b/Server/src/main/java/Server/core/game/content/ame/events/drilldemon/DrillDemonEvent.java @@ -36,16 +36,6 @@ public final class DrillDemonEvent extends AntiMacroEvent { this.player = player; } - @Override - public void save(ByteBuffer buffer) { - - } - - @Override - public void parse(ByteBuffer buffer) { - - } - @Override public boolean start(Player player, boolean login, Object... args) { if (login) { diff --git a/Server/src/main/java/Server/core/game/content/ame/events/drunkdwarf/DrunkDwarfEvent.java b/Server/src/main/java/Server/core/game/content/ame/events/drunkdwarf/DrunkDwarfEvent.java index f4e043a95..326ac09a2 100644 --- a/Server/src/main/java/Server/core/game/content/ame/events/drunkdwarf/DrunkDwarfEvent.java +++ b/Server/src/main/java/Server/core/game/content/ame/events/drunkdwarf/DrunkDwarfEvent.java @@ -32,16 +32,6 @@ public final class DrunkDwarfEvent extends AntiMacroEvent { super(NAME, true, false); } - @Override - public void save(ByteBuffer buffer) { - - } - - @Override - public void parse(ByteBuffer buffer) { - - } - @Override public boolean start(Player player, boolean login, Object... args) { final DrunkenDwarfNPC dwarf = new DrunkenDwarfNPC(956, player.getLocation(), this, player); diff --git a/Server/src/main/java/Server/core/game/content/ame/events/evilchicken/EvilChickenRandomEvent.java b/Server/src/main/java/Server/core/game/content/ame/events/evilchicken/EvilChickenRandomEvent.java index 7864cc2ad..e919df899 100644 --- a/Server/src/main/java/Server/core/game/content/ame/events/evilchicken/EvilChickenRandomEvent.java +++ b/Server/src/main/java/Server/core/game/content/ame/events/evilchicken/EvilChickenRandomEvent.java @@ -76,14 +76,4 @@ public final class EvilChickenRandomEvent extends AntiMacroEvent { PluginManager.definePlugin(new EvilChickenNPC()); } - @Override - public void save(ByteBuffer buffer) { - - } - - @Override - public void parse(ByteBuffer buffer) { - - } - } diff --git a/Server/src/main/java/Server/core/game/content/ame/events/eviltwin/EvilTwinRandomEvent.java b/Server/src/main/java/Server/core/game/content/ame/events/eviltwin/EvilTwinRandomEvent.java index 44f873bec..c26741f94 100644 --- a/Server/src/main/java/Server/core/game/content/ame/events/eviltwin/EvilTwinRandomEvent.java +++ b/Server/src/main/java/Server/core/game/content/ame/events/eviltwin/EvilTwinRandomEvent.java @@ -461,31 +461,6 @@ public final class EvilTwinRandomEvent extends AntiMacroEvent { return 3892 + (hash & 0xFF) + (((hash >> 16) & 0xFF) * TwinClothColor.values().length); } - @Override - public void save(ByteBuffer buffer) { - int offset = player.getAttribute("ame:evil_twin", 0); - buffer.put((byte) (offset & 0xFF)); - buffer.put((byte) ((offset >> 16) & 0xFF)); - buffer.put((byte) (player.getLocation().getX() - region.getBaseLocation().getX())); - buffer.put((byte) (player.getLocation().getY() - region.getBaseLocation().getY())); - buffer.put((byte) tries); - Location loc = player.getAttribute("ame:location", ServerConstants.HOME_LOCATION); - buffer.putShort((short) loc.getX()); - buffer.putShort((short) loc.getY()); - buffer.put((byte) loc.getZ()); - buffer.put((byte) (success ? 1 : 0)); - } - - @Override - public void parse(ByteBuffer buffer) { - player.setAttribute("ame:evil_twin", (buffer.get() & 0xFF) | ((buffer.get() & 0xFF) << 16)); - offsetX = buffer.get() & 0xFF; - offsetY = buffer.get() & 0xFF; - tries = buffer.get() & 0xFF; - player.setAttribute("ame:location", Location.create(buffer.getShort(), buffer.getShort(), buffer.get())); - success = (buffer.get() & 0xFF) == 1; - } - @Override public AntiMacroEvent create(Player player) { return new EvilTwinRandomEvent(player); diff --git a/Server/src/main/java/Server/core/game/content/ame/events/genie/GenieRandomEvent.java b/Server/src/main/java/Server/core/game/content/ame/events/genie/GenieRandomEvent.java index d4bda6ef8..9d55728f0 100644 --- a/Server/src/main/java/Server/core/game/content/ame/events/genie/GenieRandomEvent.java +++ b/Server/src/main/java/Server/core/game/content/ame/events/genie/GenieRandomEvent.java @@ -30,14 +30,6 @@ public final class GenieRandomEvent extends AntiMacroEvent { super("Genie", true, false); } - @Override - public void save(ByteBuffer buffer) { - } - - @Override - public void parse(ByteBuffer buffer) { - } - @Override public boolean start(Player player, boolean login, Object... args) { if (player.hasItem(new Item(2528))) { diff --git a/Server/src/main/java/Server/core/game/content/ame/events/lostandfound/LostFoundRandomEvent.java b/Server/src/main/java/Server/core/game/content/ame/events/lostandfound/LostFoundRandomEvent.java index 8e2e0de3a..00563bfc3 100644 --- a/Server/src/main/java/Server/core/game/content/ame/events/lostandfound/LostFoundRandomEvent.java +++ b/Server/src/main/java/Server/core/game/content/ame/events/lostandfound/LostFoundRandomEvent.java @@ -182,29 +182,4 @@ public final class LostFoundRandomEvent extends AntiMacroEvent { } }); } - - @Override - public void save(ByteBuffer buffer) { - Location l = player.getAttribute("l&f_dest", player.getLocation()); - buffer.putShort((short) l.getX()).putShort((short) l.getY()).put((byte) l.getZ()); - Item[] runes = player.getAttribute("teleport:items", new Item[0]); - buffer.put((byte) runes.length); - for (int i = 0; i < runes.length; i++) { - buffer.putShort((short) runes[i].getId()); - buffer.put((byte) runes[i].getAmount()); - } - } - - @Override - public void parse(ByteBuffer buffer) { - player.setAttribute("l&f_dest", Location.create(buffer.getShort(), buffer.getShort(), buffer.get())); - Item[] runes = new Item[buffer.get() & 0xFF]; - for (int i = 0; i < runes.length; i++) { - runes[i] = new Item(buffer.getShort() & 0xFFFF, buffer.get() & 0xFF); - } - if (runes.length > 0) { - player.setAttribute("teleport:items", runes); - } - } - } \ No newline at end of file diff --git a/Server/src/main/java/Server/core/game/content/ame/events/lostpirate/CapnHandEvent.java b/Server/src/main/java/Server/core/game/content/ame/events/lostpirate/CapnHandEvent.java index e39b8b552..cae23cdbc 100644 --- a/Server/src/main/java/Server/core/game/content/ame/events/lostpirate/CapnHandEvent.java +++ b/Server/src/main/java/Server/core/game/content/ame/events/lostpirate/CapnHandEvent.java @@ -34,16 +34,6 @@ public final class CapnHandEvent extends AntiMacroEvent { super(NAME, true, false); } - @Override - public void save(ByteBuffer buffer) { - - } - - @Override - public void parse(ByteBuffer buffer) { - - } - @Override public boolean start(Player player, boolean login, Object... args) { final CapnHandNPC capn = new CapnHandNPC(2539, player.getLocation(), this, player); diff --git a/Server/src/main/java/Server/core/game/content/ame/events/quizmaster/QuizMasterEvent.java b/Server/src/main/java/Server/core/game/content/ame/events/quizmaster/QuizMasterEvent.java index 8657804c1..b74d926fe 100644 --- a/Server/src/main/java/Server/core/game/content/ame/events/quizmaster/QuizMasterEvent.java +++ b/Server/src/main/java/Server/core/game/content/ame/events/quizmaster/QuizMasterEvent.java @@ -45,34 +45,6 @@ public final class QuizMasterEvent extends AntiMacroEvent { super("quiz master", true, true); } - @Override - public void save(ByteBuffer buffer) { - SavedData.save(buffer, score, 1); - SavedData.save(buffer, startedQuiz, 2); - buffer.put((byte) 3); - Location l = player.getAttribute("ame:location", ServerConstants.HOME_LOCATION); - l.save(buffer); - buffer.put((byte) 0); - } - - @Override - public void parse(ByteBuffer buffer) { - int opcode; - while ((opcode = buffer.get()) != 0) { - switch (opcode) { - case 1: - score = buffer.get(); - break; - case 2: - startedQuiz = SavedData.getBoolean(buffer.get()); - break; - case 3: - player.setAttribute("ame:location", Location.parse(buffer)); - break; - } - } - } - @Override public boolean enter(Entity entity) { /* diff --git a/Server/src/main/java/Server/core/game/content/ame/events/rickturpentine/RickTurpentineEvent.java b/Server/src/main/java/Server/core/game/content/ame/events/rickturpentine/RickTurpentineEvent.java index 130282d48..862c48047 100644 --- a/Server/src/main/java/Server/core/game/content/ame/events/rickturpentine/RickTurpentineEvent.java +++ b/Server/src/main/java/Server/core/game/content/ame/events/rickturpentine/RickTurpentineEvent.java @@ -34,16 +34,6 @@ public final class RickTurpentineEvent extends AntiMacroEvent { super(NAME, true, false); } - @Override - public void save(ByteBuffer buffer) { - - } - - @Override - public void parse(ByteBuffer buffer) { - - } - @Override public boolean start(Player player, boolean login, Object... args) { final RickTurpentineNPC npc = new RickTurpentineNPC(2476, player.getLocation(), this, player); diff --git a/Server/src/main/java/Server/core/game/content/ame/events/rivertroll/RiverTrollEvent.java b/Server/src/main/java/Server/core/game/content/ame/events/rivertroll/RiverTrollEvent.java index df138acea..4947104fa 100644 --- a/Server/src/main/java/Server/core/game/content/ame/events/rivertroll/RiverTrollEvent.java +++ b/Server/src/main/java/Server/core/game/content/ame/events/rivertroll/RiverTrollEvent.java @@ -22,16 +22,6 @@ public final class RiverTrollEvent extends AntiMacroEvent { super("river troll", true, false, Skills.FISHING); } - @Override - public void save(ByteBuffer buffer) { - - } - - @Override - public void parse(ByteBuffer buffer) { - - } - @Override public boolean start(Player player, boolean login, Object... args) { final RiverTrollNPC troll = new RiverTrollNPC(getId(player), player.getLocation(), this, player); diff --git a/Server/src/main/java/Server/core/game/content/ame/events/shade/ShadeEvent.java b/Server/src/main/java/Server/core/game/content/ame/events/shade/ShadeEvent.java index 06cb4eaf9..064bd483d 100644 --- a/Server/src/main/java/Server/core/game/content/ame/events/shade/ShadeEvent.java +++ b/Server/src/main/java/Server/core/game/content/ame/events/shade/ShadeEvent.java @@ -22,16 +22,6 @@ public final class ShadeEvent extends AntiMacroEvent { super("shade", true, false, Skills.PRAYER); } - @Override - public void save(ByteBuffer buffer) { - - } - - @Override - public void parse(ByteBuffer buffer) { - - } - @Override public boolean start(Player player, boolean login, Object... args) { final ShadeNPC shade = new ShadeNPC(getId(player), player.getLocation(), this, player); diff --git a/Server/src/main/java/Server/core/game/content/ame/events/treespirit/TreeSpiritEvent.java b/Server/src/main/java/Server/core/game/content/ame/events/treespirit/TreeSpiritEvent.java index c8bf562e9..325e8d056 100644 --- a/Server/src/main/java/Server/core/game/content/ame/events/treespirit/TreeSpiritEvent.java +++ b/Server/src/main/java/Server/core/game/content/ame/events/treespirit/TreeSpiritEvent.java @@ -22,16 +22,6 @@ public final class TreeSpiritEvent extends AntiMacroEvent { super("tree spirit", true, false, Skills.WOODCUTTING); } - @Override - public void save(ByteBuffer buffer) { - - } - - @Override - public void parse(ByteBuffer buffer) { - - } - @Override public boolean start(Player player, boolean login, Object... args) { final TreeSpiritRandomNPC spirit = new TreeSpiritRandomNPC(getId(player), player.getLocation(), this, player); diff --git a/Server/src/main/java/Server/core/game/content/ame/events/zombie/ZombieEvent.java b/Server/src/main/java/Server/core/game/content/ame/events/zombie/ZombieEvent.java index fab2a1a63..d2a119561 100644 --- a/Server/src/main/java/Server/core/game/content/ame/events/zombie/ZombieEvent.java +++ b/Server/src/main/java/Server/core/game/content/ame/events/zombie/ZombieEvent.java @@ -22,16 +22,6 @@ public final class ZombieEvent extends AntiMacroEvent { super("zombie", true, false, Skills.PRAYER); } - @Override - public void save(ByteBuffer buffer) { - - } - - @Override - public void parse(ByteBuffer buffer) { - - } - @Override public boolean start(Player player, boolean login, Object... args) { final ZombieAmeNPC zombie = new ZombieAmeNPC(getId(player), player.getLocation(), this, player); diff --git a/Server/src/main/java/Server/core/game/content/quest/members/thefremenniktrials/ChieftanBrundtDialogue.kt b/Server/src/main/java/Server/core/game/content/quest/members/thefremenniktrials/ChieftanBrundtDialogue.kt index e8790e512..f98bef8f3 100644 --- a/Server/src/main/java/Server/core/game/content/quest/members/thefremenniktrials/ChieftanBrundtDialogue.kt +++ b/Server/src/main/java/Server/core/game/content/quest/members/thefremenniktrials/ChieftanBrundtDialogue.kt @@ -6,7 +6,7 @@ import core.plugin.Initializable import core.game.content.dialogue.DialoguePlugin @Initializable -class ChieftanBrundt(player: Player? = Player(PlayerDetails("",""))) : DialoguePlugin(player){ +class ChieftanBrundt(player: Player? = null) : DialoguePlugin(player){ override fun open(vararg args: Any?): Boolean { if(player?.questRepository?.getStage("Fremennik Trials")!! == 0) { npc("Greetings outlander!") diff --git a/Server/src/main/java/Server/core/game/content/quest/members/thefremenniktrials/CouncilWorkerDialogue.kt b/Server/src/main/java/Server/core/game/content/quest/members/thefremenniktrials/CouncilWorkerDialogue.kt index 306ab170c..cb261d055 100644 --- a/Server/src/main/java/Server/core/game/content/quest/members/thefremenniktrials/CouncilWorkerDialogue.kt +++ b/Server/src/main/java/Server/core/game/content/quest/members/thefremenniktrials/CouncilWorkerDialogue.kt @@ -7,7 +7,7 @@ import core.plugin.Initializable import core.game.content.dialogue.DialoguePlugin @Initializable -class CouncilWorkerDialogue(player: Player? = Player(PlayerDetails("",""))) : DialoguePlugin(player){ +class CouncilWorkerDialogue(player: Player? = null) : DialoguePlugin(player){ override fun open(vararg args: Any?): Boolean { if(args.size > 1){ npc("Ta very much like. That'll hit the spot nicely.. Here,","You can have this. I picked it up as a souvenir on me","last holz") diff --git a/Server/src/main/java/Server/core/game/content/quest/members/thefremenniktrials/FremennikTrials.kt b/Server/src/main/java/Server/core/game/content/quest/members/thefremenniktrials/FremennikTrials.kt index 29cb7b2a2..b0ea9d5a8 100644 --- a/Server/src/main/java/Server/core/game/content/quest/members/thefremenniktrials/FremennikTrials.kt +++ b/Server/src/main/java/Server/core/game/content/quest/members/thefremenniktrials/FremennikTrials.kt @@ -3,10 +3,10 @@ package core.game.content.quest.fremtrials import core.game.node.entity.player.Player import core.game.node.entity.player.link.quest.Quest -import core.plugin.InitializablePlugin import core.game.node.entity.skill.Skills +import core.plugin.Initializable -@InitializablePlugin +@Initializable class FremennikTrials : Quest("Fremennik Trials",64,63,3,347,0,1,10){ class SkillRequirement(val skill: Int?, val level: Int?) diff --git a/Server/src/main/java/Server/core/game/content/quest/members/thefremenniktrials/ManniDialogue.kt b/Server/src/main/java/Server/core/game/content/quest/members/thefremenniktrials/ManniDialogue.kt index 9c5a17597..dcc522f23 100644 --- a/Server/src/main/java/Server/core/game/content/quest/members/thefremenniktrials/ManniDialogue.kt +++ b/Server/src/main/java/Server/core/game/content/quest/members/thefremenniktrials/ManniDialogue.kt @@ -14,7 +14,7 @@ import core.game.content.dialogue.DialoguePlugin import core.game.content.dialogue.FacialExpression @Initializable -class ManniDialogue(player: Player? = Player(PlayerDetails("",""))) : DialoguePlugin(player){ +class ManniDialogue(player: Player? = null) : DialoguePlugin(player){ var curNPC: NPC? = NPC(0,Location(0,0,0)) override fun open(vararg args: Any?): Boolean { curNPC = args[0] as? NPC diff --git a/Server/src/main/java/Server/core/game/content/quest/members/thefremenniktrials/OlafTheBard.kt b/Server/src/main/java/Server/core/game/content/quest/members/thefremenniktrials/OlafTheBard.kt index 55b94adf6..dfa40f8ad 100644 --- a/Server/src/main/java/Server/core/game/content/quest/members/thefremenniktrials/OlafTheBard.kt +++ b/Server/src/main/java/Server/core/game/content/quest/members/thefremenniktrials/OlafTheBard.kt @@ -6,7 +6,7 @@ import core.plugin.Initializable import core.game.content.dialogue.DialoguePlugin @Initializable -class OlafTheBard(player: Player? = Player(PlayerDetails("",""))) : DialoguePlugin(player){ +class OlafTheBard(player: Player? = null) : DialoguePlugin(player){ override fun open(vararg args: Any?): Boolean { if(player?.getAttribute("fremtrials:olaf-accepted",false)!!){ npc("I can't wait to see your performance.") diff --git a/Server/src/main/java/Server/core/game/content/quest/members/thefremenniktrials/PoisonSalesman.kt b/Server/src/main/java/Server/core/game/content/quest/members/thefremenniktrials/PoisonSalesman.kt index d74ef750b..737af3ada 100644 --- a/Server/src/main/java/Server/core/game/content/quest/members/thefremenniktrials/PoisonSalesman.kt +++ b/Server/src/main/java/Server/core/game/content/quest/members/thefremenniktrials/PoisonSalesman.kt @@ -1,80 +1,91 @@ package core.game.content.quest.members.thefremenniktrials +import core.game.content.dialogue.DialoguePlugin import core.game.node.entity.player.Player -import core.game.node.entity.player.info.PlayerDetails import core.game.node.item.Item import core.plugin.Initializable -import core.game.content.dialogue.DialoguePlugin +import core.tools.END_DIALOGUE +import core.tools.START_DIALOGUE @Initializable -class PoisonSalesman(player: Player? = Player(PlayerDetails("",""))) : DialoguePlugin(player){ +class PoisonSalesman(player: Player? = null) : DialoguePlugin(player) { + override fun open(vararg args: Any?): Boolean { options("Talk about the Murder Mystery Quest","Talk about the Fremennik Trials") - stage = 0 + stage = START_DIALOGUE return true } + override fun handle(interfaceId: Int, buttonId: Int): Boolean { - val fremStage = player?.questRepository?.getStage("Fremennik Trials") ?: 0 - when(stage){ - 0 -> when(buttonId){ - 1 -> {player("Err... nevermind");stage = 1000} - 2 -> {player("Hello.");stage = 10} + //val murderMysteryStage = player.questRepository.isComplete("Murder Mystery") + val fremennikTrialsStage = player.questRepository.getStage("Fremennik Trials") + + when (stage) { + START_DIALOGUE -> when (buttonId) { + 1 -> { player("Err... nevermind"); stage = END_DIALOGUE } + 2 -> { player("Hello."); stage = 10 } } //Fremennik Trials - 10 -> if(fremStage == 0){ npc("Come see me if you ever need low-alcohol beer!"); stage = 1000} - else if(fremStage > 30){npc("Thanks for buying out all that low-alcohol beer!"); stage = 1000} - else if(fremStage > 0){npc("Howdy! You seem like someone with discerning taste!","Howsabout you try my brand new range of alcohol?");stage++;} - 11 -> {player("Didn't you used to sell poison?");stage++} - 12 -> {npc("That I did indeed! Peter Potter's Patented","Multipurpose poison! A miracle of modern apothecarys!","My exclusive concoction has been test on...");stage++} - 13 -> {player("Uh, yeah. I've already heard the sales pitch.");stage++} - 14 -> {npc("Sorry stranger, old habits die hard I guess.");stage++} - 15 -> {player("So you don't sell poison anymore?");stage++} - 16 -> {npc("Well I would, but I ran out of stock. Business wasn't","helped with that stuff that happened up at the Sinclair","Mansion much either, I'll be honest.");stage++} - 17 -> {npc("So, being the man of enterprise that I am I decided to","branch out a little bit!");stage++} - 18 -> {player("Into alcohol?");stage++} - 19 -> {npc("Absolutely! The basic premise between alcohol and poison","is pretty much the same, after all! The difference is that","my alcohol has a unique property others do not!");stage++} - 20 -> {player("And what is that?");stage++} - 21 -> {sendDialogue("The salesman takes a deep breath.");stage++} - 22 -> {npc("Ever been too drunk to find your own home? Ever","wished that you could party away all night long, and","still wake up fresh as a daisy the next morning?");stage++} - 23 -> {npc("Thanks to the miracles of modern magic we have come","up with just the solution you need! Peter Potter's","Patented Party Potions!");stage++} - 24 -> {npc("It looks just like beer! It tastes just like beer! It smells","just like beer! But... it's not beer!");stage++} - 25 -> {npc("Our mages have mused for many moments to bring","you this miracle of modern magic! It has all the great","tastes you'd expect, but contains absolutely no alcohol!");stage++} - 26 -> {npc("That's right! You can drink Peter Potter's Patented","Party Potion as much as you want, and suffer","absolutely no ill effects whatsoever!");stage++} - 27 -> {npc("The clean fresh taste you know you can trust, from","the people who brought you: Peter Potters Patented","multipurpose poison, Pete Potters peculiar paint packs");stage++} - 28 -> {npc("and Peter Potters paralyzing panic pins. Available now","from all good stockists! Ask your local bartender now,","and experience the taste revolution of the century!");stage++} - 29 -> {sendDialogue("He seems to have finished for the time being.");stage++} - 30 -> {player("So.. when you say 'all good stockists'...");stage++} - 31 -> {npc("Yes?");stage++} - 32 -> {player("How many inns actually sell this stuff?");stage++} - 33 -> {npc("Well.. nobody has actually bought any yet. Everyone I","try and sell it to always asks me what exactly the point","of beer that has absolutely no effect on you is.");stage++} - 34 -> {player("So what is the point?");stage++} - 35 -> {npc("Well... Um... Er... Hmmm. You, er, don't get drunk.");stage++} - 36 -> {player("I see...");stage++} - 37 -> {npc("Aw man.. you don't want any now do you? I've really","tried to push this product, but I just don't think the","world is ready for beer that doesn't get you drunk.");stage++} - 38 -> {npc("I'm a man ahead of my time I tell you! It's not that","my products are bad, it's that they're too good for the","market!");stage++} - 39 -> {player("Actually, I would like some. How much do you want for it?");stage++} - 40 -> {npc("Y-you would??? Um, okay! I knew I still had the old","salesmans skills going on!");stage++} - 41 -> {npc("I will sell you a keg of it for only 250 gold pieces! So","What do you say?");stage++} - 42 -> {options("Yes","No");stage++} + 10 -> { + when (fremennikTrialsStage) { + 0 -> { npc("Come see me if you ever need low-alcohol beer!"); stage = END_DIALOGUE } + } + } +// if (fremennikTrialsStage == 0) +// else if(fremennikTrialsStage > 30) { npc("Thanks for buying out all that low-alcohol beer!"); stage = END_DIALOGUE } +// else if(fremennikTrialsStage > 0) { npc("Howdy! You seem like someone with discerning taste!","Howsabout you try my brand new range of alcohol?"); stage++ } + + 11 -> { player("Didn't you used to sell poison?"); stage++ } + 12 -> { npc("That I did indeed! Peter Potter's Patented","Multipurpose poison! A miracle of modern apothecarys!","My exclusive concoction has been test on..."); stage++ } + 13 -> { player("Uh, yeah. I've already heard the sales pitch."); stage++ } + 14 -> { npc("Sorry stranger, old habits die hard I guess."); stage++ } + 15 -> { player("So you don't sell poison anymore?"); stage++ } + 16 -> { npc("Well I would, but I ran out of stock. Business wasn't","helped with that stuff that happened up at the Sinclair","Mansion much either, I'll be honest."); stage++ } + 17 -> { npc("So, being the man of enterprise that I am I decided to","branch out a little bit!"); stage++ } + 18 -> { player("Into alcohol?"); stage++ } + 19 -> { npc("Absolutely! The basic premise between alcohol and poison","is pretty much the same, after all! The difference is that","my alcohol has a unique property others do not!"); stage++ } + 20 -> { player("And what is that?"); stage++ } + 21 -> { sendDialogue("The salesman takes a deep breath."); stage++ } + 22 -> { npc("Ever been too drunk to find your own home? Ever","wished that you could party away all night long, and","still wake up fresh as a daisy the next morning?"); stage++ } + 23 -> { npc("Thanks to the miracles of modern magic we have come","up with just the solution you need! Peter Potter's","Patented Party Potions!"); stage++ } + 24 -> { npc("It looks just like beer! It tastes just like beer! It smells","just like beer! But... it's not beer!"); stage++ } + 25 -> { npc("Our mages have mused for many moments to bring","you this miracle of modern magic! It has all the great","tastes you'd expect, but contains absolutely no alcohol!"); stage++ } + 26 -> { npc("That's right! You can drink Peter Potter's Patented","Party Potion as much as you want, and suffer","absolutely no ill effects whatsoever!"); stage++ } + 27 -> { npc("The clean fresh taste you know you can trust, from","the people who brought you: Peter Potters Patented","multipurpose poison, Pete Potters peculiar paint packs"); stage++ } + 28 -> { npc("and Peter Potters paralyzing panic pins. Available now","from all good stockists! Ask your local bartender now,","and experience the taste revolution of the century!"); stage++ } + 29 -> { sendDialogue("He seems to have finished for the time being."); stage++ } + 30 -> { player("So.. when you say 'all good stockists'..."); stage++ } + 31 -> { npc("Yes?"); stage++ } + 32 -> { player("How many inns actually sell this stuff?"); stage++ } + 33 -> { npc("Well.. nobody has actually bought any yet. Everyone I","try and sell it to always asks me what exactly the point","of beer that has absolutely no effect on you is."); stage++ } + 34 -> { player("So what is the point?"); stage++ } + 35 -> { npc("Well... Um... Er... Hmmm. You, er, don't get drunk."); stage++ } + 36 -> { player("I see..."); stage++ } + 37 -> { npc("Aw man.. you don't want any now do you? I've really","tried to push this product, but I just don't think the","world is ready for beer that doesn't get you drunk."); stage++ } + 38 -> { npc("I'm a man ahead of my time I tell you! It's not that","my products are bad, it's that they're too good for the","market!"); stage++ } + 39 -> { player("Actually, I would like some. How much do you want for it?"); stage++ } + 40 -> { npc("Y-you would??? Um, okay! I knew I still had the old","salesmans skills going on!"); stage++ } + 41 -> { npc("I will sell you a keg of it for only 250 gold pieces! So","What do you say?"); stage++ } + 42 -> { options("Yes","No"); stage++ } 43 -> when(buttonId){ - 1 -> {player("Yes please!");stage++} - 2 -> {player("No, thanks.");stage = 1000} + 1 -> { player("Yes please!"); stage++ } + 2 -> { player("No, thanks."); stage = END_DIALOGUE } } //Yes 44 -> if(player?.inventory?.containsItem(Item(995,250)) == true){ player?.inventory?.remove(Item(995,250)) player?.inventory?.add(Item(3712)) npc("Here you go.") - stage = 1000 + stage = END_DIALOGUE } else { player("I don't seem to have enough.") stage++ } - 45 -> {npc("Well come back when you do!");stage = 1000} + 45 -> { npc("Well come back when you do!"); stage = END_DIALOGUE } - 1000 -> end() + END_DIALOGUE -> end() } return true } diff --git a/Server/src/main/java/Server/core/game/content/quest/members/thefremenniktrials/SigliTheHuntsman.kt b/Server/src/main/java/Server/core/game/content/quest/members/thefremenniktrials/SigliTheHuntsman.kt index b930226dc..0a0eda85c 100644 --- a/Server/src/main/java/Server/core/game/content/quest/members/thefremenniktrials/SigliTheHuntsman.kt +++ b/Server/src/main/java/Server/core/game/content/quest/members/thefremenniktrials/SigliTheHuntsman.kt @@ -7,7 +7,7 @@ import core.plugin.Initializable import core.game.content.dialogue.DialoguePlugin @Initializable -class SigliTheHuntsman(player: Player? = Player(PlayerDetails("",""))) : DialoguePlugin(player){ +class SigliTheHuntsman(player: Player? = null) : DialoguePlugin(player){ override fun open(vararg args: Any?): Boolean { if(player?.getAttribute("fremtrials:sigli-vote",false)!!){ npc("You have my vote!") diff --git a/Server/src/main/java/Server/core/game/content/quest/members/thefremenniktrials/SwensenTheNavigator.kt b/Server/src/main/java/Server/core/game/content/quest/members/thefremenniktrials/SwensenTheNavigator.kt index beae808cc..9ae4c2c60 100644 --- a/Server/src/main/java/Server/core/game/content/quest/members/thefremenniktrials/SwensenTheNavigator.kt +++ b/Server/src/main/java/Server/core/game/content/quest/members/thefremenniktrials/SwensenTheNavigator.kt @@ -6,7 +6,7 @@ import core.plugin.Initializable import core.game.content.dialogue.DialoguePlugin @Initializable -class SwensenTheNavigator(player: Player? = Player(PlayerDetails("",""))) : DialoguePlugin(player){ +class SwensenTheNavigator(player: Player? = null) : DialoguePlugin(player){ override fun open(vararg args: Any?): Boolean { if(player?.getAttribute("fremtrials:maze-complete",false) == true){ npc("Outerlander! You have finished my maze!","I am genuinely impressed!") diff --git a/Server/src/main/java/Server/core/game/content/quest/miniquest/barcrawl/BarcrawlManager.java b/Server/src/main/java/Server/core/game/content/quest/miniquest/barcrawl/BarcrawlManager.java index 9896653c6..c1948dff4 100644 --- a/Server/src/main/java/Server/core/game/content/quest/miniquest/barcrawl/BarcrawlManager.java +++ b/Server/src/main/java/Server/core/game/content/quest/miniquest/barcrawl/BarcrawlManager.java @@ -2,7 +2,7 @@ package core.game.content.quest.miniquest.barcrawl; import core.game.component.Component; import core.game.node.entity.player.Player; -import core.game.node.entity.player.info.login.SavingModule; + import core.game.node.item.Item; import org.json.simple.JSONArray; import org.json.simple.JSONObject; @@ -13,7 +13,7 @@ import java.nio.ByteBuffer; * Manages the players barcrawl quest. * @author 'Vexia */ -public final class BarcrawlManager implements SavingModule { +public final class BarcrawlManager { /** * The barcrawl card. @@ -53,20 +53,6 @@ public final class BarcrawlManager implements SavingModule { this.player = player; } - @Override - public void save(ByteBuffer buffer) { - if (started) { - buffer.put((byte) 1); - } - for (int i = 0; i < bars.length; i++) { - if (bars[i]) { - buffer.put((byte) 2); - buffer.put((byte) i); - } - } - buffer.put((byte) 0); - } - public void parse(JSONObject data){ started = (boolean) data.get("started"); JSONArray barsVisisted = (JSONArray) data.get("bars"); @@ -75,21 +61,6 @@ public final class BarcrawlManager implements SavingModule { } } - @Override - public void parse(ByteBuffer buffer) { - int opcode; - while ((opcode = buffer.get() & 0xFF) != 0) { - switch (opcode) { - case 1: - started = true; - break; - case 2: - bars[buffer.get()] = true; - break; - } - } - } - /** * Method used to read the card. */ diff --git a/Server/src/main/java/Server/core/game/content/ttrail/TreasureTrailManager.java b/Server/src/main/java/Server/core/game/content/ttrail/TreasureTrailManager.java index ee4e32088..fb34cc829 100644 --- a/Server/src/main/java/Server/core/game/content/ttrail/TreasureTrailManager.java +++ b/Server/src/main/java/Server/core/game/content/ttrail/TreasureTrailManager.java @@ -1,7 +1,7 @@ package core.game.content.ttrail; import core.game.node.entity.player.Player; -import core.game.node.entity.player.info.login.SavingModule; + import core.tools.RandomFunction; import org.json.simple.JSONArray; import org.json.simple.JSONObject; @@ -12,7 +12,7 @@ import java.nio.ByteBuffer; * Handles the treasure trail of a player. * @author Vexia */ -public final class TreasureTrailManager implements SavingModule { +public final class TreasureTrailManager { /** * The ids of the clues. @@ -58,23 +58,6 @@ public final class TreasureTrailManager implements SavingModule { this.player = player; } - @Override - public void save(ByteBuffer buffer) { - if (hasTrail()) { - buffer.put((byte) 1); - buffer.putInt(clueId << 16 | trailLength); - buffer.put((byte) 2); - buffer.putInt(trailStage); - } - if (completedClues[0] != 0 || completedClues[1] != 0 || completedClues[2] != 0) { - buffer.put((byte) 4); - for (int i = 0; i < completedClues.length; i++) { - buffer.putInt(completedClues[i]); - } - } - buffer.put((byte) 0); - } - public void parse(JSONObject data){ JSONArray cc = (JSONArray) data.get("completedClues"); for(int i = 0; i < cc.size(); i++){ @@ -89,35 +72,6 @@ public final class TreasureTrailManager implements SavingModule { } } - @Override - public void parse(ByteBuffer buffer) { - int opcode; - while ((opcode = buffer.get() & 0xFFFF) != 0) { - switch (opcode) { - case 1: - int hash = buffer.getInt(); - clueId = hash >> 16 & 0xFFFF; - trailLength = hash & 0xFFFF; - ClueScrollPlugin p = ClueScrollPlugin.getClueScrolls().get(clueId); - if (p != null) { - level = p.getLevel(); - } - break; - case 2: - trailStage = buffer.getInt(); - break; - case 3: - buffer.getInt();// old - break; - case 4: - for (int i = 0; i < completedClues.length; i++) { - completedClues[i] = buffer.getInt(); - } - break; - } - } - } - /** * Starts a treasure trail. * @param clue the clue. diff --git a/Server/src/main/java/Server/core/game/ge/PlayerGrandExchange.kt b/Server/src/main/java/Server/core/game/ge/PlayerGrandExchange.kt index 2a558109e..525d6dedc 100644 --- a/Server/src/main/java/Server/core/game/ge/PlayerGrandExchange.kt +++ b/Server/src/main/java/Server/core/game/ge/PlayerGrandExchange.kt @@ -8,7 +8,6 @@ import core.game.container.ContainerEvent import core.game.container.ContainerListener import core.game.container.access.InterfaceContainer import core.game.node.entity.player.Player -import core.game.node.entity.player.info.login.SavingModule import core.game.node.entity.player.link.audio.Audio import core.game.node.item.Item import core.game.system.monitor.PlayerMonitor @@ -41,7 +40,7 @@ import core.tools.Components * @author Angle */ -class PlayerGrandExchange(private val player: Player) : SavingModule { +class PlayerGrandExchange(private val player: Player) { var history = arrayOfNulls(5) @@ -227,11 +226,6 @@ class PlayerGrandExchange(private val player: Player) : SavingModule { openedIndex = -1 } - - override fun save(buffer: ByteBuffer?) { - TODO("Not yet implemented. NOT Ever implemented. Saving a bytebuffer is dumb") - } - fun parse(geData: JSONObject) { val offersRaw = geData["offers"] @@ -266,26 +260,6 @@ class PlayerGrandExchange(private val player: Player) : SavingModule { } } - override fun parse(buffer: ByteBuffer) { - var index = -1 - while (buffer.get().also { index = it.toInt() }.toInt() != -1) { - val key = buffer.long - OfferManager.setIndex(key, index) - } - for (i in history.indices) { - val s = buffer.get().toInt() - if (s == -1) { - continue - } - var o = GrandExchangeOffer() - o.itemID = buffer.short.toInt() - o.sell = true - o.totalCoinExchange = buffer.int - o.completedAmount = buffer.int - history[i] = o - } - } - /** * Initializes the grand exchange. */ diff --git a/Server/src/main/java/Server/core/game/interaction/item/brawling_gloves/BrawlingGlovesManager.java b/Server/src/main/java/Server/core/game/interaction/item/brawling_gloves/BrawlingGlovesManager.java index b63bd09a3..f6cef6e7e 100644 --- a/Server/src/main/java/Server/core/game/interaction/item/brawling_gloves/BrawlingGlovesManager.java +++ b/Server/src/main/java/Server/core/game/interaction/item/brawling_gloves/BrawlingGlovesManager.java @@ -2,7 +2,7 @@ package core.game.interaction.item.brawling_gloves; import core.cache.def.impl.ItemDefinition; import core.game.node.entity.player.Player; -import core.game.node.entity.player.info.login.SavingModule; + import core.game.node.item.Item; import java.nio.ByteBuffer; @@ -13,7 +13,7 @@ import java.util.Objects; * Manages brawling gloves for a player * @author ceik */ -public class BrawlingGlovesManager implements SavingModule { +public class BrawlingGlovesManager { final Player player; public HashMap GloveCharges = new HashMap(); @@ -28,27 +28,6 @@ public class BrawlingGlovesManager implements SavingModule { public BrawlingGlovesManager(Player player){this.player = player;} - @Override - public void save(ByteBuffer buffer) { - if(!GloveCharges.isEmpty()){ - GloveCharges.forEach((key,value) -> { - buffer.putInt(BrawlingGloves.forId(key).getIndicator()); - buffer.putInt(value); - }); - } - buffer.put((byte) 0); - } - - @Override - public void parse(ByteBuffer buffer) { - int opcode; - int charges; - while ((opcode = buffer.get() & 0xFF) != 0){ - charges = buffer.getInt(); - registerGlove(BrawlingGloves.forIndicator((byte)opcode).getId(),charges); - } - } - public boolean updateCharges(int glove, int charges){ if(GloveCharges.get(glove) != null){ if(GloveCharges.get(glove) - charges <= 0) { diff --git a/Server/src/main/java/Server/core/game/node/entity/player/info/login/SavingModule.java b/Server/src/main/java/Server/core/game/node/entity/player/info/login/SavingModule.java deleted file mode 100644 index dcc4147af..000000000 --- a/Server/src/main/java/Server/core/game/node/entity/player/info/login/SavingModule.java +++ /dev/null @@ -1,22 +0,0 @@ -package core.game.node.entity.player.info.login; - -import java.nio.ByteBuffer; - -/** - * Represents a saving module. - * @author Emperor - */ -public interface SavingModule { - - /** - * Writes data on the byte buffer. - * @param buffer The byte buffer. - */ - void save(ByteBuffer buffer); - - /** - * Parses data from the byte buffer. - * @param buffer The byte buffer. - */ - void parse(ByteBuffer buffer); -} \ No newline at end of file diff --git a/Server/src/main/java/Server/core/game/node/entity/player/link/ActivityData.java b/Server/src/main/java/Server/core/game/node/entity/player/link/ActivityData.java index c1d391e6c..b04537cc5 100644 --- a/Server/src/main/java/Server/core/game/node/entity/player/link/ActivityData.java +++ b/Server/src/main/java/Server/core/game/node/entity/player/link/ActivityData.java @@ -1,6 +1,6 @@ package core.game.node.entity.player.link; -import core.game.node.entity.player.info.login.SavingModule; + import org.json.simple.JSONArray; import org.json.simple.JSONObject; @@ -10,7 +10,7 @@ import java.nio.ByteBuffer; * Represents a managing class of activity related information. * @author 'Vexia */ -public final class ActivityData implements SavingModule { +public final class ActivityData { /** * Represents the pest points gained from pest control. @@ -126,52 +126,6 @@ public final class ActivityData implements SavingModule { */ } - @Override - public void save(ByteBuffer buffer) { - if (pestPoints > 0) { - SavedData.save(buffer, pestPoints, 1); - } - if (warriorGuildTokens > 0) { - SavedData.save(buffer, warriorGuildTokens, 2); - } - if (bountyHunterRate > 0) { - SavedData.save(buffer, bountyHunterRate, 3); - } - if (bountyRogueRate > 0) { - SavedData.save(buffer, bountyRogueRate, 4); - } - if (barrowKills > 0) { - SavedData.save(buffer, (short) barrowKills, 5); - } - SavedData.save(buffer, barrowBrothers, 6); - if (barrowTunnelIndex > 0) { - SavedData.save(buffer, (byte) barrowTunnelIndex, 7); - } - SavedData.save(buffer, kolodionStage, 9); - buffer.put((byte) 10); - for (int i = 0; i < godCasts.length; i++) { - buffer.putInt(godCasts[i]); - } - SavedData.save(buffer, kolodionBoss, 11); - SavedData.save(buffer, elnockSupplies, 12); - SavedData.save(buffer, getLastBorkBattle(), 13); - SavedData.save(buffer, startedMta, 14); - SavedData.save(buffer, lostCannon, 15); - buffer.put((byte) 16); - buffer.put((byte) pizazzPoints.length); - for (int i = 0; i < pizazzPoints.length; i++) { - buffer.putInt(pizazzPoints[i]); - } - SavedData.save(buffer, bonesToPeaches, 17); - SavedData.save(buffer, solvedMazes, 18); - SavedData.save(buffer, fogRating, 19); - SavedData.save(buffer, borkKills, 20); - SavedData.save(buffer, hardcoreDeath, 21); - SavedData.save(buffer, topGrabbed, 22); - buffer.put((byte) 0); - - } - public void parse(JSONObject data){ pestPoints = Integer.parseInt( data.get("pestPoints").toString()); warriorGuildTokens = Integer.parseInt( data.get("warriorGuildTokens").toString()); @@ -205,88 +159,6 @@ public final class ActivityData implements SavingModule { topGrabbed = (boolean) data.get("topGrabbed"); } - @Override - public void parse(ByteBuffer buffer) { - int opcode; - while ((opcode = buffer.get()) != 0) { - switch (opcode) { - case 1: - pestPoints = buffer.getInt(); - break; - case 2: - warriorGuildTokens = buffer.getInt(); - break; - case 3: - bountyHunterRate = buffer.getInt(); - break; - case 4: - bountyRogueRate = buffer.getInt(); - break; - case 5: - barrowKills = buffer.getShort() & 0xFFFF; - break; - case 6: - for (int i = 0; i < barrowBrothers.length; i++) { - barrowBrothers[i] = SavedData.getBoolean(buffer.get()); - } - break; - case 7: - barrowTunnelIndex = buffer.get() & 0xFF; - break; - case 8: - buffer.get(); // Barrow config index. - break; - case 9: - kolodionStage = buffer.getInt(); - break; - case 10: - for (int i = 0; i < godCasts.length; i++) { - godCasts[i] = buffer.getInt(); - } - break; - case 11: - kolodionBoss = buffer.getInt(); - break; - case 12: - elnockSupplies = SavedData.getBoolean(buffer); - break; - case 13: - setLastBorkBattle(buffer.getLong()); - break; - case 14: - startedMta = SavedData.getBoolean(buffer); - break; - case 15: - lostCannon = SavedData.getBoolean(buffer); - break; - case 16: - int size = buffer.get(); - for (int i = 0; i < size; i++) { - pizazzPoints[i] = buffer.getInt(); - } - break; - case 17: - bonesToPeaches = SavedData.getBoolean(buffer); - break; - case 18: - solvedMazes = buffer.getInt(); - break; - case 19: - fogRating = buffer.getInt(); - break; - case 20: - borkKills = buffer.get(); - break; - case 21: - hardcoreDeath = SavedData.getBoolean(buffer); - break; - case 22: - topGrabbed = SavedData.getBoolean(buffer); - break; - } - } - } - /** * Gets the elnockSupplies. * @return The elnockSupplies. diff --git a/Server/src/main/java/Server/core/game/node/entity/player/link/BankPinManager.java b/Server/src/main/java/Server/core/game/node/entity/player/link/BankPinManager.java index 254d269d6..4ee83f5a2 100644 --- a/Server/src/main/java/Server/core/game/node/entity/player/link/BankPinManager.java +++ b/Server/src/main/java/Server/core/game/node/entity/player/link/BankPinManager.java @@ -4,7 +4,7 @@ import core.cache.misc.buffer.ByteBufferUtils; import core.game.component.CloseEvent; import core.game.component.Component; import core.game.node.entity.player.Player; -import core.game.node.entity.player.info.login.SavingModule; + import core.game.world.GameWorld; import core.net.packet.PacketRepository; import core.net.packet.context.ChildPositionContext; @@ -26,7 +26,7 @@ import java.util.concurrent.TimeUnit; * @author Vexia * @author Emperor */ -public class BankPinManager implements SavingModule { +public class BankPinManager { /** * THe setting messages to display on default. @@ -113,24 +113,6 @@ public class BankPinManager implements SavingModule { } } - @Override - public void save(ByteBuffer buffer) { - if (hasPin()) { - ByteBufferUtils.putString(pin, buffer.put((byte) 1)); - } - buffer.put((byte) 2).put((byte) (longRecovery ? 1 : 0)); - if (status.ordinal() != 0) { - buffer.put((byte) 3).put(((byte) status.ordinal())); - } - if (pendingDelay != -1 && pendingDelay > System.currentTimeMillis()) { - buffer.put((byte) 4).putLong(pendingDelay); - } - if (tryDelay > System.currentTimeMillis()) { - buffer.put((byte) 5).putLong(tryDelay); - } - buffer.put((byte) 0); - } - public void parse(JSONObject data){ if(data.containsKey("pin")) { pin = data.get("pin").toString(); @@ -148,30 +130,6 @@ public class BankPinManager implements SavingModule { longRecovery = (boolean) data.get("longRecovery"); } - @Override - public void parse(ByteBuffer buffer) { - int opcode; - while ((opcode = buffer.get()) != 0) { - switch (opcode) { - case 1: - pin = ByteBufferUtils.getString(buffer); - break; - case 2: - longRecovery = buffer.get() == 1; - break; - case 3: - status = PinStatus.values()[buffer.get()]; - break; - case 4: - pendingDelay = buffer.getLong(); - break; - case 5: - tryDelay = buffer.getLong(); - break; - } - } - } - /** * Opens the settings. */ diff --git a/Server/src/main/java/Server/core/game/node/entity/player/link/ConfigurationManager.java b/Server/src/main/java/Server/core/game/node/entity/player/link/ConfigurationManager.java index 5dd3e8c23..a096a95a3 100644 --- a/Server/src/main/java/Server/core/game/node/entity/player/link/ConfigurationManager.java +++ b/Server/src/main/java/Server/core/game/node/entity/player/link/ConfigurationManager.java @@ -1,7 +1,7 @@ package core.game.node.entity.player.link; import core.game.node.entity.player.Player; -import core.game.node.entity.player.info.login.SavingModule; + import core.game.system.task.Pulse; import core.game.world.GameWorld; import core.net.packet.PacketRepository; @@ -15,7 +15,7 @@ import java.nio.ByteBuffer; * @author Emperor */ @Deprecated -public final class ConfigurationManager implements SavingModule { +public final class ConfigurationManager { /** * The amount of configurations. @@ -45,26 +45,6 @@ public final class ConfigurationManager implements SavingModule { this.player = player; } - @Override - public void save(ByteBuffer buffer) { - for (int index = 0; index < savedConfigurations.length; index++) { - int value = savedConfigurations[index]; - if (value != 0) { - buffer.putShort((short) index); - buffer.putInt(value); - } - } - buffer.putShort((short) -1); - } - - @Override - public void parse(ByteBuffer buffer) { - int index = 0; - while ((index = buffer.getShort()) != -1) { - savedConfigurations[index] = buffer.getInt(); - } - } - /** * Initializes the configurations. */ diff --git a/Server/src/main/java/Server/core/game/node/entity/player/link/GlobalData.java b/Server/src/main/java/Server/core/game/node/entity/player/link/GlobalData.java index 4876d38a7..f851a51e0 100644 --- a/Server/src/main/java/Server/core/game/node/entity/player/link/GlobalData.java +++ b/Server/src/main/java/Server/core/game/node/entity/player/link/GlobalData.java @@ -1,7 +1,7 @@ package core.game.node.entity.player.link; import core.game.content.global.GodBook; -import core.game.node.entity.player.info.login.SavingModule; + import org.json.simple.JSONArray; import org.json.simple.JSONObject; @@ -11,7 +11,7 @@ import java.nio.ByteBuffer; * Represents the quest data to save. * @author 'Vexia */ -public final class GlobalData implements SavingModule { +public final class GlobalData { /** * Represents the tutorial stage. @@ -309,99 +309,6 @@ public final class GlobalData implements SavingModule { */ private boolean macroDisabled = false; - @Override - public void save(ByteBuffer buffer) { - SavedData.save(buffer, tutorialStage, 1); - SavedData.save(buffer, homeTeleportDelay, 2); - SavedData.save(buffer, lumbridgeRope, 3); - SavedData.save(buffer, apprentice, 4); - SavedData.save(buffer, assistTime, 6); - SavedData.save(buffer, assistExperience, 7); - SavedData.save(buffer, strongHoldRewards, 8); - SavedData.save(buffer, chatPing, 9); - SavedData.save(buffer, tutorClaim, 10); - SavedData.save(buffer, luthasTask, 11); - SavedData.save(buffer, (byte) karamjaBananas, 12); - SavedData.save(buffer, silkSteal, 13); - SavedData.save(buffer, (byte) zafAmount, 14); - SavedData.save(buffer, zafTime, 15); - SavedData.save(buffer, fritzGlass, 16); - SavedData.save(buffer, wydinEmployee, 17); - SavedData.save(buffer, draynorRecording, 18); - SavedData.save(buffer, geTutorial, 19); - SavedData.save(buffer, essenceTeleporter, 20); - if (recoilDamage != 40) { - SavedData.save(buffer, (byte) recoilDamage, 21); - } - SavedData.save(buffer, doubleExpDelay, 22); - SavedData.save(buffer, joinedMonastery, 23); - SavedData.save(buffer, readPlaques, 25); - SavedData.save(buffer, forgingUses, 26); - SavedData.save(buffer, getEctoCharges(), 27); - // SavedData.save(buffer, xpLock, 28); - SavedData.save(buffer, braceletClayUses, 29); - SavedData.save(buffer, dropDelay, 30); - buffer.put((byte) 31); - buffer.put((byte) abyssData.length); - for (int i = 0; i < abyssData.length; i++) { - buffer.put((byte) (abyssData[i] ? 1 : 0)); - } - buffer.put((byte) 32); - for (int i = 0; i < rcDecays.length; i++) { - buffer.put((byte) rcDecays[i]); - } - SavedData.save(buffer, disableDeathScreen, 33); - SavedData.save(buffer, playerTestStage, 34); - SavedData.save(buffer, charmingDelay, 35); - buffer.put((byte) 36); - buffer.put(((byte) travelLogs.length)); - for (int i = 0; i < travelLogs.length; i++) { - buffer.put((byte) (travelLogs[i] ? 1 : 0)); - } - buffer.put((byte) 37); - buffer.put((byte) godBooks.length); - for (int i = 0; i < godBooks.length; i++) { - buffer.put(((byte) (godBooks[i] ? 1 : 0))); - } - if (godBook != -1) { - buffer.put((byte) 38).putInt(godBook); - } - SavedData.save(buffer, disableNews, 39); - if (!godPages.equals(new boolean[4])) { - buffer.put((byte) 40); - for (int i = 0; i < 4; i++) { - buffer.put((byte) (godPages[i] ? 1 : 0)); - } - } - SavedData.save(buffer, overChargeDelay, 41); - SavedData.save(buffer, bossCounters, 42); - SavedData.save(buffer, barrowsLoots, 43); - SavedData.save(buffer, lootSharePoints, 44); - SavedData.save(buffer, lootShareDelay, 45); - SavedData.save(buffer, doubleExp, 46); - SavedData.save(buffer, avasDevice, 47); - SavedData.save(buffer, globalTeleporterDelay, 48); - SavedData.save(buffer, starSpriteDelay, 49); - SavedData.save(buffer, runReplenishDelay, 50); - SavedData.save(buffer, runReplenishCharges, 51); - SavedData.save(buffer, lowAlchemyCharges, 52); - SavedData.save(buffer, lowAlchemyDelay, 53); - SavedData.save(buffer, enableBoneCrusher, 54); - SavedData.save(buffer, enableCoinMachine, 55); - SavedData.save(buffer, magicSkillCapeDelay, 56); - SavedData.save(buffer, hunterCapeDelay, 57); - SavedData.save(buffer, hunterCapeCharges, 58); - SavedData.save(buffer, enableCharmCollector, 59); - SavedData.save(buffer, minigameTeleportDelay, 60); - SavedData.save(buffer, getSavedX(), 61); - SavedData.save(buffer, getSavedY(), 62); - SavedData.save(buffer, getSavedH(), 63); - SavedData.save(buffer, getTaskAmount(), 64); - SavedData.save(buffer, getTaskPoints(), 65); - SavedData.save(buffer, macroDisabled,66); - buffer.put((byte) 0); - } - public void parse(JSONObject data){ tutorialStage = Integer.parseInt( data.get("tutorialStage").toString()); homeTeleportDelay = Long.parseLong(data.get("homeTeleportDelay").toString()); @@ -486,242 +393,6 @@ public final class GlobalData implements SavingModule { taskPoints = Integer.parseInt( data.get("taskPoints").toString()); macroDisabled = (boolean) data.get("macroDisabled"); } - - @Override - public void parse(ByteBuffer buffer) { - int opcode; - int size; - while ((opcode = buffer.get()) != 0) { - switch (opcode) { - case 1: - tutorialStage = buffer.getInt(); - break; - case 2: - homeTeleportDelay = buffer.getLong(); - break; - case 3: - lumbridgeRope = SavedData.getBoolean(buffer.get()); - break; - case 4: - apprentice = SavedData.getBoolean(buffer.get()); - break; - case 5: - buffer.getLong(); // Used to be skull time. - break; - case 6: - assistTime = buffer.getLong(); - break; - case 7: - for (int i = 0; i < assistExperience.length; i++) { - assistExperience[i] = buffer.getDouble(); - } - break; - case 8: - for (byte i = 0; i < strongHoldRewards.length; i++) { - strongHoldRewards[i] = SavedData.getBoolean(buffer.get()); - } - break; - case 9: - chatPing = buffer.getLong(); - break; - case 10: - tutorClaim = buffer.getLong(); - break; - case 11: - luthasTask = SavedData.getBoolean(buffer.get()); - break; - case 12: - karamjaBananas = buffer.get(); - break; - case 13: - silkSteal = buffer.getLong(); - break; - case 14: - zafAmount = buffer.get(); - ; - break; - case 15: - zafTime = buffer.getLong(); - break; - case 16: - fritzGlass = SavedData.getBoolean(buffer.get()); - break; - case 17: - wydinEmployee = SavedData.getBoolean(buffer.get()); - break; - case 18: - draynorRecording = SavedData.getBoolean(buffer.get()); - break; - case 19: - geTutorial = SavedData.getBoolean(buffer.get()); - break; - case 20: - essenceTeleporter = buffer.getInt(); - break; - case 21: - recoilDamage = buffer.get(); - break; - case 22: - doubleExpDelay = buffer.getLong(); - break; - case 23: - SavedData.getBoolean(buffer.get()); - break; - case 24:// tyler fuckup. - for (int i = 0; i < 7; i++) { - buffer.get(); - } - break; - case 25: - for (int i = 0; i < readPlaques.length; i++) { - readPlaques[i] = buffer.get() == 1; - } - break; - case 26: - forgingUses = buffer.getInt(); - break; - case 27: - setEctoCharges(buffer.getInt()); - break; - case 28: - // xpLock = SavedData.getBoolean(buffer); - SavedData.getBoolean(buffer); - break; - case 29: - braceletClayUses = buffer.getInt(); - break; - case 30: - dropDelay = buffer.getLong(); - break; - case 31: - size = buffer.get(); - for (int i = 0; i < size; i++) { - abyssData[i] = buffer.get() == 1; - } - break; - case 32: - for (int i = 0; i < rcDecays.length; i++) { - rcDecays[i] = buffer.get(); - } - break; - case 33: - disableDeathScreen = SavedData.getBoolean(buffer); - break; - case 34: - playerTestStage = buffer.getInt(); - break; - case 35: - charmingDelay = buffer.getLong(); - break; - case 36: - byte size1 = buffer.get(); - for (int i = 0; i < size1; i++) { - travelLogs[i] = buffer.get() == 1; - } - break; - case 37: - size = buffer.get(); - for (int i = 0; i < size; i++) { - godBooks[i] = buffer.get() == 1; - } - break; - case 38: - godBook = buffer.getInt(); - break; - case 39: - disableNews = SavedData.getBoolean(buffer); - break; - case 40: - for (int i = 0; i < 4; i++) { - godPages[i] = buffer.get() == 1; - } - break; - case 41: - overChargeDelay = buffer.getLong(); - break; - case 42: - for (int i = 0; i < bossCounters.length; i++) { - bossCounters[i] = buffer.getInt(); - if (bossCounters[i] < 0) { - bossCounters[i] = 127 + (bossCounters[i] * -1); - } - } - break; - case 43: - barrowsLoots = buffer.getInt(); - break; - case 44: - lootSharePoints = buffer.getInt(); - break; - case 45: - lootShareDelay = buffer.getLong(); - break; - case 46: - doubleExp = buffer.getLong(); - break; - case 47: - avasDevice = SavedData.getBoolean(buffer); - break; - case 48: - globalTeleporterDelay = buffer.getLong(); - break; - case 49: - starSpriteDelay = buffer.getLong(); - break; - case 50: - runReplenishDelay = buffer.getLong(); - break; - case 51: - runReplenishCharges = buffer.getInt(); - break; - case 52: - lowAlchemyCharges = buffer.getInt(); - break; - case 53: - lowAlchemyDelay = buffer.getLong(); - break; - case 54: - enableBoneCrusher = SavedData.getBoolean(buffer); - break; - case 55: - enableCoinMachine = SavedData.getBoolean(buffer); - break; - case 56: - magicSkillCapeDelay = buffer.getLong(); - break; - case 57: - hunterCapeDelay = buffer.getLong(); - break; - case 58: - hunterCapeCharges = buffer.getInt(); - break; - case 59: - enableCharmCollector = SavedData.getBoolean(buffer); - break; - case 60: - minigameTeleportDelay = buffer.getLong(); - break; - case 61: - setSavedX(buffer.getInt()); - break; - case 62: - setSavedY(buffer.getInt()); - break; - case 63: - setSavedH(buffer.getInt()); - break; - case 64: - setTaskAmount(buffer.getInt()); - break; - case 65: - setTaskPoints(buffer.getInt()); - break; - case 66: - macroDisabled = SavedData.getBoolean(buffer); - break; - } - } - } public void setSavedLocation(int x, int y, int z) { setSavedX(x); diff --git a/Server/src/main/java/Server/core/game/node/entity/player/link/IronmanManager.java b/Server/src/main/java/Server/core/game/node/entity/player/link/IronmanManager.java index 084ab2400..f0e51fbb6 100644 --- a/Server/src/main/java/Server/core/game/node/entity/player/link/IronmanManager.java +++ b/Server/src/main/java/Server/core/game/node/entity/player/link/IronmanManager.java @@ -1,7 +1,7 @@ package core.game.node.entity.player.link; import core.game.node.entity.player.Player; -import core.game.node.entity.player.info.login.SavingModule; + import java.nio.ByteBuffer; @@ -10,7 +10,7 @@ import java.nio.ByteBuffer; * @author Vexia * */ -public class IronmanManager implements SavingModule { +public class IronmanManager { /** * The player instance. @@ -30,29 +30,6 @@ public class IronmanManager implements SavingModule { this.player = player; } - @Override - public void save(ByteBuffer buffer) { - if (mode != IronmanMode.NONE) { - buffer.put((byte) 1); - buffer.put((byte) mode.ordinal()); - } - buffer.put((byte) 0); - } - - @Override - public void parse(ByteBuffer buffer) { - int opcode; - while ((opcode = buffer.get()) != 0) { - switch (opcode) { - case 1: - mode = IronmanMode.values()[buffer.get()]; - break; - case 2: //Indicates permanent. - break; - } - } - } - /** * Checks the restriction. * @return {@code True} if so. diff --git a/Server/src/main/java/Server/core/game/node/entity/player/link/QuestData.java b/Server/src/main/java/Server/core/game/node/entity/player/link/QuestData.java index 27ed665a1..aa58c395f 100644 --- a/Server/src/main/java/Server/core/game/node/entity/player/link/QuestData.java +++ b/Server/src/main/java/Server/core/game/node/entity/player/link/QuestData.java @@ -1,6 +1,6 @@ package core.game.node.entity.player.link; -import core.game.node.entity.player.info.login.SavingModule; + import core.game.node.item.Item; import org.json.simple.JSONArray; import org.json.simple.JSONObject; @@ -12,7 +12,7 @@ import java.util.Arrays; * Represents the quest data to save. * @author 'Vexia */ -public final class QuestData implements SavingModule { +public final class QuestData { /** * Represents the cooks assist attribute array. @@ -68,21 +68,6 @@ public final class QuestData implements SavingModule { populateDesertTreasureNode(); } - @Override - public void save(ByteBuffer buffer) { - SavedData.save(buffer, draynorLever, 1); - SavedData.save(buffer, dragonSlayer, 2); - SavedData.save(buffer, (byte) dragonSlayerPlanks, 3); - SavedData.save(buffer, demonSlayer, 4); - SavedData.save(buffer, cooksAssistant, 5); - SavedData.save(buffer, gardenerAttack, 6); - SavedData.save(buffer, talkedDrezel, 7); - saveDesertTreasureNode(buffer); - SavedData.save(buffer, witchsExperimentStage, 9); - SavedData.save(buffer, witchsExperimentKilled, 10); - buffer.put((byte) 0); - } - public void parse(JSONObject data){ JSONArray dl = (JSONArray) data.get("draynorLever"); for(int i = 0; i < dl.size(); i++){ @@ -112,55 +97,6 @@ public final class QuestData implements SavingModule { witchsExperimentStage = Integer.parseInt( data.get("witchsExperimentStage").toString()); } - @Override - public void parse(ByteBuffer buffer) { - int opcode; - while ((opcode = buffer.get()) != 0) { - switch (opcode) { - case 1: - for (int i = 0; i < draynorLever.length; i++) { - draynorLever[i] = SavedData.getBoolean(buffer.get()); - } - break; - case 2: - for (int i = 0; i < dragonSlayer.length; i++) { - dragonSlayer[i] = SavedData.getBoolean(buffer.get()); - } - break; - case 3: - dragonSlayerPlanks = buffer.get(); - break; - case 4: - for (int i = 0; i < demonSlayer.length; i++) { - demonSlayer[i] = SavedData.getBoolean(buffer.get()); - } - break; - case 5: - for (int i = 0; i < cooksAssistant.length; i++) { - cooksAssistant[i] = SavedData.getBoolean(buffer.get()); - } - break; - case 6: - gardenerAttack = SavedData.getBoolean(buffer.get()); - break; - case 7: - talkedDrezel = SavedData.getBoolean(buffer.get()); - break; - case 8: - for (int i = 0; i < desertTreasure.length; i++) { - desertTreasure[i] = new Item(buffer.getShort(), buffer.get()); - } - break; - case 9: - witchsExperimentStage = buffer.getInt(); - break; - case 10: - witchsExperimentKilled = SavedData.getBoolean(buffer.get()); - break; - } - } - } - /** * Saves the desert treasure node. * @param buffer The buffer. diff --git a/Server/src/main/java/Server/core/game/node/entity/player/link/SavedData.java b/Server/src/main/java/Server/core/game/node/entity/player/link/SavedData.java index 8aa6d0be6..77385e32a 100644 --- a/Server/src/main/java/Server/core/game/node/entity/player/link/SavedData.java +++ b/Server/src/main/java/Server/core/game/node/entity/player/link/SavedData.java @@ -1,7 +1,7 @@ package core.game.node.entity.player.link; import core.game.node.entity.player.Player; -import core.game.node.entity.player.info.login.SavingModule; + import core.game.node.entity.player.link.spawn.SpawnData; import core.game.system.SystemLogger; @@ -12,7 +12,7 @@ import java.nio.ByteBuffer; * such as questing data, npc talking data, etc. * @author 'Vexia */ -public class SavedData implements SavingModule { +public class SavedData { /** * Represents the global data to save. @@ -47,67 +47,6 @@ public class SavedData implements SavingModule { this.player = player; } - @Override - public void save(ByteBuffer buffer) { - buffer.put((byte) 1); - activityData.save(buffer); - buffer.put((byte) 2); - questData.save(buffer); - buffer.put((byte) 3); - globalData.save(buffer); - buffer.put((byte) 5); - spawnData.save(buffer); - buffer.put((byte) 0); - } - - @Override - public void parse(ByteBuffer buffer) { - int opcode; - while ((opcode = buffer.get()) != 0) { - switch (opcode) { - case 1: - activityData.parse(buffer); - break; - case 2: - questData.parse(buffer); - break; - case 3: - globalData.parse(buffer); - break; - case 4: - int opcode1; - while ((opcode1 = buffer.get()) != 0) { - switch (opcode1) { - case 1: - buffer.getInt(); - break; - case 2: - buffer.getInt(); - break; - case 3: - buffer.getInt(); - break; - case 4: - buffer.getInt(); - break; - case 5: - buffer.getInt(); - break; - case 6: - buffer.getInt(); - break; - } - } - break; - case 5: - spawnData.parse(buffer); - break; - default: - break; - } - } - } - /** * Method used to save an activity var that isn't valued at default. * @param buffer the buffer. diff --git a/Server/src/main/java/Server/core/game/node/entity/player/link/SpellBookManager.java b/Server/src/main/java/Server/core/game/node/entity/player/link/SpellBookManager.java index 05a998700..010a90a29 100644 --- a/Server/src/main/java/Server/core/game/node/entity/player/link/SpellBookManager.java +++ b/Server/src/main/java/Server/core/game/node/entity/player/link/SpellBookManager.java @@ -3,7 +3,7 @@ package core.game.node.entity.player.link; import core.game.component.Component; import core.game.node.entity.skill.magic.MagicSpell; import core.game.node.entity.player.Player; -import core.game.node.entity.player.info.login.SavingModule; + import java.nio.ByteBuffer; import java.util.HashMap; @@ -13,7 +13,7 @@ import java.util.Map; * Represents a managing class of a players spell book. * @author Vexia */ -public final class SpellBookManager implements SavingModule { +public final class SpellBookManager { /** * Represents the current interface if of the spellbook. @@ -29,18 +29,6 @@ public final class SpellBookManager implements SavingModule { */ } - @Override - public void save(ByteBuffer buffer) { - buffer.putInt(spellBook); - } - - @Override - public void parse(ByteBuffer buffer) { - if (buffer.hasRemaining()) { - setSpellBook(SpellBook.forInterface(buffer.getInt())); - } - } - /** * Sets the spell book. * @param book diff --git a/Server/src/main/java/Server/core/game/node/entity/player/link/WarningMessages.java b/Server/src/main/java/Server/core/game/node/entity/player/link/WarningMessages.java index e84249173..7ebf4d3f3 100644 --- a/Server/src/main/java/Server/core/game/node/entity/player/link/WarningMessages.java +++ b/Server/src/main/java/Server/core/game/node/entity/player/link/WarningMessages.java @@ -2,7 +2,7 @@ package core.game.node.entity.player.link; import core.game.component.Component; import core.game.node.entity.player.Player; -import core.game.node.entity.player.info.login.SavingModule; + import java.nio.ByteBuffer; import java.util.ArrayList; @@ -12,7 +12,7 @@ import java.util.List; * Handles the warning messages of a player. * @author Vexia */ -public final class WarningMessages implements SavingModule { +public final class WarningMessages { /** * Represents the config id. @@ -24,16 +24,6 @@ public final class WarningMessages implements SavingModule { */ private final List messages = new ArrayList<>(); - @Override - public void save(ByteBuffer buffer) { - - } - - @Override - public void parse(ByteBuffer buffer) { - - } - /** * Method used to open the warning messages. * @param player the player. @@ -79,7 +69,7 @@ public final class WarningMessages implements SavingModule { * Represents a warning message. * @author 'Vexia */ - public final class WarningMessage implements SavingModule { + public final class WarningMessage { /** * Represents the button index. @@ -94,16 +84,6 @@ public final class WarningMessages implements SavingModule { this.index = index; } - @Override - public void save(ByteBuffer buffer) { - - } - - @Override - public void parse(ByteBuffer buffer) { - - } - /** * Method used to toggle this warning message. * @param player the player. diff --git a/Server/src/main/java/Server/core/game/node/entity/player/link/appearance/Appearance.java b/Server/src/main/java/Server/core/game/node/entity/player/link/appearance/Appearance.java index f0205a6d8..9576ba590 100644 --- a/Server/src/main/java/Server/core/game/node/entity/player/link/appearance/Appearance.java +++ b/Server/src/main/java/Server/core/game/node/entity/player/link/appearance/Appearance.java @@ -6,7 +6,7 @@ import core.game.container.impl.EquipmentContainer; import core.game.node.entity.combat.equipment.WeaponInterface; import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.player.Player; -import core.game.node.entity.player.info.login.SavingModule; + import core.game.node.item.Item; import core.game.system.config.ItemConfigParser; import core.game.world.update.flag.context.Animation; @@ -21,7 +21,7 @@ import java.nio.ByteBuffer; * @author Emperor * @author Vexia */ -public final class Appearance implements SavingModule { +public final class Appearance { /** * Represents the player instance. @@ -76,14 +76,6 @@ public final class Appearance implements SavingModule { this.player = player; } - @Override - public void save(ByteBuffer buffer) { - buffer.put(gender.toByte()); - for (int i = 0; i < appearanceCache.length; i++) { - appearanceCache[i].save(buffer); - } - } - public void parse(JSONObject appearance){ gender = gender.asByte(Byte.parseByte(appearance.get("gender").toString())); JSONArray appCache = (JSONArray) appearance.get("appearance_cache"); @@ -92,14 +84,6 @@ public final class Appearance implements SavingModule { } } - @Override - public void parse(ByteBuffer buffer) { - gender = gender.asByte(buffer.get()); - for (int i = 0; i < appearanceCache.length; i++) { - appearanceCache[i].parse(buffer); - } - } - /** * Transforms the player into an NPC. * @param id The NPC id. diff --git a/Server/src/main/java/Server/core/game/node/entity/player/link/appearance/BodyPart.java b/Server/src/main/java/Server/core/game/node/entity/player/link/appearance/BodyPart.java index f5bf1588d..6cdab5e8a 100644 --- a/Server/src/main/java/Server/core/game/node/entity/player/link/appearance/BodyPart.java +++ b/Server/src/main/java/Server/core/game/node/entity/player/link/appearance/BodyPart.java @@ -1,6 +1,6 @@ package core.game.node.entity.player.link.appearance; -import core.game.node.entity.player.info.login.SavingModule; + import org.json.simple.JSONObject; import java.nio.ByteBuffer; @@ -9,7 +9,7 @@ import java.nio.ByteBuffer; * Represents a body part of a player encapsulating the type and color. * @author 'Vexia */ -public final class BodyPart implements SavingModule { +public final class BodyPart { /** * Represents the look value of the part. @@ -48,23 +48,11 @@ public final class BodyPart implements SavingModule { this(look, 0); } - @Override - public void save(ByteBuffer buffer) { - buffer.putInt(look); - buffer.putInt(color); - } - public void parse(JSONObject part){ changeLook(Integer.parseInt( part.get("look").toString())); changeColor(Integer.parseInt( part.get("color").toString())); } - @Override - public void parse(ByteBuffer buffer) { - changeLook(buffer.getInt()); - changeColor(buffer.getInt()); - } - /** * Method used to change the look value. * @param look the look value. diff --git a/Server/src/main/java/Server/core/game/node/entity/player/link/diary/AchievementDiary.java b/Server/src/main/java/Server/core/game/node/entity/player/link/diary/AchievementDiary.java index 985cbc146..b95c84c05 100644 --- a/Server/src/main/java/Server/core/game/node/entity/player/link/diary/AchievementDiary.java +++ b/Server/src/main/java/Server/core/game/node/entity/player/link/diary/AchievementDiary.java @@ -3,7 +3,7 @@ package core.game.node.entity.player.link.diary; import core.cache.def.impl.NPCDefinition; import core.game.component.Component; import core.game.node.entity.player.Player; -import core.game.node.entity.player.info.login.SavingModule; + import org.json.simple.JSONArray; import org.json.simple.JSONObject; @@ -14,7 +14,7 @@ import java.util.ArrayList; * Represents an achievement diary. * @author Vexia */ -public class AchievementDiary implements SavingModule { +public class AchievementDiary { /** * The component id of the diary. @@ -132,26 +132,6 @@ public class AchievementDiary implements SavingModule { } } - @Override - public void save(ByteBuffer buffer) { - buffer.put((byte) 1); - for (int i = 0; i < 3; i++) { - buffer.put((byte) (levelStarted[i] ? 1 : 0)); - } - buffer.put((byte) 2).put((byte) taskCompleted.length); - for (int i = 0; i < taskCompleted.length; i++) { - buffer.put((byte) type.getAchievements(i).length); - for (int x = 0; x < type.getAchievements(i).length; x++) { - buffer.put((byte) (taskCompleted[i][x] ? 1 : 0)); - } - } - buffer.put((byte) 3).put((byte) levelRewarded.length); - for (int i = 0; i < levelRewarded.length; i++) { - buffer.put((byte) (levelRewarded[i] ? 1 : 0)); - } - buffer.put((byte) 0); - } - public void parse(JSONObject data){ JSONArray startedArray = (JSONArray) data.get("startedLevels"); for(int i = 0; i < startedArray.size(); i++){ @@ -173,35 +153,6 @@ public class AchievementDiary implements SavingModule { } } - @Override - public void parse(ByteBuffer buffer) { - int opcode, size; - while ((opcode = buffer.get()) != 0) { - switch (opcode) { - case 1: - for (int i = 0; i < 3; i++) { - levelStarted[i] = buffer.get() == 1; - } - break; - case 2: - size = buffer.get() & 0xFF; - for (int i = 0; i < size; i++) { - int size_ = buffer.get() & 0xFF; - for (int x = 0; x < size_; x++) { - taskCompleted[i][x] = buffer.get() == 1; - } - } - break; - case 3: - size = buffer.get() & 0xFF; - for (int i = 0; i < size; i++) { - levelRewarded[i] = buffer.get() == 1; - } - break; - } - } - } - /** * Draws the status of the diary. * @param player the player. diff --git a/Server/src/main/java/Server/core/game/node/entity/player/link/diary/AchievementDiaryManager.java b/Server/src/main/java/Server/core/game/node/entity/player/link/diary/AchievementDiaryManager.java index 6374019e5..477917dd9 100644 --- a/Server/src/main/java/Server/core/game/node/entity/player/link/diary/AchievementDiaryManager.java +++ b/Server/src/main/java/Server/core/game/node/entity/player/link/diary/AchievementDiaryManager.java @@ -7,7 +7,7 @@ import org.json.simple.JSONArray; import org.json.simple.JSONObject; import core.game.node.entity.skill.smithing.smelting.Bar; import core.game.node.entity.player.Player; -import core.game.node.entity.player.info.login.SavingModule; + import core.game.node.item.Item; import java.nio.ByteBuffer; @@ -16,7 +16,7 @@ import java.nio.ByteBuffer; * Manages the achievement diary of a player. * @author Vexia */ -public class AchievementDiaryManager implements SavingModule { +public class AchievementDiaryManager { /** * The achievement diarys. @@ -43,15 +43,6 @@ public class AchievementDiaryManager implements SavingModule { this.player = player; } - @Override - public void save(ByteBuffer buffer) { - buffer.put((byte) 1).put(((byte) diarys.length)); - for (AchievementDiary diary : diarys) { - diary.save(buffer); - } - buffer.put((byte) 0); - } - public void parse(JSONArray data){ for(int i = 0; i < data.size(); i++){ JSONObject diary = (JSONObject) data.get(i); @@ -65,21 +56,6 @@ public class AchievementDiaryManager implements SavingModule { } } - @Override - public void parse(ByteBuffer buffer) { - int opcode; - while ((opcode = buffer.get()) != 0) { - switch (opcode) { - case 1: - int length = buffer.get() & 0xFF; - for (int i = 0; i < length; i++) { - diarys[i].parse(buffer); - } - break; - } - } - } - /** * Opens the achievement diary tab. */ diff --git a/Server/src/main/java/Server/core/game/node/entity/player/link/emote/EmoteManager.java b/Server/src/main/java/Server/core/game/node/entity/player/link/emote/EmoteManager.java index 7e1cc117f..9d8d0cf51 100644 --- a/Server/src/main/java/Server/core/game/node/entity/player/link/emote/EmoteManager.java +++ b/Server/src/main/java/Server/core/game/node/entity/player/link/emote/EmoteManager.java @@ -1,7 +1,7 @@ package core.game.node.entity.player.link.emote; import core.game.node.entity.player.Player; -import core.game.node.entity.player.info.login.SavingModule; + import java.nio.ByteBuffer; import java.util.ArrayList; @@ -12,7 +12,7 @@ import java.util.List; * @author Vexia * */ -public class EmoteManager implements SavingModule { +public class EmoteManager { /** * The list of unlocked emotes. @@ -35,26 +35,6 @@ public class EmoteManager implements SavingModule { } } - @Override - public void save(ByteBuffer buffer) { - buffer.put((byte) emotes.size()); - for (int i = 0; i < emotes.size(); i++) { - buffer.put((byte) emotes.get(i).ordinal()); - } - } - - @Override - public void parse(ByteBuffer buffer) { - int size = buffer.get(); - Emotes emote = null; - for (int i = 0; i < size; i++) { - emote = Emotes.values()[buffer.get()]; - if (!emotes.contains(emote)) { - emotes.add(emote); - } - } - } - /** * Refreshes the emote tab. */ diff --git a/Server/src/main/java/Server/core/game/node/entity/player/link/grave/GraveManager.java b/Server/src/main/java/Server/core/game/node/entity/player/link/grave/GraveManager.java index 8a7cefba8..71455f353 100644 --- a/Server/src/main/java/Server/core/game/node/entity/player/link/grave/GraveManager.java +++ b/Server/src/main/java/Server/core/game/node/entity/player/link/grave/GraveManager.java @@ -4,7 +4,7 @@ import core.game.node.entity.npc.AbstractNPC; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.info.Rights; -import core.game.node.entity.player.info.login.SavingModule; + import core.game.node.entity.player.link.HintIconManager; import core.game.node.entity.player.link.prayer.PrayerType; import core.game.node.item.GroundItem; @@ -19,7 +19,7 @@ import java.util.Map; * Manages the players grave stone. * @author Vexia */ -public class GraveManager implements SavingModule { +public class GraveManager { /** * The current grave stones in the world. @@ -49,18 +49,6 @@ public class GraveManager implements SavingModule { this.player = player; } - @Override - public void save(ByteBuffer buffer) { - buffer.putInt(type.ordinal()); - } - - @Override - public void parse(ByteBuffer buffer) { - if (buffer.hasRemaining()) { - type = GraveType.values()[buffer.getInt()]; - } - } - /** * Creates a grave. * @param ticks the ticks. diff --git a/Server/src/main/java/Server/core/game/node/entity/player/link/music/MusicPlayer.java b/Server/src/main/java/Server/core/game/node/entity/player/link/music/MusicPlayer.java index e0dd0782e..b3c6f7c35 100644 --- a/Server/src/main/java/Server/core/game/node/entity/player/link/music/MusicPlayer.java +++ b/Server/src/main/java/Server/core/game/node/entity/player/link/music/MusicPlayer.java @@ -1,7 +1,7 @@ package core.game.node.entity.player.link.music; import core.game.node.entity.player.Player; -import core.game.node.entity.player.info.login.SavingModule; + import core.game.node.entity.player.link.emote.Emotes; import core.game.world.GameWorld; import core.net.packet.PacketRepository; @@ -19,7 +19,7 @@ import java.util.Random; * Handles a music playing for a player. * @author Emperor */ -public final class MusicPlayer implements SavingModule { +public final class MusicPlayer { /** * The tutorial island music. @@ -70,37 +70,6 @@ public final class MusicPlayer implements SavingModule { this.unlocked = new HashMap<>(); } - @Override - public void save(ByteBuffer buffer) { - if (!unlocked.isEmpty()) { - buffer.put((byte) 1); - buffer.putShort((short) unlocked.size()); - for (MusicEntry entry : unlocked.values()) { - buffer.putShort((short) entry.getId()); - } - } - buffer.put((byte) 0); // EOF - } - - @Override - public void parse(ByteBuffer buffer) { - int opcode; - while ((opcode = buffer.get()) != 0) { - switch (opcode) { - case 1: - int size = buffer.getShort() & 0xFFFF; - for (int i = 0; i < size; i++) { - int musicId = buffer.getShort() & 0xFFFF; - MusicEntry entry = MusicEntry.forId(musicId); - if (entry != null) { - unlocked.put(entry.getIndex(), entry); - } - } - break; - } - } - } - /** * Initializes the music player. */ diff --git a/Server/src/main/java/Server/core/game/node/entity/player/link/quest/QuestRepository.java b/Server/src/main/java/Server/core/game/node/entity/player/link/quest/QuestRepository.java index 3e944a001..b4bbbfa56 100644 --- a/Server/src/main/java/Server/core/game/node/entity/player/link/quest/QuestRepository.java +++ b/Server/src/main/java/Server/core/game/node/entity/player/link/quest/QuestRepository.java @@ -1,7 +1,7 @@ package core.game.node.entity.player.link.quest; import core.game.node.entity.player.Player; -import core.game.node.entity.player.info.login.SavingModule; + import core.game.system.SystemLogger; import org.json.simple.JSONArray; import org.json.simple.JSONObject; @@ -16,7 +16,7 @@ import java.util.Map.Entry; * * @author Vexia */ -public final class QuestRepository implements SavingModule { +public final class QuestRepository { /** * The static mapping of instanced quests. @@ -50,23 +50,6 @@ public final class QuestRepository implements SavingModule { } } - @Override - public void save(ByteBuffer buffer) { - if (points != 0) { - buffer.put((byte) 1).putInt(points); - } - for (Entry entry : quests.entrySet()) { - buffer.put((byte) 4).putInt(entry.getKey()).put((byte) ((int) entry.getValue())); - } - Map backup = player.getAttribute("quest-backup", null); - if (backup != null) { - for (Entry entry : backup.entrySet()) { - buffer.put((byte) 4).putInt(entry.getKey()).put((byte) ((int) entry.getValue())); - } - } - buffer.put((byte) 0); - } - public void parse(JSONObject questData){ points = Integer.parseInt( questData.get("points").toString()); JSONArray questArray = (JSONArray) questData.get("questStages"); @@ -77,46 +60,6 @@ public final class QuestRepository implements SavingModule { syncPoints(); } - @Override - public void parse(ByteBuffer buffer) { - int opcode; - int stage = 0; - int index = 0; - while ((opcode = buffer.get() & 0xFF) != 0) { - switch (opcode) { - case 1: - points = buffer.getInt(); - break; - case 3: - index = buffer.getInt(); - stage = buffer.getInt(); - buffer.getInt();//state - if (forIndex(index) == null) { - //SystemLogger.error("[Quest Repository] parsed quest index -> " + index + " no quest found!"); - break; - } - quests.put(index, stage); - break; - case 4://new parsing. - index = buffer.getInt(); - stage = buffer.get(); - if (forIndex(index) == null) { - Map backup = player.getAttribute("quest-backup", new HashMap()); - backup.put(index, stage); - player.setAttribute("quest-backup", backup); - // SystemLogger.error("[Quest Repository] parsed quest index -> " + index + " no quest found! Stored in quest data backup for reparse."); - break; - } - if (!quests.containsKey(index)) {//YOU FORGOT YOUR ! DAMMIT - break; - } - quests.put(index, stage); - break; - } - } - syncPoints(); - } - /** * Synchronizes the quest tab. * diff --git a/Server/src/main/java/Server/core/game/node/entity/player/link/spawn/SpawnData.java b/Server/src/main/java/Server/core/game/node/entity/player/link/spawn/SpawnData.java index 7a2d77ca9..6bbffa4cc 100644 --- a/Server/src/main/java/Server/core/game/node/entity/player/link/spawn/SpawnData.java +++ b/Server/src/main/java/Server/core/game/node/entity/player/link/spawn/SpawnData.java @@ -3,7 +3,7 @@ package core.game.node.entity.player.link.spawn; import core.game.component.Component; import core.game.node.entity.skill.Skills; import core.game.node.entity.player.Player; -import core.game.node.entity.player.info.login.SavingModule; + import core.game.node.entity.player.link.SavedData; import core.game.node.entity.player.link.SpellBookManager; import core.game.world.GameWorld; @@ -20,7 +20,7 @@ import java.text.DecimalFormat; * @author Vexia * */ -public class SpawnData implements SavingModule { +public class SpawnData { /** * The kill streak messages. @@ -68,51 +68,6 @@ public class SpawnData implements SavingModule { */ } - @Override - public void save(ByteBuffer buffer) { - SavedData.save(buffer, tutorialStage, 1); - SavedData.save(buffer, pkPoints, 2); - SavedData.save(buffer, kills, 3); - SavedData.save(buffer, deaths, 4); - SavedData.save(buffer, killStreak, 5); - SavedData.save(buffer, title.ordinal(), 6); - SavedData.save(buffer, purchased, 7); - buffer.put((byte) 0); - } - - @Override - public void parse(ByteBuffer buffer) { - int opcode; - while ((opcode = buffer.get()) != 0) { - switch(opcode) { - case 1: - tutorialStage = buffer.getInt(); - break; - case 2: - pkPoints = buffer.getInt(); - break; - case 3: - kills = buffer.getInt(); - break; - case 4: - deaths = buffer.getInt(); - break; - case 5: - killStreak = buffer.getInt(); - break; - case 6: - title = PKTitle.values()[buffer.getInt()]; - break; - case 7: - for (int i = 0; i < PKPackage.values().length; i++) { - purchased = PKPackage.values()[i].ordinal(); - System.out.println("SpawnData: " + PKPackage.values()[i].ordinal()); - } - break; - } - } - } - /** * Draws the stats tab. * @param player the player. diff --git a/Server/src/main/java/Server/core/game/node/entity/skill/construction/HouseManager.java b/Server/src/main/java/Server/core/game/node/entity/skill/construction/HouseManager.java index 1a4557341..f2d34532a 100644 --- a/Server/src/main/java/Server/core/game/node/entity/skill/construction/HouseManager.java +++ b/Server/src/main/java/Server/core/game/node/entity/skill/construction/HouseManager.java @@ -10,7 +10,7 @@ import org.json.simple.JSONObject; import core.game.content.dialogue.FacialExpression; import core.game.node.entity.skill.Skills; import core.game.node.entity.player.Player; -import core.game.node.entity.player.info.login.SavingModule; + import core.game.node.entity.player.link.audio.Audio; import core.game.node.object.GameObject; import core.game.system.task.Pulse; @@ -29,7 +29,7 @@ import java.nio.ByteBuffer; * @author Emperor * */ -public final class HouseManager implements SavingModule { +public final class HouseManager { /** * The current region. diff --git a/Server/src/main/java/Server/core/game/node/entity/skill/slayer/SlayerManager.java b/Server/src/main/java/Server/core/game/node/entity/skill/slayer/SlayerManager.java index 9bd37bc80..26fe0f049 100644 --- a/Server/src/main/java/Server/core/game/node/entity/skill/slayer/SlayerManager.java +++ b/Server/src/main/java/Server/core/game/node/entity/skill/slayer/SlayerManager.java @@ -7,7 +7,7 @@ import org.json.simple.JSONObject; import core.game.node.entity.skill.Skills; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; -import core.game.node.entity.player.info.login.SavingModule; + import core.game.node.entity.player.link.diary.DiaryType; import core.tools.RandomFunction; @@ -21,7 +21,7 @@ import java.util.List; * @author Vexia * */ -public final class SlayerManager implements SavingModule { +public final class SlayerManager { /** * The player instance. @@ -107,105 +107,6 @@ public final class SlayerManager implements SavingModule { canEarnPoints = (boolean) slayerData.get("canEarnPoints"); } - @Override - public void parse(ByteBuffer buffer) { - int opcode; - while ((opcode = buffer.get() & 0xFF) != 0) { - switch (opcode) { - case 1: - master = Master.forId(buffer.getInt()); - break; - case 2: - int taskId = buffer.getInt(); - if (taskId > Tasks.values().length -1) { - SystemLogger.logErr("Invalid task i for " + player.getUsername() + " taskId = " + taskId); - break; - } - task = Tasks.values()[taskId]; - break; - case 3: - amount = buffer.getInt(); - break; - case 4: - slayerPoints = buffer.getInt(); - break; - case 5: - taskCount = buffer.getInt(); - break; - case 6: - int size = buffer.get(); - for (int i = 0; i < size; i++) { - learned[i] = buffer.get() == 1; - } - break; - case 7: - size = buffer.get(); - for (int i = 0; i < size; i++) { - removed.add(Tasks.values()[buffer.getInt()]); - } - break; - case 8: - taskTotal = buffer.getInt(); - break; - case 9: - int pointsEarnable = buffer.getInt(); - if(pointsEarnable == 1){ - canEarnPoints = true; - } - break; - default: - SystemLogger.logErr("Error parsing Slayer Manager opcode = " + opcode); - break; - } - } - } - - @Override - public void save(ByteBuffer buffer) { - if (master != null) { - buffer.put((byte) 1); - buffer.putInt(master.getNpc()); - } - if (task != null) { - buffer.put((byte) 2); - buffer.putInt(task.ordinal()); - } - if (task != null) { - buffer.put((byte) 3); - buffer.putInt(getAmount()); - } - if (slayerPoints != 0) { - buffer.put((byte) 4).putInt(slayerPoints); - } - if (taskCount != 0) { - buffer.put((byte) 5).putInt(taskCount); - } - for (int i = 0; i < learned.length; i++) { - if (learned[i] != false) { - buffer.put((byte) 6).put((byte) learned.length); - for (int k = 0; k < learned.length; k++) { - buffer.put((byte) (learned[k] ? 1 : 0)); - } - break; - } - } - if (!removed.isEmpty()) { - buffer.put((byte) 7).put((byte) removed.size()); - for (Tasks task : removed) { - buffer.putInt(task.ordinal()); - } - } - if (taskTotal != 0){ - buffer.put((byte) 8); - buffer.putInt(taskTotal); - } - if(canEarnPoints){ - buffer.put((byte) 9); - buffer.putInt(1); - } - buffer.put((byte) 0); - } - /** * Called when a hunted creature dies. * @param player The player. diff --git a/Server/src/main/java/Server/core/game/node/entity/skill/summoning/familiar/FamiliarManager.java b/Server/src/main/java/Server/core/game/node/entity/skill/summoning/familiar/FamiliarManager.java index 29096624f..647cd677e 100644 --- a/Server/src/main/java/Server/core/game/node/entity/skill/summoning/familiar/FamiliarManager.java +++ b/Server/src/main/java/Server/core/game/node/entity/skill/summoning/familiar/FamiliarManager.java @@ -13,7 +13,7 @@ import core.game.node.entity.skill.summoning.pet.PetDetails; import core.game.node.entity.skill.summoning.pet.Pets; import core.game.node.entity.combat.BattleState; import core.game.node.entity.player.Player; -import core.game.node.entity.player.info.login.SavingModule; + import core.game.node.item.Item; import core.game.world.map.Location; import core.game.world.map.zone.ZoneRestriction; @@ -30,7 +30,7 @@ import java.util.Map.Entry; * Handles a player's familiar. * @author Emperor */ -public final class FamiliarManager implements SavingModule { +public final class FamiliarManager { /** * The familiars mapping. @@ -75,36 +75,6 @@ public final class FamiliarManager implements SavingModule { this.player = player; } - @Override - public void save(ByteBuffer buffer) { - for (Entry entry : petDetails.entrySet()) { - buffer.put((byte) 3); - buffer.putInt(entry.getKey()); - entry.getValue().save(buffer); - } - if (hasPet()) { - buffer.put((byte) 4); - buffer.putInt(((Pet) familiar).getPet().getBabyItemId()); - } else if (hasFamiliar()) { - buffer.put((byte) 1); - buffer.putShort((short) familiar.getOriginalId()); - buffer.putShort((short) familiar.ticks); - buffer.put((byte) familiar.specialPoints); - if (familiar.isBurdenBeast() && !((BurdenBeast) familiar).getContainer().isEmpty()) { - ((BurdenBeast) familiar).getContainer().save(buffer.put((byte) 2)); - } - buffer.put((byte) 5).putInt(familiar.getSkills().getLifepoints()); - } - if (insuredPets.size() > 0) { - buffer.put((byte) 6); - buffer.put((byte) insuredPets.size()); - for (Pets pet : insuredPets) { - buffer.putInt(pet.getBabyItemId()); - } - } - buffer.put((byte) 0); - } - public final void parse(JSONObject familiarData){ JSONArray petDetails = (JSONArray) familiarData.get("petDetails"); for(int i = 0 ; i < petDetails.size(); i++){ @@ -139,62 +109,6 @@ public final class FamiliarManager implements SavingModule { } } - @Override - public final void parse(ByteBuffer buffer) { - int opcode; - PetDetails details; - while ((opcode = buffer.get() & 0xFF) != 0) { - switch (opcode) { - case 1: - int npcId = buffer.getShort() & 0xFFFF; - familiar = FAMILIARS.get(npcId).construct(player, npcId); - familiar.ticks = buffer.getShort() & 0xFFFF; - familiar.specialPoints = buffer.get() & 0xFF; - break; - case 2: - if (familiar == null || !familiar.isBurdenBeast()) { - SystemLogger.logErr("Error parsing BoB container!"); - new Container(30).parse(buffer); - continue; - } - ((BurdenBeast) familiar).getContainer().parse(buffer); - break; - case 3: - int baseItem = buffer.getInt(); - details = new PetDetails(0); - details.parse(buffer); - petDetails.put(baseItem, details); - break; - case 4: - int itemId = buffer.getInt(); - details = petDetails.get(itemId); - Pets pets = Pets.forId(itemId); - if (details == null) { - details = new PetDetails(pets.getGrowthRate() == 0.0 ? 100.0 : 0.0); - petDetails.put(itemId, details); - } - familiar = new Pet(player, details, itemId, pets.getNpcId(details.getStage())); - break; - case 5: - int hp = buffer.getInt(); - if (familiar != null) { - familiar.setAttribute("hp", hp); - } - break; - case 6: - int size = buffer.get(); - Pets pet; - for (int i = 0; i < size; i++) { - pet = Pets.forId(buffer.getInt()); - if (pet != null) { - insuredPets.add(pet); - } - } - break; - } - } - } - /** * Called when the player logs in. */ diff --git a/Server/src/main/java/Server/core/game/node/entity/skill/summoning/pet/PetDetails.java b/Server/src/main/java/Server/core/game/node/entity/skill/summoning/pet/PetDetails.java index 246421924..d0aa5b360 100644 --- a/Server/src/main/java/Server/core/game/node/entity/skill/summoning/pet/PetDetails.java +++ b/Server/src/main/java/Server/core/game/node/entity/skill/summoning/pet/PetDetails.java @@ -1,6 +1,6 @@ package core.game.node.entity.skill.summoning.pet; -import core.game.node.entity.player.info.login.SavingModule; + import java.nio.ByteBuffer; @@ -8,7 +8,7 @@ import java.nio.ByteBuffer; * A class containing pet details for a certain pet. * @author Emperor */ -public final class PetDetails implements SavingModule { +public final class PetDetails { /** * The hunger rate. @@ -33,20 +33,6 @@ public final class PetDetails implements SavingModule { this.growth = growth; } - @Override - public void save(ByteBuffer buffer) { - buffer.putDouble(hunger); - buffer.putDouble(growth); - buffer.put((byte) stage); - } - - @Override - public void parse(ByteBuffer buffer) { - hunger = buffer.getDouble(); - growth = buffer.getDouble(); - stage = buffer.get(); - } - /** * Increases the hunger value by the given amount. * @param amount The amount. diff --git a/Server/src/main/java/Server/core/game/node/entity/state/StateManager.java b/Server/src/main/java/Server/core/game/node/entity/state/StateManager.java index 303e95fa1..304b1cee0 100644 --- a/Server/src/main/java/Server/core/game/node/entity/state/StateManager.java +++ b/Server/src/main/java/Server/core/game/node/entity/state/StateManager.java @@ -1,7 +1,7 @@ package core.game.node.entity.state; import core.game.node.entity.Entity; -import core.game.node.entity.player.info.login.SavingModule; + import java.nio.ByteBuffer; import java.util.HashMap; @@ -11,7 +11,7 @@ import java.util.Map; * Handles an entity's status (eg. poisoned, stunned, frozen, skulled, ...) * @author Emperor */ -public final class StateManager implements SavingModule { +public final class StateManager { /** * The entity. @@ -31,35 +31,6 @@ public final class StateManager implements SavingModule { this.entity = entity; } - @Override - public void save(ByteBuffer buffer) { - for (EntityState state : states.keySet()) { - StatePulse pulse = states.get(state); - if (pulse == null) { - System.out.println("Pulse for state " + state + " is null!"); - continue; - } - if (pulse.isSaveRequired()) { - buffer.put((byte) state.ordinal()); - pulse.save(buffer); - } - } - buffer.put((byte) -1); - } - - @Override - public void parse(ByteBuffer buffer) { - int ordinal = 0; - while ((ordinal = buffer.get()) != -1) { - EntityState state = EntityState.values()[ordinal]; - StatePulse pulse = state.getPulse().parse(entity, buffer); - if (pulse == null) { - System.out.println("Pulse for state " + state + " is null!"); - } - states.put(state, pulse); - } - } - /** * Initializes the pulses. */ diff --git a/Server/src/main/java/Server/core/game/system/monitor/PlayerMonitor.java b/Server/src/main/java/Server/core/game/system/monitor/PlayerMonitor.java index d54b727ed..66ce2027f 100644 --- a/Server/src/main/java/Server/core/game/system/monitor/PlayerMonitor.java +++ b/Server/src/main/java/Server/core/game/system/monitor/PlayerMonitor.java @@ -2,7 +2,7 @@ package core.game.system.monitor; import core.cache.misc.buffer.ByteBufferUtils; import core.game.node.entity.player.Player; -import core.game.node.entity.player.info.login.SavingModule; + import java.nio.ByteBuffer; @@ -10,7 +10,7 @@ import java.nio.ByteBuffer; * Handles the player monitoring. * @author Emperor */ -public final class PlayerMonitor implements SavingModule { +public final class PlayerMonitor { /** * The public chat log. @@ -96,44 +96,6 @@ public final class PlayerMonitor implements SavingModule { logs[DUEL_LOG] = new MessageLog(200); } - @Override - public void save(ByteBuffer buffer) { - if (duplicationLog != null && duplicationLog.getFlag() != 0) { - buffer.put((byte) 1).put((byte) duplicationLog.getFlag()); - } - if (macroFlag != 0) { - buffer.put((byte) 2).put((byte) macroFlag); - } - if (duplicationLog != null && duplicationLog.isLoggingFlagged()) { - buffer.put((byte) 4).putLong(duplicationLog.getLastIncreaseFlag()); - } - buffer.put((byte) 0); // EOF - } - - @Override - public void parse(ByteBuffer buffer) { - int opcode; - while ((opcode = buffer.get() & 0xFF) != 0) { - switch (opcode) { - case 1: - getDuplicationLog().flag(buffer.get() & 0xFF); - break; - case 2: - macroFlag = buffer.get() & 0xFF; - break; - case 3: - int size = buffer.get() & 0xFF; - for (int i = 0; i < size; i++) { - ByteBufferUtils.getString(buffer); - } - break; - case 4: - getDuplicationLog().setLastIncreaseFlag(buffer.getLong()); - break; - } - } - } - /** * Clears the logs. */ diff --git a/Server/src/main/java/Server/core/tools/DialogueConst.kt b/Server/src/main/java/Server/core/tools/DialogueConst.kt new file mode 100644 index 000000000..ea1ca3d4f --- /dev/null +++ b/Server/src/main/java/Server/core/tools/DialogueConst.kt @@ -0,0 +1,4 @@ +package core.tools + +const val START_DIALOGUE = 0 +const val END_DIALOGUE = 1000000 \ No newline at end of file