From daa4e1afba7e731b84eeb5072e41cd8e93c884b1 Mon Sep 17 00:00:00 2001 From: Ceikry Date: Wed, 25 Mar 2020 17:13:57 -0500 Subject: [PATCH] Fixed a duplication bug with pyramid --- .../game/node/entity/player/link/ActivityData.java | 13 +++++++++++++ .../skill/agility/pyramid/AgilityPyramidCourse.java | 6 +++--- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/Server/src/org/crandor/game/node/entity/player/link/ActivityData.java b/Server/src/org/crandor/game/node/entity/player/link/ActivityData.java index 5eb902bd2..07c030fcf 100644 --- a/Server/src/org/crandor/game/node/entity/player/link/ActivityData.java +++ b/Server/src/org/crandor/game/node/entity/player/link/ActivityData.java @@ -110,6 +110,11 @@ public final class ActivityData implements SavingModule { */ private boolean hardcoreDeath; + /** + * Pyramid plunder top (is it grabbed?) + */ + boolean topGrabbed; + /** * Constructs a new {@code ActivityInfo} {@code Object}. */ @@ -160,6 +165,7 @@ public final class ActivityData implements SavingModule { SavedData.save(buffer, fogRating, 19); SavedData.save(buffer, borkKills, 20); SavedData.save(buffer, hardcoreDeath, 21); + SavedData.save(buffer, topGrabbed, 22); buffer.put((byte) 0); } @@ -239,6 +245,9 @@ public final class ActivityData implements SavingModule { case 21: hardcoreDeath = SavedData.getBoolean(buffer); break; + case 22: + topGrabbed = SavedData.getBoolean(buffer); + break; } } } @@ -649,4 +658,8 @@ public final class ActivityData implements SavingModule { public void setHardcoreDeath(boolean hardcoreDeath) { this.hardcoreDeath = hardcoreDeath; } + public void setTopGrabbed(boolean topGrabbed){ + this.topGrabbed = topGrabbed; + } + public boolean isTopGrabbed(){return topGrabbed;} } \ No newline at end of file diff --git a/Server/src/plugin/skill/agility/pyramid/AgilityPyramidCourse.java b/Server/src/plugin/skill/agility/pyramid/AgilityPyramidCourse.java index 622e5101d..95d85d620 100644 --- a/Server/src/plugin/skill/agility/pyramid/AgilityPyramidCourse.java +++ b/Server/src/plugin/skill/agility/pyramid/AgilityPyramidCourse.java @@ -152,7 +152,7 @@ public final class AgilityPyramidCourse extends AgilityCourse { } player.getDialogueInterpreter().sendDialogue("You climb down the steep passage. It leads to the base of the", "pyramid."); player.getProperties().setTeleportLocation(Location.create(3364, 2830, 0)); - player.setAttribute("hasptop",false); + player.getSavedData().getActivityData().setTopGrabbed(false); break; } return true; @@ -368,7 +368,7 @@ public final class AgilityPyramidCourse extends AgilityCourse { * @param object the object. */ private void handlePyramidTop(final Player player, final GameObject object) { - if(player.getAttribute("hasptop",false)){ + if(player.getSavedData().getActivityData().isTopGrabbed() == true){ player.getPacketDispatch().sendMessage("You've already claimed this!"); return; } else { @@ -382,7 +382,7 @@ public final class AgilityPyramidCourse extends AgilityCourse { return true; } addConfig(player, 10869, 1, true); - player.setAttribute("hasptop", true); + player.getSavedData().getActivityData().setTopGrabbed(true); player.getInventory().add(PYRAMID_TOP, player); player.getDialogueInterpreter().sendItemMessage(PYRAMID_TOP, "You find a golden pyramid!"); return true;