From 9e4ce2aa44456c64ecaf1d036326133e2b51a922 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 14 Oct 2019 22:51:06 +0200 Subject: [PATCH 1/6] i dont even know what i changed --- .../content/skills/woodcutting/Hatchet.java | 4 + .../game/content/skills/woodcutting/Tree.java | 4 + .../skills/woodcutting/WoodcuttingEvent.java | 214 ++++++++++++++++++ 3 files changed, 222 insertions(+) create mode 100644 2006Redone Server/src/redone/game/content/skills/woodcutting/Hatchet.java create mode 100644 2006Redone Server/src/redone/game/content/skills/woodcutting/Tree.java create mode 100644 2006Redone Server/src/redone/game/content/skills/woodcutting/WoodcuttingEvent.java diff --git a/2006Redone Server/src/redone/game/content/skills/woodcutting/Hatchet.java b/2006Redone Server/src/redone/game/content/skills/woodcutting/Hatchet.java new file mode 100644 index 00000000..ad8da402 --- /dev/null +++ b/2006Redone Server/src/redone/game/content/skills/woodcutting/Hatchet.java @@ -0,0 +1,4 @@ +package redone.game.content.skills.woodcutting; + +public class Hatchet { +} diff --git a/2006Redone Server/src/redone/game/content/skills/woodcutting/Tree.java b/2006Redone Server/src/redone/game/content/skills/woodcutting/Tree.java new file mode 100644 index 00000000..b554357b --- /dev/null +++ b/2006Redone Server/src/redone/game/content/skills/woodcutting/Tree.java @@ -0,0 +1,4 @@ +package redone.game.content.skills.woodcutting; + +public class Tree { +} diff --git a/2006Redone Server/src/redone/game/content/skills/woodcutting/WoodcuttingEvent.java b/2006Redone Server/src/redone/game/content/skills/woodcutting/WoodcuttingEvent.java new file mode 100644 index 00000000..3204bf50 --- /dev/null +++ b/2006Redone Server/src/redone/game/content/skills/woodcutting/WoodcuttingEvent.java @@ -0,0 +1,214 @@ +package redone.game.content.skills.woodcutting; + +import redone.Constants; +import redone.event.CycleEvent; +import redone.event.CycleEventContainer; +import redone.game.players.Player; +import redone.util.Misc; + +public class WoodcuttingEvent extends CycleEvent { + + private Tree tree; + private Hatchet hatchet; + private int objectId, x, y, chops; + + public WoodcuttingEvent(Player player, Tree tree, Hatchet hatchet, int objectId, int x, int y) { + super("skilling", player, 1); + this.tree = tree; + this.hatchet = hatchet; + this.objectId = objectId; + this.x = x; + this.y = y; + } + + @Override + public void execute(CycleEventContainer container) { + + double osrsExperience; + double experience; + int pieces = 0; + pieces=handleOutfit(pieces); + osrsExperience = tree.getExperience() + tree.getExperience() / 10 * pieces; + experience = tree.getExperience() * Constants.WOODCUTTING_EXPERIENCE + tree.getExperience() * Constants.WOODCUTTING_EXPERIENCE / 10 * pieces; + if (canChop()) return; + + } + chops++; + int chopChance = 1 + (int) (tree.getChopsRequired() * hatchet.getChopSpeed()); + if (Boundary.isIn(attachment, Boundary.WOODCUTTING_GUILD_BOUNDARY)){ + chopChance *= 1.5; + } + if (Misc.random(tree.getChopdownChance()) == 0 || tree.equals(Tree.NORMAL) && Misc.random(chopChance) == 0) { + int face = 0; + Optional worldObject = Region.getWorldObject(objectId, x, y, 0); + if (worldObject.isPresent()) { + face = worldObject.get().getFace(); + } + int stumpId = 0; + if (tree.equals(Tree.REDWOOD)) { + face = (attachment.absX < 1568) ? 1 : (attachment.absX > 1573) ? 3 : (attachment.absY < 3480) ? 0 : 2; + attachment.sendMessage("objectId: "+objectId); + if (objectId == 29668) + stumpId = 29669; + else if (objectId == 29670) + stumpId = 29671; + } + Server.getGlobalObjects().add(new GlobalObject(tree.equals(Tree.REDWOOD) ? stumpId : tree.getStumpId(), x, y, attachment.heightLevel, face, 10, tree.getRespawnTime(), objectId)); + + attachment.getItems().addItem(tree.getWood(), 1); + attachment.getPA().addSkillXP((int) (attachment.getRights().isOrInherits(Right.OSRS) ? osrsExperience : experience) , Skill.WOODCUTTING.getId(), true); + Achievements.increase(attachment, AchievementType.WOODCUT, 1); + handleRewards(); + super.stop(); + return; + } + if (!tree.equals(Tree.NORMAL)) { + if (Misc.random(chopChance) == 0 || chops >= tree.getChopsRequired()) { + chops = 0; + int random = Misc.random(4); + attachment.getPA().addSkillXP((int) (attachment.getRights().isOrInherits(Right.OSRS) ? osrsExperience : experience) , Skill.WOODCUTTING.getId(), true); + Achievements.increase(attachment, AchievementType.WOODCUT, 1); + if ((attachment.getItems().isWearingItem(13241) || attachment.getItems().playerHasItem(13241)) && random == 2) { + Firemaking.lightFire(attachment, tree.getWood(), "infernal_axe"); + return; + } + handleDiary(tree); + handleWildernessRewards(); + attachment.getItems().addItem(tree.getWood(), SkillcapePerks.WOODCUTTING.isWearing(attachment) || (SkillcapePerks.isWearingMaxCape(attachment) && attachment.getWoodcuttingEffect()) && Misc.random(2) == 1 ? 2 : 1); + } + } + if (super.getElapsedTicks() % 4 == 0) { + attachment.startAnimation(hatchet.getAnimation()); + } + } + + private int handleOutfit(int pieces) { + + for (int aLumberjackOutfit : lumberjackOutfit) { + if (attachment.getItems().isWearingItem(aLumberjackOutfit)) { + pieces+=2; + } + } + return pieces; + } + + private boolean canChop() { + + if (attachment == null || attachment.disconnected || attachment.getSession() == null) { + super.stop(); + return true; + } + if (!attachment.getItems().playerHasItem(hatchet.getItemId()) && !attachment.getItems().isWearingItem(hatchet.getItemId())) { + attachment.sendMessage("Your axe has disappeared."); + super.stop(); + return true; + } + if (attachment.playerLevel[attachment.playerWoodcutting] < hatchet.getLevelRequired()) { + attachment.sendMessage("You no longer have the level required to operate this hatchet."); + super.stop(); + return true; + } + if (attachment.getItems().freeSlots() == 0) { + attachment.sendMessage("You have run out of free inventory space."); + super.stop(); + return true; + } + return false; + } + + private void handleWildernessRewards() { + + if (Boundary.isIn(attachment, Boundary.RESOURCE_AREA)) { + if (Misc.random(20) == 5) { + int randomAmount = Misc.random(3) + 1; + attachment.sendMessage("You received " + randomAmount + " blood money while woodcutting!"); + attachment.getItems().addItem(13307, randomAmount); + } + } + } + + private void handleDiary(Tree tree) { + switch (tree) { + case MAGIC: + if (Boundary.isIn(attachment, Boundary.AL_KHARID_BOUNDARY)) { + attachment.getDiaryManager().getLumbridgeDraynorDiary().progress(LumbridgeDraynorDiaryEntry.CHOP_MAGIC_AL); + } + if (Boundary.isIn(attachment, Boundary.RESOURCE_AREA_BOUNDARY)) { + attachment.getDiaryManager().getWildernessDiary().progress(WildernessDiaryEntry.MAGIC_LOG_WILD); + } + if (Boundary.isIn(attachment, Boundary.SEERS_BOUNDARY)) { + attachment.getDiaryManager().getKandarinDiary().progress(KandarinDiaryEntry.CUT_MAGIC_SEERS); + } + DailyTasks.increase(attachment, PossibleTasks.MAGIC_LOGS); + break; + case MAPLE: + break; + case NORMAL: + break; + case OAK: + if (Boundary.isIn(attachment, Boundary.RELLEKKA_BOUNDARY)) { + attachment.getDiaryManager().getFremennikDiary().progress(FremennikDiaryEntry.CHOP_OAK_FREM); + } + break; + case WILLOW: + if (Boundary.isIn(attachment, Boundary.FALADOR_BOUNDARY)) { + attachment.getDiaryManager().getFaladorDiary().progress(FaladorDiaryEntry.CHOP_WILLOW); + } + if (Boundary.isIn(attachment, Boundary.DRAYNOR_BOUNDARY)) { + attachment.getDiaryManager().getLumbridgeDraynorDiary().progress(LumbridgeDraynorDiaryEntry.CHOP_WILLOW_DRAY); + } + break; + case YEW: + if (Boundary.isIn(attachment, Boundary.FALADOR_BOUNDARY)) { + attachment.getDiaryManager().getFaladorDiary().progress(FaladorDiaryEntry.CHOP_YEW); + } + if (Boundary.isIn(attachment, Boundary.VARROCK_BOUNDARY)) { + attachment.getDiaryManager().getVarrockDiary().progress(VarrockDiaryEntry.YEWS_AND_BURN); + } + DailyTasks.increase(attachment, PossibleTasks.YEW_LOGS); + break; + case TEAK: + if (Boundary.isIn(attachment, Boundary.DESERT_BOUNDARY)) { + attachment.getDiaryManager().getDesertDiary().progress(DesertDiaryEntry.CHOP_TEAK); + } + break; + default: + break; + + } + } + + private void handleRewards() { + if (Misc.random(tree.getPetChance() / 40) == 10) { + switch (Misc.random(1)) { + case 0: + attachment.getItems().addItemUnderAnyCircumstance(19712, 1); + break; + + case 1: + attachment.getItems().addItemUnderAnyCircumstance(19714, 1); + break; + } + attachment.sendMessage("@blu@You appear to see a clue nest fall from the tree, and pick it up."); + } + if (Misc.random(12000) == 5555) { + attachment.getItems().addItemUnderAnyCircumstance(lumberjackOutfit[Misc.random(lumberjackOutfit.length - 1)], 1); + attachment.sendMessage("You notice a lumberjack piece falling from the tree and pick it up."); + } + if (Misc.random(tree.getPetChance()) / 2 == 10) { + attachment.getItems().addItemUnderAnyCircumstance(19716, 1); + attachment.sendMessage("@blu@You appear to see a clue nest fall from the tree, and pick it up."); + } + if (Misc.random(tree.getPetChance()) == 2 && attachment.getItems().getItemCount(13322, false) == 0 && attachment.summonId != 13322) { + PlayerHandler.executeGlobalMessage("[News] @cr20@ " + attachment.playerName + " chopped down the nest for Beaver pet!"); + attachment.getItems().addItemUnderAnyCircumstance(13322, 1); + } + } + + + + @Override + public void stop() { + + } +} From 81d231bc41ec938b7295a2ba51605b8eabe39a54 Mon Sep 17 00:00:00 2001 From: DPSCryptic <45051384+DPSCryptic@users.noreply.github.com> Date: Mon, 14 Oct 2019 22:55:55 +0200 Subject: [PATCH 2/6] Delete Hatchet.java --- .../src/redone/game/content/skills/woodcutting/Hatchet.java | 4 ---- 1 file changed, 4 deletions(-) delete mode 100644 2006Redone Server/src/redone/game/content/skills/woodcutting/Hatchet.java diff --git a/2006Redone Server/src/redone/game/content/skills/woodcutting/Hatchet.java b/2006Redone Server/src/redone/game/content/skills/woodcutting/Hatchet.java deleted file mode 100644 index ad8da402..00000000 --- a/2006Redone Server/src/redone/game/content/skills/woodcutting/Hatchet.java +++ /dev/null @@ -1,4 +0,0 @@ -package redone.game.content.skills.woodcutting; - -public class Hatchet { -} From ff64247854162019b416d32a5a117c076261794d Mon Sep 17 00:00:00 2001 From: DPSCryptic <45051384+DPSCryptic@users.noreply.github.com> Date: Mon, 14 Oct 2019 22:56:02 +0200 Subject: [PATCH 3/6] Delete Tree.java --- .../src/redone/game/content/skills/woodcutting/Tree.java | 4 ---- 1 file changed, 4 deletions(-) delete mode 100644 2006Redone Server/src/redone/game/content/skills/woodcutting/Tree.java diff --git a/2006Redone Server/src/redone/game/content/skills/woodcutting/Tree.java b/2006Redone Server/src/redone/game/content/skills/woodcutting/Tree.java deleted file mode 100644 index b554357b..00000000 --- a/2006Redone Server/src/redone/game/content/skills/woodcutting/Tree.java +++ /dev/null @@ -1,4 +0,0 @@ -package redone.game.content.skills.woodcutting; - -public class Tree { -} From 76f96756af1f9a3401a73c75f80c00330c55c159 Mon Sep 17 00:00:00 2001 From: DPSCryptic <45051384+DPSCryptic@users.noreply.github.com> Date: Mon, 14 Oct 2019 22:56:10 +0200 Subject: [PATCH 4/6] Delete WoodcuttingEvent.java --- .../skills/woodcutting/WoodcuttingEvent.java | 214 ------------------ 1 file changed, 214 deletions(-) delete mode 100644 2006Redone Server/src/redone/game/content/skills/woodcutting/WoodcuttingEvent.java diff --git a/2006Redone Server/src/redone/game/content/skills/woodcutting/WoodcuttingEvent.java b/2006Redone Server/src/redone/game/content/skills/woodcutting/WoodcuttingEvent.java deleted file mode 100644 index 3204bf50..00000000 --- a/2006Redone Server/src/redone/game/content/skills/woodcutting/WoodcuttingEvent.java +++ /dev/null @@ -1,214 +0,0 @@ -package redone.game.content.skills.woodcutting; - -import redone.Constants; -import redone.event.CycleEvent; -import redone.event.CycleEventContainer; -import redone.game.players.Player; -import redone.util.Misc; - -public class WoodcuttingEvent extends CycleEvent { - - private Tree tree; - private Hatchet hatchet; - private int objectId, x, y, chops; - - public WoodcuttingEvent(Player player, Tree tree, Hatchet hatchet, int objectId, int x, int y) { - super("skilling", player, 1); - this.tree = tree; - this.hatchet = hatchet; - this.objectId = objectId; - this.x = x; - this.y = y; - } - - @Override - public void execute(CycleEventContainer container) { - - double osrsExperience; - double experience; - int pieces = 0; - pieces=handleOutfit(pieces); - osrsExperience = tree.getExperience() + tree.getExperience() / 10 * pieces; - experience = tree.getExperience() * Constants.WOODCUTTING_EXPERIENCE + tree.getExperience() * Constants.WOODCUTTING_EXPERIENCE / 10 * pieces; - if (canChop()) return; - - } - chops++; - int chopChance = 1 + (int) (tree.getChopsRequired() * hatchet.getChopSpeed()); - if (Boundary.isIn(attachment, Boundary.WOODCUTTING_GUILD_BOUNDARY)){ - chopChance *= 1.5; - } - if (Misc.random(tree.getChopdownChance()) == 0 || tree.equals(Tree.NORMAL) && Misc.random(chopChance) == 0) { - int face = 0; - Optional worldObject = Region.getWorldObject(objectId, x, y, 0); - if (worldObject.isPresent()) { - face = worldObject.get().getFace(); - } - int stumpId = 0; - if (tree.equals(Tree.REDWOOD)) { - face = (attachment.absX < 1568) ? 1 : (attachment.absX > 1573) ? 3 : (attachment.absY < 3480) ? 0 : 2; - attachment.sendMessage("objectId: "+objectId); - if (objectId == 29668) - stumpId = 29669; - else if (objectId == 29670) - stumpId = 29671; - } - Server.getGlobalObjects().add(new GlobalObject(tree.equals(Tree.REDWOOD) ? stumpId : tree.getStumpId(), x, y, attachment.heightLevel, face, 10, tree.getRespawnTime(), objectId)); - - attachment.getItems().addItem(tree.getWood(), 1); - attachment.getPA().addSkillXP((int) (attachment.getRights().isOrInherits(Right.OSRS) ? osrsExperience : experience) , Skill.WOODCUTTING.getId(), true); - Achievements.increase(attachment, AchievementType.WOODCUT, 1); - handleRewards(); - super.stop(); - return; - } - if (!tree.equals(Tree.NORMAL)) { - if (Misc.random(chopChance) == 0 || chops >= tree.getChopsRequired()) { - chops = 0; - int random = Misc.random(4); - attachment.getPA().addSkillXP((int) (attachment.getRights().isOrInherits(Right.OSRS) ? osrsExperience : experience) , Skill.WOODCUTTING.getId(), true); - Achievements.increase(attachment, AchievementType.WOODCUT, 1); - if ((attachment.getItems().isWearingItem(13241) || attachment.getItems().playerHasItem(13241)) && random == 2) { - Firemaking.lightFire(attachment, tree.getWood(), "infernal_axe"); - return; - } - handleDiary(tree); - handleWildernessRewards(); - attachment.getItems().addItem(tree.getWood(), SkillcapePerks.WOODCUTTING.isWearing(attachment) || (SkillcapePerks.isWearingMaxCape(attachment) && attachment.getWoodcuttingEffect()) && Misc.random(2) == 1 ? 2 : 1); - } - } - if (super.getElapsedTicks() % 4 == 0) { - attachment.startAnimation(hatchet.getAnimation()); - } - } - - private int handleOutfit(int pieces) { - - for (int aLumberjackOutfit : lumberjackOutfit) { - if (attachment.getItems().isWearingItem(aLumberjackOutfit)) { - pieces+=2; - } - } - return pieces; - } - - private boolean canChop() { - - if (attachment == null || attachment.disconnected || attachment.getSession() == null) { - super.stop(); - return true; - } - if (!attachment.getItems().playerHasItem(hatchet.getItemId()) && !attachment.getItems().isWearingItem(hatchet.getItemId())) { - attachment.sendMessage("Your axe has disappeared."); - super.stop(); - return true; - } - if (attachment.playerLevel[attachment.playerWoodcutting] < hatchet.getLevelRequired()) { - attachment.sendMessage("You no longer have the level required to operate this hatchet."); - super.stop(); - return true; - } - if (attachment.getItems().freeSlots() == 0) { - attachment.sendMessage("You have run out of free inventory space."); - super.stop(); - return true; - } - return false; - } - - private void handleWildernessRewards() { - - if (Boundary.isIn(attachment, Boundary.RESOURCE_AREA)) { - if (Misc.random(20) == 5) { - int randomAmount = Misc.random(3) + 1; - attachment.sendMessage("You received " + randomAmount + " blood money while woodcutting!"); - attachment.getItems().addItem(13307, randomAmount); - } - } - } - - private void handleDiary(Tree tree) { - switch (tree) { - case MAGIC: - if (Boundary.isIn(attachment, Boundary.AL_KHARID_BOUNDARY)) { - attachment.getDiaryManager().getLumbridgeDraynorDiary().progress(LumbridgeDraynorDiaryEntry.CHOP_MAGIC_AL); - } - if (Boundary.isIn(attachment, Boundary.RESOURCE_AREA_BOUNDARY)) { - attachment.getDiaryManager().getWildernessDiary().progress(WildernessDiaryEntry.MAGIC_LOG_WILD); - } - if (Boundary.isIn(attachment, Boundary.SEERS_BOUNDARY)) { - attachment.getDiaryManager().getKandarinDiary().progress(KandarinDiaryEntry.CUT_MAGIC_SEERS); - } - DailyTasks.increase(attachment, PossibleTasks.MAGIC_LOGS); - break; - case MAPLE: - break; - case NORMAL: - break; - case OAK: - if (Boundary.isIn(attachment, Boundary.RELLEKKA_BOUNDARY)) { - attachment.getDiaryManager().getFremennikDiary().progress(FremennikDiaryEntry.CHOP_OAK_FREM); - } - break; - case WILLOW: - if (Boundary.isIn(attachment, Boundary.FALADOR_BOUNDARY)) { - attachment.getDiaryManager().getFaladorDiary().progress(FaladorDiaryEntry.CHOP_WILLOW); - } - if (Boundary.isIn(attachment, Boundary.DRAYNOR_BOUNDARY)) { - attachment.getDiaryManager().getLumbridgeDraynorDiary().progress(LumbridgeDraynorDiaryEntry.CHOP_WILLOW_DRAY); - } - break; - case YEW: - if (Boundary.isIn(attachment, Boundary.FALADOR_BOUNDARY)) { - attachment.getDiaryManager().getFaladorDiary().progress(FaladorDiaryEntry.CHOP_YEW); - } - if (Boundary.isIn(attachment, Boundary.VARROCK_BOUNDARY)) { - attachment.getDiaryManager().getVarrockDiary().progress(VarrockDiaryEntry.YEWS_AND_BURN); - } - DailyTasks.increase(attachment, PossibleTasks.YEW_LOGS); - break; - case TEAK: - if (Boundary.isIn(attachment, Boundary.DESERT_BOUNDARY)) { - attachment.getDiaryManager().getDesertDiary().progress(DesertDiaryEntry.CHOP_TEAK); - } - break; - default: - break; - - } - } - - private void handleRewards() { - if (Misc.random(tree.getPetChance() / 40) == 10) { - switch (Misc.random(1)) { - case 0: - attachment.getItems().addItemUnderAnyCircumstance(19712, 1); - break; - - case 1: - attachment.getItems().addItemUnderAnyCircumstance(19714, 1); - break; - } - attachment.sendMessage("@blu@You appear to see a clue nest fall from the tree, and pick it up."); - } - if (Misc.random(12000) == 5555) { - attachment.getItems().addItemUnderAnyCircumstance(lumberjackOutfit[Misc.random(lumberjackOutfit.length - 1)], 1); - attachment.sendMessage("You notice a lumberjack piece falling from the tree and pick it up."); - } - if (Misc.random(tree.getPetChance()) / 2 == 10) { - attachment.getItems().addItemUnderAnyCircumstance(19716, 1); - attachment.sendMessage("@blu@You appear to see a clue nest fall from the tree, and pick it up."); - } - if (Misc.random(tree.getPetChance()) == 2 && attachment.getItems().getItemCount(13322, false) == 0 && attachment.summonId != 13322) { - PlayerHandler.executeGlobalMessage("[News] @cr20@ " + attachment.playerName + " chopped down the nest for Beaver pet!"); - attachment.getItems().addItemUnderAnyCircumstance(13322, 1); - } - } - - - - @Override - public void stop() { - - } -} From 5ffd84a305dbbf363a8d5dde18587df47facc660 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 14 Oct 2019 23:31:43 +0200 Subject: [PATCH 5/6] wealth command --- .../src/redone/net/packets/impl/Commands.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/2006Redone Server/src/redone/net/packets/impl/Commands.java b/2006Redone Server/src/redone/net/packets/impl/Commands.java index 7b39c444..c979a65e 100644 --- a/2006Redone Server/src/redone/net/packets/impl/Commands.java +++ b/2006Redone Server/src/redone/net/packets/impl/Commands.java @@ -86,6 +86,13 @@ public class Commands implements PacketType { } } + if (playerCommand.equalsIgnoreCase("wealth")) { + + int totalWealth = player.getPlayerAssistant().totalGold(); + player.getActionSender().sendMessage("You currently have " + totalWealth + "gp."); + + } + if (playerCommand.contains("clip") && player.playerRights < 2) { return; } From 6b96d07a913c68a088cbc42374272b594948f5f4 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 18 Oct 2019 19:28:04 +0200 Subject: [PATCH 6/6] just a quick patch so that we can start training herblore --- .idea/misc.xml | 2 +- .../redone/game/players/PlayerAssistant.java | 8 ++++++++ .../discord/commands/Commands.java | 2 +- .../game/players/PlayerAssistant$1$1.class | Bin 1739 -> 1739 bytes .../game/players/PlayerAssistant$1.class | Bin 1650 -> 1650 bytes .../game/players/PlayerAssistant$2.class | Bin 1395 -> 1395 bytes .../redone/game/players/PlayerAssistant.class | Bin 74205 -> 74292 bytes .../discord/commands/Commands.class | Bin 1625 -> 1677 bytes 8 files changed, 10 insertions(+), 2 deletions(-) diff --git a/.idea/misc.xml b/.idea/misc.xml index fb83acef..048d263d 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/2006Redone Server/src/redone/game/players/PlayerAssistant.java b/2006Redone Server/src/redone/game/players/PlayerAssistant.java index 2b6555e6..2f990242 100644 --- a/2006Redone Server/src/redone/game/players/PlayerAssistant.java +++ b/2006Redone Server/src/redone/game/players/PlayerAssistant.java @@ -101,8 +101,16 @@ public class PlayerAssistant { showInterface(15244); sendFrame126("Welcome to " + Constants.SERVER_NAME + "\\n", 15257); int currentDay = player.getLastLogin() - player.lastLoginDate; + + if (player.playerLevel[15] < 3) { + + player.playerLevel[15] = 3; + player.playerXP[15] = 175; + player.getPlayerAssistant().refreshSkill(15); + } if (player.lastLoginDate <= 0) { sendFrame126("This is your first time logging in!", 15258); + player.getPlayerAssistant().addSkillXP(175, 15); } else if (player.lastLoginDate == 1) { sendFrame126("You last login @red@yesterday@bla@", 15258); } else { diff --git a/2006Redone Server/src/redone/integrations/discord/commands/Commands.java b/2006Redone Server/src/redone/integrations/discord/commands/Commands.java index 06fd6929..75fbcf84 100644 --- a/2006Redone Server/src/redone/integrations/discord/commands/Commands.java +++ b/2006Redone Server/src/redone/integrations/discord/commands/Commands.java @@ -9,7 +9,7 @@ public class Commands implements MessageCreateListener { public void onMessageCreate(MessageCreateEvent event) { Message message = event.getMessage(); if (message.getContent().equalsIgnoreCase("::commands")) { - event.getChannel().sendMessage("```fix` + event.getChannel().sendMessage("```fix`" + System.lineSeparator() + "::forum/::forums" + System.lineSeparator() + diff --git a/CompiledServer/production/2006rebotted/redone/game/players/PlayerAssistant$1$1.class b/CompiledServer/production/2006rebotted/redone/game/players/PlayerAssistant$1$1.class index 5e433d0dff3766e6275e8df31d07467e1288a848..13e1b8ff03690e9f7d557a8fdc7d12fccda4534d 100644 GIT binary patch delta 57 zcmX@jdzyDc4lASAo;kGw3jeGT1SOGdMCvGK4TjF@!V5 NFk~^tPi|!M0sxo<@Gw3k-GT1TtGdMB^GK4S&F@!UQ NFk~@?Pi|!M0sxk|48i~a diff --git a/CompiledServer/production/2006rebotted/redone/game/players/PlayerAssistant$1.class b/CompiledServer/production/2006rebotted/redone/game/players/PlayerAssistant$1.class index 751eac7af12b0e0eed59161ea6f7898c5244d0a6..993e8853d2b70b6157418aa88a62527903103198 100644 GIT binary patch delta 53 zcmeyw^NDAJGb^L*WEa+SK?eq5Mn?uIMkfYEMrQ_9MwiKZShIOO7`PcdfihkUnv98) HP1x)JNB#<> delta 53 zcmeyw^NDAJGb^L%WEa+SK???9MoR`MMk@wIMr#IDMw`idShIN@7`Pc7fig}Env9W? HP1x)JKwb(} diff --git a/CompiledServer/production/2006rebotted/redone/game/players/PlayerAssistant$2.class b/CompiledServer/production/2006rebotted/redone/game/players/PlayerAssistant$2.class index 1bc6cabd09520ee73ac25264f88a044c64ef5e01..fb9cf813d78d5465301fbd71161caa4e96e12b7b 100644 GIT binary patch delta 46 zcmey&^_go!4h!Sw$+;}~qTd*JnZGj#GXG!@V*bUT$^4r^m-)}+k1SqHEDV!vSha1N4*e1WEz}_>(;a EHiI`0qyPW_ diff --git a/CompiledServer/production/2006rebotted/redone/game/players/PlayerAssistant.class b/CompiledServer/production/2006rebotted/redone/game/players/PlayerAssistant.class index 74fe3e3c2862544c9ab34215358feaee498f0948..be572e38a97cabf4937d892edccb21d61764bf7a 100644 GIT binary patch delta 32291 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 LPRVphY|;H6=?X#y