diff --git a/Server/src/main/content/data/EnchantedJewellery.kt b/Server/src/main/content/data/EnchantedJewellery.kt index e44cd32fa..fc445775e 100644 --- a/Server/src/main/content/data/EnchantedJewellery.kt +++ b/Server/src/main/content/data/EnchantedJewellery.kt @@ -281,7 +281,7 @@ enum class EnchantedJewellery( "assigned to kill ${getSlayerTaskName(player).lowercase(Locale.getDefault())}'s; " + "only ${getSlayerTaskKillsRemaining(player)} more to go.", core.game.dialogue.FacialExpression.FRIENDLY) // Slayer tracker UI - setVarbit(player, 2502, 0, slayerManager.flags.taskFlags shr 4) + setVarp(player, 2502, slayerManager.flags.taskFlags shr 4) } private fun canTeleport(player: Player, item: Item): Boolean { @@ -335,4 +335,4 @@ enum class EnchantedJewellery( } } } -} \ No newline at end of file +} diff --git a/Server/src/main/content/global/ame/events/drilldemon/DrillDemonUtils.kt b/Server/src/main/content/global/ame/events/drilldemon/DrillDemonUtils.kt index c1331420e..f0fb6ebf1 100644 --- a/Server/src/main/content/global/ame/events/drilldemon/DrillDemonUtils.kt +++ b/Server/src/main/content/global/ame/events/drilldemon/DrillDemonUtils.kt @@ -37,9 +37,9 @@ object DrillDemonUtils { } fun changeSignsAndAssignTask(player: Player){ - player.varpManager.get(DD_SIGN_VARP).clearBitRange(0,31) + setVarp(player, DD_SIGN_VARP, 0) val tempList = arrayListOf(DD_SIGN_JOG, DD_SIGN_JUMP, DD_SIGN_PUSHUP, DD_SIGN_SITUP).shuffled().toMutableList() - val tempOffsetList = arrayListOf(0,2,4,6).shuffled().toMutableList() + val tempOffsetList = arrayListOf(1335, 1336, 1337, 1338).shuffled().toMutableList() val task = tempList.random() val taskOffset = tempOffsetList.random() @@ -48,9 +48,9 @@ object DrillDemonUtils { tempList.remove(task) tempOffsetList.remove(taskOffset) - player.varpManager.get(DD_SIGN_VARP).setVarbit(taskOffset,task).send(player) + setVarbit(player, taskOffset, task) for(i in 0 until tempList.size){ - player.varpManager.get(DD_SIGN_VARP).setVarbit(tempOffsetList[i],tempList[i]).send(player) + setVarbit(player, tempOffsetList[i], tempList[i]) } player.dialogueInterpreter.sendDialogues(NPCs.SERGEANT_DAMIEN_2790, core.game.dialogue.FacialExpression.OLD_NORMAL,when(task){ @@ -63,18 +63,18 @@ object DrillDemonUtils { player.unlock() } - fun getOffsetForID(id: Int): Int{ + fun getVarbitForId(id: Int): Int{ return when(id){ - 10076 -> 0 - 10077 -> 2 - 10078 -> 4 - 10079 -> 6 + 10076 -> 1335 + 10077 -> 1336 + 10078 -> 1337 + 10079 -> 1338 else -> 0 } } fun getMatTask(id: Int, player: Player): Int{ - return player.varpManager.get(DD_SIGN_VARP).getVarbitValue(getOffsetForID(id)) ?: 0 + return getVarbit(player, getVarbitForId(id)) } fun cleanup(player: Player){ @@ -117,4 +117,4 @@ object DrillDemonUtils { GroundItemManager.create(reward,player) } } -} \ No newline at end of file +} diff --git a/Server/src/main/content/global/handlers/iface/FairyRingInterface.kt b/Server/src/main/content/global/handlers/iface/FairyRingInterface.kt index f580ba099..70a005ec4 100644 --- a/Server/src/main/content/global/handlers/iface/FairyRingInterface.kt +++ b/Server/src/main/content/global/handlers/iface/FairyRingInterface.kt @@ -41,8 +41,7 @@ class FairyRingInterface : InterfaceListener { player.removeAttribute("fr:ring1") player.removeAttribute("fr:ring2") player.removeAttribute("fr:ring3") - clearVarp(player, 816) - setVarbit(player, 816, 0, 0) + setVarp(player, 816, 0) closeTabInterface(player) return@onClose true } @@ -76,7 +75,7 @@ class FairyRingInterface : InterfaceListener { toSet = !toSet player.setAttribute("fr:sortorder",toSet) if(toSet) { - setVarbit(player, 816, 0, ring1index) + setVarp(player, 816, ring1index) player.setAttribute("fr:ring2",0) player.setAttribute("fr:ring3",0) } diff --git a/Server/src/main/content/global/handlers/iface/SettingTabInterface.java b/Server/src/main/content/global/handlers/iface/SettingTabInterface.java index 9c660554b..c8bac8cb7 100644 --- a/Server/src/main/content/global/handlers/iface/SettingTabInterface.java +++ b/Server/src/main/content/global/handlers/iface/SettingTabInterface.java @@ -1,5 +1,7 @@ package content.global.handlers.iface; +import static core.api.ContentAPIKt.*; + import core.game.component.Component; import core.game.component.ComponentDefinition; import core.game.component.ComponentPlugin; @@ -78,7 +80,7 @@ public class SettingTabInterface extends ComponentPlugin { break; case 8:// house p.getInterfaceManager().close(); - p.getConfigManager().set(261, p.getConfigManager().get(261) & 0x1); + setVarp(p, 261, getVarp(p, 261) & 0x1); p.getInterfaceManager().openSingleTab(new Component(398)); break; } diff --git a/Server/src/main/content/global/handlers/iface/SkillInterface.java b/Server/src/main/content/global/handlers/iface/SkillInterface.java index b9d5e5da4..a0ac47d21 100644 --- a/Server/src/main/content/global/handlers/iface/SkillInterface.java +++ b/Server/src/main/content/global/handlers/iface/SkillInterface.java @@ -7,6 +7,8 @@ import core.game.node.entity.player.Player; import core.plugin.Initializable; import core.plugin.Plugin; +import static core.api.ContentAPIKt.*; + /** * Represents the plugin used for the skilling interface. * @author 'Vexia @@ -23,9 +25,8 @@ public final class SkillInterface extends ComponentPlugin { @Override public boolean handle(Player player, Component component, int opcode, int button, int slot, int itemId) { - player.varpManager.get(965) - .setVarbit(0,player.getAttribute("skillMenu",-1)) - .setVarbit(10, button - 10).send(player); + setVarbit(player, 3288, player.getAttribute("skillMenu", -1)); + setVarbit(player, 3289, button - 10); return true; } } diff --git a/Server/src/main/content/global/handlers/iface/SkillTabInterface.java b/Server/src/main/content/global/handlers/iface/SkillTabInterface.java index f2255d97c..9dba5877b 100644 --- a/Server/src/main/content/global/handlers/iface/SkillTabInterface.java +++ b/Server/src/main/content/global/handlers/iface/SkillTabInterface.java @@ -10,6 +10,8 @@ import core.game.world.GameWorld; import core.plugin.Initializable; import core.plugin.Plugin; +import static core.api.ContentAPIKt.*; + /** * Represents the plugin used to handle the skilling tab. * @author Vexia @@ -35,12 +37,12 @@ public final class SkillTabInterface extends ComponentPlugin { if (p.getAttribute("levelup:" + config.getSkillId(), false)) { p.removeAttribute("levelup:" + config.getSkillId()); LevelUp.sendFlashingIcons(p, -1); - p.getConfigManager().set(1230, ADVANCE_CONFIGS[config.getSkillId()]); + setVarp(p, 1230, ADVANCE_CONFIGS[config.getSkillId()]); p.getInterfaceManager().open(new Component(741)); } else { p.getPulseManager().clear(); p.getInterfaceManager().open(new Component(499)); - p.getConfigManager().set(965, config.getConfig()); + setVarp(p, 965, config.getConfig()); p.getAttributes().put("skillMenu", config.getConfig()); } } else { diff --git a/Server/src/main/content/global/handlers/iface/ge/StockMarket.kt b/Server/src/main/content/global/handlers/iface/ge/StockMarket.kt index 4f16d3453..7879f75ba 100644 --- a/Server/src/main/content/global/handlers/iface/ge/StockMarket.kt +++ b/Server/src/main/content/global/handlers/iface/ge/StockMarket.kt @@ -30,7 +30,7 @@ class StockMarket : InterfaceListener { player.packetDispatch.sendInterfaceConfig(105, 193, true) player.packetDispatch.sendIfaceSettings(6, 211, 105, -1, -1) player.packetDispatch.sendIfaceSettings(6, 209, 105, -1, -1) - player.varpManager.get(1112).setVarbit(0, -1).send(player) + setVarp(player, 1112, -1) return@onOpen true } @@ -187,13 +187,13 @@ class StockMarket : InterfaceListener { fun updateOfferValue(player: Player, offer: GrandExchangeOffer, newAmt: Int) { offer.offeredValue = newAmt - player.varpManager.get(1111).setVarbit(0, newAmt).send(player) + setVarp(player, 1111, newAmt) } fun updateOfferAmount(player: Player, offer: GrandExchangeOffer, newAmt: Int) { offer.amount = newAmt - player.varpManager.get(1110).setVarbit(0, newAmt).send(player) + setVarp(player, 1110, newAmt) } fun abortOffer(player: Player, offer: GrandExchangeOffer?) @@ -320,14 +320,14 @@ class StockMarket : InterfaceListener { lowPrice = (recommendedPrice * 0.95).toInt() highPrice = (recommendedPrice * 1.05).toInt() } - player.varpManager.get(1109).setVarbit(0, offer?.itemID ?: -1).send(player) - player.varpManager.get(1110).setVarbit(0, offer?.amount ?: 0).send(player) - player.varpManager.get(1111).setVarbit(0, offer?.offeredValue ?: 0).send(player) - player.varpManager.get(1112).setVarbit(0, index).send(player) - player.varpManager.get(1113).setVarbit(0, if (isSale) 1 else 0).send(player) - player.varpManager.get(1114).setVarbit(0, recommendedPrice).send(player) - player.varpManager.get(1115).setVarbit(0, lowPrice).send(player) - player.varpManager.get(1116).setVarbit(0, highPrice).send(player) + setVarp(player, 1109, offer?.itemID ?: -1) + setVarp(player, 1110, offer?.amount ?: 0) + setVarp(player, 1111, offer?.offeredValue ?: 0) + setVarp(player, 1112, index) + setVarp(player, 1113, if (isSale) 1 else 0) + setVarp(player, 1114, recommendedPrice) + setVarp(player, 1115, lowPrice) + setVarp(player, 1116, highPrice) if (offer != null) { PacketRepository.send( ContainerPacket::class.java, @@ -392,4 +392,4 @@ class StockMarket : InterfaceListener { } } -} \ No newline at end of file +} diff --git a/Server/src/main/content/global/handlers/item/DragonfireShieldPlugin.java b/Server/src/main/content/global/handlers/item/DragonfireShieldPlugin.java index c2ada0374..485cb29e2 100644 --- a/Server/src/main/content/global/handlers/item/DragonfireShieldPlugin.java +++ b/Server/src/main/content/global/handlers/item/DragonfireShieldPlugin.java @@ -23,6 +23,8 @@ import core.plugin.ClassScanner; import java.util.concurrent.TimeUnit; +import static core.api.ContentAPIKt.*; + /** * Handles the dragonfire shield options. * @author Emperor @@ -49,7 +51,7 @@ public final class DragonfireShieldPlugin extends OptionHandler { boolean usingAttack = !player.getAttribute("dfs_spec", false); if (!usingAttack) { if (!player.getSettings().isSpecialToggled()) { - player.getConfigManager().set(301, 0); + setVarp(player, 301, 0); } player.removeAttribute("dfs_spec"); player.getProperties().getCombatPulse().setTemporaryHandler(null); @@ -70,7 +72,7 @@ public final class DragonfireShieldPlugin extends OptionHandler { player.getPacketDispatch().sendMessage("Your dragonfire shield is recharging."); return true; } - player.getConfigManager().set(301, 1); + setVarp(player, 301, 1); player.setAttribute("dfs_spec", true); SwitchAttack attack = new SwitchAttack(null, Animation.create(6696), Graphics.create(1165), new Graphics(1167, 96), Projectile.create(player, null, 1166, 36, 36, 80, 70, 0, 11)); DragonfireSwingHandler handler = new DragonfireSwingHandler(false, 26, attack, true) { @@ -79,7 +81,7 @@ public final class DragonfireShieldPlugin extends OptionHandler { if (entity instanceof Player) { Player player = (Player) entity; if (!player.getSettings().isSpecialToggled()) { - player.getConfigManager().set(301, 0); + setVarp(player, 301, 0); } player.removeAttribute("dfs_spec"); Item shield = player.getEquipment().get(EquipmentContainer.SLOT_SHIELD); diff --git a/Server/src/main/content/global/handlers/item/EnchantedGemListener.kt b/Server/src/main/content/global/handlers/item/EnchantedGemListener.kt index 584b5d88c..01d999e00 100644 --- a/Server/src/main/content/global/handlers/item/EnchantedGemListener.kt +++ b/Server/src/main/content/global/handlers/item/EnchantedGemListener.kt @@ -43,7 +43,7 @@ class EnchantedGemDialogue() : DialogueFile() { } else { npcl(core.game.dialogue.FacialExpression.FRIENDLY, "You're currently assigned to kill ${getSlayerTaskName(player!!)}s; only ${getSlayerTaskKillsRemaining(player!!)} more to go.") } - setVarbit(player!!, 2502, 0, getSlayerTaskFlags(player!!) shr 4) + setVarp(player!!, 2502, getSlayerTaskFlags(player!!) shr 4) stage = 1 } } @@ -63,4 +63,4 @@ class EnchantedGemDialogue() : DialogueFile() { 401 -> player(core.game.dialogue.FacialExpression.HAPPY, "Great, thanks!").also { stage = 1 } } } -} \ No newline at end of file +} diff --git a/Server/src/main/content/global/handlers/item/withitem/ImpJarCreatePlugin.java b/Server/src/main/content/global/handlers/item/withitem/ImpJarCreatePlugin.java index 881f0e1ab..e6d61a6be 100644 --- a/Server/src/main/content/global/handlers/item/withitem/ImpJarCreatePlugin.java +++ b/Server/src/main/content/global/handlers/item/withitem/ImpJarCreatePlugin.java @@ -8,6 +8,8 @@ import core.game.node.scenery.Scenery; import core.plugin.Initializable; import core.plugin.Plugin; +import static core.api.ContentAPIKt.*; + /** * Handles the creating of an imp jar. * @author Vexia @@ -62,12 +64,12 @@ public final class ImpJarCreatePlugin extends UseWithHandler { * @param player the player. */ private void fillOilStill(Player player, Item used) { - int configValue = player.getConfigManager().get(425); + int configValue = getVarp(player, 425); if (used.getId() == 11262 || used.getId() == 10012) { if (configValue == 0 && used.getId() == 11262) { player.getInventory().replace(new Item(229), used.getSlot()); player.sendMessage("You refine some imp repellent."); - player.getConfigManager().set(425, 64, true); + setVarp(player, 425, 64, true); return; } else if (configValue == 32) { player.sendMessage("There is already lamp oil in the still."); @@ -77,7 +79,7 @@ public final class ImpJarCreatePlugin extends UseWithHandler { player.sendMessage("There is already imp repellent in the still."); } else { player.getInventory().replace(new Item(11260), used.getSlot()); - player.getConfigManager().set(425, 0, true); + setVarp(player, 425, 0, true); player.sendMessage("You turn the butterfly jar into an impling jar."); } return; @@ -95,7 +97,7 @@ public final class ImpJarCreatePlugin extends UseWithHandler { } if (used.getId() == 1939) { if (player.getInventory().remove(new Item(1939))) { - player.getConfigManager().set(425, 32, true); + setVarp(player, 425, 32, true); player.sendMessage("You refine some swamp tar into lamp oil."); } } else { @@ -105,7 +107,7 @@ public final class ImpJarCreatePlugin extends UseWithHandler { if (player.getInventory().contains(4525, 1) || player.getInventory().contains(4535, 1) || player.getInventory().contains(4546, 1) || player.getInventory().contains(4700, 1)) { Item replace = new Item(used.getId() == 4525 ? 4522 : used.getId() == 4535 ? 4537 : used.getId() == 4546 ? 4548 : 4701); player.getInventory().replace(replace, used.getSlot()); - player.getConfigManager().set(425, 0, true); + setVarp(player, 425, 0, true); player.sendMessage("You fill the item with oil."); } } diff --git a/Server/src/main/content/global/handlers/item/withobject/GWDEntranceRopeListener.kt b/Server/src/main/content/global/handlers/item/withobject/GWDEntranceRopeListener.kt index a90652138..324364998 100644 --- a/Server/src/main/content/global/handlers/item/withobject/GWDEntranceRopeListener.kt +++ b/Server/src/main/content/global/handlers/item/withobject/GWDEntranceRopeListener.kt @@ -20,7 +20,7 @@ class GWDEntranceRopeListener : InteractionListener { return@onUseWith false } - setVarbit(player,1048,0,1,true) + setVarbit(player, 3932, 1, true) return@onUseWith true } diff --git a/Server/src/main/content/global/handlers/item/withobject/IncubatorPlugin.java b/Server/src/main/content/global/handlers/item/withobject/IncubatorPlugin.java index 665f93b48..b0612293c 100644 --- a/Server/src/main/content/global/handlers/item/withobject/IncubatorPlugin.java +++ b/Server/src/main/content/global/handlers/item/withobject/IncubatorPlugin.java @@ -15,6 +15,8 @@ import core.tools.StringUtils; import content.global.skill.summoning.pet.IncubatorState; import core.plugin.ClassScanner; +import static core.api.ContentAPIKt.*; + /** * Handles the incubator. * @author Vexia @@ -46,7 +48,7 @@ public class IncubatorPlugin extends OptionHandler { } { String name = egg.getProduct().getName().toLowerCase(); - player.varpManager.get(1160).setVarbit(4,0).send(player); + setVarbit(player, 4277, 0); player.sendMessage("You take your " + name + " out of the incubator."); if(!player.getInventory().add(egg.getProduct())){ GroundItemManager.create(egg.getProduct(),player); @@ -58,7 +60,7 @@ public class IncubatorPlugin extends OptionHandler { if (player.states.get("incubator") != null || inc != -1) { IncubatorState p = (IncubatorState) player.states.get("incubator"); if(p != null && p.getPulse() == null){ - player.varpManager.get(1160).setVarbit(4,0).send(player); + setVarbit(player, 4277, 0); return true; } String name = p == null ? IncubatorEgg.values()[inc].getProduct().getName().toLowerCase() : p.getEgg().getProduct().getName().toLowerCase(); diff --git a/Server/src/main/content/global/handlers/player/LoginValidationPlugin.java b/Server/src/main/content/global/handlers/player/LoginValidationPlugin.java index 5a417c302..4cf2dbbf3 100644 --- a/Server/src/main/content/global/handlers/player/LoginValidationPlugin.java +++ b/Server/src/main/content/global/handlers/player/LoginValidationPlugin.java @@ -10,6 +10,8 @@ import core.plugin.PluginManifest; import core.plugin.PluginType; import core.game.world.GameWorld; +import static core.api.ContentAPIKt.setVarp; + import java.util.concurrent.TimeUnit; /** @@ -60,7 +62,7 @@ public final class LoginValidationPlugin implements Plugin { ActivityManager.start(player, "falconry", true); } if (player.getSavedData().getQuestData().getDragonSlayerAttribute("repaired")) { - player.getConfigManager().set(177, 1967876); + setVarp(player, 177, 1967876); //lol? } if (player.getSavedData().getGlobalData().getLootShareDelay() < System.currentTimeMillis() && player.getSavedData().getGlobalData().getLootShareDelay() != 0L) { player.getGlobalData().setLootSharePoints((int) (player.getGlobalData().getLootSharePoints() - player.getGlobalData().getLootSharePoints() * 0.10)); diff --git a/Server/src/main/content/global/handlers/scenery/MillingListener.kt b/Server/src/main/content/global/handlers/scenery/MillingListener.kt index 77e2abf0e..152d3d051 100644 --- a/Server/src/main/content/global/handlers/scenery/MillingListener.kt +++ b/Server/src/main/content/global/handlers/scenery/MillingListener.kt @@ -65,7 +65,7 @@ class MillingListener : InteractionListener { } } playAudio(player, SOUND) - setVarbit(player, VARP, 0, 1, true) + setVarp(player, VARP, 1, true) } private fun fillHopper(player: Player, used: Item) { @@ -94,8 +94,8 @@ class MillingListener : InteractionListener { sendMessage(player, if (player.getAttribute("milling:grain", 0) > 0) "You fill a pot with flour from the bin." else "You fill a pot with the last of the flour in the bin.") } if (getAttribute(player, "milling:sweetcorn", 0) + getAttribute(player, "milling:grain", 0) <= 0) { - setVarbit(player, VARP, 0, 0, true) + setVarp(player, VARP, 0, true) } } } -} \ No newline at end of file +} diff --git a/Server/src/main/content/global/skill/agility/brimhaven/BrimhavenArena.java b/Server/src/main/content/global/skill/agility/brimhaven/BrimhavenArena.java index 6a60b2f43..13a6a4ad6 100644 --- a/Server/src/main/content/global/skill/agility/brimhaven/BrimhavenArena.java +++ b/Server/src/main/content/global/skill/agility/brimhaven/BrimhavenArena.java @@ -27,6 +27,8 @@ import core.tools.RandomFunction; import java.util.HashMap; import java.util.Map; +import static core.api.ContentAPIKt.*; + /** * Handles the Brimhaven agility arena zone. * @@ -77,7 +79,7 @@ public final class BrimhavenArena extends MapZone implements Plugin { player.setAttribute("brim-tagcount", 0); } player.setAttribute("brim-tagged", false); - player.getConfigManager().set(309, 0); + setVarp(player, 309, 0); int index = RandomFunction.randomize(DISPENSERS.length); if (index == player.getAttribute("brim-tag", -1)) { index = (index + 1) % DISPENSERS.length; @@ -137,7 +139,7 @@ public final class BrimhavenArena extends MapZone implements Plugin { player.setAttribute("brim-tagged", true); int tags = player.getAttribute("brim-tagcount", 0) + 1; player.setAttribute("brim-tagcount", tags); - player.getConfigManager().set(309, 4); + setVarp(player, 309, 4); if (tags > 1) { int amount = 1; if (!player.getInventory().add(new Item(TICKET.getId(), amount))) { diff --git a/Server/src/main/content/global/skill/agility/pyramid/AgilityPyramidCourse.java b/Server/src/main/content/global/skill/agility/pyramid/AgilityPyramidCourse.java index 463462fc1..c2d4a6a2c 100644 --- a/Server/src/main/content/global/skill/agility/pyramid/AgilityPyramidCourse.java +++ b/Server/src/main/content/global/skill/agility/pyramid/AgilityPyramidCourse.java @@ -19,6 +19,8 @@ import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.plugin.ClassScanner; +import static core.api.ContentAPIKt.*; + /** * Handles the agility pryamid course. * @author Vexia @@ -147,7 +149,7 @@ public final class AgilityPyramidCourse extends AgilityCourse { case 10855: case 10856: addConfig(player, 10869, 0, true); - if (player.getConfigManager().get(640) == 505 || player.getConfigManager().get(640) == 515) { + if (getVarp(player, 640) == 505 || getVarp(player, 640) == 515) { player.getSkills().addExperience(Skills.AGILITY, 300, true); } player.getDialogueInterpreter().sendDialogue("You climb down the steep passage. It leads to the base of the", "pyramid."); @@ -387,7 +389,7 @@ public final class AgilityPyramidCourse extends AgilityCourse { @Override public boolean pulse() { player.getSkills().addExperience(Skills.AGILITY, 1000); - if (player.getConfigManager().get(640) == 505 || player.getConfigManager().get(640) == 515) { + if (getVarp(player, 640) == 505 || getVarp(player, 640) == 515) { player.getPacketDispatch().sendMessage("You find nothing on top of the pyramid."); return true; } @@ -510,7 +512,7 @@ public final class AgilityPyramidCourse extends AgilityCourse { final VarbitDefinition definition = VarbitDefinition.forObjectID(SceneryDefinition.forId(objectId).getVarbitID()); final int oldVal = (definition.getValue(player) << definition.getStartBit()); final int newVal = (value << definition.getStartBit()); - player.getConfigManager().set(CONFIG_ID, (player.getConfigManager().get(CONFIG_ID) - oldVal) + newVal, save); + setVarp(player, CONFIG_ID, (getVarp(player, CONFIG_ID) - oldVal) + newVal, save); } /** diff --git a/Server/src/main/content/global/skill/construction/BuildingUtils.java b/Server/src/main/content/global/skill/construction/BuildingUtils.java index f13dece98..1ea7aa616 100644 --- a/Server/src/main/content/global/skill/construction/BuildingUtils.java +++ b/Server/src/main/content/global/skill/construction/BuildingUtils.java @@ -23,7 +23,7 @@ import core.tools.SystemLogger; import java.util.ArrayList; import java.util.Arrays; -import static core.api.ContentAPIKt.log; +import static core.api.ContentAPIKt.*; /** * Utility class for building. @@ -134,12 +134,12 @@ public final class BuildingUtils { if (hasRequirements) { c261Value += (1 << (menuIndex + 1)); } - player.getConfigManager().set(1485 + menuIndex, hasRequirements || player.isStaff() ? 1 : 0); + setVarp(player, 1485 + menuIndex, hasRequirements || player.isStaff() ? 1 : 0); player.getPacketDispatch().sendString("Level " + decoration.getLevel(), 396, 140 + menuIndex); //player.getPacketDispatch().sendItemZoomOnInterface(items[i].protocol(), 50000, 396, 49 + i); } - player.getConfigManager().set(261, c261Value); + setVarp(player, 261, c261Value); PacketRepository.send(ContainerPacket.class, new ContainerContext(player, 396, 132, 8, items, false)); } @@ -699,4 +699,4 @@ public final class BuildingUtils { } return exits; } -} \ No newline at end of file +} diff --git a/Server/src/main/content/global/skill/construction/HouseManager.java b/Server/src/main/content/global/skill/construction/HouseManager.java index 7c8bc5d35..0c7f3f406 100644 --- a/Server/src/main/content/global/skill/construction/HouseManager.java +++ b/Server/src/main/content/global/skill/construction/HouseManager.java @@ -236,8 +236,8 @@ public final class HouseManager { } private void updateVarbits(Player player, boolean build) { - player.varpManager.get(261).setVarbit(0, build ? 1 : 0); - player.varpManager.get(262).setVarbit(0, getRoomAmount()); + setVarp(player, 261, build ? 1 : 0); + setVarp(player, 262, getRoomAmount()); } private void unlockMusicTrack(Player player) { diff --git a/Server/src/main/content/global/skill/construction/decoration/study/LecternPlugin.kt b/Server/src/main/content/global/skill/construction/decoration/study/LecternPlugin.kt index 744b78743..bf367fda2 100644 --- a/Server/src/main/content/global/skill/construction/decoration/study/LecternPlugin.kt +++ b/Server/src/main/content/global/skill/construction/decoration/study/LecternPlugin.kt @@ -162,8 +162,8 @@ class LecternPlugin : OptionHandler() { val id = player.getAttribute("ttb:objectid", 0) val deco = Decoration.forObjectId(id) val values = decorationVarps[deco] ?: Pair(0, 0) - player.varpManager.get(261).setVarbit(0, values.first).send(player) - player.varpManager.get(262).setVarbit(0, values.second).send(player) + setVarp(player, 261, values.first) + setVarp(player, 262, values.second) return@onOpen true } on(400) { player, _, _, buttonID, _, _ -> diff --git a/Server/src/main/content/global/skill/farming/CompostBin.kt b/Server/src/main/content/global/skill/farming/CompostBin.kt index 7345bde62..b6d38185b 100644 --- a/Server/src/main/content/global/skill/farming/CompostBin.kt +++ b/Server/src/main/content/global/skill/farming/CompostBin.kt @@ -118,19 +118,20 @@ class CompostBin(val player: Player, val bin: CompostBins) { } fun updateBit(){ - player.varpManager.get(bin.varpIndex).clearBitRange(bin.varpOffest,bin.varpOffest + 7) if(items.isNotEmpty()) { - if (isFinished) { - player.varpManager.get(bin.varpIndex).setVarbit(bin.varpOffest + 1, if(items.size == 15) 15 else 14) - if (isTomatoes) player.varpManager.get(bin.varpIndex).setVarbit(bin.varpOffest + 7, 1) - else if (isSuperCompost) player.varpManager.get(bin.varpIndex).setVarbit(bin.varpOffest + 5, 1) + if (isClosed) { + setVarbit(player, bin.varbit, 0x40) + } else if (isFinished) { + var finalValue = if (items.size == 15) 15 else 14 + if (isTomatoes) finalValue += 0x80 + else if (isSuperCompost) finalValue += 0x20 + setVarbit(player, bin.varbit, finalValue) } else { - player.varpManager.get(bin.varpIndex).setVarbit(bin.varpOffest, items.size) - if (isTomatoes) player.varpManager.get(bin.varpIndex).setVarbit(bin.varpOffest + 7, 1) + var finalValue = items.size + if (isTomatoes) finalValue += 0x80 + setVarbit(player, bin.varbit, finalValue) } - if (isClosed) player.varpManager.get(bin.varpIndex).setVarbit(bin.varpOffest + 6, 1) - } - player.varpManager.get(bin.varpIndex).send(player) + } else setVarbit(player, bin.varbit, 0) } fun save(root: JSONObject){ @@ -176,4 +177,4 @@ class CompostBin(val player: Player, val bin: CompostBins) { updateBit() } } -} \ No newline at end of file +} diff --git a/Server/src/main/content/global/skill/farming/CompostBins.kt b/Server/src/main/content/global/skill/farming/CompostBins.kt index 60e0393e9..e8644b70b 100644 --- a/Server/src/main/content/global/skill/farming/CompostBins.kt +++ b/Server/src/main/content/global/skill/farming/CompostBins.kt @@ -5,15 +5,15 @@ import core.cache.def.impl.VarbitDefinition import core.game.node.scenery.Scenery import core.game.node.entity.player.Player -enum class CompostBins(val varpIndex: Int, val varpOffest: Int) { - FALADOR_COMPOST(511,0), - CATHERBY_COMPOST(511,8), - PORT_PHAS_COMPOST(511,16), - ARDOUGNE_COMPOST(511,24); +enum class CompostBins(val varbit: Int) { + FALADOR_COMPOST(740), + CATHERBY_COMPOST(741), + PORT_PHAS_COMPOST(742), + ARDOUGNE_COMPOST(743); companion object { @JvmField - val bins = values().map { (it.varpIndex shl it.varpOffest) to it }.toMap() + val bins = values().map { it.varbit to it }.toMap() @JvmStatic fun forObject(obj: Scenery): CompostBins?{ @@ -23,8 +23,7 @@ enum class CompostBins(val varpIndex: Int, val varpOffest: Int) { @JvmStatic fun forObjectID(id: Int): CompostBins?{ val objDef = SceneryDefinition.forId(id) - val def = VarbitDefinition.forObjectID(objDef.varbitID) - return bins[def.varpId shl def.startBit] + return bins[objDef.varbitID] } } @@ -36,4 +35,4 @@ enum class CompostBins(val varpIndex: Int, val varpOffest: Int) { } else state.getBin(this) } -} \ No newline at end of file +} diff --git a/Server/src/main/content/global/skill/farming/FarmingPatch.kt b/Server/src/main/content/global/skill/farming/FarmingPatch.kt index e6ab30f5e..e6ce50d97 100644 --- a/Server/src/main/content/global/skill/farming/FarmingPatch.kt +++ b/Server/src/main/content/global/skill/farming/FarmingPatch.kt @@ -5,73 +5,73 @@ import core.cache.def.impl.VarbitDefinition import core.game.node.scenery.Scenery import core.game.node.entity.player.Player -enum class FarmingPatch(val varpIndex: Int, val varpOffset: Int, val type: PatchType) { +enum class FarmingPatch(val varbit: Int, val type: PatchType) { //Allotments - S_FALADOR_ALLOTMENT_NW(504,0,PatchType.ALLOTMENT), - S_FALADOR_ALLOTMENT_SE(504,8,PatchType.ALLOTMENT), - CATHERBY_ALLOTMENT_N(504,16,PatchType.ALLOTMENT), - CATHERBY_ALLOTMENT_S(504,24,PatchType.ALLOTMENT), - ARDOUGNE_ALLOTMENT_S(505,8,PatchType.ALLOTMENT), - ARDOUGNE_ALLOTMENT_N(505,0,PatchType.ALLOTMENT), - PORT_PHAS_ALLOTMENT_NW(505,16,PatchType.ALLOTMENT), - PORT_PHAS_ALLOTMENT_SE(505,24,PatchType.ALLOTMENT), - HARMONY_ISLAND_ALLOTMENT(982,8,PatchType.ALLOTMENT), + S_FALADOR_ALLOTMENT_NW(708,PatchType.ALLOTMENT), + S_FALADOR_ALLOTMENT_SE(709,PatchType.ALLOTMENT), + CATHERBY_ALLOTMENT_N(710,PatchType.ALLOTMENT), + CATHERBY_ALLOTMENT_S(711,PatchType.ALLOTMENT), + ARDOUGNE_ALLOTMENT_S(713,PatchType.ALLOTMENT), + ARDOUGNE_ALLOTMENT_N(712,PatchType.ALLOTMENT), + PORT_PHAS_ALLOTMENT_NW(714,PatchType.ALLOTMENT), + PORT_PHAS_ALLOTMENT_SE(715,PatchType.ALLOTMENT), + HARMONY_ISLAND_ALLOTMENT(3402,PatchType.ALLOTMENT), //Herb - CATHERBY_HERB_CE(515,8,PatchType.HERB), - S_FALADOR_HERB_NE(515,0,PatchType.HERB), - ARDOUGNE_HERB_CE(515,16,PatchType.HERB), - PORT_PHAS_HERB_NE(515,24,PatchType.HERB), - TROLL_STRONGHOLD_HERB(830,0,PatchType.HERB), + CATHERBY_HERB_CE(781,PatchType.HERB), + S_FALADOR_HERB_NE(780,PatchType.HERB), + ARDOUGNE_HERB_CE(782,PatchType.HERB), + PORT_PHAS_HERB_NE(783,PatchType.HERB), + TROLL_STRONGHOLD_HERB(2788,PatchType.HERB), //Flower - S_FALADOR_FLOWER_C(508,0,PatchType.FLOWER), - CATHERBY_FLOWER_C(508,8,PatchType.FLOWER), - ARDOUGNE_FLOWER_C(508,16,PatchType.FLOWER), - PORT_PHAS_FLOWER_C(508,24,PatchType.FLOWER), - WILDERNESS_FLOWER(1183,12,PatchType.FLOWER), + S_FALADOR_FLOWER_C(728,PatchType.FLOWER), + CATHERBY_FLOWER_C(729,PatchType.FLOWER), + ARDOUGNE_FLOWER_C(730,PatchType.FLOWER), + PORT_PHAS_FLOWER_C(731,PatchType.FLOWER), + WILDERNESS_FLOWER(5067,PatchType.FLOWER), //Tree - N_FALADOR_TREE(502,8,PatchType.TREE), - TAVERLY_TREE(502,0,PatchType.TREE), - GNOME_STRONGHOLD_TREE(830,11,PatchType.TREE), - LUMBRIDGE_TREE(502,24,PatchType.TREE), - VARROCK_TREE(502,16,PatchType.TREE), + N_FALADOR_TREE(701,PatchType.TREE), + TAVERLY_TREE(700,PatchType.TREE), + GNOME_STRONGHOLD_TREE(2953,PatchType.TREE), + LUMBRIDGE_TREE(703,PatchType.TREE), + VARROCK_TREE(702,PatchType.TREE), //Fruit Tree - GNOME_STRONGHOLD_FRUIT_TREE(503,0,PatchType.FRUIT_TREE), - CATHERBY_FRUIT_TREE(503,24,PatchType.FRUIT_TREE), - TREE_GNOME_VILLAGE_FRUIT_TREE(503,8,PatchType.FRUIT_TREE), - BRIMHAVEN_FRUIT_TREE(503,16,PatchType.FRUIT_TREE), - LLETYA_FRUIT_TREE(830,23,PatchType.FRUIT_TREE), + GNOME_STRONGHOLD_FRUIT_TREE(704,PatchType.FRUIT_TREE), + CATHERBY_FRUIT_TREE(707,PatchType.FRUIT_TREE), + TREE_GNOME_VILLAGE_FRUIT_TREE(705,PatchType.FRUIT_TREE), + BRIMHAVEN_FRUIT_TREE(706,PatchType.FRUIT_TREE), + LLETYA_FRUIT_TREE(4317,PatchType.FRUIT_TREE), //Hops - ENTRANA_HOPS(506,8,PatchType.HOPS), - LUMBRIDGE_HOPS(506,16,PatchType.HOPS), - MCGRUBOR_HOPS(506,24,PatchType.HOPS), - YANILLE_HOPS(506,0,PatchType.HOPS), + ENTRANA_HOPS(717,PatchType.HOPS), + LUMBRIDGE_HOPS(718,PatchType.HOPS), + MCGRUBOR_HOPS(719,PatchType.HOPS), + YANILLE_HOPS(716,PatchType.HOPS), //Bushes - CHAMPIONS_GUILD_BUSH(509,0,PatchType.BUSH), - RIMMINGTON_BUSH(509,8,PatchType.BUSH), - ARDOUGNE_BUSH(509,24,PatchType.BUSH), - ETCETERIA_BUSH(509,16,PatchType.BUSH), + CHAMPIONS_GUILD_BUSH(732,PatchType.BUSH), + RIMMINGTON_BUSH(733,PatchType.BUSH), + ARDOUGNE_BUSH(735,PatchType.BUSH), + ETCETERIA_BUSH(734,PatchType.BUSH), //Spirit Tree - ETCETERIA_SPIRIT_TREE(507,8,PatchType.SPIRIT_TREE), - PORT_SARIM_SPIRIT_TREE(507,0,PatchType.SPIRIT_TREE), - KARAMJA_SPIRIT_TREE(507,16,PatchType.SPIRIT_TREE), + ETCETERIA_SPIRIT_TREE(722,PatchType.SPIRIT_TREE), + PORT_SARIM_SPIRIT_TREE(720,PatchType.SPIRIT_TREE), + KARAMJA_SPIRIT_TREE(724,PatchType.SPIRIT_TREE), //Other - DRAYNOR_BELLADONNA(512, 16, PatchType.BELLADONNA), - CANIFIS_MUSHROOM(512, 8, PatchType.MUSHROOM), - ALKHARID_CACTUS(512, 0, PatchType.CACTUS), - EVIL_TURNIP(1171, 7, PatchType.EVIL_TURNIP); + DRAYNOR_BELLADONNA(748, PatchType.BELLADONNA), + CANIFIS_MUSHROOM(746, PatchType.MUSHROOM), + ALKHARID_CACTUS(744, PatchType.CACTUS), + EVIL_TURNIP(4291, PatchType.EVIL_TURNIP); companion object { @JvmField - val patches = FarmingPatch.values().map { (it.varpIndex shl it.varpOffset) to it }.toMap() + val patches = FarmingPatch.values().map { it.varbit to it }.toMap() @JvmStatic fun forObject(obj: Scenery): FarmingPatch?{ @@ -81,8 +81,7 @@ enum class FarmingPatch(val varpIndex: Int, val varpOffset: Int, val type: Patch @JvmStatic fun forObjectID(id: Int): FarmingPatch?{ val objDef = SceneryDefinition.forId(id) - val def = VarbitDefinition.forObjectID(objDef.varbitID) - return patches[def.varpId shl def.startBit] + return patches[objDef.varbitID] } } diff --git a/Server/src/main/content/global/skill/farming/InspectionHandler.kt b/Server/src/main/content/global/skill/farming/InspectionHandler.kt index 80bd06fe1..661cd23cf 100644 --- a/Server/src/main/content/global/skill/farming/InspectionHandler.kt +++ b/Server/src/main/content/global/skill/farming/InspectionHandler.kt @@ -38,9 +38,8 @@ class InspectionHandler : OptionHandler() { val status3 = if(p.compost == CompostType.NONE) "This patch has not been treated." else "This patch has been treated with ${p.compost.name.toLowerCase()} compost." player.sendMessage("$status1 $status2") player.sendMessage(status3) - val varpValue = player.varpManager.get(patch.varpIndex).getBitRangeValue(patch.varpOffset,patch.varpOffset + 7) } return true } -} \ No newline at end of file +} diff --git a/Server/src/main/content/global/skill/farming/Patch.kt b/Server/src/main/content/global/skill/farming/Patch.kt index 173886d65..13f082e62 100644 --- a/Server/src/main/content/global/skill/farming/Patch.kt +++ b/Server/src/main/content/global/skill/farming/Patch.kt @@ -1,6 +1,6 @@ package content.global.skill.farming -import core.api.log +import core.api.* import core.game.node.entity.player.Player import core.tools.Log import core.tools.RandomFunction @@ -90,11 +90,11 @@ class Patch(val player: Player, val patch: FarmingPatch, var plantable: Plantabl } fun getCurrentState(): Int{ - return player.varpManager.get(patch.varpIndex).getVarbitValue(patch.varpOffset) ?: 0 + return getVarbit(player, patch.varbit) } fun setCurrentState(state: Int){ - player.varpManager.get(patch.varpIndex).setVarbit(patch.varpOffset,state) + setVarbit(player, patch.varbit, state) updateBit() } @@ -109,58 +109,60 @@ class Patch(val player: Player, val patch: FarmingPatch, var plantable: Plantabl private fun updateBit(){ if(isCheckHealth){ when(patch.type){ - PatchType.FRUIT_TREE -> player.varpManager.get(patch.varpIndex).setVarbit(patch.varpOffset,plantable!!.value + plantable!!.stages + 20) - PatchType.BUSH -> player.varpManager.get(patch.varpIndex).setVarbit(patch.varpOffset,250 + (plantable!!.ordinal - Plantable.REDBERRY_SEED.ordinal)) - PatchType.CACTUS -> player.varpManager.get(patch.varpIndex).setVarbit(patch.varpOffset, 31) + PatchType.FRUIT_TREE -> setVarbit(player, patch.varbit, plantable!!.value + plantable!!.stages + 20) + PatchType.BUSH -> setVarbit(player, patch.varbit, 250 + (plantable!!.ordinal - Plantable.REDBERRY_SEED.ordinal)) + PatchType.CACTUS -> setVarbit(player, patch.varbit, 31) else -> log(this::class.java, Log.WARN, "Invalid setting of isCheckHealth for patch type: " + patch.type.name) } } else { when(patch.type){ PatchType.ALLOTMENT,PatchType.FLOWER,PatchType.HOPS -> { - player.varpManager.get(patch.varpIndex).setVarbit(patch.varpOffset + 6, if (isWatered || isDead) 1 else 0) - player.varpManager.get(patch.varpIndex).setVarbit(patch.varpOffset + 7, if (isDiseased) 1 else 0) + var state = getUnmodifiedValue() + if (isWatered || isDead) state = state or 0x40 + if (isDiseased) state = state or 0x80 + + if (state != getVarbit(player, patch.varbit)) + setVarbit(player, patch.varbit, state) } PatchType.BUSH -> { - if(isDead) player.varpManager.get(patch.varpIndex).setVarbit(patch.varpOffset,getBushDeathValue()) - else if(isDiseased && !isDead) player.varpManager.get(patch.varpIndex).setVarbit(patch.varpOffset,getBushDiseaseValue()) - //else player.varpManager.get(patch.varpIndex).setVarbit(patch.varpOffset, (plantable?.value ?: 0) + currentGrowthStage) + if(isDead) setVarbit(player, patch.varbit, getBushDeathValue()) + else if(isDiseased && !isDead) setVarbit(player, patch.varbit, getBushDiseaseValue()) } PatchType.TREE -> { - if(isDead) player.varpManager.get(patch.varpIndex).setVarbit(patch.varpOffset + 7,1) - else if(isDiseased && !isDead) player.varpManager.get(patch.varpIndex).setVarbit(patch.varpOffset + 6, 1) + var state = getVarbit(player, patch.varbit) + + if (isDead) state = state or 0x80 + else if (isDiseased) state = state or 0x40 + + if (state != getVarbit(player, patch.varbit)) + setVarbit(player, patch.varbit, state) } PatchType.FRUIT_TREE -> { - if(isDead) player.varpManager.get(patch.varpIndex).setVarbit(patch.varpOffset,getFruitTreeDeathValue()) - else if(isDiseased && !isDead) player.varpManager.get(patch.varpIndex).setVarbit(patch.varpOffset, getFruitTreeDiseaseValue()) + if(isDead) setVarbit(player, patch.varbit, getFruitTreeDeathValue()) + else if(isDiseased && !isDead) setVarbit(player, patch.varbit, getFruitTreeDiseaseValue()) } PatchType.BELLADONNA -> { - if(isDead) player.varpManager.get(patch.varpIndex).setVarbit(patch.varpOffset, getBelladonnaDeathValue()) - else if(isDiseased && !isDead) player.varpManager.get(patch.varpIndex).setVarbit(patch.varpOffset, getBelladonnaDiseaseValue()) - else player.varpManager.get(patch.varpIndex).setVarbit(patch.varpOffset, (plantable?.value ?: 0) + currentGrowthStage) + if(isDead) setVarbit(player, patch.varbit, getBelladonnaDeathValue()) + else if(isDiseased && !isDead) setVarbit(player, patch.varbit, getBelladonnaDiseaseValue()) + else setVarbit(player, patch.varbit, (plantable?.value ?: 0) + currentGrowthStage) } PatchType.CACTUS -> { - if(isDead) player.varpManager.get(patch.varpIndex).setVarbit(patch.varpOffset, getCactusDeathValue()) - else if(isDiseased && !isDead) player.varpManager.get(patch.varpIndex).setVarbit(patch.varpOffset, getCactusDiseaseValue()) + if(isDead) setVarbit(player, patch.varbit, getCactusDeathValue()) + else if(isDiseased && !isDead) setVarbit(player, patch.varbit, getCactusDiseaseValue()) } PatchType.HERB -> { - if(isDead) player.varpManager.get(patch.varpIndex).setVarbit(patch.varpOffset, getHerbDeathValue()) - else if(isDiseased && !isDead) player.varpManager.get(patch.varpIndex).setVarbit(patch.varpOffset, getHerbDiseaseValue()) - else player.varpManager.get(patch.varpIndex).setVarbit(patch.varpOffset, (plantable?.value ?: 0) + currentGrowthStage) + if(isDead) setVarbit(player, patch.varbit, getHerbDeathValue()) + else if(isDiseased && !isDead) setVarbit(player, patch.varbit, getHerbDiseaseValue()) + else setVarbit(player, patch.varbit, (plantable?.value ?: 0) + currentGrowthStage) } else -> {} } } - player.varpManager.get(patch.varpIndex).send(player) } fun cureDisease() { + setVarbit(player, patch.varbit, (plantable?.value ?: 0) + currentGrowthStage) isDiseased = false - when(patch.type){ - PatchType.BUSH,PatchType.FRUIT_TREE -> player.varpManager.get(patch.varpIndex).setVarbit(patch.varpOffset,(plantable?.value ?: 0) + currentGrowthStage) - PatchType.TREE -> player.varpManager.get(patch.varpIndex).clearBitRange(patch.varpOffset + 6, patch.varpOffset + 7) - PatchType.CACTUS -> player.varpManager.get(patch.varpIndex).setVarbit(patch.varpOffset, (plantable?.value ?: 0) + currentGrowthStage) - else -> {} - } updateBit() } @@ -169,6 +171,10 @@ class Patch(val player: Player, val patch: FarmingPatch, var plantable: Plantabl updateBit() } + private fun getUnmodifiedValue(): Int { + return (plantable?.value ?: 0) + currentGrowthStage + } + private fun getBushDiseaseValue(): Int{ if(plantable == Plantable.POISON_IVY_SEED){ return (plantable?.value ?: 0) + currentGrowthStage + 12 @@ -306,7 +312,7 @@ class Patch(val player: Player, val patch: FarmingPatch, var plantable: Plantabl isDiseased = false isDead = false plantable = null - player.varpManager.get(patch.varpIndex).clearBitRange(patch.varpOffset,patch.varpOffset + 7) + setVarbit(player, patch.varbit, 0) nextGrowth = 0L currentGrowthStage = 3 setCurrentState(3) diff --git a/Server/src/main/content/global/skill/farming/ToolLeprechaunInterface.kt b/Server/src/main/content/global/skill/farming/ToolLeprechaunInterface.kt index ad68f4222..175c2af71 100644 --- a/Server/src/main/content/global/skill/farming/ToolLeprechaunInterface.kt +++ b/Server/src/main/content/global/skill/farming/ToolLeprechaunInterface.kt @@ -8,16 +8,13 @@ import org.rs09.consts.Components import org.rs09.consts.Items import core.game.interaction.InterfaceListener -private const val varp = 615 class ToolLeprechaunInterface : InterfaceListener { - private val FARMING_TOOLS = Components.FARMING_TOOLS_125 private val TOOLS_SIDE = Components.FARMING_TOOLS_SIDE_126 override fun defineInterfaceListeners() { onOpen(FARMING_TOOLS){player, component -> - player.varpManager?.flagSave(varp) player.interfaceManager.openSingleTab(Component(TOOLS_SIDE)) return@onOpen true } @@ -48,7 +45,6 @@ class ToolLeprechaunInterface : InterfaceListener { 40 -> doStackedWithdrawal(player,Items.COMPOST_6032,getAmount(opcode),::updateCompost,::getNumCompost) 41 -> doStackedWithdrawal(player,Items.SUPERCOMPOST_6034,getAmount(opcode),::updateSuperCompost,::getNumSuperCompost) } - player.varpManager.get(varp).send(player) return@on true } @@ -90,7 +86,6 @@ class ToolLeprechaunInterface : InterfaceListener { 25 -> doStackedDeposit(player,Items.COMPOST_6032,getAmount(opcode),::updateCompost,::getNumCompost) 26 -> doStackedDeposit(player,Items.SUPERCOMPOST_6034,getAmount(opcode),::updateSuperCompost,::getNumSuperCompost) } - player.varpManager.get(varp).send(player) return@on true } @@ -149,7 +144,6 @@ class ToolLeprechaunInterface : InterfaceListener { } player.inventory.remove(Item(item,amt)) updateQuantityMethod.invoke(player,amt) - player.varpManager.get(varp).send(player) } return } @@ -200,7 +194,6 @@ class ToolLeprechaunInterface : InterfaceListener { } else { player.inventory.add(Item(item, amt)) updateQuantityMethod.invoke(player, -amt) - player.varpManager.get(varp).send(player) } } return @@ -231,43 +224,43 @@ class ToolLeprechaunInterface : InterfaceListener { } private fun hasRake(player: Player?): Boolean{ - return checkBit(player,0) + return getVarbit(player!!, 1435) == 1 } private fun setHasRake(player: Player?,hasRake: Boolean){ - player?.varpManager?.get(varp)?.setVarbit(0,if(hasRake) 1 else 0) + setVarbit(player!!, 1435, if (hasRake) 1 else 0, true) } private fun hasDibber(player: Player?): Boolean{ - return checkBit(player,1) + return getVarbit(player!!, 1436) == 1 } private fun setHasDibber(player: Player?,hasDibber: Boolean){ - player?.varpManager?.get(varp)?.setVarbit(1,if(hasDibber) 1 else 0) + setVarbit(player!!, 1436, if (hasDibber) 1 else 0, true) } private fun hasSpade(player: Player?): Boolean{ - return checkBit(player,2) + return getVarbit(player!!, 1437) == 1 } private fun setHasSpade(player: Player?,hasSpade: Boolean){ - player?.varpManager?.get(varp)?.setVarbit(2,if(hasSpade) 1 else 0) + setVarbit(player!!, 1437, if (hasSpade) 1 else 0, true) } private fun hasSecateurs(player: Player?): Boolean{ - return checkBit(player,3) + return getVarbit(player!!, 1438) == 1 } private fun setHasSecateurs(player: Player?,hasSecateurs: Boolean){ - player?.varpManager?.get(varp)?.setVarbit(3,if(hasSecateurs) 1 else 0) + setVarbit(player!!, 1438, if (hasSecateurs) 1 else 0, true) } private fun hasWateringCan(player: Player?): Boolean{ - return checkBitRange(player,4,7) > 0 + return getVarbit(player!!, 1439) > 0 } private fun getWateringCan(player: Player?): Int{ - var can = checkBitRange(player,4,7) //Watering cans are stored in the Varp as a number between 1 and 9. Watering Can(0) is 1 and Watering Can(8) is 9 + var can = getVarbit(player!!, 1439) //Watering cans are stored in the Varp as a number between 1 and 9. Watering Can(0) is 1 and Watering Can(8) is 9 if(can == 1) can = 0 return Items.WATERING_CAN_5331 + can } @@ -285,61 +278,53 @@ class ToolLeprechaunInterface : InterfaceListener { Items.WATERING_CAN8_5340 -> 9 else -> 0 } - player?.varpManager?.get(varp)?.setVarbit(4,can) + setVarbit(player!!, 1439, can, true) } private fun setNoWateringCan(player: Player?){ - player?.varpManager?.get(varp)?.setVarbit(4,0) + setVarbit(player!!, 1439, 0, true) } private fun hasGardeningTrowel(player: Player?): Boolean { - return checkBit(player,8) + return getVarbit(player!!, 1440) == 1 } private fun setHasGardeningTrowel(player: Player?,hasTrowel: Boolean){ - player?.varpManager?.get(varp)?.setVarbit(8,if(hasTrowel) 1 else 0) + setVarbit(player!!, 1440, if (hasTrowel) 1 else 0, true) } private fun getNumBuckets(player: Player?): Int { - return checkBitRange(player,9,13) + return getVarbit(player!!, 1441) } private fun updateBuckets(player: Player?,amount: Int){ - player?.varpManager?.get(varp)?.setVarbit(9,getNumBuckets(player) + amount) + setVarbit(player!!, 1441, getNumBuckets(player) + amount, true) } private fun getNumCompost(player: Player?): Int { - return checkBitRange(player,14,21) + return getVarbit(player!!, 1442) } private fun updateCompost(player: Player?,amount: Int){ - player?.varpManager?.get(varp)?.setVarbit(14,getNumCompost(player) + amount) + setVarbit(player!!, 1442, getNumCompost(player) + amount, true) } private fun getNumSuperCompost(player: Player?): Int { - return checkBitRange(player,22,29) + return getVarbit(player!!, 1443) } private fun updateSuperCompost(player: Player?,amount: Int){ - player?.varpManager?.get(varp)?.setVarbit(22,getNumSuperCompost(player) + amount) + setVarbit(player!!, 1443, getNumSuperCompost(player) + amount, true) } private fun hasMagicSecateurs(player: Player?): Boolean { - return checkBit(player,30) + return getVarbit(player!!, 1848) == 1 } private fun setHasMagicSecateurs(player: Player?,hasMagic: Boolean){ - player?.varpManager?.get(varp)?.setVarbit(30,if(hasMagic) 1 else 0) + setVarbit(player!!, 1848, if (hasMagic) 1 else 0, true) } - private fun checkBitRange(player: Player?,start: Int, end: Int): Int{ - return (player?.varpManager?.get(varp)?.getBitRangeValue(start,end) ?: 0) ushr start - } - - private fun checkBit(player: Player?,offset: Int): Boolean{ - return player?.varpManager?.get(varp)?.getVarbitValue(offset) == 1 - } - private fun getHighestCan(player: Player?): Item?{ player ?: return null var highestCan = Item(0) @@ -352,4 +337,4 @@ class ToolLeprechaunInterface : InterfaceListener { return if(highestCan.id == 0) null else highestCan } -} \ No newline at end of file +} diff --git a/Server/src/main/content/global/skill/hunter/pitfall/HunterPitfall.kt b/Server/src/main/content/global/skill/hunter/pitfall/HunterPitfall.kt index 6faa85cf4..5797b5b23 100644 --- a/Server/src/main/content/global/skill/hunter/pitfall/HunterPitfall.kt +++ b/Server/src/main/content/global/skill/hunter/pitfall/HunterPitfall.kt @@ -60,28 +60,28 @@ val HUNTER_REQS = hashMapOf( "Sabre-toothed kyatt" to 55, ) //val pitVarpOffsets = hashMapOf( 19264 to 3, 19265 to 6, 19266 to 9, 19267 to 12, 19268 to 15,) -data class Pit(val varpId: Int, val varpOffset: Int, val horizontal: Boolean) +data class Pit(val varbitId: Int, val horizontal: Boolean) val pitVarps = hashMapOf( // Larupia pits (the duplicate 24 is likely authentic) - Location.create(2565,2888) to Pit(917, 27, true), - Location.create(2573,2885) to Pit(918, 0, false), - Location.create(2556,2893) to Pit(917, 18, false), - Location.create(2552,2904) to Pit(917, 24, true), - Location.create(2543,2908) to Pit(917, 21, false), - Location.create(2538,2899) to Pit(917, 24, true), + Location.create(2565,2888) to Pit(2967, true), + Location.create(2573,2885) to Pit(2968, false), + Location.create(2556,2893) to Pit(2964, false), + Location.create(2552,2904) to Pit(2966, true), + Location.create(2543,2908) to Pit(2965, false), + Location.create(2538,2899) to Pit(2966, true), // Kyatt pits - Location.create(2700,3795) to Pit(917, 0, true), - Location.create(2700,3785) to Pit(917, 3, false), - Location.create(2706,3789) to Pit(917, 6, false), - Location.create(2730,3791) to Pit(917, 9, true), - Location.create(2737,3784) to Pit(917, 12, true), - Location.create(2730,3780) to Pit(917, 15, false), + Location.create(2700,3795) to Pit(2958, true), + Location.create(2700,3785) to Pit(2959, false), + Location.create(2706,3789) to Pit(2960, false), + Location.create(2730,3791) to Pit(2961, true), + Location.create(2737,3784) to Pit(2962, true), + Location.create(2730,3780) to Pit(2963, false), // Graahk pits - Location.create(2766,3010) to Pit(918, 3, false), - Location.create(2762,3005) to Pit(918, 6, false), - Location.create(2771,3004) to Pit(918, 9, true), - Location.create(2777,3001) to Pit(918, 12, false), - Location.create(2784,3001) to Pit(918, 15, true), + Location.create(2766,3010) to Pit(2969, false), + Location.create(2762,3005) to Pit(2970, false), + Location.create(2771,3004) to Pit(2971, true), + Location.create(2777,3001) to Pit(2972, false), + Location.create(2784,3001) to Pit(2973, true), ) /*val pitJumpSpots = hashMapOf( Location.create(2766,3010) to hashMapOf( @@ -298,7 +298,7 @@ class PitfallListeners : InteractionListener { fun setPitState(player: Player, loc: Location, state: Int) { val pit = pitVarps[loc]!! - player.varpManager.get(pit.varpId).setVarbit(pit.varpOffset, state).send(player) + setVarbit(player, pit.varbitId, state) } } diff --git a/Server/src/main/content/global/skill/hunter/tracking/CommonKebbitEast.kt b/Server/src/main/content/global/skill/hunter/tracking/CommonKebbitEast.kt index 68f414773..a78e64fe7 100644 --- a/Server/src/main/content/global/skill/hunter/tracking/CommonKebbitEast.kt +++ b/Server/src/main/content/global/skill/hunter/tracking/CommonKebbitEast.kt @@ -14,22 +14,22 @@ class CommonKebbitEast : HunterTracking() { init { initialMap = hashMapOf( 19439 to arrayListOf( - TrailDefinition(0,TrailType.LINKING, false,Location.create(2354, 3595, 0),Location.create(2360, 3602, 0)), - TrailDefinition(3,TrailType.LINKING,false,Location.create(2354, 3595, 0),Location.create(2355, 3601, 0)), - TrailDefinition(6,TrailType.LINKING,false,Location.create(2354, 3594, 0),Location.create(2349, 3604, 0)) + TrailDefinition(2974,TrailType.LINKING, false,Location.create(2354, 3595, 0),Location.create(2360, 3602, 0)), + TrailDefinition(2975,TrailType.LINKING,false,Location.create(2354, 3595, 0),Location.create(2355, 3601, 0)), + TrailDefinition(2976,TrailType.LINKING,false,Location.create(2354, 3594, 0),Location.create(2349, 3604, 0)) ), 19440 to arrayListOf( - TrailDefinition(18,TrailType.LINKING,true,Location.create(2361, 3611, 0),Location.create(2360, 3602, 0)), - TrailDefinition(21,TrailType.LINKING,true,Location.create(2360, 3612, 0),Location.create(2357, 3607, 0)) + TrailDefinition(2980,TrailType.LINKING,true,Location.create(2361, 3611, 0),Location.create(2360, 3602, 0)), + TrailDefinition(2981,TrailType.LINKING,true,Location.create(2360, 3612, 0),Location.create(2357, 3607, 0)) ) ) linkingTrails = arrayListOf( - TrailDefinition(24,TrailType.LINKING,false,Location.create(2357, 3607, 0),Location.create(2354, 3609, 0),Location.create(2355, 3608, 0)), - TrailDefinition(27,TrailType.LINKING,false,Location.create(2354, 3609, 0),Location.create(2349, 3604, 0),Location.create(2351, 3608, 0)), - TrailDefinition(9,TrailType.LINKING,false ,Location.create(2360, 3602, 0),Location.create(2355, 3601, 0),Location.create(2358, 3599, 0)), - TrailDefinition(12,TrailType.LINKING,false,Location.create(2355, 3601, 0),Location.create(2349, 3604, 0),Location.create(2352, 3603, 0)), - TrailDefinition(15,TrailType.LINKING,false,Location.create(2360, 3602, 0),Location.create(2357, 3607, 0),Location.create(2358, 3603, 0)) + TrailDefinition(2982,TrailType.LINKING,false,Location.create(2357, 3607, 0),Location.create(2354, 3609, 0),Location.create(2355, 3608, 0)), + TrailDefinition(2983,TrailType.LINKING,false,Location.create(2354, 3609, 0),Location.create(2349, 3604, 0),Location.create(2351, 3608, 0)), + TrailDefinition(2977,TrailType.LINKING,false ,Location.create(2360, 3602, 0),Location.create(2355, 3601, 0),Location.create(2358, 3599, 0)), + TrailDefinition(2978,TrailType.LINKING,false,Location.create(2355, 3601, 0),Location.create(2349, 3604, 0),Location.create(2352, 3603, 0)), + TrailDefinition(2979,TrailType.LINKING,false,Location.create(2360, 3602, 0),Location.create(2357, 3607, 0),Location.create(2358, 3603, 0)) ) experience = 36.0 varp = 919 @@ -71,4 +71,4 @@ class CommonKebbitEast : HunterTracking() { return this } -} \ No newline at end of file +} diff --git a/Server/src/main/content/global/skill/hunter/tracking/HunterTracking.kt b/Server/src/main/content/global/skill/hunter/tracking/HunterTracking.kt index e5b448f8b..c5918aca4 100644 --- a/Server/src/main/content/global/skill/hunter/tracking/HunterTracking.kt +++ b/Server/src/main/content/global/skill/hunter/tracking/HunterTracking.kt @@ -1,6 +1,6 @@ package content.global.skill.hunter.tracking -import core.api.log +import core.api.* import core.game.interaction.OptionHandler import core.game.node.Node import core.game.node.scenery.Scenery @@ -70,7 +70,7 @@ abstract class HunterTracking : OptionHandler(){ nextTrail ?: continue var offsetUsed = false for(i in trail){ - if(i.offset == nextTrail.offset){ offsetUsed = true; break } + if(i.varbit == nextTrail.varbit){ offsetUsed = true; break } } if(offsetUsed) continue if(nextTrail.type == TrailType.TUNNEL){ @@ -94,7 +94,7 @@ abstract class HunterTracking : OptionHandler(){ val possibleTrails = ArrayList() for(trail in linkingTrails){ val invTrail = getTrailInverse(trail,false) - if(invTrail.type == TrailType.TUNNEL && previousTrail.endLocation.withinDistance(invTrail.startLocation,5) && !previousTrail.endLocation.equals(invTrail.startLocation) && previousTrail.offset != trail.offset){ + if(invTrail.type == TrailType.TUNNEL && previousTrail.endLocation.withinDistance(invTrail.startLocation,5) && !previousTrail.endLocation.equals(invTrail.startLocation) && previousTrail.varbit != trail.varbit){ possibleTrails.add(trail) } } @@ -102,7 +102,7 @@ abstract class HunterTracking : OptionHandler(){ } val possibleTrails = ArrayList() for(trail in linkingTrails){ - if(trail.startLocation.equals(previousTrail.endLocation) && previousTrail.offset != trail.offset){ + if(trail.startLocation.equals(previousTrail.endLocation) && previousTrail.varbit != trail.varbit){ possibleTrails.add(trail) } } @@ -116,8 +116,8 @@ abstract class HunterTracking : OptionHandler(){ */ fun getTrailInverse(trail: TrailDefinition, swapLocations: Boolean): TrailDefinition{ if(swapLocations) - return TrailDefinition(trail.offset,if(tunnelEntrances.contains(trail.startLocation)) TrailType.TUNNEL else TrailType.LINKING,!trail.inverted,trail.endLocation,trail.startLocation, trail.triggerObjectLocation) - return TrailDefinition(trail.offset, if(tunnelEntrances.contains(trail.startLocation)) TrailType.TUNNEL else TrailType.LINKING, !trail.inverted, trail.startLocation, trail.endLocation) + return TrailDefinition(trail.varbit,if(tunnelEntrances.contains(trail.startLocation)) TrailType.TUNNEL else TrailType.LINKING,!trail.inverted,trail.endLocation,trail.startLocation, trail.triggerObjectLocation) + return TrailDefinition(trail.varbit, if(tunnelEntrances.contains(trail.startLocation)) TrailType.TUNNEL else TrailType.LINKING, !trail.inverted, trail.startLocation, trail.endLocation) } /** @@ -145,8 +145,7 @@ abstract class HunterTracking : OptionHandler(){ fun clearTrail(player: Player){ player.removeAttribute(attribute) player.removeAttribute(indexAttribute) - player.varpManager.get(varp).clear() - player.varpManager.get(varp).send(player) + setVarp(player, varp, 0) } /** @@ -191,10 +190,9 @@ abstract class HunterTracking : OptionHandler(){ val trailIndex = player.getAttribute(indexAttribute,0) for(index in 0..trailIndex){ val trl = trail[index] - player.varpManager.get(varp).setVarbit(trl.offset + 2,1) - player.varpManager.get(varp).setVarbit(trl.offset,if(trl.inverted) 1 else 0) + var current = getVarp(player, varp) + setVarbit(player, trl.varbit, (if (trl.inverted) 1 else 0) or (1 shl 2)) } - player.varpManager.get(varp).send(player) } /** @@ -217,7 +215,7 @@ abstract class HunterTracking : OptionHandler(){ trail.get(currentIndex) } } else { - TrailDefinition(0,TrailType.LINKING,false,Location(0,0,0),Location(0,0,0),Location(0,0,0)) + return false } when(option){ @@ -264,4 +262,4 @@ abstract class HunterTracking : OptionHandler(){ fun hasNooseWand(player: Player) : Boolean{ return player.equipment.contains(Items.NOOSE_WAND_10150,1) || player.inventory.contains(Items.NOOSE_WAND_10150,1) } -} \ No newline at end of file +} diff --git a/Server/src/main/content/global/skill/hunter/tracking/PolarKebbitHunting.kt b/Server/src/main/content/global/skill/hunter/tracking/PolarKebbitHunting.kt index b933659b7..92e874416 100644 --- a/Server/src/main/content/global/skill/hunter/tracking/PolarKebbitHunting.kt +++ b/Server/src/main/content/global/skill/hunter/tracking/PolarKebbitHunting.kt @@ -27,20 +27,20 @@ class PolarKebbitHunting : HunterTracking() { ) initialMap = hashMapOf( 19640 to arrayListOf( - TrailDefinition(24,TrailType.TUNNEL,false,Location.create(2712, 3831, 1),Location.create(2718, 3832, 1)), - TrailDefinition(21,TrailType.LINKING,true,Location.create(2712, 3831, 1),Location.create(2716, 3827, 1),Location.create(2713,3827,1)), - TrailDefinition(12,TrailType.LINKING,false,Location.create(2712, 3831, 1),Location.create(2708, 3819, 1),Location.create(2708,3825,1)) + TrailDefinition(3061,TrailType.TUNNEL,false,Location.create(2712, 3831, 1),Location.create(2718, 3832, 1)), + TrailDefinition(3060,TrailType.LINKING,true,Location.create(2712, 3831, 1),Location.create(2716, 3827, 1),Location.create(2713,3827,1)), + TrailDefinition(3057,TrailType.LINKING,false,Location.create(2712, 3831, 1),Location.create(2708, 3819, 1),Location.create(2708,3825,1)) ), 19641 to arrayListOf( - TrailDefinition(0,TrailType.LINKING,true,Location.create(2718, 3820, 1),Location.create(2708, 3819, 1),Location.create(2712,3815,1)), - TrailDefinition(6,TrailType.TUNNEL,false, Location.create(2718, 3820, 1),Location.create(2715, 3820, 1)), - TrailDefinition(9,TrailType.TUNNEL,false,Location.create(2718, 3820, 1),Location.create(2721, 3827, 1)) + TrailDefinition(3053,TrailType.LINKING,true,Location.create(2718, 3820, 1),Location.create(2708, 3819, 1),Location.create(2712,3815,1)), + TrailDefinition(3055,TrailType.TUNNEL,false, Location.create(2718, 3820, 1),Location.create(2715, 3820, 1)), + TrailDefinition(3056,TrailType.TUNNEL,false,Location.create(2718, 3820, 1),Location.create(2721, 3827, 1)) ) ) linkingTrails = arrayListOf( - TrailDefinition(15,TrailType.LINKING,true,Location.create(2714,3821,1),Location.create(2716, 3827, 1)), - TrailDefinition(18,TrailType.TUNNEL,true,Location.create(2716, 3827, 1),Location.create(2718,3829,1)), - TrailDefinition(3,TrailType.TUNNEL,false,Location.create(2708, 3819, 1),Location.create(2711, 3819, 1)) + TrailDefinition(3058,TrailType.LINKING,true,Location.create(2714,3821,1),Location.create(2716, 3827, 1)), + TrailDefinition(3059,TrailType.TUNNEL,true,Location.create(2716, 3827, 1),Location.create(2718,3829,1)), + TrailDefinition(3054,TrailType.TUNNEL,false,Location.create(2708, 3819, 1),Location.create(2711, 3819, 1)) ) experience = 30.0 varp = 926 @@ -65,4 +65,4 @@ class PolarKebbitHunting : HunterTracking() { SceneryDefinition.forId(19435).handlers["option:attack"] = this return this } -} \ No newline at end of file +} diff --git a/Server/src/main/content/global/skill/hunter/tracking/TrailDefinition.kt b/Server/src/main/content/global/skill/hunter/tracking/TrailDefinition.kt index 70a223276..a3af8d305 100644 --- a/Server/src/main/content/global/skill/hunter/tracking/TrailDefinition.kt +++ b/Server/src/main/content/global/skill/hunter/tracking/TrailDefinition.kt @@ -2,13 +2,13 @@ package content.global.skill.hunter.tracking import core.game.world.map.Location -class TrailDefinition(val offset: Int, val type: TrailType, var inverted: Boolean, val startLocation: Location, val endLocation: Location, val triggerObjectLocation: Location = endLocation){ +class TrailDefinition(val varbit: Int, val type: TrailType, var inverted: Boolean, val startLocation: Location, val endLocation: Location, val triggerObjectLocation: Location = endLocation){ override fun toString(): String { - return "$startLocation $endLocation [offset: $offset] [${type.name}] [inverted: $inverted]" + return "$startLocation $endLocation [varbit: $varbit] [${type.name}] [inverted: $inverted]" } } enum class TrailType{ LINKING, INITIAL, TUNNEL -} \ No newline at end of file +} diff --git a/Server/src/main/content/global/skill/runecrafting/TiaraPlugin.java b/Server/src/main/content/global/skill/runecrafting/TiaraPlugin.java index adbdd260c..b52a7c1e7 100644 --- a/Server/src/main/content/global/skill/runecrafting/TiaraPlugin.java +++ b/Server/src/main/content/global/skill/runecrafting/TiaraPlugin.java @@ -1,5 +1,7 @@ package content.global.skill.runecrafting; +import static core.api.ContentAPIKt.*; + import core.cache.def.impl.VarbitDefinition; import core.cache.def.impl.ItemDefinition; import core.cache.def.impl.SceneryDefinition; @@ -38,27 +40,27 @@ public final class TiaraPlugin implements Plugin { switch (identifier) { case "equip": if (item.getName().contains("cape")) { - player.getConfigManager().set(CONFIG, 6143); + setVarp(player, CONFIG, 6143); break; } MysteriousRuin ruin = MysteriousRuin.forTalisman(Tiara.forItem(item).getTalisman()); - player.getConfigManager().set(CONFIG, 1 << VarbitDefinition.forObjectID(SceneryDefinition.forId(ruin.getObject()[0]).getVarbitID()).getStartBit(), true); + setVarbit(player, SceneryDefinition.forId(ruin.getObject()[0]).getVarbitID(), 1, true); break; case "unequip": final Item other = args.length == 2 ? null : (Item) args[2]; if (other != null) { if (other.getName().toLowerCase().contains("cape")) { - player.getConfigManager().set(CONFIG, 6143); + setVarp(player, CONFIG, 6143); break; } Tiara tiara = Tiara.forItem(other); if (tiara != null) { MysteriousRuin r = MysteriousRuin.forTalisman(tiara.getTalisman()); - player.getConfigManager().set(CONFIG, 1 << VarbitDefinition.forObjectID(SceneryDefinition.forId(r.getObject()[0]).getVarbitID()).getStartBit(), true); + setVarbit(player, SceneryDefinition.forId(r.getObject()[0]).getVarbitID(), 1, true); break; } } - player.getConfigManager().set(CONFIG, 0); + setVarp(player, CONFIG, 0); break; } return true; diff --git a/Server/src/main/content/global/skill/runecrafting/abyss/AbyssPlugin.kt b/Server/src/main/content/global/skill/runecrafting/abyss/AbyssPlugin.kt index 567344657..d50d6c0a9 100644 --- a/Server/src/main/content/global/skill/runecrafting/abyss/AbyssPlugin.kt +++ b/Server/src/main/content/global/skill/runecrafting/abyss/AbyssPlugin.kt @@ -244,7 +244,7 @@ class AbyssPlugin : InteractionListener { * Used to make sure the player lands by the blocked obstacle. */ fun rotateObstacles(player: Player, abyssLoc: AbyssLoc) { - setVarbit(player,VARP_SCENERY_ABYSS,ABYSS_OBSTACLES,abyssLoc.getSegment(),true) + setVarbit(player, 625, abyssLoc.getSegment(), true) } /** @@ -266,7 +266,7 @@ class AbyssPlugin : InteractionListener { 3 -> return if (RandomFunction.random(100) < getStatLevel(player,skill) ) { sendMessage(player, colorize("%G${messages[1]}")) - if(varbitVal != null) { setVarbit(player,VARP_SCENERY_ABYSS,ABYSS_OBSTACLES,varbitVal) } + if(varbitVal != null) { setVarbit(player, 625, varbitVal) } false } else { sendMessage(player, colorize("%R${messages[2]}")) @@ -274,7 +274,7 @@ class AbyssPlugin : InteractionListener { true } 5 -> { - if(varbitVal != null) { setVarbit(player,VARP_SCENERY_ABYSS,ABYSS_OBSTACLES,varbitVal or 1) } + if(varbitVal != null) { setVarbit(player, 625, varbitVal or 1) } } 7 -> { player.unlock() diff --git a/Server/src/main/content/global/skill/runecrafting/abyss/ZamorakMageDialogue.java b/Server/src/main/content/global/skill/runecrafting/abyss/ZamorakMageDialogue.java index 7013e1ece..1b46aa4e0 100644 --- a/Server/src/main/content/global/skill/runecrafting/abyss/ZamorakMageDialogue.java +++ b/Server/src/main/content/global/skill/runecrafting/abyss/ZamorakMageDialogue.java @@ -6,6 +6,8 @@ import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.Item; +import static core.api.ContentAPIKt.*; + /** * Handles the zamorak mages dialogue. @@ -460,7 +462,7 @@ public final class ZamorakMageDialogue extends DialoguePlugin { * @param stage the stage. */ public void setStage(int stage) { - player.getConfigManager().set(492, stage, true); + setVarp(player, 492, stage, true); } /** @@ -468,6 +470,6 @@ public final class ZamorakMageDialogue extends DialoguePlugin { * @return the stage. */ public int getStage() { - return player.getConfigManager().get(492); + return getVarp(player, 492); } } diff --git a/Server/src/main/content/global/skill/slayer/SlayerManager.kt b/Server/src/main/content/global/skill/slayer/SlayerManager.kt index 64f20a7e5..5542a7777 100644 --- a/Server/src/main/content/global/skill/slayer/SlayerManager.kt +++ b/Server/src/main/content/global/skill/slayer/SlayerManager.kt @@ -209,7 +209,7 @@ class SlayerManager(val player: Player? = null) : LoginListener, PersistPlayer, fun decrementAmount(amount: Int) { flags.decrementTaskAmount(amount) - player!!.varpManager.get(2502).setVarbit(0, flags.taskFlags shr 4).send(player) + setVarp(player!!, 2502, flags.taskFlags shr 4) } /** diff --git a/Server/src/main/content/global/skill/slayer/SlayerUtils.kt b/Server/src/main/content/global/skill/slayer/SlayerUtils.kt index 789486a8e..34fc944c1 100644 --- a/Server/src/main/content/global/skill/slayer/SlayerUtils.kt +++ b/Server/src/main/content/global/skill/slayer/SlayerUtils.kt @@ -10,6 +10,7 @@ import content.global.skill.slayer.Tasks import core.tools.RandomFunction import org.rs09.consts.Items import java.util.ArrayList +import core.api.* object SlayerUtils { fun generate(player: Player, master: Master): Tasks? @@ -44,7 +45,7 @@ object SlayerUtils { } else if (master == Master.VANNAKA) { player.achievementDiaryManager.finishTask(player, DiaryType.VARROCK, 1, 14) } - player.varpManager.get(2502).setVarbit(0, SlayerManager.getInstance(player).flags.taskFlags shr 4).send(player) + setVarp(player, 2502, SlayerManager.getInstance(player).flags.taskFlags shr 4) } @JvmStatic diff --git a/Server/src/main/content/global/skill/summoning/SummoningTrainingRoom.java b/Server/src/main/content/global/skill/summoning/SummoningTrainingRoom.java index d061fbbac..68d038c0d 100644 --- a/Server/src/main/content/global/skill/summoning/SummoningTrainingRoom.java +++ b/Server/src/main/content/global/skill/summoning/SummoningTrainingRoom.java @@ -33,6 +33,8 @@ import core.net.packet.out.MinimapState; import core.plugin.Plugin; import core.plugin.ClassScanner; +import static core.api.ContentAPIKt.*; + /** * Handles the summoning training room. * @author Emperor @@ -83,7 +85,7 @@ public final class SummoningTrainingRoom extends OptionHandler { int questVal = quest.getStage(player) == 0 ? 0 : quest.getStage(player) > 0 && quest.getStage(player) < 100 ? 5 : 28893; switch (option) { case "close": - player.getConfigManager().set(1178, questVal == 28893 ? 32989 : (1 << 11) + questVal); + setVarp(player, 1178, questVal == 28893 ? 32989 : (1 << 11) + questVal); return true; case "open": if (quest.getStage(player) < 40) { @@ -92,13 +94,13 @@ public final class SummoningTrainingRoom extends OptionHandler { } else if (quest.getStage(player) == 40) { if (player.getAttribute("has-key", false) || player.getInventory().remove(TRAPDOOR_KEY)) { player.setAttribute("has-key", true); - player.getConfigManager().set(1178, (2 << 11) + questVal, true); + setVarp(player, 1178, (2 << 11) + questVal, true); } else { player.getPacketDispatch().sendMessage("The trapdoor is locked."); return true; } } - player.getConfigManager().set(1178, questVal == 28893 ? 28893 : (2 << 11) + questVal); + setVarp(player, 1178, questVal == 28893 ? 28893 : (2 << 11) + questVal); return true; case "climb-down": if (object.getId() == 28653) { diff --git a/Server/src/main/content/global/skill/summoning/familiar/Familiar.java b/Server/src/main/content/global/skill/summoning/familiar/Familiar.java index 63e12de2a..bdf989ef1 100644 --- a/Server/src/main/content/global/skill/summoning/familiar/Familiar.java +++ b/Server/src/main/content/global/skill/summoning/familiar/Familiar.java @@ -34,7 +34,7 @@ import content.global.skill.summoning.SummoningPouch; import java.util.ArrayList; import java.util.List; -import static core.api.ContentAPIKt.log; +import static core.api.ContentAPIKt.*; /** * Represents a familiar. @@ -339,10 +339,8 @@ public abstract class Familiar extends NPC implements Plugin { private void sendTimeRemaining() { int minutes = ticks / 100; int centiminutes = ticks % 100; - owner.varpManager.get(1176) - .setVarbit(7, minutes) - .setVarbit(6, centiminutes > 49 ? 1 : 0) - .send(owner); + setVarbit(owner, 4534, minutes); + setVarbit(owner, 4290, centiminutes > 49 ? 1 : 0); } /** @@ -542,9 +540,9 @@ public abstract class Familiar extends NPC implements Plugin { * Sends the familiar packets. */ public void sendConfiguration() { - owner.getConfigManager().set(448, getPouchId()); - owner.getConfigManager().set(1174, getOriginalId()); - owner.getConfigManager().set(1175, specialCost << 23); + setVarp(owner, 448, getPouchId()); + setVarp(owner, 1174, getOriginalId()); + setVarp(owner, 1175, specialCost << 23); sendTimeRemaining(); updateSpecialPoints(0); } @@ -605,10 +603,10 @@ public abstract class Familiar extends NPC implements Plugin { getPulseManager().clear(); owner.getInterfaceManager().removeTabs(7); owner.getFamiliarManager().setFamiliar(null); - owner.getConfigManager().set(448, -1); - owner.getConfigManager().set(1176, 0); - owner.getConfigManager().set(1175, 182986); - owner.getConfigManager().set(1174, -1); + setVarp(owner, 448, -1); + setVarp(owner, 1176, 0); + setVarp(owner, 1175, 182986); + setVarp(owner, 1174, -1); if (owner.getSkullManager().isWilderness()) { owner.getAppearance().sync(); } @@ -624,7 +622,7 @@ public abstract class Familiar extends NPC implements Plugin { if (specialPoints > 60) { specialPoints = 60; } - owner.getConfigManager().set(1177, specialPoints); + setVarp(owner, 1177, specialPoints); } @Override diff --git a/Server/src/main/content/global/skill/summoning/familiar/FamiliarManager.java b/Server/src/main/content/global/skill/summoning/familiar/FamiliarManager.java index e1538f0dd..56903511b 100644 --- a/Server/src/main/content/global/skill/summoning/familiar/FamiliarManager.java +++ b/Server/src/main/content/global/skill/summoning/familiar/FamiliarManager.java @@ -22,6 +22,8 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import static core.api.ContentAPIKt.*; + /** * Handles a player's familiar. * @author Emperor @@ -412,9 +414,9 @@ public final class FamiliarManager { * @param value the value. */ public void setConfig(int value) { - int current = player.getConfigManager().get(1160); + int current = getVarp(player, 1160); int newVal = current + value; - player.getConfigManager().set(1160, newVal); + setVarp(player, 1160, newVal); } /** diff --git a/Server/src/main/content/global/skill/summoning/pet/IncubatorState.kt b/Server/src/main/content/global/skill/summoning/pet/IncubatorState.kt index 611d80ca9..72ff9d086 100644 --- a/Server/src/main/content/global/skill/summoning/pet/IncubatorState.kt +++ b/Server/src/main/content/global/skill/summoning/pet/IncubatorState.kt @@ -5,6 +5,7 @@ import core.game.node.entity.state.PlayerState import core.game.node.entity.state.State import core.game.system.task.Pulse import org.json.simple.JSONObject +import core.api.* @PlayerState("incubator") class IncubatorState(player: Player? = null) : State(player) { @@ -35,7 +36,7 @@ class IncubatorState(player: Player? = null) : State(player) { override fun createPulse() { player ?: return egg ?: return - player.varpManager.get(1160).setVarbit(4,1).send(player) + setVarbit(player, 4277, 1) pulse = object : Pulse(){ override fun pulse(): Boolean { if(ticksLeft-- <= 0){ @@ -49,4 +50,4 @@ class IncubatorState(player: Player? = null) : State(player) { } } -} \ No newline at end of file +} diff --git a/Server/src/main/content/global/skill/summoning/pet/Pet.java b/Server/src/main/content/global/skill/summoning/pet/Pet.java index 4533ec24d..915c37d0f 100644 --- a/Server/src/main/content/global/skill/summoning/pet/Pet.java +++ b/Server/src/main/content/global/skill/summoning/pet/Pet.java @@ -4,6 +4,8 @@ import content.global.skill.summoning.familiar.Familiar; import content.global.skill.summoning.familiar.FamiliarSpecial; import core.game.node.entity.player.Player; +import static core.api.ContentAPIKt.*; + /** * Represents a pet. * @author Emperor @@ -48,9 +50,9 @@ public final class Pet extends Familiar { @Override public void sendConfiguration() { - owner.getConfigManager().set(1175, ((int) details.getGrowth() << 1) | ((int) details.getHunger() << 9)); - owner.getConfigManager().set(1174, getId()); - owner.getConfigManager().set(448, itemId); + setVarp(owner, 1175, ((int) details.getGrowth() << 1) | ((int) details.getHunger() << 9)); + setVarp(owner, 1174, getId()); + setVarp(owner, 448, itemId); } @Override @@ -69,7 +71,7 @@ public final class Pet extends Familiar { if (hunger >= 100.0 && growthRate != 0 && pet.getFood().length != 0) { owner.getFamiliarManager().dismiss(false); owner.getFamiliarManager().setFamiliar(null); - owner.getConfigManager().set(1175, 0); + setVarp(owner, 1175, 0); owner.sendMessage("Your pet has run away."); return; } @@ -87,7 +89,7 @@ public final class Pet extends Familiar { } else if (!getPulseManager().hasPulseRunning()) { startFollowing(); } - owner.getConfigManager().set(1175, ((int) details.getGrowth() << 1) | ((int) details.getHunger() << 9)); + setVarp(owner, 1175, ((int) details.getGrowth() << 1) | ((int) details.getHunger() << 9)); } /** diff --git a/Server/src/main/content/global/travel/EssenceTeleport.kt b/Server/src/main/content/global/travel/EssenceTeleport.kt index bdbecfcb1..353c89bc9 100644 --- a/Server/src/main/content/global/travel/EssenceTeleport.kt +++ b/Server/src/main/content/global/travel/EssenceTeleport.kt @@ -2,6 +2,7 @@ package content.global.travel import content.global.skill.magic.TeleportMethod import core.game.event.TeleportEvent +import core.api.* import core.api.lock import core.api.teleport import core.api.unlock @@ -142,7 +143,7 @@ object EssenceTeleport { * @return the stage. */ fun getStage(player: Player): Int { - return player.varpManager.get(492).getValue() + return getVarp(player, 492) } /** diff --git a/Server/src/main/content/global/travel/canoe/CanoeInterfaceListeners.kt b/Server/src/main/content/global/travel/canoe/CanoeInterfaceListeners.kt index df896f2b9..e2f1ece29 100644 --- a/Server/src/main/content/global/travel/canoe/CanoeInterfaceListeners.kt +++ b/Server/src/main/content/global/travel/canoe/CanoeInterfaceListeners.kt @@ -49,7 +49,7 @@ class CanoeInterfaceListeners : InterfaceListener { player.pulseManager.run(object : Pulse(3) { override fun pulse(): Boolean { if (RandomFunction.random(if (canoe == Canoe.WAKA) 8 else 6) == 1) { - player.varpManager.setVarbit(varbit, CanoeUtils.getCraftValue(canoe, false)) + setVarbit(player,varbit, CanoeUtils.getCraftValue(canoe, false)) player.skills.addExperience(Skills.WOODCUTTING, canoe.experience) player.unlock() return true @@ -128,7 +128,7 @@ class CanoeInterfaceListeners : InterfaceListener { if(destIndex == 4){ player.sendMessage("There are no trees nearby to make a new canoe. Guess you're walking.") } - player.varpManager.setVarbit(varbit,0) + setVarbit(player,varbit,0) return true } } @@ -138,4 +138,4 @@ class CanoeInterfaceListeners : InterfaceListener { return@on true } } -} \ No newline at end of file +} diff --git a/Server/src/main/content/global/travel/canoe/CanoeStationListener.kt b/Server/src/main/content/global/travel/canoe/CanoeStationListener.kt index ee2cf8cd9..2afd66260 100644 --- a/Server/src/main/content/global/travel/canoe/CanoeStationListener.kt +++ b/Server/src/main/content/global/travel/canoe/CanoeStationListener.kt @@ -9,6 +9,8 @@ import org.rs09.consts.Components import core.game.interaction.InteractionListener import core.game.interaction.IntType +import core.api.* + class CanoeStationListener : InteractionListener { private val STATION_IDs = intArrayOf(12140, 12141, 12142, 12143, 12144, 12145, 12146, 12147, 12148, 12151, 12152, 12153, 12154, 12155, 12156, 12157, 12158, 12149, 12150) @@ -33,7 +35,7 @@ class CanoeStationListener : InteractionListener { val axe: SkillingTool? = SkillingTool.getHatchet(player) val varbit = node.asScenery().definition.configFile if(varbit.getValue(player) != 0){ - player.varpManager.setVarbit(varbit,0) + setVarbit(player,varbit,0) } if (axe == null) { @@ -45,14 +47,14 @@ class CanoeStationListener : InteractionListener { return@on true } player.lock() - player.varpManager.get(varbit.varpId).clearBitRange(0,31) + setVarp(player, varbit.varpId, 0) player.faceLocation(CanoeUtils.getFaceLocation(player.location)) player.animate(axe.animation) - player.varpManager.setVarbit(varbit,STAGE_TREE_NONINTERACTABLE) + setVarbit(player,varbit,STAGE_TREE_NONINTERACTABLE) player.pulseManager.run(object : Pulse(4){ override fun pulse(): Boolean { player.animator.stop() - player.varpManager.setVarbit(varbit,STAGE_LOG_CHOPPED) + setVarbit(player,varbit,STAGE_LOG_CHOPPED) player.packetDispatch.sendSceneryAnimation(node.asScenery().getChild(player), FALL, false) player.unlock() return true @@ -64,7 +66,7 @@ class CanoeStationListener : InteractionListener { on(STATION_IDs, IntType.SCENERY, "shape-canoe"){ player, node -> val varbit = node.asScenery().definition.configFile if(varbit.getValue(player) != STAGE_LOG_CHOPPED){ - player.varpManager.setVarbit(varbit,0) + setVarbit(player,varbit,0) return@on true } player.faceLocation(CanoeUtils.getFaceLocation(player.location)) @@ -81,7 +83,7 @@ class CanoeStationListener : InteractionListener { player.faceLocation(CanoeUtils.getFaceLocation(player.location)) player.pulseManager.run(object : Pulse(){ override fun pulse(): Boolean { - player.varpManager.setVarbit(varbit, CanoeUtils.getCraftValue(canoe, true)) + setVarbit(player,varbit, CanoeUtils.getCraftValue(canoe, true)) player.packetDispatch.sendSceneryAnimation(node.asScenery(), FLOAT, false) player.unlock() return true @@ -95,4 +97,4 @@ class CanoeStationListener : InteractionListener { return@on true } } -} \ No newline at end of file +} diff --git a/Server/src/main/content/global/travel/glider/GliderPulse.java b/Server/src/main/content/global/travel/glider/GliderPulse.java index 52a5c44e7..c06658185 100644 --- a/Server/src/main/content/global/travel/glider/GliderPulse.java +++ b/Server/src/main/content/global/travel/glider/GliderPulse.java @@ -11,6 +11,9 @@ import core.net.packet.context.MinimapStateContext; import core.net.packet.out.CameraViewPacket; import core.net.packet.out.MinimapState; +import static core.api.ContentAPIKt.*; + + /** * Represents the pulse used for a glider. * @@ -49,7 +52,7 @@ public final class GliderPulse extends Pulse { public boolean pulse() { final boolean crash = glider == Gliders.LEMANTO_ADRA; if (count == 1) { - player.varpManager.get(153).setVarbit(0,glider.getConfig()).send(player); + setVarp(player, 153, glider.getConfig()); PacketRepository.send(MinimapState.class, new MinimapStateContext(player, 2)); } else if (count == 2 && crash) { PacketRepository.send(CameraViewPacket.class, new CameraContext(player, CameraType.SHAKE, 4, 4, 1200, 4, 4)); @@ -68,7 +71,7 @@ public final class GliderPulse extends Pulse { player.getInterfaceManager().closeOverlay(); player.getInterfaceManager().close(); PacketRepository.send(MinimapState.class, new MinimapStateContext(player, 0)); - player.varpManager.get(153).setVarbit(0,0).send(player); + setVarp(player, 153, 0); // Use the gnome glider to travel to Karamja if (!crash && glider == Gliders.GANDIUS) { player.getAchievementDiaryManager().finishTask(player, DiaryType.KARAMJA, 1, 11); diff --git a/Server/src/main/content/global/travel/glider/Gliders.java b/Server/src/main/content/global/travel/glider/Gliders.java index 7d3f2464f..99f9f780c 100644 --- a/Server/src/main/content/global/travel/glider/Gliders.java +++ b/Server/src/main/content/global/travel/glider/Gliders.java @@ -4,6 +4,8 @@ import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.world.map.Location; +import static core.api.ContentAPIKt.setVarp; + /** * Represents an enum of glider locations. * @author 'Vexia @@ -60,7 +62,7 @@ public enum Gliders { if (g == null) { return; } - player.getConfigManager().set(153, g.getConfig()); + setVarp(player, 153, g.getConfig()); } /** diff --git a/Server/src/main/content/global/travel/ship/ShipTravelPulse.java b/Server/src/main/content/global/travel/ship/ShipTravelPulse.java index 95f5bc151..5f5808737 100644 --- a/Server/src/main/content/global/travel/ship/ShipTravelPulse.java +++ b/Server/src/main/content/global/travel/ship/ShipTravelPulse.java @@ -8,6 +8,8 @@ import core.net.packet.PacketRepository; import core.net.packet.context.MinimapStateContext; import core.net.packet.out.MinimapState; +import static core.api.ContentAPIKt.setVarp; + /** * Represents a pulse used to travel a player to a location. * @author Vexia @@ -65,7 +67,7 @@ public final class ShipTravelPulse extends Pulse { */ private void arrive() { player.unlock(); - player.getConfigManager().set(75, -1); + setVarp(player, 75, 0); player.getInterfaceManager().close(); PacketRepository.send(MinimapState.class, new MinimapStateContext(player, 0)); if (!ship.getName().equals("Crandor")) { @@ -96,6 +98,6 @@ public final class ShipTravelPulse extends Pulse { player.lock(ship.getDelay() + 1); player.getInterfaceManager().open(new Component(299)); PacketRepository.send(MinimapState.class, new MinimapStateContext(player, 2)); - player.getConfigManager().set(75, ship.getConfig()); + setVarp(player, 75, ship.getConfig()); } } diff --git a/Server/src/main/content/minigame/allfiredup/AFUBeacon.kt b/Server/src/main/content/minigame/allfiredup/AFUBeacon.kt index 9115b417c..b830a5ea1 100644 --- a/Server/src/main/content/minigame/allfiredup/AFUBeacon.kt +++ b/Server/src/main/content/minigame/allfiredup/AFUBeacon.kt @@ -1,6 +1,6 @@ package content.minigame.allfiredup -import core.api.log +import core.api.* import core.game.node.entity.player.Player import core.tools.SystemLogger import core.game.world.map.Location @@ -10,21 +10,21 @@ import core.tools.Log * Various data for beacons, such as varp and offset, required FM level, etc * @author Ceikry */ -enum class AFUBeacon(val title: String, val fmLevel: Int, val varpId: Int, val offset: Int, val location: Location, val experience: Double, val keeper: Int = 0) { - RIVER_SALVE("",43,1283,0,Location.create(3396, 3464, 0),216.2,8065), - RAG_AND_BONE("",43,1283,3,Location.create(3343, 3510, 0),235.8,8066), - JOLLY_BOAR("",48,1283,6,Location.create(3278, 3525, 0), 193.8,8067), - NORTH_VARROCK_CASTLE("",53,1283,9,Location.create(3236, 3527, 0),178.5,8068), - GRAND_EXCHANGE("",59,1283,12,Location.create(3170, 3536, 0),194.3,8069), - EDGEVILLE("",62,1283,15,Location.create(3087, 3516, 0),86.7,8070), - MONASTERY("",68,1283,18,Location.create(3034, 3518, 0),224.4,8071), - GOBLIN_VILLAGE("",72,1283,21,Location.create(2968, 3516, 0),194.8,8072), - BURTHORPE("",76,1283,24,Location.create(2940, 3565, 0),195.3,8073), - DEATH_PLATEAU("",79,1288,0,Location.create(2944, 3622, 0),249.9,8074), - TROLLHEIM("",83,1288,3,Location.create(2939, 3680, 0),201.0,8075), - GWD("",87,1288,6,Location.create(2937, 3773, 0),255.0,8076), - TEMPLE("",89,1288,9,Location.create(2946, 3836, 0),198.9), - PLATEAU("",92,1288,12,Location.create(2964, 3931, 0),147.9); +enum class AFUBeacon(val title: String, val fmLevel: Int, val varbit: Int, val location: Location, val experience: Double, val keeper: Int = 0) { + RIVER_SALVE("",43,5146,Location.create(3396, 3464, 0),216.2,8065), + RAG_AND_BONE("",43,5147,Location.create(3343, 3510, 0),235.8,8066), + JOLLY_BOAR("",48,5148,Location.create(3278, 3525, 0), 193.8,8067), + NORTH_VARROCK_CASTLE("",53,5149,Location.create(3236, 3527, 0),178.5,8068), + GRAND_EXCHANGE("",59,5150,Location.create(3170, 3536, 0),194.3,8069), + EDGEVILLE("",62,5151,Location.create(3087, 3516, 0),86.7,8070), + MONASTERY("",68,5152,Location.create(3034, 3518, 0),224.4,8071), + GOBLIN_VILLAGE("",72,5153,Location.create(2968, 3516, 0),194.8,8072), + BURTHORPE("",76,5154,Location.create(2940, 3565, 0),195.3,8073), + DEATH_PLATEAU("",79,5155,Location.create(2944, 3622, 0),249.9,8074), + TROLLHEIM("",83,5156,Location.create(2939, 3680, 0),201.0,8075), + GWD("",87,5157,Location.create(2937, 3773, 0),255.0,8076), + TEMPLE("",89,5158,Location.create(2946, 3836, 0),198.9), + PLATEAU("",92,5159,Location.create(2964, 3931, 0),147.9); companion object { fun forLocation(location: Location): content.minigame.allfiredup.AFUBeacon { @@ -36,33 +36,33 @@ enum class AFUBeacon(val title: String, val fmLevel: Int, val varpId: Int, val o fun resetAllBeacons(player: Player){ for(beacon in values()){ - player.varpManager.get(beacon.varpId).setVarbit(beacon.offset,0).send(player) + setVarbit(player, beacon.varbit, 0) } } } fun light(player: Player){ - player.varpManager.get(varpId).setVarbit(offset,2).send(player) + setVarbit(player, varbit, 2) } fun diminish(player: Player){ - player.varpManager.get(varpId).setVarbit(offset,3).send(player) + setVarbit(player, varbit, 3) } fun extinguish(player: Player){ - player.varpManager.get(varpId).setVarbit(offset,0).send(player) + setVarbit(player, varbit, 0) } fun lightGnomish(player: Player){ - player.varpManager.get(varpId).setVarbit(offset,4).send(player) + setVarbit(player, varbit, 4) } fun fillWithLogs(player: Player){ - player.varpManager.get(varpId).setVarbit(offset,1).send(player) + setVarbit(player, varbit, 1, true) } fun getState(player: Player): content.minigame.allfiredup.BeaconState { - return content.minigame.allfiredup.BeaconState.values()[player.varpManager.get(varpId).getVarbit(offset) ?: 0] + return BeaconState.values()[getVarbit(player, varbit)] } } @@ -72,4 +72,4 @@ enum class BeaconState{ LIT, DYING, WARNING -} \ No newline at end of file +} diff --git a/Server/src/main/content/minigame/allfiredup/AFUBeaconHandler.kt b/Server/src/main/content/minigame/allfiredup/AFUBeaconHandler.kt index 6ff32e821..4d889deb9 100644 --- a/Server/src/main/content/minigame/allfiredup/AFUBeaconHandler.kt +++ b/Server/src/main/content/minigame/allfiredup/AFUBeaconHandler.kt @@ -106,7 +106,6 @@ class AFUBeaconListeners : InteractionListener { if(questComplete){ session?.setLogs(beacon.ordinal,logs) } - player.varpManager.flagSave(beacon.varpId); } 2 -> player.unlock().also {player.animator.animate(Animation.RESET); return true } } @@ -215,4 +214,4 @@ class AFUBeaconListeners : InteractionListener { return inventory.containsItem(Item(Items.INFERNO_ADZE_13661)) || bank.containsItem(Item(Items.INFERNO_ADZE_13661)) || equipment.containsItem(Item(Items.INFERNO_ADZE_13661)) } -} \ No newline at end of file +} diff --git a/Server/src/main/content/minigame/allfiredup/AFURepairClimbHandler.kt b/Server/src/main/content/minigame/allfiredup/AFURepairClimbHandler.kt index 84d34c4eb..705352cba 100644 --- a/Server/src/main/content/minigame/allfiredup/AFURepairClimbHandler.kt +++ b/Server/src/main/content/minigame/allfiredup/AFURepairClimbHandler.kt @@ -11,6 +11,7 @@ import core.game.world.update.flag.context.Animation import org.rs09.consts.Items import core.game.interaction.InteractionListener import core.game.interaction.IntType +import core.api.* import java.util.* /** @@ -93,19 +94,18 @@ class AFURepairClimbHandler : InteractionListener { } } - player.varpManager.get(rco.varp).setVarbit(rco.offset,1).send(player) - player.varpManager.flagSave(rco.varp) + setVarbit(player, rco.varbit, 1, true) } private fun climb(player: Player, rco: RepairClimbObject, location: Location){ ForceMovement.run(player,location,rco.getOtherLocation(player),rco.getAnimation(player),rco.getAnimation(player),rco.getDirection(player),20).endAnimation = Animation(-1) } - private enum class RepairClimbObject(val varp: Int, val offset: Int, val destinationUp: Location?, val destinationDown: Location?, val levelRequirement: Pair?){ - DEATH_PLATEAU(1282,15,Location.create(2949, 3623, 0),Location.create(2954, 3623, 0), Pair(Skills.CONSTRUCTION,42)), - BURTHORPE(1282,14,Location.create(2941, 3563, 0),Location.create(2934, 3563, 0),Pair(Skills.SMITHING,56)), - GWD(1283,27,null,null,Pair(Skills.CRAFTING,60)), - TEMPLE(1287,29,Location.create(2949, 3835, 0),Location.create(2956, 3835, 0),Pair(Skills.SMITHING,64)); + private enum class RepairClimbObject(val varbit: Int, val destinationUp: Location?, val destinationDown: Location?, val levelRequirement: Pair?){ + DEATH_PLATEAU(5161,Location.create(2949, 3623, 0),Location.create(2954, 3623, 0), Pair(Skills.CONSTRUCTION,42)), + BURTHORPE(5160,Location.create(2941, 3563, 0),Location.create(2934, 3563, 0),Pair(Skills.SMITHING,56)), + GWD(5163,null,null,Pair(Skills.CRAFTING,60)), + TEMPLE(5164,Location.create(2949, 3835, 0),Location.create(2956, 3835, 0),Pair(Skills.SMITHING,64)); fun getOtherLocation(player: Player): Location?{ if(player.location == destinationDown) return destinationUp @@ -124,7 +124,7 @@ class AFURepairClimbHandler : InteractionListener { } fun isRepaired(player: Player): Boolean{ - return player.varpManager.get(varp).getVarbit(offset) == 1 + return getVarbit(player, varbit) == 1 } } @@ -138,4 +138,4 @@ class AFURepairClimbHandler : InteractionListener { } } -} \ No newline at end of file +} diff --git a/Server/src/main/content/minigame/barrows/BarrowsActivityPlugin.java b/Server/src/main/content/minigame/barrows/BarrowsActivityPlugin.java index 096fe10be..31c2477cb 100644 --- a/Server/src/main/content/minigame/barrows/BarrowsActivityPlugin.java +++ b/Server/src/main/content/minigame/barrows/BarrowsActivityPlugin.java @@ -33,7 +33,7 @@ import core.tools.RandomFunction; import core.game.world.GameWorld; import core.plugin.ClassScanner; -import static core.api.ContentAPIKt.getWorldTicks; +import static core.api.ContentAPIKt.*; /** * Handles the barrows activity plugin. @@ -137,8 +137,8 @@ public final class BarrowsActivityPlugin extends ActivityPlugin { } } Player player = (Player) e; - if ((player.getConfigManager().get(1270) == 1) != tunnel) { - player.getConfigManager().set(1270, tunnel ? 3 : 0, true);//@emp: proper value seems to be 3, val of 1 makes corridors black + if ((getVarp(player, 1270) == 1) != tunnel) { + setVarp(player, 1270, tunnel ? 3 : 0, true); } } } @@ -149,8 +149,8 @@ public final class BarrowsActivityPlugin extends ActivityPlugin { Player player = (Player) e; PacketRepository.send(MinimapState.class, new MinimapStateContext(player, 2)); player.getInterfaceManager().openOverlay(OVERLAY); - player.getConfigManager().set(0, 1); - if (player.getConfigManager().get(452) == 0) { + setVarp(player, 0, 1); + if (getVarp(player, 452) == 0) { shuffleCatacombs(player); } sendConfiguration(player); @@ -212,7 +212,7 @@ public final class BarrowsActivityPlugin extends ActivityPlugin { public static void shuffleCatacombs(Player player) { int value = TUNNEL_CONFIGS[RandomFunction.random(TUNNEL_CONFIGS.length)]; value |= 1 << (6 + RandomFunction.random(4)); - player.getConfigManager().set(452, value); + setVarp(player, 452, value); } @Override @@ -330,7 +330,7 @@ public final class BarrowsActivityPlugin extends ActivityPlugin { if (player.getAttribute("barrow:opened_chest", false)) { config |= 1 << 16; } - player.getConfigManager().set(453, config); + setVarp(player, 453, config); } @Override diff --git a/Server/src/main/content/minigame/barrows/TunnelEntranceDialogue.java b/Server/src/main/content/minigame/barrows/TunnelEntranceDialogue.java index 6c649e728..22331c47c 100644 --- a/Server/src/main/content/minigame/barrows/TunnelEntranceDialogue.java +++ b/Server/src/main/content/minigame/barrows/TunnelEntranceDialogue.java @@ -7,6 +7,8 @@ import core.game.world.map.Location; import core.plugin.PluginManifest; import core.plugin.PluginType; +import static core.api.ContentAPIKt.*; + /** * The tunnel entrance dialogue handling plugin. * @author Emperor @@ -57,7 +59,7 @@ public final class TunnelEntranceDialogue extends DialoguePlugin { case 1: int offsetX = 0; int offsetY = 0; - int configValue = player.getConfigManager().get(452); + int configValue = getVarp(player, 452); if ((configValue & (1 << 7)) != 0) { offsetX = 34; offsetY = 34; diff --git a/Server/src/main/content/minigame/blastfurnace/BlastFurnace.kt b/Server/src/main/content/minigame/blastfurnace/BlastFurnace.kt index 550f7b090..76985e767 100644 --- a/Server/src/main/content/minigame/blastfurnace/BlastFurnace.kt +++ b/Server/src/main/content/minigame/blastfurnace/BlastFurnace.kt @@ -145,7 +145,7 @@ object BlastFurnace { var oreAmount = player.blastOre.itemCount() var totalAmount = barsAmount + oreAmount if (barsHot) { - player.varpManager.get(543).setVarbit(8, 2).send(player) + setVarbit(player, 936, 2) }else if (makeBars && playerOre.isNotEmpty() && barsAmountFree > 0 && totalAmount < 56 && player.getAttribute("OreInPot",false) == true) { playerOre.forEach { oreID -> playerCoal = player.blastCoal.getAmount(Items.COAL_453) @@ -178,7 +178,7 @@ object BlastFurnace { } } if(removed) { - player.varpManager.get(543).setVarbit(8, 1).send(player) + setVarbit(player, 936, 1) barsHot = true player.blastBars.add(bar.product) var experience = bar.experience @@ -207,11 +207,11 @@ object BlastFurnace { } } if (coalToAdd < 0){ - player.varpManager.get(543).setVarbit(12, 0).send(player) - } else player.varpManager.get(543).setVarbit(12, coalToAdd).send(player) + setVarbit(player, 940, 0) + } else setVarbit(player, 940, coalToAdd) } else if(playerOre.isEmpty()) { - player.varpManager.get(543).setVarbit(12,0).send(player) + setVarbit(player, 940, 0) } if(playerOre.isEmpty() && player.getAttribute("OreInPot",false)){ player.removeAttribute("OreInPot") @@ -306,56 +306,4 @@ object BlastFurnace { replaceScenery(cogs2!!, 9104, -1) } } - - /**Hi kids! - * Do you like Varbits? - * Wanna see me stick Nine Binary Bytes, through each one of my eyelids? - * Wanna look at how many bars you have left inside the furnace??? - - fun interfaceManager() { - var playerBars = listOf() - var bronzeBit = 1 - var ironBit = 1 - var steelBit = 1 - var mithrilBit = 1 - var adamantiteBit = 1 - var runiteBit = 1 - var silverBit = 1 - var goldBit = 1 - var barTotal = 0 - blastFurnacePlayerList.forEach { player -> - playerBars = player.blastBars.toArray().filterNotNull() - var barAmount = player.blastBars.toArray().filterNotNull().count() - var updateInterface = true - if (playerBars.isNotEmpty() && updateInterface) { - playerBars.forEach { barItem -> - when (barItem.id) { - Items.BRONZE_BAR_2349 -> player.varpManager.get(545).setVarbit(0, bronzeBit++).send(player) - Items.IRON_BAR_2351 -> player.varpManager.get(545).setVarbit(8, ironBit++).send(player) - Items.STEEL_BAR_2353 -> player.varpManager.get(545).setVarbit(16, steelBit++).send(player) - Items.MITHRIL_BAR_2359 -> player.varpManager.get(545).setVarbit(24, mithrilBit++).send(player) - Items.ADAMANTITE_BAR_2361 -> player.varpManager.get(546).setVarbit(0, adamantiteBit++).send(player) - Items.RUNITE_BAR_2363 -> player.varpManager.get(546).setVarbit(8, runiteBit++).send(player) - Items.SILVER_BAR_2355 -> player.varpManager.get(546).setVarbit(24, silverBit++).send(player) - Items.GOLD_BAR_2357 -> player.varpManager.get(546).setVarbit(16, goldBit++).send(player) - } - } - } - if (barTotal > barAmount) { - playerBars.forEach { barItem -> - when (barItem.id) { - Items.BRONZE_BAR_2349 -> player.varpManager.get(545).setVarbit(0, bronzeBit--).send(player) - Items.IRON_BAR_2351 -> player.varpManager.get(545).setVarbit(8, ironBit--).send(player) - Items.STEEL_BAR_2353 -> player.varpManager.get(545).setVarbit(16, steelBit--).send(player) - Items.MITHRIL_BAR_2359 -> player.varpManager.get(545).setVarbit(24, mithrilBit--).send(player) - Items.ADAMANTITE_BAR_2361 -> player.varpManager.get(546).setVarbit(0, adamantiteBit--).send(player) - Items.RUNITE_BAR_2363 -> player.varpManager.get(546).setVarbit(8, runiteBit--).send(player) - Items.SILVER_BAR_2355 -> player.varpManager.get(546).setVarbit(24, silverBit--).send(player) - Items.GOLD_BAR_2357 -> player.varpManager.get(546).setVarbit(16, goldBit--).send(player) - } - } - } - } - } - */ } diff --git a/Server/src/main/content/minigame/blastfurnace/BlastFurnaceInterfaceListener.kt b/Server/src/main/content/minigame/blastfurnace/BlastFurnaceInterfaceListener.kt index 62d49b4ed..b0f39522e 100644 --- a/Server/src/main/content/minigame/blastfurnace/BlastFurnaceInterfaceListener.kt +++ b/Server/src/main/content/minigame/blastfurnace/BlastFurnaceInterfaceListener.kt @@ -1,7 +1,6 @@ package content.minigame.blastfurnace -import core.api.addItem -import core.api.freeSlots +import core.api.* import core.game.interaction.InterfaceListener import core.game.node.item.Item import org.rs09.consts.Components @@ -28,19 +27,32 @@ class BlastFurnaceInterfaceListener : InterfaceListener { var silverBit = 1 var goldBit = 1 var barTotal = 0 + val barCounts = HashMap() if (playerBars.isEmpty()) { return@onOpen true } else { playerBars.forEach { barItem -> when (barItem.id) { - Items.BRONZE_BAR_2349 -> player.varpManager.get(545).setVarbit(0, bronzeBit++).send(player) - Items.IRON_BAR_2351 -> player.varpManager.get(545).setVarbit(8, ironBit++).send(player) - Items.STEEL_BAR_2353 -> player.varpManager.get(545).setVarbit(16, steelBit++).send(player) - Items.MITHRIL_BAR_2359 -> player.varpManager.get(545).setVarbit(24, mithrilBit++).send(player) - Items.ADAMANTITE_BAR_2361 -> player.varpManager.get(546).setVarbit(0, adamantiteBit++).send(player) - Items.RUNITE_BAR_2363 -> player.varpManager.get(546).setVarbit(8, runiteBit++).send(player) - Items.SILVER_BAR_2355 -> player.varpManager.get(546).setVarbit(24, silverBit++).send(player) - Items.GOLD_BAR_2357 -> player.varpManager.get(546).setVarbit(16, goldBit++).send(player) + Items.BRONZE_BAR_2349 -> barCounts[barItem.id] = bronzeBit++ + Items.IRON_BAR_2351 -> barCounts[barItem.id] = ironBit++ + Items.STEEL_BAR_2353 -> barCounts[barItem.id] = steelBit++ + Items.MITHRIL_BAR_2359 -> barCounts[barItem.id] = mithrilBit++ + Items.ADAMANTITE_BAR_2361 -> barCounts[barItem.id] = adamantiteBit++ + Items.RUNITE_BAR_2363 -> barCounts[barItem.id] = runiteBit++ + Items.SILVER_BAR_2355 -> barCounts[barItem.id] = silverBit++ + Items.GOLD_BAR_2357 -> barCounts[barItem.id] = goldBit++ + } + } + for ((id, amount) in barCounts) { + when (id) { + Items.BRONZE_BAR_2349 -> setVarbit(player, 941, amount) + Items.IRON_BAR_2351 -> setVarbit(player, 942, amount) + Items.STEEL_BAR_2353 -> setVarbit(player, 943, amount) + Items.MITHRIL_BAR_2359 -> setVarbit(player, 944, amount) + Items.ADAMANTITE_BAR_2361 -> setVarbit(player, 945, amount) + Items.RUNITE_BAR_2363 -> setVarbit(player, 946, amount) + Items.SILVER_BAR_2355 -> setVarbit(player, 948, amount) + Items.GOLD_BAR_2357 -> setVarbit(player, 947, amount) } } return@onOpen true @@ -50,7 +62,7 @@ class BlastFurnaceInterfaceListener : InterfaceListener { on(Components.BLAST_FURNACE_BAR_STOCK_28){ player, _, _, buttonID, _, _ -> val bar = BFBars.forId(buttonID) ?: return@on false val isAll = buttonID == bar.allButtonId - val playerAmt = player.varpManager.get(bar.varpIndex).getVarbitValue(bar.offset) ?: 0 + val playerAmt = getVarbit(player, bar.varbit) if(playerAmt == 0) return@on true var amtToWithdraw = if(isAll) playerAmt else 1 @@ -70,28 +82,28 @@ class BlastFurnaceInterfaceListener : InterfaceListener { BFBars.GOLD -> Items.GOLD_BAR_2357 } - player.varpManager.get(bar.varpIndex).setVarbit(bar.offset, playerAmt - amtToWithdraw).send(player) - + setVarbit(player, bar.varbit, playerAmt - amtToWithdraw) while(amtToWithdraw > 0){ if(addItem(player, barItemId, 1) && player.blastBars.remove(Item(barItemId))) { amtToWithdraw-- } else break } - if(player.blastBars.isEmpty) player.varpManager.get(543).clear().send(player) + if(player.blastBars.isEmpty) + setVarp(player, 543, 0) return@on true } } - internal enum class BFBars(val buttonId: Int, val varpIndex: Int, val offset: Int, val allButtonId: Int = buttonId + 2){ - BRONZE(43, 545, 0, 44), - IRON(40, 545, 8, 41), - STEEL(36, 545, 16), - MITHRIL(33, 545, 24), - ADAMANT(30, 546, 0), - RUNITE(27, 546, 8), - SILVER(24, 546, 24), - GOLD(21, 546, 16); + internal enum class BFBars(val buttonId: Int, val varbit: Int, val allButtonId: Int = buttonId + 2){ + BRONZE(43, 941, 44), + IRON(40, 942, 41), + STEEL(36, 943), + MITHRIL(33, 944), + ADAMANT(30, 945), + RUNITE(27, 946), + SILVER(24, 948), + GOLD(21, 947); companion object { private val idMap = values().associateBy { it.buttonId } @@ -102,4 +114,4 @@ class BlastFurnaceInterfaceListener : InterfaceListener { } } -} \ No newline at end of file +} diff --git a/Server/src/main/content/minigame/blastfurnace/BlastFurnaceListeners.kt b/Server/src/main/content/minigame/blastfurnace/BlastFurnaceListeners.kt index 815480f9e..820a79f8a 100644 --- a/Server/src/main/content/minigame/blastfurnace/BlastFurnaceListeners.kt +++ b/Server/src/main/content/minigame/blastfurnace/BlastFurnaceListeners.kt @@ -297,7 +297,7 @@ class BlastFurnaceListeners : InteractionListener { /**This handles taking bars from the dispenser*/ on(dispenser,SCENERY,"search", "take"){ player, _ -> - if(player.varpManager.get(543).getVarbitValue(8) == 0 || player.varpManager.get(543).getVarbitValue(8) == 3) { + if (getVarbit(player, 936) == 0 || getVarbit(player, 936) == 3) { player.interfaceManager.openComponent(28) } return@on true @@ -306,20 +306,20 @@ class BlastFurnaceListeners : InteractionListener { /**Handles using a bucket of water on the bar dispenser*/ onUseWith(SCENERY,Items.BUCKET_OF_WATER_1929,*dispenser){ player, _, _ -> - when { - player.varpManager.get(543).getVarbitValue(8) == 2 -> { + when (getVarbit(player, 936)) { + 2 -> { removeItem(player,Items.BUCKET_OF_WATER_1929,Container.INVENTORY) addItem(player,Items.BUCKET_1925) BlastFurnace.barsHot = false - player.varpManager.get(543).setVarbit(8,3).send(player) + setVarbit(player, 936, 3) } - player.varpManager.get(543).getVarbitValue(8) == 0 -> { + 0 -> { sendDialogue(player,"There's nothing to cool off!") } - player.varpManager.get(543).getVarbitValue(8) == 1 -> { + 1 -> { sendDialogue(player,"I should wait until the machine is finished") } - player.varpManager.get(543).getVarbitValue(8) == 3 -> { + 3 -> { sendDialogue(player,"These bars have already cooled off!") } } diff --git a/Server/src/main/content/minigame/bountyhunter/BountyHunterActivity.java b/Server/src/main/content/minigame/bountyhunter/BountyHunterActivity.java index fd258e5d6..5895d0e0e 100644 --- a/Server/src/main/content/minigame/bountyhunter/BountyHunterActivity.java +++ b/Server/src/main/content/minigame/bountyhunter/BountyHunterActivity.java @@ -1,5 +1,6 @@ package content.minigame.bountyhunter; +import core.api.*; import core.game.component.Component; import core.game.component.ComponentDefinition; import core.game.component.ComponentPlugin; @@ -33,6 +34,8 @@ import core.tools.RandomFunction; import java.util.*; +import static core.api.ContentAPIKt.*; + /** * Handles the Bounty hunter activity. * @author Emperor @@ -317,7 +320,7 @@ public final class BountyHunterActivity extends ActivityPlugin { } else if (interfaceId == 271 && buttonId == 25) { if (player.getAttribute("exit_penalty", 0) > GameWorld.getTicks()) { player.getPacketDispatch().sendMessage("You can't use the protect item prayer until your penalty has passed."); - player.getConfigManager().send(PrayerType.PROTECT_ITEMS.getConfig(), 0); + setVarp(player, PrayerType.PROTECT_ITEMS.getConfig(), 0); return true; } } diff --git a/Server/src/main/content/minigame/castlewars/CastleWarsOverlay.kt b/Server/src/main/content/minigame/castlewars/CastleWarsOverlay.kt index 3cd3ab891..f60597b0c 100644 --- a/Server/src/main/content/minigame/castlewars/CastleWarsOverlay.kt +++ b/Server/src/main/content/minigame/castlewars/CastleWarsOverlay.kt @@ -1,4 +1,4 @@ -import core.api.setVarbit +import core.api.* import core.game.node.entity.player.Player /** @@ -8,7 +8,7 @@ import core.game.node.entity.player.Player object CastleWarsOverlay { @JvmStatic fun sendLobbyUpdate(player: Player, bothTeamsHavePlayers: Boolean, gameStartMinutes: Int) { - player.varpManager.get(380).setVarbit(0, if (bothTeamsHavePlayers) gameStartMinutes else 0).send(player) + setVarp(player, 380, if (bothTeamsHavePlayers) gameStartMinutes else 0) } @JvmStatic diff --git a/Server/src/main/content/minigame/clanwars/ClanWarsActivityPlugin.java b/Server/src/main/content/minigame/clanwars/ClanWarsActivityPlugin.java index fc9afe739..8dc12e8a8 100644 --- a/Server/src/main/content/minigame/clanwars/ClanWarsActivityPlugin.java +++ b/Server/src/main/content/minigame/clanwars/ClanWarsActivityPlugin.java @@ -15,7 +15,6 @@ import core.game.node.entity.Entity; import core.game.node.entity.combat.CombatStyle; import core.game.node.entity.impl.PulseManager; import core.game.node.entity.player.Player; -import core.game.node.entity.player.link.ConfigurationManager.Configuration; import core.game.node.scenery.Scenery; import core.game.node.scenery.SceneryBuilder; import core.game.system.communication.ClanEntry; @@ -34,6 +33,8 @@ import core.game.world.update.flag.context.Animation; import core.plugin.Plugin; import core.tools.RandomFunction; +import static core.api.ContentAPIKt.*; + /** * Handles the clan wars activity. * @author Emperor @@ -239,7 +240,7 @@ public final class ClanWarsActivityPlugin extends ActivityPlugin { if (pulse.getTicksPassed() < 200) { value |= (200 - pulse.getTicksPassed()) << 23; } - p.getConfigManager().set(Configuration.CLAN_WAR_DATA, value); + setVarp(p, 1147, value); p.getPacketDispatch().sendString(name, 265, 2); } diff --git a/Server/src/main/content/minigame/duel/ChallengeOptionPlugin.java b/Server/src/main/content/minigame/duel/ChallengeOptionPlugin.java index 5beb213fa..9f0e4dbbc 100644 --- a/Server/src/main/content/minigame/duel/ChallengeOptionPlugin.java +++ b/Server/src/main/content/minigame/duel/ChallengeOptionPlugin.java @@ -4,6 +4,7 @@ import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; import core.plugin.Plugin; +import static core.api.ContentAPIKt.*; /** * Handles the challenge option for dueling. @@ -32,7 +33,7 @@ public class ChallengeOptionPlugin extends OptionHandler { player.getInterfaceManager().open(DuelArenaActivity.DUEL_TYPE_SELECT); player.setAttribute("duel:staked", false); player.setAttribute("duel:partner", other); - player.getConfigManager().set(283, 1 << 26); + setVarp(player, 283, 1 << 26); return true; } diff --git a/Server/src/main/content/minigame/duel/DuelArenaActivity.java b/Server/src/main/content/minigame/duel/DuelArenaActivity.java index 08fd76fb3..75f490704 100644 --- a/Server/src/main/content/minigame/duel/DuelArenaActivity.java +++ b/Server/src/main/content/minigame/duel/DuelArenaActivity.java @@ -19,6 +19,8 @@ import core.plugin.Initializable; import core.plugin.ClassScanner; import core.tools.RandomFunction; +import static core.api.ContentAPIKt.*; + /** * Handles the Duel Arena activity. * @author Emperor @@ -76,7 +78,7 @@ public final class DuelArenaActivity extends ActivityPlugin { Player player = (Player) e; player.getInterfaceManager().openOverlay(OVERLAY); player.getInteraction().set(CHALLENGE_OPTION); - player.getConfigManager().set(286, 0); + setVarp(player, 286, 0); } return super.enter(e); } diff --git a/Server/src/main/content/minigame/duel/DuelComponentPlugin.java b/Server/src/main/content/minigame/duel/DuelComponentPlugin.java index b70f73c8f..38dc31f54 100644 --- a/Server/src/main/content/minigame/duel/DuelComponentPlugin.java +++ b/Server/src/main/content/minigame/duel/DuelComponentPlugin.java @@ -7,6 +7,8 @@ import core.game.node.entity.player.Player; import core.game.world.GameWorld; import core.plugin.Plugin; +import static core.api.ContentAPIKt.*; + /** * Handles the duel arena components. * @author Vexia @@ -60,7 +62,7 @@ public class DuelComponentPlugin extends ComponentPlugin { return false; } player.setAttribute("duel:staked", staked); - player.getConfigManager().set(283, (staked ? 2 : 1) << 26); + setVarp(player, 283, (staked ? 2 : 1) << 26); break; } return true; diff --git a/Server/src/main/content/minigame/duel/DuelSession.java b/Server/src/main/content/minigame/duel/DuelSession.java index d278bf6b9..018b7dcdf 100644 --- a/Server/src/main/content/minigame/duel/DuelSession.java +++ b/Server/src/main/content/minigame/duel/DuelSession.java @@ -230,7 +230,7 @@ public final class DuelSession extends ComponentPlugin { * @param player The player. */ private void openRules(Player player, Player opponent) { - player.getConfigManager().set(286, 0); + setVarp(player, 286, 0); if (staked) { StakeContainer container = new StakeContainer(player, this); if (player == this.player) { @@ -249,7 +249,7 @@ public final class DuelSession extends ComponentPlugin { player.getPacketDispatch().sendString(Integer.toString(opponent.getProperties().getCurrentCombatLevel()), 637, 18); player.getPacketDispatch().sendString("", 637, 45); } - player.getConfigManager().set(286, 0); + setVarp(player, 286, 0); } /** @@ -495,8 +495,8 @@ public final class DuelSession extends ComponentPlugin { value |= 1 << rules[i].getConfigIndex(); } } - player.getConfigManager().set(286, value); - other.getConfigManager().set(286, value); + setVarp(player, 286, value); + setVarp(other, 286, value); } /** @@ -1024,4 +1024,4 @@ public final class DuelSession extends ComponentPlugin { public void setFightState(int fightState) { this.fightState = fightState; } -} \ No newline at end of file +} diff --git a/Server/src/main/content/minigame/fishingtrawler/FishingTrawlerOverlay.kt b/Server/src/main/content/minigame/fishingtrawler/FishingTrawlerOverlay.kt index 16a714c9c..9b9ad7e21 100644 --- a/Server/src/main/content/minigame/fishingtrawler/FishingTrawlerOverlay.kt +++ b/Server/src/main/content/minigame/fishingtrawler/FishingTrawlerOverlay.kt @@ -1,6 +1,7 @@ package content.minigame.fishingtrawler import core.game.node.entity.player.Player +import core.api.* private const val configIndex = 391 private const val interfaceID = 366 @@ -17,10 +18,10 @@ private const val timeChild = 30 object FishingTrawlerOverlay { @JvmStatic fun sendUpdate(player: Player, waterPercent: Int, NetRipped: Boolean, fishCaught: Int, timeLeft: Int){ - player.configManager.set(configIndex,waterPercent) + setVarp(player, configIndex, waterPercent) player.packetDispatch.sendInterfaceConfig(interfaceID,if(NetRipped) netRippedChild else netOkayChild, false) player.packetDispatch.sendInterfaceConfig(interfaceID,if(NetRipped) netOkayChild else netRippedChild, true) player.packetDispatch.sendString("${if(fishCaught > 0) fishCaught else "Nothing"}", interfaceID, fishChild) player.packetDispatch.sendString("$timeLeft Minutes", interfaceID, timeChild) } -} \ No newline at end of file +} diff --git a/Server/src/main/content/minigame/pestcontrol/PestControlSession.java b/Server/src/main/content/minigame/pestcontrol/PestControlSession.java index f902b5c14..8396f97b8 100644 --- a/Server/src/main/content/minigame/pestcontrol/PestControlSession.java +++ b/Server/src/main/content/minigame/pestcontrol/PestControlSession.java @@ -6,7 +6,6 @@ import core.game.component.Component; import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; -import core.game.node.entity.player.link.ConfigurationManager.Configuration; import core.game.node.scenery.Scenery; import core.game.world.map.Location; import core.game.world.map.Point; @@ -15,6 +14,7 @@ import core.game.world.map.build.DynamicRegion; import core.tools.RandomFunction; import static content.minigame.pestcontrol.PestControlActivityPlugin.MAX_TEAM_SIZE; +import static core.api.ContentAPIKt.*; /** * Represents a pest control session. @@ -166,7 +166,7 @@ public final class PestControlSession { public void sendConfig(int value) { for (Player p : region.getPlanes()[0].getPlayers()) { if (p.isActive()) { - p.getConfigManager().set(Configuration.PC_PORTALS, value); + setVarp(p, 719, value); } } } @@ -264,7 +264,7 @@ public final class PestControlSession { Random r = RandomFunction.RANDOM; Location l = region.getBaseLocation(); p.getProperties().setTeleportLocation(l.transform(32 + r.nextInt(4), 49 + r.nextInt(6), 0)); - p.getConfigManager().set(Configuration.PC_PORTALS, 0); + setVarp(p, 1147, 0); p.getDialogueInterpreter().sendDialogues(3781, FacialExpression.FURIOUS, "You must defend the Void Knight while the portals are", "unsummoned. The ritual takes twenty minutes though,", "so you can help out by destroying them yourselves!", "Now GO GO GO!"); } @@ -386,4 +386,4 @@ public final class PestControlSession { return barricades; } -} \ No newline at end of file +} diff --git a/Server/src/main/content/minigame/puropuro/ElnockInquisitorDialogue.java b/Server/src/main/content/minigame/puropuro/ElnockInquisitorDialogue.java index 068a89413..b9cbe7df7 100644 --- a/Server/src/main/content/minigame/puropuro/ElnockInquisitorDialogue.java +++ b/Server/src/main/content/minigame/puropuro/ElnockInquisitorDialogue.java @@ -13,6 +13,8 @@ import core.plugin.ClassScanner; import content.minigame.puropuro.ElnockInquisitorDialogue.ElnockExchangeInterfaceHandler.ElnockExchange; +import static core.api.ContentAPIKt.*; + /** * Handles the elnock inquisitor dialogue. * @author Vexia @@ -225,7 +227,7 @@ public final class ElnockInquisitorDialogue extends DialoguePlugin { public boolean handle(Player player, Component component, int opcode, int button, int slot, int itemId) { ElnockExchange exchange = player.getAttribute("exchange", null); if (button == 34) { - player.getConfigManager().set(1018, 0); + setVarp(player, 1018, 0); if (exchange == null) { player.sendMessage("Making a selection before confirming."); return true; @@ -254,7 +256,7 @@ public final class ElnockInquisitorDialogue extends DialoguePlugin { exchange = ElnockExchange.forButton(button); if (exchange != null) { player.setAttribute("exchange", exchange); - player.getConfigManager().set(1018, exchange.getConfigValue()); + setVarp(player, 1018, exchange.getConfigValue()); } return true; } diff --git a/Server/src/main/content/minigame/pyramidplunder/PlunderUtils.kt b/Server/src/main/content/minigame/pyramidplunder/PlunderUtils.kt index 579abe8b8..ac25834f2 100644 --- a/Server/src/main/content/minigame/pyramidplunder/PlunderUtils.kt +++ b/Server/src/main/content/minigame/pyramidplunder/PlunderUtils.kt @@ -144,13 +144,9 @@ object PlunderUtils { fun resetObjectVarbits(player: Player) { - var varp = player.varpManager.get(821) - varp.clear() - varp.send(player) - varp = player.varpManager.get(820) - varp.clear() - varp.send(player) - PlunderData.doorVarbits.forEach { player.varpManager.setVarbit(it, 0) } + setVarp(player, 821, 0) + setVarp(player, 820, 0) + PlunderData.doorVarbits.forEach { setVarbit(player, it, 0) } } fun openOverlay(player: Player) @@ -161,14 +157,14 @@ object PlunderUtils { fun updateOverlay(player: Player) { - player.varpManager.setVarbit(2375, 500 - (PlunderData.timeLeft[player] ?: 0)) - player.varpManager.setVarbit(2376, 11 + (getRoom(player)!!.room * 10)) - player.varpManager.setVarbit(2377, getRoom(player)!!.room) + setVarbit(player, 2375, 500 - (PlunderData.timeLeft[player] ?: 0)) + setVarbit(player, 2376, 11 + (getRoom(player)!!.room * 10)) + setVarbit(player, 2377, getRoom(player)!!.room) } fun resetOverlay(player: Player) { - player.varpManager.setVarbit(2375, 0) + setVarbit(player, 2375, 0) player.packetDispatch.resetInterface(Components.NTK_OVERLAY_428) player.interfaceManager.closeOverlay() } @@ -304,4 +300,4 @@ object PlunderUtils { val room = getRoom(player)!!.room return RandomFunction.random(level) > (room * if(charmed) 2 else 4) } -} \ No newline at end of file +} diff --git a/Server/src/main/content/minigame/pyramidplunder/PyramidPlunderMinigame.kt b/Server/src/main/content/minigame/pyramidplunder/PyramidPlunderMinigame.kt index d6ceb84c1..e2c7ba0d4 100644 --- a/Server/src/main/content/minigame/pyramidplunder/PyramidPlunderMinigame.kt +++ b/Server/src/main/content/minigame/pyramidplunder/PyramidPlunderMinigame.kt @@ -124,7 +124,7 @@ class PyramidPlunderMinigame : InteractionListener, TickListener, LogoutListener sendMessage(player, "You successfully loot the urn.") rewardXP(player, Skills.THIEVING, PlunderUtils.getUrnXp(player, false)) addItemOrDrop(player, PlunderUtils.rollArtifact(player, 1)) - player.varpManager.setVarbit(node.asScenery().definition.varbitID, 1) + setVarbit(player, node.asScenery().definition.varbitID, 1) } } return@on true @@ -137,7 +137,7 @@ class PyramidPlunderMinigame : InteractionListener, TickListener, LogoutListener lock(player, 1) runTask(player, 1){ animate(player, URN_BIT) - player.varpManager.setVarbit(urn.definition.varbitID, 2) + setVarbit(player, urn.definition.varbitID, 2) animateScenery(urn, SNAKE_URN_ANIM) } return@on true @@ -153,7 +153,7 @@ class PyramidPlunderMinigame : InteractionListener, TickListener, LogoutListener animate(player, CHARM_ANIM) runTask(player, 1) { - player.varpManager.setVarbit(node.asScenery().definition.varbitID, 3) + setVarbit(player, node.asScenery().definition.varbitID, 3) sendMessage(player, "You charm the snake with your music.") } return@on true @@ -176,7 +176,7 @@ class PyramidPlunderMinigame : InteractionListener, TickListener, LogoutListener sendMessage(player, "You successfully loot the urn.") addItemOrDrop(player, PlunderUtils.rollArtifact(player, 1)) rewardXP(player, Skills.THIEVING, PlunderUtils.getUrnXp(player, false) * 0.66) - player.varpManager.setVarbit(node.asScenery().definition.varbitID, 1) + setVarbit(player, node.asScenery().definition.varbitID, 1) } } return@on true @@ -199,7 +199,7 @@ class PyramidPlunderMinigame : InteractionListener, TickListener, LogoutListener return false animate(player, PUSH_LID_FINISH) runTask(player, 3){ - player.varpManager.setVarbit(node.asScenery().definition.varbitID, 1) + setVarbit(player, node.asScenery().definition.varbitID, 1) rewardXP(player, Skills.STRENGTH, PlunderUtils.getSarcophagusXp(player)) if(RandomFunction.roll(25)) { @@ -236,7 +236,7 @@ class PyramidPlunderMinigame : InteractionListener, TickListener, LogoutListener if(!PlunderUtils.rollSceptre(player)) addItemOrDrop(player, PlunderUtils.rollArtifact(player, 3)) } - player.varpManager.setVarbit(node.asScenery().definition.varbitID, 1) + setVarbit(player, node.asScenery().definition.varbitID, 1) } return@on true } @@ -274,7 +274,7 @@ class PyramidPlunderMinigame : InteractionListener, TickListener, LogoutListener PlunderUtils.resetObjectVarbits(player) } else { sendMessage(player, "The door leads to a dead end.") - player.varpManager.setVarbit(varbitId, 1) + setVarbit(player, varbitId, 1) } } else @@ -375,4 +375,4 @@ class PyramidPlunderMinigame : InteractionListener, TickListener, LogoutListener PlunderUtils.openOverlay(player) } } -} \ No newline at end of file +} diff --git a/Server/src/main/content/minigame/vinesweeper/Vinesweeper.kt b/Server/src/main/content/minigame/vinesweeper/Vinesweeper.kt index f53654e83..1763d9f4e 100644 --- a/Server/src/main/content/minigame/vinesweeper/Vinesweeper.kt +++ b/Server/src/main/content/minigame/vinesweeper/Vinesweeper.kt @@ -362,7 +362,7 @@ class Vinesweeper : InteractionListener, InterfaceListener, MapArea { fun sendUpdatedPoints(player: Player) { val points = player.getAttribute("vinesweeper:points", 0); - player.varpManager.get(1195).setVarbit(6, points).send(player) + setVarbit(player, 4449, points) } var SEED_LOCS: HashSet = HashSet() diff --git a/Server/src/main/content/region/asgarnia/burthorpe/handlers/wguild/barrel/BarrelRoom.java b/Server/src/main/content/region/asgarnia/burthorpe/handlers/wguild/barrel/BarrelRoom.java index de17ad2d0..e01b9b698 100644 --- a/Server/src/main/content/region/asgarnia/burthorpe/handlers/wguild/barrel/BarrelRoom.java +++ b/Server/src/main/content/region/asgarnia/burthorpe/handlers/wguild/barrel/BarrelRoom.java @@ -26,6 +26,8 @@ import core.plugin.Plugin; import core.plugin.ClassScanner; import core.tools.RandomFunction; +import static core.api.ContentAPIKt.*; + /** * Handles the Barrel room. * @author Emperor @@ -172,7 +174,7 @@ public final class BarrelRoom extends MapZone implements Plugin { player.getEquipment().replace(null, EquipmentContainer.SLOT_HAT); player.getAppearance().setAnimations(); player.getAppearance().sync(); - player.getConfigManager().set(793, 0); + setVarp(player, 793, 0); } } diff --git a/Server/src/main/content/region/asgarnia/burthorpe/handlers/wguild/catapult/CatapultRoom.java b/Server/src/main/content/region/asgarnia/burthorpe/handlers/wguild/catapult/CatapultRoom.java index 880802041..0c26480d5 100644 --- a/Server/src/main/content/region/asgarnia/burthorpe/handlers/wguild/catapult/CatapultRoom.java +++ b/Server/src/main/content/region/asgarnia/burthorpe/handlers/wguild/catapult/CatapultRoom.java @@ -34,6 +34,8 @@ import core.plugin.ClassScanner; import core.plugin.Initializable; import core.tools.RandomFunction; +import static core.api.ContentAPIKt.setVarp; + /** * The catapult room. * @author Emperor @@ -207,7 +209,7 @@ public final class CatapultRoom extends MapZone implements Plugin { if (button >= 9 && button <= 12) { CatapultAttack attack = CatapultAttack.values()[button - 9]; player.setAttribute("catapult_def", attack); - player.getConfigManager().set(788, (button - 8) % 4); + setVarp(player, 788, (button - 8) % 4); return true; } return false; diff --git a/Server/src/main/content/region/asgarnia/falador/handlers/partyroom/BalloonManager.java b/Server/src/main/content/region/asgarnia/falador/handlers/partyroom/BalloonManager.java index 7c4aa2ecb..79d70ae79 100644 --- a/Server/src/main/content/region/asgarnia/falador/handlers/partyroom/BalloonManager.java +++ b/Server/src/main/content/region/asgarnia/falador/handlers/partyroom/BalloonManager.java @@ -21,6 +21,9 @@ import core.game.world.update.flag.context.Animation; import core.plugin.Plugin; import core.tools.RandomFunction; +import static core.api.ContentAPIKt.*; + + /** * Manages the droped party balloons. * @author Vexia @@ -83,7 +86,7 @@ public final class BalloonManager extends OptionHandler { public boolean pulse() { int realCount = --countdown - GameWorld.getTicks(); for (ChestViewer viewer : PartyRoomPlugin.getViewers().values()) { - viewer.getPlayer().getConfigManager().set(1135, realCount); + setVarp(viewer.getPlayer(), 1135, realCount); } if (--realCount - GameWorld.getTicks() <= 0) { drop(); diff --git a/Server/src/main/content/region/asgarnia/falador/handlers/partyroom/ChestViewer.java b/Server/src/main/content/region/asgarnia/falador/handlers/partyroom/ChestViewer.java index ab5ce8045..c1b2302a0 100644 --- a/Server/src/main/content/region/asgarnia/falador/handlers/partyroom/ChestViewer.java +++ b/Server/src/main/content/region/asgarnia/falador/handlers/partyroom/ChestViewer.java @@ -13,6 +13,9 @@ import core.net.packet.PacketRepository; import core.net.packet.context.ContainerContext; import core.net.packet.out.ContainerPacket; +import static core.api.ContentAPIKt.*; + + /** * A chest viewer. * @author Vexia @@ -69,7 +72,7 @@ public final class ChestViewer { player.getPacketDispatch().sendRunScript(150, "IviiiIsssssssss", INV_OPTIONS); player.getInterfaceManager().openSingleTab(new Component(648)); player.getInterfaceManager().open(new Component(647).setCloseEvent(new ChestCloseEvent())); - player.getConfigManager().set(1135, 0); + setVarp(player, 1135, 0); update(0, null); update(1, null); return this; diff --git a/Server/src/main/content/region/asgarnia/goblinvillage/quest/goblindiplomacy/GDiplomacyCutscene.java b/Server/src/main/content/region/asgarnia/goblinvillage/quest/goblindiplomacy/GDiplomacyCutscene.java index 1753e0b41..487467ae2 100644 --- a/Server/src/main/content/region/asgarnia/goblinvillage/quest/goblindiplomacy/GDiplomacyCutscene.java +++ b/Server/src/main/content/region/asgarnia/goblinvillage/quest/goblindiplomacy/GDiplomacyCutscene.java @@ -27,6 +27,9 @@ import core.tools.RandomFunction; import core.tools.StringUtils; import core.game.dialogue.FacialExpression; +import static core.api.ContentAPIKt.*; + + /** * Represents the goblin diplomacy cutscene plugin. * @author 'Vexia @@ -364,7 +367,7 @@ public final class GDiplomacyCutscene extends CutscenePlugin { player.setAttribute("/save:tlt-goblin-emotes",true); player.getEmoteManager().unlock(Emotes.GOBLIN_BOW); player.getEmoteManager().unlock(Emotes.GOBLIN_SALUTE); - player.varpManager.get(465).setVarbit(0,7).send(player); + setVarbit(player, 532, 7, true); player.getQuestRepository().getQuest("Lost Tribe").setStage(player,44); stage++; break; diff --git a/Server/src/main/content/region/asgarnia/goblinvillage/quest/goblindiplomacy/GrubFoot.java b/Server/src/main/content/region/asgarnia/goblinvillage/quest/goblindiplomacy/GrubFoot.java index 7881e61fc..af5178b10 100644 --- a/Server/src/main/content/region/asgarnia/goblinvillage/quest/goblindiplomacy/GrubFoot.java +++ b/Server/src/main/content/region/asgarnia/goblinvillage/quest/goblindiplomacy/GrubFoot.java @@ -3,6 +3,8 @@ package content.region.asgarnia.goblinvillage.quest.goblindiplomacy; import core.game.node.entity.player.Player; import core.game.node.item.Item; +import static core.api.ContentAPIKt.*; + /** * Represents a grub foot. * @author Vexia @@ -43,7 +45,7 @@ public enum GrubFoot { * @return the grub foot. */ public static GrubFoot forConfig(final Player player) { - int config = player.getConfigManager().get(62); + int config = getVarp(player, 62); for (GrubFoot foot : values()) { if (foot.getValue() == config) { if (foot.ordinal() + 1 >= values().length) { @@ -60,7 +62,7 @@ public enum GrubFoot { * @param player the player. */ public void setConfig(Player player) { - player.getConfigManager().set(62, value); + setVarp(player, 62, value); } /** diff --git a/Server/src/main/content/region/asgarnia/rimmington/quest/witchpotion/WitchsPotion.java b/Server/src/main/content/region/asgarnia/rimmington/quest/witchpotion/WitchsPotion.java index c55e827d6..9b5738527 100644 --- a/Server/src/main/content/region/asgarnia/rimmington/quest/witchpotion/WitchsPotion.java +++ b/Server/src/main/content/region/asgarnia/rimmington/quest/witchpotion/WitchsPotion.java @@ -75,7 +75,6 @@ public class WitchsPotion extends Quest { @Override public void finish(Player player) { super.finish(player); - player.getConfigManager().set(101, player.getQuestRepository().getPoints()); player.getPacketDispatch().sendString("1 Quest Point", 277, 8 + 2); player.getPacketDispatch().sendString("325 Magic XP", 277, 9 + 2); player.getSkills().addExperience(Skills.MAGIC, 325); diff --git a/Server/src/main/content/region/asgarnia/taverley/dialogue/PikkupstixDialogue.java b/Server/src/main/content/region/asgarnia/taverley/dialogue/PikkupstixDialogue.java index 672af05bc..aff18c872 100644 --- a/Server/src/main/content/region/asgarnia/taverley/dialogue/PikkupstixDialogue.java +++ b/Server/src/main/content/region/asgarnia/taverley/dialogue/PikkupstixDialogue.java @@ -9,6 +9,8 @@ import core.game.node.entity.player.link.quest.Quest; import core.plugin.Initializable; import core.game.node.item.Item; +import static core.api.ContentAPIKt.*; + /** * Handles the PikkupstixDialogue dialogue. * @author Vexia @@ -125,7 +127,7 @@ public final class PikkupstixDialogue extends DialoguePlugin { continue; } if (!player.getInventory().containsItem(i) && !player.getBank().containsItem(i) && player.getAttribute("taken-summoning-supplies") == null) { - if (i.getId() == 12528 && player.getConfigManager().get(1178) == (2 << 11)) { + if (i.getId() == 12528 && getVarp(player, 1178) == (2 << 11)) { continue; } player.setAttribute("taken-summoning-supplies", true); diff --git a/Server/src/main/content/region/asgarnia/taverley/quest/WolfWhistle.java b/Server/src/main/content/region/asgarnia/taverley/quest/WolfWhistle.java index 6ed7c9283..a9aeecf48 100644 --- a/Server/src/main/content/region/asgarnia/taverley/quest/WolfWhistle.java +++ b/Server/src/main/content/region/asgarnia/taverley/quest/WolfWhistle.java @@ -6,6 +6,9 @@ import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.game.node.item.Item; +import static core.api.ContentAPIKt.*; + + /** * Represents the demon slayer quest. * @author 'Vexia @@ -75,7 +78,7 @@ public class WolfWhistle extends Quest { @Override public int[] getConfig(Player player, int stage) { - int val = player.getConfigManager().get(1178); + int val = getVarp(player, 1178); boolean open = val >= 4096; boolean closed = val == 2048; if (stage == 100) { diff --git a/Server/src/main/content/region/asgarnia/taverley/quest/witchshouse/WitchsHouse.java b/Server/src/main/content/region/asgarnia/taverley/quest/witchshouse/WitchsHouse.java index eb4b8639e..7d142974d 100644 --- a/Server/src/main/content/region/asgarnia/taverley/quest/witchshouse/WitchsHouse.java +++ b/Server/src/main/content/region/asgarnia/taverley/quest/witchshouse/WitchsHouse.java @@ -49,7 +49,6 @@ public class WitchsHouse extends Quest { @Override public void finish(Player player) { super.finish(player); - player.getConfigManager().set(101, player.getQuestRepository().getPoints()); player.getPacketDispatch().sendString("4 Quest Points", 277, 8 + 2); player.getPacketDispatch().sendString("6325 Hitpoints XP", 277, 9 + 2); player.getSkills().addExperience(Skills.HITPOINTS, 6325); diff --git a/Server/src/main/content/region/asgarnia/trollheim/dialogue/GWDKnightDialogue.java b/Server/src/main/content/region/asgarnia/trollheim/dialogue/GWDKnightDialogue.java index 1af6de4b4..750447d19 100644 --- a/Server/src/main/content/region/asgarnia/trollheim/dialogue/GWDKnightDialogue.java +++ b/Server/src/main/content/region/asgarnia/trollheim/dialogue/GWDKnightDialogue.java @@ -11,6 +11,8 @@ import core.game.world.map.Location; import core.plugin.Initializable; import core.plugin.Plugin; +import static core.api.ContentAPIKt.*; + /** * Handles the dying knight dialogue. * @author Emperor @@ -64,7 +66,7 @@ public final class GWDKnightDialogue extends DialoguePlugin { @Override public boolean open(Object... args) { npc = (NPC) args[0]; - if ((player.getConfigManager().get(1048) & 16) != 0) { + if ((getVarp(player, 1048) & 16) != 0) { player.getPacketDispatch().sendMessage("The knight has already died."); return false; } @@ -91,7 +93,7 @@ public final class GWDKnightDialogue extends DialoguePlugin { case 3: if (player.getInventory().add(SCROLL)) { interpreter.sendItemMessage(11734, "The knight hands you a scroll."); - player.varpManager.get(1048).setVarbit(4,1).send(player); + setVarbit(player, 3936, 1, true); stage = 5; } else { stage = 4; diff --git a/Server/src/main/content/region/asgarnia/trollheim/handlers/gwd/GodwarsEntranceHandler.java b/Server/src/main/content/region/asgarnia/trollheim/handlers/gwd/GodwarsEntranceHandler.java index 4960e215e..c1be4295f 100644 --- a/Server/src/main/content/region/asgarnia/trollheim/handlers/gwd/GodwarsEntranceHandler.java +++ b/Server/src/main/content/region/asgarnia/trollheim/handlers/gwd/GodwarsEntranceHandler.java @@ -17,7 +17,7 @@ import core.game.world.map.RegionManager; import core.game.world.update.flag.context.Animation; import core.plugin.Plugin; -import static core.api.ContentAPIKt.hasRequirement; +import static core.api.ContentAPIKt.*; /** * Handles the entrance hole to the godwars dungeon. @@ -44,15 +44,14 @@ public final class GodwarsEntranceHandler extends OptionHandler { player.getPacketDispatch().sendMessage("You don't have a rope to tie around the pillar."); return true; } - player.varpManager.get(1048).setVarbit(0,1).send(player); - player.varpManager.flagSave(1048, false); + setVarbit(player, 3932, 1, true); return true; case 26341: if (player.getSkills().getStaticLevel(Skills.AGILITY) < 15) { player.getPacketDispatch().sendMessage("You need an Agility level of 15 to enter this."); return true; } - if (player.varpManager.get(1048).getVarbit(4) == 0) { + if (getVarbit(player, 3936) == 0) { player.getDialogueInterpreter().sendDialogues(6201, FacialExpression.HALF_GUILTY, "Cough... Hey, over here."); return true; } diff --git a/Server/src/main/content/region/asgarnia/trollheim/handlers/gwd/GodwarsMapzone.java b/Server/src/main/content/region/asgarnia/trollheim/handlers/gwd/GodwarsMapzone.java index 7b0b9a297..b2dd1fd25 100644 --- a/Server/src/main/content/region/asgarnia/trollheim/handlers/gwd/GodwarsMapzone.java +++ b/Server/src/main/content/region/asgarnia/trollheim/handlers/gwd/GodwarsMapzone.java @@ -35,6 +35,7 @@ import core.plugin.Plugin; import core.tools.StringUtils; import core.game.node.entity.skill.Skills; +import static core.api.ContentAPIKt.*; import static core.api.ContentAPIKt.log; /** @@ -89,7 +90,7 @@ public final class GodwarsMapzone extends MapZone implements Plugin { * @param setting The setting. */ public void setRopeSetting(Player player, int setting) { - player.varpManager.get(1048).setVarbit(setting,1).send(player); + setVarbit(player, setting == 1 ? 3933 : 3934, 1, true); } /** diff --git a/Server/src/main/content/region/desert/dialogue/RugMerchantDialogue.java b/Server/src/main/content/region/desert/dialogue/RugMerchantDialogue.java index 00d0c5be7..5e9c47995 100644 --- a/Server/src/main/content/region/desert/dialogue/RugMerchantDialogue.java +++ b/Server/src/main/content/region/desert/dialogue/RugMerchantDialogue.java @@ -290,7 +290,7 @@ public final class RugMerchantDialogue extends DialoguePlugin { */ public void travel(final RugDestination current, final Player player) { player.lock(); - player.getConfigManager().set(499, 0); + setVarp(player, 499, 0); player.getImpactHandler().setDisabledTicks(GameWorld.getTicks() + 200); player.getInterfaceManager().removeTabs(0,1,2,3,4,5,6,7,8,9,10,11,12,13); player.getEquipment().replace(new Item(Items.MAGIC_CARPET_5614),EquipmentContainer.SLOT_WEAPON); @@ -328,7 +328,7 @@ public final class RugMerchantDialogue extends DialoguePlugin { player.faceLocation(getLocation()); break; case 4: - player.getConfigManager().set(499, 1); + setVarp(player, 499, 1); break; case 200: break; @@ -339,7 +339,7 @@ public final class RugMerchantDialogue extends DialoguePlugin { player.getImpactHandler().setDisabledTicks(0); player.unlock(); player.animate(new Animation(-1)); - player.getConfigManager().set(499, 0); + setVarp(player, 499, 0); clearLogoutListener(player, "magic-carpet"); diff --git a/Server/src/main/content/region/desert/quest/thegolem/TheGolemQuest.kt b/Server/src/main/content/region/desert/quest/thegolem/TheGolemQuest.kt index 6817725cd..c44ceb432 100644 --- a/Server/src/main/content/region/desert/quest/thegolem/TheGolemQuest.kt +++ b/Server/src/main/content/region/desert/quest/thegolem/TheGolemQuest.kt @@ -222,16 +222,14 @@ class TheGolemListeners : InteractionListener { if(player.questRepository.getStage("The Golem") >= 100) { clientStage = Math.max(clientStage, 10) } - player.varpManager.get(437) - .setVarbit(0, clientStage) - .setVarbit(7, clayUsed) - .setVarbit(16, gemsTaken) - .setVarbit(17, statuetteTaken) - .setVarbit(10, rotation1) - .setVarbit(11, rotation2) - .setVarbit(12, rotation3) - .setVarbit(13, statuettePlaced * (rotation4 + 1)) - .send(player) + setVarbit(player, 346, clientStage) + setVarbit(player, 348, clayUsed) + setVarbit(player, 354, gemsTaken) + setVarbit(player, 355, statuetteTaken) + setVarbit(player, 349, rotation1) + setVarbit(player, 350, rotation2) + setVarbit(player, 351, rotation3) + setVarbit(player, 352, statuettePlaced * (rotation4 + 1)) } } diff --git a/Server/src/main/content/region/desert/quest/thetouristrap/TouristTrap.java b/Server/src/main/content/region/desert/quest/thetouristrap/TouristTrap.java index be6ba786a..e81eb6764 100644 --- a/Server/src/main/content/region/desert/quest/thetouristrap/TouristTrap.java +++ b/Server/src/main/content/region/desert/quest/thetouristrap/TouristTrap.java @@ -13,6 +13,8 @@ import core.game.world.map.zone.ZoneBorders; import core.plugin.Initializable; import core.plugin.ClassScanner; +import static core.api.ContentAPIKt.*; + /** * The main type for the tourist trap quest. * @author Aero @@ -253,7 +255,7 @@ public final class TouristTrap extends Quest { * @param player the player. */ public static void addConfig(final Player player, final int value) { - player.getConfigManager().set(CONFIG_ID, value, true); + setVarp(player, CONFIG_ID, value, true); } /** diff --git a/Server/src/main/content/region/desert/quest/thetouristrap/TouristTrapPlugin.java b/Server/src/main/content/region/desert/quest/thetouristrap/TouristTrapPlugin.java index 370f262b8..f38a1f4a7 100644 --- a/Server/src/main/content/region/desert/quest/thetouristrap/TouristTrapPlugin.java +++ b/Server/src/main/content/region/desert/quest/thetouristrap/TouristTrapPlugin.java @@ -38,6 +38,8 @@ import core.tools.RandomFunction; import content.region.desert.quest.thetouristrap.TouristTrapPlugin.AnnaCartHandler.AnnaCartCutscene; import content.region.desert.quest.thetouristrap.TouristTrapPlugin.BedabinAnvilHandler.AnnaWinchHandler; +import static core.api.ContentAPIKt.*; + /** * Represents the plugin used to handle interactions for tourist trap. * @@ -429,7 +431,7 @@ public final class TouristTrapPlugin extends OptionHandler { @Override public boolean pulse() { player.getPacketDispatch().sendMessage("You bend the bars back."); - player.getConfigManager().set(907, player.getConfigManager().get(907) + 1); + setVarp(player, 907, getVarp(player, 907) + 1); return true; } }); diff --git a/Server/src/main/content/region/fremennik/rellekka/dialogue/JarvaldDialogue.java b/Server/src/main/content/region/fremennik/rellekka/dialogue/JarvaldDialogue.java index 4e041a938..9816e764b 100644 --- a/Server/src/main/content/region/fremennik/rellekka/dialogue/JarvaldDialogue.java +++ b/Server/src/main/content/region/fremennik/rellekka/dialogue/JarvaldDialogue.java @@ -10,6 +10,8 @@ import kotlin.Unit; import core.game.world.GameWorld; import core.game.world.map.Location; +import static core.api.ContentAPIKt.*; + /** * Handles the jarvald dialogue. * @author Vexia @@ -131,7 +133,7 @@ public final class JarvaldDialogue extends DialoguePlugin { stage++; break; case 31: - player.getConfigManager().set(520, 1 << 13, true); + setVarp(player, 520, 1 << 13, true); end(); break; case 32: @@ -232,7 +234,7 @@ public final class JarvaldDialogue extends DialoguePlugin { stage = 36; return; } - if (player.getConfigManager().get(520) == 0) { + if (getVarp(player, 520) == 0) { npc("This should not concern you, outerlander.", "I am awaiting other Fremenniks to join me on an", "expedition to Waterbirth Island."); stage = 21; } else { diff --git a/Server/src/main/content/region/kandarin/handlers/StoneCircleZone.kt b/Server/src/main/content/region/kandarin/handlers/StoneCircleZone.kt index f1a3ae2c8..c276acc83 100644 --- a/Server/src/main/content/region/kandarin/handlers/StoneCircleZone.kt +++ b/Server/src/main/content/region/kandarin/handlers/StoneCircleZone.kt @@ -7,6 +7,7 @@ import core.game.world.map.zone.ZoneBorders import core.game.world.map.zone.ZoneBuilder import core.plugin.Initializable import core.plugin.Plugin +import core.api.* /** * Handles the stone circle zone south of Ardougne. @@ -33,15 +34,15 @@ class StoneCircleZone : MapZone("stone circle", true), Plugin { override fun enter(e: Entity): Boolean { if (e is Player) { - e.varpManager.get(1184).setVarbit(28, 1).send(e) + setVarbit(e, 4833, 1) } return super.enter(e) } override fun leave(e: Entity, logout: Boolean): Boolean { if (!logout && e is Player) { - e.varpManager.get(1184).setVarbit(28, 0).send(e) + setVarbit(e, 4833, 0) } return super.leave(e, logout) } -} \ No newline at end of file +} diff --git a/Server/src/main/content/region/kandarin/quest/dwarfcannon/CaptainLawgofDialogue.java b/Server/src/main/content/region/kandarin/quest/dwarfcannon/CaptainLawgofDialogue.java index b5ee1ea7b..a43f229ad 100644 --- a/Server/src/main/content/region/kandarin/quest/dwarfcannon/CaptainLawgofDialogue.java +++ b/Server/src/main/content/region/kandarin/quest/dwarfcannon/CaptainLawgofDialogue.java @@ -5,6 +5,8 @@ import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.game.node.item.Item; +import static core.api.ContentAPIKt.*; + /** * Handles captains lawgof dialogue. * @author Vexia @@ -95,7 +97,7 @@ public class CaptainLawgofDialogue extends DialoguePlugin { case 10: switch (stage) { case 0: - if (player.getConfigManager().get(1) == 2016) { + if (DwarfCannon.allRailsFixed(player)) { npc("Well done, trooper! The goblins seems to have stopped", "getting in. I think you've done the job!"); stage = 105; break; @@ -182,7 +184,7 @@ public class CaptainLawgofDialogue extends DialoguePlugin { stage++; break; case 112: - player.getConfigManager().set(0, 3, true); + setVarp(player, 0, 3, true); quest.setStage(player, 20); end(); break; @@ -236,7 +238,7 @@ public class CaptainLawgofDialogue extends DialoguePlugin { break; case 10: end(); - player.getConfigManager().set(0, 5, true); + setVarp(player, 0, 5, true); player.getInventory().remove(DwarfCannon.DWARF_REMAINS); quest.setStage(player, 30); break; @@ -293,7 +295,7 @@ public class CaptainLawgofDialogue extends DialoguePlugin { break; case 8: player.getInventory().add(DwarfCannon.TOOL_KIT, player); - player.getConfigManager().set(0, 7); + setVarp(player, 0, 7); quest.setStage(player, 50); end(); break; @@ -393,7 +395,7 @@ public class CaptainLawgofDialogue extends DialoguePlugin { case 13: player.getInventory().remove(DwarfCannon.TOOL_KIT); player.sendMessage("You give the toolkit back to Captain Lawgof."); - player.getConfigManager().set(0, 9, true); + setVarp(player, 0, 9, true); quest.setStage(player, 70); end(); break; diff --git a/Server/src/main/content/region/kandarin/quest/dwarfcannon/DwarfCannon.java b/Server/src/main/content/region/kandarin/quest/dwarfcannon/DwarfCannon.java index 6e52ee494..37af05ec3 100644 --- a/Server/src/main/content/region/kandarin/quest/dwarfcannon/DwarfCannon.java +++ b/Server/src/main/content/region/kandarin/quest/dwarfcannon/DwarfCannon.java @@ -7,6 +7,8 @@ import core.plugin.Initializable; import core.plugin.ClassScanner; import core.game.node.entity.skill.Skills; +import static core.api.ContentAPIKt.*; + /** * Represents the dwarf cannon quest. * @author Vexia @@ -38,6 +40,7 @@ public class DwarfCannon extends Quest { * The mould item. */ public static final Item MOULD = new Item(4); + public static int[] railVarbits = new int[] { 2240, 2241, 2242, 2243, 2244, 2245 }; /** * Constructs a new {@Code DwarfCannon} {@Code Object} @@ -64,7 +67,7 @@ public class DwarfCannon extends Quest { line(player, "I can start this quest by speaking to Lawgof the DwarvenCaptain of the Black Watch , he is defending an areaNorth-west of the Fishing Guild against goblin attack.", 11); break; case 10: - line(player, "I have spoken to Captain Lawgof, he recruited me into theBlack Guard and asked me to help the dwarves." + (player.getConfigManager().get(1) == 2016 ? "I have repaired all the broken railings,I should report back to Captain Lawgof." : "My first task is to fix the broken railingsin the dwarves defensive perimeter."), 11); + line(player, "I have spoken to Captain Lawgof, he recruited me into theBlack Guard and asked me to help the dwarves." + (allRailsFixed(player) ? "I have repaired all the broken railings,I should report back to Captain Lawgof." : "My first task is to fix the broken railingsin the dwarves defensive perimeter."), 11); break; case 20: line(player, "I have spoken to Captain Lawgof, he recruited me into theBlack Guard and asked me to help the dwarves." + (player.hasItem(DWARF_REMAINS) ? "I went to the watchtower where I found the remains ofGilob.I should take them back to Captain Lawgof." : "I have repaired all the broken railings,Captain Lawgof has asked me to check up on his guards atthe watchtower to the South of this camp."), 11); @@ -96,7 +99,7 @@ public class DwarfCannon extends Quest { @Override public void start(Player player) { super.start(player); - player.getConfigManager().set(0, 1); + setVarp(player, 0, 1); } @Override @@ -117,9 +120,16 @@ public class DwarfCannon extends Quest { if (stage >= 100) { val = 11; } else if (stage > 0 && stage < 100) { - val = player.getConfigManager().get(0); + val = getVarp(player, 0); } return new int[] { 0, val }; } + public static boolean allRailsFixed (Player player) { + for (int i = 0; i < 6; i++) { + if (getVarbit(player, railVarbits[i]) != 1) + return false; + } + return true; + } } diff --git a/Server/src/main/content/region/kandarin/quest/dwarfcannon/DwarfCannonPlugin.java b/Server/src/main/content/region/kandarin/quest/dwarfcannon/DwarfCannonPlugin.java index 5c8031f96..7739d88cf 100644 --- a/Server/src/main/content/region/kandarin/quest/dwarfcannon/DwarfCannonPlugin.java +++ b/Server/src/main/content/region/kandarin/quest/dwarfcannon/DwarfCannonPlugin.java @@ -24,8 +24,9 @@ import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.plugin.Plugin; import core.tools.RandomFunction; +import core.game.node.scenery.Scenery; -import static core.api.ContentAPIKt.log; +import static core.api.ContentAPIKt.*; /** * Handles the dwarf cannon quest interactions. @@ -65,8 +66,8 @@ public class DwarfCannonPlugin extends OptionHandler { player.getDialogueInterpreter().sendDialogues(player, null, "This should work nicely now that I've fixed it."); return true; } - player.getConfigManager().set(1, 2041, true); - player.getConfigManager().set(0, 8, true); + //setVarp(player, 1, 2041, true); + setVarp(player, 0, 8, true); player.getQuestRepository().getQuest(DwarfCannon.NAME).setStage(player, 60); player.sendMessage("Well done! You've fixed the cannon! Better go and tell Captain Lawgof."); /* @@ -123,6 +124,7 @@ public class DwarfCannonPlugin extends OptionHandler { case 18: case 19: case 20: + int index = 15 - node.getId(); final int shift = 10 - (20 - node.getId()); player.faceLocation(node.getLocation()); player.getDialogueInterpreter().sendDialogue("The railing is broken and needs to be replaced."); @@ -167,8 +169,8 @@ public class DwarfCannonPlugin extends OptionHandler { } player.getInventory().remove(new Item(14)); player.sendMessage("The railing is now fixed."); - player.getConfigManager().set(1, player.getConfigManager().get(1) + (1 << shift), true); - if (player.getConfigManager().get(1) == 2016) { + setVarbit(player, ((Scenery) node).getDefinition().getVarbitID(), 1, true); + if (DwarfCannon.allRailsFixed(player)) { player.getDialogueInterpreter().sendDialogues(player, null, "I've fixed all these railings now."); } return true; @@ -193,7 +195,7 @@ public class DwarfCannonPlugin extends OptionHandler { if (!player.getInventory().hasSpaceFor(DwarfCannon.DWARF_REMAINS)) { return; } - player.getConfigManager().set(0, 4); + setVarp(player, 0, 4, true); player.getInventory().add(DwarfCannon.DWARF_REMAINS); } @@ -205,13 +207,14 @@ public class DwarfCannonPlugin extends OptionHandler { return true; } quest.setStage(player, 40); - player.getConfigManager().set(0, 6, true); + setVarp(player, 0, 6, true); spawnLollk(player); break; } return true; } + /** * Spawns the lollk npc. * @param player the player. @@ -303,8 +306,9 @@ public class DwarfCannonPlugin extends OptionHandler { part.interact(player, this.tool, toggled[part.ordinal()]); if (toggled[0] && toggled[1] && toggled[2]) { player.lock(5); - player.getConfigManager().set(1, 2041, true); - player.getConfigManager().set(0, 8, true); + + //setVarp(player, 1, 2041, true); + //setVarp(player, 0, 8, true); player.getQuestRepository().getQuest(DwarfCannon.NAME).setStage(player, 60); player.sendMessage("Well done! You've fixed the cannon! Better go and tell Captain Lawgof."); GameWorld.getPulser().submit(new Pulse(5, player) { @@ -315,7 +319,7 @@ public class DwarfCannonPlugin extends OptionHandler { } }); } - player.sendMessage("Interacting with a part. Toggled=" + toggled[part.ordinal()] + ", configVal=" + player.getConfigManager().get(1) + "."); + //player.sendMessage("Interacting with a part. Toggled=" + toggled[part.ordinal()] + ", configVal=" + player.getConfigManager().get(1) + "."); return true; } @@ -358,7 +362,7 @@ public class DwarfCannonPlugin extends OptionHandler { * @param player the player. */ public Tool select(Player player) { - player.getConfigManager().set(1, configValue); + //setVarp(player, 1, configValue); return this; } @@ -436,7 +440,7 @@ public class DwarfCannonPlugin extends OptionHandler { * @param toggled if toggled on. */ public void interact(Player player, Tool tool, boolean toggled) { - player.getConfigManager().set(1, toggled ? getConfigValue() : tool.getConfigValue()); + //setVarp(player, 1, toggled ? getConfigValue() : tool.getConfigValue()); } /** diff --git a/Server/src/main/content/region/kandarin/quest/dwarfcannon/NulodionDialogue.java b/Server/src/main/content/region/kandarin/quest/dwarfcannon/NulodionDialogue.java index b38a3004d..be7fa1847 100644 --- a/Server/src/main/content/region/kandarin/quest/dwarfcannon/NulodionDialogue.java +++ b/Server/src/main/content/region/kandarin/quest/dwarfcannon/NulodionDialogue.java @@ -6,6 +6,8 @@ import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.game.node.item.Item; +import static core.api.ContentAPIKt.*; + /** * Handles captains lawgof dialogue. * @author Vexia @@ -93,7 +95,7 @@ public class NulodionDialogue extends DialoguePlugin { stage++; break; case 7: - player.getConfigManager().set(0, 10); + setVarp(player, 0, 10); quest.setStage(player, 80); player.sendMessage("The Cannon Engineer gives you some notes and a mould."); player.getInventory().add(DwarfCannon.NULODION_NOTES, player); diff --git a/Server/src/main/content/region/kandarin/quest/waterfall/WaterFall.java b/Server/src/main/content/region/kandarin/quest/waterfall/WaterFall.java index bf3732003..467bef439 100644 --- a/Server/src/main/content/region/kandarin/quest/waterfall/WaterFall.java +++ b/Server/src/main/content/region/kandarin/quest/waterfall/WaterFall.java @@ -62,7 +62,6 @@ public class WaterFall extends Quest { public void finish(Player player) { super.finish(player); player.getQuestRepository().syncronizeTab(player); - player.getConfigManager().set(101, player.getQuestRepository().getPoints()); player.getPacketDispatch().sendString("1 Quest Point", 277, 8+ 2); player.getPacketDispatch().sendString("13,750 Strength XP", 277, 9+ 2); diff --git a/Server/src/main/content/region/kandarin/seers/handlers/RangingGuildPlugin.java b/Server/src/main/content/region/kandarin/seers/handlers/RangingGuildPlugin.java index 5db42eeb0..5589a4d69 100644 --- a/Server/src/main/content/region/kandarin/seers/handlers/RangingGuildPlugin.java +++ b/Server/src/main/content/region/kandarin/seers/handlers/RangingGuildPlugin.java @@ -34,6 +34,8 @@ import core.game.world.map.RegionManager; import core.game.world.update.flag.context.Animation; import core.plugin.Plugin; +import static core.api.ContentAPIKt.*; + /** * Represents the plugin used for the ranging guild. * @@ -1115,9 +1117,9 @@ public final class RangingGuildPlugin extends OptionHandler { private void showInterface(int points, int arrowsLeft, int target, String msg) { player.getInterfaceManager().openComponent(325); - player.getConfigManager().set(156, 11 - arrowsLeft); - player.getConfigManager().set(157, points); - player.getConfigManager().set(158, target); + setVarp(player, 156, 11 - arrowsLeft); + setVarp(player, 157, points); + setVarp(player, 158, target); player.getPacketDispatch().sendString(msg, 325, 32); } diff --git a/Server/src/main/content/region/kandarin/seers/quest/elementalworkshop/EWListeners.kt b/Server/src/main/content/region/kandarin/seers/quest/elementalworkshop/EWListeners.kt index b5439df82..fda3e2fe5 100644 --- a/Server/src/main/content/region/kandarin/seers/quest/elementalworkshop/EWListeners.kt +++ b/Server/src/main/content/region/kandarin/seers/quest/elementalworkshop/EWListeners.kt @@ -334,7 +334,7 @@ class EWListeners : InteractionListener { sendMessage(player, "You empty the lava into the furnace.") } 2 -> { - setVarbit(player, Vars.VARP_QUEST_ELEMENTAL_WORKSHOP, FURNACE_STATE, ENABLED, true) + setVarbit(player, FURNACE_STATE, ENABLED, true) sendMessage(player, "The furnace bursts to life.") return true } @@ -469,7 +469,7 @@ class EWListeners : InteractionListener { sendMessage(player, "You turn the handle.") } 3 -> { - setVarbit(player, Vars.VARP_QUEST_ELEMENTAL_WORKSHOP, offset, enabled, true) + setVarbit(player, offset, enabled, true) return true } } @@ -491,8 +491,8 @@ class EWListeners : InteractionListener { if (EWUtils.waterWheelEnabled(player)) { playAudio(player, pullLeverDisabledSFX) sendMessage(player, "You hear the sound of a water wheel coming to a standstill.") - setVarbit(player, Vars.VARP_QUEST_ELEMENTAL_WORKSHOP, WATER_WHEEL_STATE, DISABLED, true) - setVarbit(player, Vars.VARP_QUEST_ELEMENTAL_WORKSHOP, BELLOWS_STATE, DISABLED, true) + setVarbit(player, WATER_WHEEL_STATE, DISABLED, true) + setVarbit(player, BELLOWS_STATE, DISABLED, true) return@on true } @@ -500,15 +500,15 @@ class EWListeners : InteractionListener { if (!EWUtils.leftWaterControlEnabled(player) || !EWUtils.rightWaterControlEnabled(player)) { playAudio(player, pullLeverResetGatesSFX) sendMessage(player, "You hear the sound of the flow gates resetting.") - setVarbit(player, Vars.VARP_QUEST_ELEMENTAL_WORKSHOP, LEFT_WATER_CONTROL_STATE, DISABLED, true) - setVarbit(player, Vars.VARP_QUEST_ELEMENTAL_WORKSHOP, RIGHT_WATER_CONTROL_STATE, DISABLED, true) + setVarbit(player, LEFT_WATER_CONTROL_STATE, DISABLED, true) + setVarbit(player, RIGHT_WATER_CONTROL_STATE, DISABLED, true) return@on true } // If both of the above are false, the water wheel can start running playAudio(player, pullLeverEnabledSFX) sendMessage(player, "You hear the sound of a water wheel starting up.") - setVarbit(player, Vars.VARP_QUEST_ELEMENTAL_WORKSHOP, WATER_WHEEL_STATE, ENABLED, true) + setVarbit(player, WATER_WHEEL_STATE, ENABLED, true) return@on true } @@ -573,13 +573,13 @@ class EWListeners : InteractionListener { // Bellows lever "OFF" state if (EWUtils.bellowsEnabled(player)) { sendMessage(player, "The bellows stop pumping air.") - setVarbit(player, Vars.VARP_QUEST_ELEMENTAL_WORKSHOP, BELLOWS_STATE, DISABLED, true) + setVarbit(player, BELLOWS_STATE, DISABLED, true) return@on true } // Bellows lever "ON" state sendMessage(player, "The bellows pump air down the pipe.") - setVarbit(player, Vars.VARP_QUEST_ELEMENTAL_WORKSHOP, BELLOWS_STATE, ENABLED, true) + setVarbit(player, BELLOWS_STATE, ENABLED, true) return@on true } } @@ -605,4 +605,4 @@ class EWListeners : InteractionListener { } } } -} \ No newline at end of file +} diff --git a/Server/src/main/content/region/kandarin/seers/quest/elementalworkshop/EWUtils.kt b/Server/src/main/content/region/kandarin/seers/quest/elementalworkshop/EWUtils.kt index 7c2499475..142f10c69 100644 --- a/Server/src/main/content/region/kandarin/seers/quest/elementalworkshop/EWUtils.kt +++ b/Server/src/main/content/region/kandarin/seers/quest/elementalworkshop/EWUtils.kt @@ -3,9 +3,9 @@ package content.region.kandarin.seers.quest.elementalworkshop import content.global.handlers.iface.BookLine import content.global.handlers.iface.Page import content.global.handlers.iface.PageSet -import core.api.getVarbitValue import core.game.node.entity.player.Player import org.rs09.consts.Vars +import core.api.* /** * Utils for the Elemental Workshop I quest @@ -71,37 +71,37 @@ object EWUtils { ) /* OFFSETS */ - const val LEFT_WATER_CONTROL_STATE = 3 - const val RIGHT_WATER_CONTROL_STATE = 4 - const val WATER_WHEEL_STATE = 5 - const val FURNACE_STATE = 7 - const val BELLOWS_STATE = 9 + const val LEFT_WATER_CONTROL_STATE = 2058 + const val RIGHT_WATER_CONTROL_STATE = 2059 + const val WATER_WHEEL_STATE = 2060 + const val FURNACE_STATE = 2062 + const val BELLOWS_STATE = 2063 fun leftWaterControlBit(player: Player): Int { - return getVarbitValue(player, Vars.VARP_QUEST_ELEMENTAL_WORKSHOP, LEFT_WATER_CONTROL_STATE) + return getVarbit(player, LEFT_WATER_CONTROL_STATE) } fun rightWaterControlBit(player: Player): Int { - return getVarbitValue(player, Vars.VARP_QUEST_ELEMENTAL_WORKSHOP, RIGHT_WATER_CONTROL_STATE) + return getVarbit(player, RIGHT_WATER_CONTROL_STATE) } fun leftWaterControlEnabled(player: Player): Boolean { - return getVarbitValue(player, Vars.VARP_QUEST_ELEMENTAL_WORKSHOP, LEFT_WATER_CONTROL_STATE) == 1 + return getVarbit(player, LEFT_WATER_CONTROL_STATE) == 1 } fun rightWaterControlEnabled(player: Player): Boolean { - return getVarbitValue(player, Vars.VARP_QUEST_ELEMENTAL_WORKSHOP, RIGHT_WATER_CONTROL_STATE) == 1 + return getVarbit(player, RIGHT_WATER_CONTROL_STATE) == 1 } fun waterWheelEnabled(player: Player): Boolean { - return getVarbitValue(player, Vars.VARP_QUEST_ELEMENTAL_WORKSHOP, WATER_WHEEL_STATE) == 1 + return getVarbit(player, WATER_WHEEL_STATE) == 1 } fun bellowsEnabled(player: Player): Boolean { - return getVarbitValue(player, Vars.VARP_QUEST_ELEMENTAL_WORKSHOP, BELLOWS_STATE) == 1 + return getVarbit(player, BELLOWS_STATE) == 1 } fun currentStage(player: Player): Int { return player.questRepository.getStage("Elemental Workshop I") } -} \ No newline at end of file +} diff --git a/Server/src/main/content/region/kandarin/seers/quest/elementalworkshop/ElementalWorkshopQuest.kt b/Server/src/main/content/region/kandarin/seers/quest/elementalworkshop/ElementalWorkshopQuest.kt index bfa7fdfe3..523020ec3 100644 --- a/Server/src/main/content/region/kandarin/seers/quest/elementalworkshop/ElementalWorkshopQuest.kt +++ b/Server/src/main/content/region/kandarin/seers/quest/elementalworkshop/ElementalWorkshopQuest.kt @@ -1,9 +1,6 @@ package content.region.kandarin.seers.quest.elementalworkshop -import core.api.Commands -import core.api.addItem -import core.api.setAttribute -import core.api.setVarbit +import core.api.* import core.game.node.entity.player.Player import core.game.node.entity.player.link.quest.Quest import core.game.node.entity.skill.Skills @@ -120,8 +117,7 @@ class ElementalWorkshopQuest : Quest("Elemental Workshop I", 52, 51, 1), Command setAttribute(player, "/save:ew1:got_leather", false) setAttribute(player, "/save:ew1:bellows_fixed", false) player.questRepository.setStageNonmonotonic(player.questRepository.forIndex(52), 0) - player.varpManager.get(Vars.VARP_QUEST_ELEMENTAL_WORKSHOP).clearBitRange(0, 31) - player.varpManager.get(Vars.VARP_QUEST_ELEMENTAL_WORKSHOP).send(player) + setVarp(player, Vars.VARP_QUEST_ELEMENTAL_WORKSHOP, 0) player.teleport(Location.create(2715, 3481, 0)) player.inventory.clear() addItem(player, Items.KNIFE_946) @@ -138,11 +134,11 @@ class ElementalWorkshopQuest : Quest("Elemental Workshop I", 52, 51, 1), Command setAttribute(player, "/save:ew1:got_leather", true) setAttribute(player, "/save:ew1:bellows_fixed", true) player.questRepository.setStageNonmonotonic(player.questRepository.forIndex(52), 95) - setVarbit(player, Vars.VARP_QUEST_ELEMENTAL_WORKSHOP, EWUtils.BELLOWS_STATE, enabled, true) - setVarbit(player, Vars.VARP_QUEST_ELEMENTAL_WORKSHOP, EWUtils.FURNACE_STATE, enabled, true) - setVarbit(player, Vars.VARP_QUEST_ELEMENTAL_WORKSHOP, EWUtils.WATER_WHEEL_STATE, enabled, true) - setVarbit(player, Vars.VARP_QUEST_ELEMENTAL_WORKSHOP, EWUtils.RIGHT_WATER_CONTROL_STATE, enabled, true) - setVarbit(player, Vars.VARP_QUEST_ELEMENTAL_WORKSHOP, EWUtils.LEFT_WATER_CONTROL_STATE, enabled, true) + setVarbit(player, EWUtils.BELLOWS_STATE, enabled, true) + setVarbit(player, EWUtils.FURNACE_STATE, enabled, true) + setVarbit(player, EWUtils.WATER_WHEEL_STATE, enabled, true) + setVarbit(player, EWUtils.RIGHT_WATER_CONTROL_STATE, enabled, true) + setVarbit(player, EWUtils.LEFT_WATER_CONTROL_STATE, enabled, true) } } -} \ No newline at end of file +} diff --git a/Server/src/main/content/region/karamja/quest/junglepotion/JunglePotion.java b/Server/src/main/content/region/karamja/quest/junglepotion/JunglePotion.java index 8b7027c9c..9263035b8 100644 --- a/Server/src/main/content/region/karamja/quest/junglepotion/JunglePotion.java +++ b/Server/src/main/content/region/karamja/quest/junglepotion/JunglePotion.java @@ -13,6 +13,8 @@ import core.plugin.ClassScanner; import core.tools.RandomFunction; import core.tools.StringUtils; +import static core.api.ContentAPIKt.*; + /** * The main type or the jungle potion quest. * @author Vexia @@ -77,8 +79,11 @@ public final class JunglePotion extends Quest { player.getPacketDispatch().sendItemZoomOnInterface(Herbs.VOLENCIA_MOSS.getProduct().getId(), 235, 277, 3 + 2); player.getSkills().addExperience(Skills.HERBLORE, 775); player.getQuestRepository().syncronizeTab(player); - player.varpManager.get(534).setVarbit(15,2).setVarbit(18,2).setVarbit(21,2).setVarbit(24,2).setVarbit(12,2).send(player); - player.varpManager.flagSave(534, false); + setVarbit(player, 897, 2); + setVarbit(player, 898, 2); + setVarbit(player, 899, 2); + setVarbit(player, 900, 2); + setVarbit(player, 896, 2, true); } @Override diff --git a/Server/src/main/content/region/karamja/tzhaar/handlers/TzhaarFightPitsPlugin.java b/Server/src/main/content/region/karamja/tzhaar/handlers/TzhaarFightPitsPlugin.java index d7e442493..5070b76ef 100644 --- a/Server/src/main/content/region/karamja/tzhaar/handlers/TzhaarFightPitsPlugin.java +++ b/Server/src/main/content/region/karamja/tzhaar/handlers/TzhaarFightPitsPlugin.java @@ -31,6 +31,8 @@ import core.game.world.map.zone.ZoneBorders; import core.game.world.map.zone.ZoneRestriction; import core.tools.RandomFunction; +import static core.api.ContentAPIKt.*; + /** * Handles the Tzhaar Fight pits. * @author Emperor @@ -353,7 +355,7 @@ public final class TzhaarFightPitsPlugin extends ActivityPlugin { } int size = (LOBBY_PLAYERS.size() + WAR_PLAYERS.size()) - 1; if (!WAR_PLAYERS.isEmpty()) { - WAR_PLAYERS.get(0).getConfigManager().set(560, size); + setVarp(WAR_PLAYERS.get(0), 560, size); } for (Iterator it = LOBBY_PLAYERS.iterator(); it.hasNext();) { Player p = it.next(); @@ -365,7 +367,7 @@ public final class TzhaarFightPitsPlugin extends ActivityPlugin { } p.getSkullManager().setSkullCheckDisabled(true); p.getSkullManager().setWilderness(true); - p.getConfigManager().set(560, size); + setVarp(p, 560, size); p.getProperties().setTeleportLocation(getZoneDestination()); p.getInteraction().set(Option._P_ATTACK); tokkulAmount += p.getProperties().getCurrentCombatLevel(); @@ -447,7 +449,7 @@ public final class TzhaarFightPitsPlugin extends ActivityPlugin { */ public static void sendPlayersRemaining(int value) { for (Player p : WAR_PLAYERS) { - p.getConfigManager().set(560, value); + setVarp(p, 560, value); } } diff --git a/Server/src/main/content/region/misc/tutisland/dialogue/TutorialMagicTutorDialogue.kt b/Server/src/main/content/region/misc/tutisland/dialogue/TutorialMagicTutorDialogue.kt index 4bee2197f..ac7b7095f 100644 --- a/Server/src/main/content/region/misc/tutisland/dialogue/TutorialMagicTutorDialogue.kt +++ b/Server/src/main/content/region/misc/tutisland/dialogue/TutorialMagicTutorDialogue.kt @@ -137,7 +137,7 @@ class TutorialMagicTutorDialogue(player: Player? = null) : core.game.dialogue.Di 40 -> { setAttribute(player, "/save:tutorial:complete", true) - setVarbit(player, 1021, 0, 0) + setVarbit(player, 3756, 0) teleport(player, Location.create(3233, 3230), TeleportManager.TeleportType.NORMAL) closeOverlay(player) @@ -202,4 +202,4 @@ class TutorialMagicTutorDialogue(player: Player? = null) : core.game.dialogue.Di return intArrayOf(NPCs.MAGIC_INSTRUCTOR_946) } -} \ No newline at end of file +} diff --git a/Server/src/main/content/region/misc/tutisland/dialogue/TutorialQuestGuideDialogue.kt b/Server/src/main/content/region/misc/tutisland/dialogue/TutorialQuestGuideDialogue.kt index 98c0c2ace..305a488b2 100644 --- a/Server/src/main/content/region/misc/tutisland/dialogue/TutorialQuestGuideDialogue.kt +++ b/Server/src/main/content/region/misc/tutisland/dialogue/TutorialQuestGuideDialogue.kt @@ -67,7 +67,7 @@ class TutorialQuestGuideDialogue(player: Player? = null) : core.game.dialogue.Di "" ) ) - setVarbit(player, 1021, 0, 3) + setVarbit(player, 3756, 3) player.interfaceManager.openTab(Component(Components.QUESTJOURNAL_V2_274)) } 28 -> when(stage) @@ -119,4 +119,4 @@ class TutorialQuestGuideDialogue(player: Player? = null) : core.game.dialogue.Di return intArrayOf(NPCs.QUEST_GUIDE_949) } -} \ No newline at end of file +} diff --git a/Server/src/main/content/region/misc/tutisland/handlers/TutorialStage.kt b/Server/src/main/content/region/misc/tutisland/handlers/TutorialStage.kt index e26b52a13..0fafa1c84 100644 --- a/Server/src/main/content/region/misc/tutisland/handlers/TutorialStage.kt +++ b/Server/src/main/content/region/misc/tutisland/handlers/TutorialStage.kt @@ -77,7 +77,7 @@ object TutorialStage { 1 -> { hideTabs(player, login) player.interfaceManager.openTab(Component(Components.OPTIONS_261)) - setVarbit(player, 1021, 0, 12) + setVarbit(player, 3756, 12) removeHintIcon(player) Component.setUnclosable( player, @@ -92,7 +92,7 @@ object TutorialStage { } 2 -> { - setVarbit(player, 1021, 0, 0) + setVarbit(player, 3756, 0) hideTabs(player, login) registerHintIcon(player, Repository.findNPC(945)!!) Component.setUnclosable( @@ -144,7 +144,7 @@ object TutorialStage { 5 -> { hideTabs(player, login) player.interfaceManager.openTab(Component(Components.INVENTORY_149)) - setVarbit(player, 1021, 0, 4) + setVarbit(player, 3756, 4) removeHintIcon(player) Component.setUnclosable( player, @@ -160,7 +160,7 @@ object TutorialStage { 6 -> { hideTabs(player, login) - setVarbit(player, 1021, 0, 0) + setVarbit(player, 3756, 4) Component.setUnclosable( player, player.dialogueInterpreter.sendPlaneMessageWithBlueTitle( @@ -219,7 +219,7 @@ object TutorialStage { 10 -> { hideTabs(player, login) player.interfaceManager.openTab(Component(Components.STATS_320)) - setVarbit(player, 1021, 0, 2) + setVarbit(player, 3756, 2) Component.setUnclosable( player, player.dialogueInterpreter.sendPlaneMessageWithBlueTitle( @@ -234,7 +234,7 @@ object TutorialStage { 11 -> { hideTabs(player, login) - setVarbit(player, 1021, 0, 0) + setVarbit(player, 3756, 2) registerHintIcon(player, Repository.findNPC(943)!!) Component.setUnclosable( player, @@ -250,7 +250,7 @@ object TutorialStage { 12 -> { hideTabs(player, login) - setVarbit(player, 406, 0, 2) + setVarp(player, 406, 2) removeHintIcon(player) registerHintIcon(player, Repository.findNPC(952)!!) Component.setUnclosable( @@ -402,7 +402,7 @@ object TutorialStage { hideTabs(player, login) removeHintIcon(player) player.interfaceManager.openTab(Component(Components.MUSIC_V3_187)) - setVarbit(player, 1021, 0, 14) + setVarbit(player, 3756, 14) Component.setUnclosable( player, player.dialogueInterpreter.sendScrollMessageWithBlueTitle( @@ -418,7 +418,7 @@ object TutorialStage { 22 -> { hideTabs(player, login) - setVarbit(player, 1021, 0, 0) + setVarbit(player, 3756, 0) registerHintIcon(player, Location.create(3072, 3090, 0), 125) Component.setUnclosable( player, @@ -435,7 +435,7 @@ object TutorialStage { 23 -> { hideTabs(player, login) - setVarbit(player, 1021, 0, 13) + setVarbit(player, 3756, 13) removeHintIcon(player) player.interfaceManager.openTab(Component(Components.EMOTES_464)) stopWalk(player) @@ -454,7 +454,7 @@ object TutorialStage { 24 -> { hideTabs(player, login) - setVarbit(player, 1021, 0, 0) + setVarbit(player, 3756, 0) player.locks.lockMovement(100000) Component.setUnclosable( player, @@ -517,7 +517,7 @@ object TutorialStage { 28 -> { hideTabs(player, login) - setVarbit(player, 1021, 0, 0) + setVarbit(player, 3756, 0) Component.setUnclosable( player, player.dialogueInterpreter.sendPlaneMessageWithBlueTitle( @@ -533,7 +533,7 @@ object TutorialStage { 29 -> { hideTabs(player, login) removeHintIcon(player) - setVarbit(player, 1021, 0, 0) + setVarbit(player, 3756, 0) registerHintIcon(player, Location.create(3088, 3119, 0), 15) Component.setUnclosable( player, @@ -550,7 +550,7 @@ object TutorialStage { 30 -> { hideTabs(player, login) removeHintIcon(player) - setVarbit(player, 1021, 0, 0) + setVarbit(player, 3756, 0) registerHintIcon(player, Repository.findNPC(948)!!) Component.setUnclosable( player, @@ -794,7 +794,7 @@ object TutorialStage { hideTabs(player, login) removeHintIcon(player) player.interfaceManager.openTab(Component(Components.WORNITEMS_387)) - setVarbit(player, 1021, 0, 5) + setVarbit(player, 3756, 5) Component.setUnclosable( player, player.dialogueInterpreter.sendPlaneMessageWithBlueTitle( @@ -810,7 +810,7 @@ object TutorialStage { 46 -> { hideTabs(player, login) - setVarbit(player, 1021, 0, 0) + setVarbit(player, 3756, 0) Component.setUnclosable( player, player.dialogueInterpreter.sendPlaneMessageWithBlueTitle( @@ -857,7 +857,7 @@ object TutorialStage { 49 -> { hideTabs(player, login) - setVarbit(player, 1021, 0, 1) + setVarbit(player, 3756, 1) var wepInter = player.getExtension(WeaponInterface::class.java) if(wepInter == null) { @@ -879,7 +879,7 @@ object TutorialStage { 50 -> { hideTabs(player, login) - setVarbit(player, 1021, 0, 0) + setVarbit(player, 3756, 0) registerHintIcon(player, Location.create(3110,9518,0), 75) Component.setUnclosable( player, @@ -1053,7 +1053,7 @@ object TutorialStage { hideTabs(player, login) removeHintIcon(player) player.interfaceManager.openTab(Component(Components.PRAYER_271)) - setVarbit(player, 1021, 0, 6) + setVarbit(player, 3756, 6) Component.setUnclosable( player, player.dialogueInterpreter.sendPlaneMessageWithBlueTitle( @@ -1085,7 +1085,7 @@ object TutorialStage { hideTabs(player, login) removeHintIcon(player) player.interfaceManager.openTab(Component(Components.FRIENDS2_550)) - setVarbit(player, 1021, 0, 9) + setVarbit(player, 3756, 9) Component.setUnclosable( player, player.dialogueInterpreter.sendPlaneMessageWithBlueTitle( @@ -1100,7 +1100,7 @@ object TutorialStage { 64 -> { hideTabs(player, login) - setVarbit(player, 1021, 0, 10) + setVarbit(player, 3756, 10) player.interfaceManager.openTab(Component(Components.IGNORE2_551)) player.interfaceManager.openTab(Component(Components.CLANJOIN_589)) Component.setUnclosable( @@ -1117,7 +1117,7 @@ object TutorialStage { 65 -> { hideTabs(player, login) - setVarbit(player, 1021, 0, 0) + setVarbit(player, 3756, 0) registerHintIcon(player, Repository.findNPC(945)!!) Component.setUnclosable( player, @@ -1167,7 +1167,7 @@ object TutorialStage { hideTabs(player, login) removeHintIcon(player) player.interfaceManager.openTab(Component(player.spellBookManager.spellBook)) - setVarbit(player, 1021, 0, 7) + setVarbit(player, 3756, 7) Component.setUnclosable( player, player.dialogueInterpreter.sendPlaneMessageWithBlueTitle( @@ -1274,7 +1274,7 @@ object TutorialStage { val stage = getAttribute(player, "tutorial:stage", 0) val percent = if(stage == 0) 0 else ((stage.toDouble() / 71.0) * 100.0).toInt() val barPercent = if(stage == 0) 0 else (((percent.toDouble() / 100.0) * 20.0).toInt() + 1) - setVarbit(player, 406, 0, barPercent) + setVarp(player, 406, barPercent) setInterfaceText(player, "$percent% Done", 371, 1) } @@ -1296,4 +1296,4 @@ object TutorialStage { { setAttribute(player, "tutorial:hinticon", HintIconManager.registerHintIcon(player, location, 1, -1, player.hintIconManager.freeSlot(), height, 3)) } -} \ No newline at end of file +} diff --git a/Server/src/main/content/region/misc/tutisland/handlers/iface/CharacterDesign.java b/Server/src/main/content/region/misc/tutisland/handlers/iface/CharacterDesign.java index aae2364e1..fd83dbcc5 100644 --- a/Server/src/main/content/region/misc/tutisland/handlers/iface/CharacterDesign.java +++ b/Server/src/main/content/region/misc/tutisland/handlers/iface/CharacterDesign.java @@ -7,6 +7,8 @@ import core.game.node.entity.player.link.appearance.Gender; import core.game.node.item.Item; import core.tools.RandomFunction; +import static core.api.ContentAPIKt.*; + /** * Represents the class used to handle the character design. * @author Emperor @@ -147,7 +149,7 @@ public final class CharacterDesign { player.getPacketDispatch().sendInterfaceConfig(771, 22, false); player.getPacketDispatch().sendInterfaceConfig(771, 92, false); player.getPacketDispatch().sendInterfaceConfig(771, 97, false); - player.getConfigManager().set(1262, player.getAppearance().isMale()); + setVarp(player, 1262, player.getAppearance().isMale() ? 1 : 0); } public static void reopen(final Player player) { @@ -163,7 +165,7 @@ public final class CharacterDesign { player.getPacketDispatch().sendInterfaceConfig(771, 22, false); player.getPacketDispatch().sendInterfaceConfig(771, 92, false); player.getPacketDispatch().sendInterfaceConfig(771, 97, false); - player.getConfigManager().set(1262, player.getAppearance().isMale()); + setVarp(player, 1262, player.getAppearance().isMale() ? 1 : 0); } @@ -243,7 +245,7 @@ public final class CharacterDesign { */ private static void changeGender(Player player, boolean male) { player.setAttribute("male", male); - player.getConfigManager().set(1262, male ? 1 : -1); + setVarp(player, 1262, male ? 1 : 0); reset(player); } diff --git a/Server/src/main/content/region/misc/zanaris/handlers/FairyRingPlugin.kt b/Server/src/main/content/region/misc/zanaris/handlers/FairyRingPlugin.kt index c8bbff281..37072b1e5 100644 --- a/Server/src/main/content/region/misc/zanaris/handlers/FairyRingPlugin.kt +++ b/Server/src/main/content/region/misc/zanaris/handlers/FairyRingPlugin.kt @@ -56,7 +56,7 @@ class FairyRingPlugin : InteractionListener { player.removeAttribute("fairy-delay") player.removeAttribute("fairy_location_combo") for (i in 0..2) { - player.configManager[816 + i] = 0 + setVarp(player, 816 + i, 0) } } diff --git a/Server/src/main/content/region/misthalin/barbvillage/stronghold/playersafety/PSOptionHandler.java b/Server/src/main/content/region/misthalin/barbvillage/stronghold/playersafety/PSOptionHandler.java index b43269175..742b4be80 100644 --- a/Server/src/main/content/region/misthalin/barbvillage/stronghold/playersafety/PSOptionHandler.java +++ b/Server/src/main/content/region/misthalin/barbvillage/stronghold/playersafety/PSOptionHandler.java @@ -27,6 +27,9 @@ import core.plugin.Plugin; import content.region.misthalin.barbvillage.stronghold.playersafety.StrongHoldOfPlayerSafetyPlugin.JailPlaques; +import static core.api.ContentAPIKt.*; + + /** * @author Tyler Telis */ @@ -57,7 +60,7 @@ public class PSOptionHandler extends OptionHandler { @Override public boolean handle(Player player, Node node, String option) { - int config = player.getConfigManager().get(1203); + int config = getVarp(player, 1203); boolean locked = config == (1 << 29) || config == (0 << 26); switch (node.getId()) { case 29577:// chest @@ -93,7 +96,7 @@ public class PSOptionHandler extends OptionHandler { player.sendMessage("You hear the cogs and gears moving and a distant unlocking sound."); config += (1 << 26); } - player.getConfigManager().set(1203, config, true); + setVarp(player, 1203, config, true); return true; case 29624: if (locked) { diff --git a/Server/src/main/content/region/misthalin/barbvillage/stronghold/playersafety/ProfessorHenryDialogue.java b/Server/src/main/content/region/misthalin/barbvillage/stronghold/playersafety/ProfessorHenryDialogue.java index 52c459993..4af1b5680 100644 --- a/Server/src/main/content/region/misthalin/barbvillage/stronghold/playersafety/ProfessorHenryDialogue.java +++ b/Server/src/main/content/region/misthalin/barbvillage/stronghold/playersafety/ProfessorHenryDialogue.java @@ -8,6 +8,8 @@ import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.Item; +import static core.api.ContentAPIKt.*; + /** * @author Tyler Telis */ @@ -182,10 +184,9 @@ public class ProfessorHenryDialogue extends DialoguePlugin { * @param player the player. */ private void showReward(Player player) { - player.getConfigManager().set(1203, 1 << 29, true); + setVarp(player, 1203, 1 << 29, true); player.getSavedData().getGlobalData().setTestStage(3); player.getQuestRepository().syncronizeTab(player); - player.getConfigManager().set(101, player.getQuestRepository().getPoints()); player.getInterfaceManager().open(new Component(277)); for (int i = 9; i < 18; i++) { player.getPacketDispatch().sendString("", 277, i); diff --git a/Server/src/main/content/region/misthalin/dorgeshuun/quest/thelosttribe/DukeHoracioTLTDialogue.kt b/Server/src/main/content/region/misthalin/dorgeshuun/quest/thelosttribe/DukeHoracioTLTDialogue.kt index 13984e3fc..f3c223158 100644 --- a/Server/src/main/content/region/misthalin/dorgeshuun/quest/thelosttribe/DukeHoracioTLTDialogue.kt +++ b/Server/src/main/content/region/misthalin/dorgeshuun/quest/thelosttribe/DukeHoracioTLTDialogue.kt @@ -1,6 +1,6 @@ package content.region.misthalin.dorgeshuun.quest.thelosttribe -import core.api.addItemOrDrop +import core.api.* import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.item.Item @@ -217,7 +217,7 @@ class DukeHoracioTLTDialogue(val questStage: Int) : DialogueFile() { ) addItemOrDrop(player!!, Items.PEACE_TREATY_5012) player!!.questRepository.getQuest("Lost Tribe").setStage(player, 50) - player!!.varpManager.get(465).setVarbit(0, 9).send(player!!) + setVarbit(player!!, 532, 9, true) stage = END_DIALOGUE } } @@ -227,4 +227,4 @@ class DukeHoracioTLTDialogue(val questStage: Int) : DialogueFile() { abandonFile() } } -} \ No newline at end of file +} diff --git a/Server/src/main/content/region/misthalin/dorgeshuun/quest/thelosttribe/LostTribe.kt b/Server/src/main/content/region/misthalin/dorgeshuun/quest/thelosttribe/LostTribe.kt index 1bd8ac31c..eb3227cc7 100644 --- a/Server/src/main/content/region/misthalin/dorgeshuun/quest/thelosttribe/LostTribe.kt +++ b/Server/src/main/content/region/misthalin/dorgeshuun/quest/thelosttribe/LostTribe.kt @@ -7,6 +7,7 @@ import core.game.node.item.GroundItemManager import core.game.node.item.Item import core.plugin.Initializable import org.rs09.consts.Items +import core.api.* @Initializable /** @@ -102,7 +103,7 @@ class LostTribe : Quest("Lost Tribe",84,83,1) { if(!player.inventory.add(Item(Items.RING_OF_LIFE_2570))){ GroundItemManager.create(Item(Items.RING_OF_LIFE_2570),player) } - player.varpManager.get(465).setVarbit(0,11).send(player) + setVarp(player, 465, 11) } override fun getConfig(player: Player?, stage: Int): IntArray { @@ -123,4 +124,4 @@ class LostTribe : Quest("Lost Tribe",84,83,1) { if(stage > 0) return intArrayOf(465,1) return intArrayOf(465,0) } -} \ No newline at end of file +} diff --git a/Server/src/main/content/region/misthalin/dorgeshuun/quest/thelosttribe/PickaxeOnRubble.kt b/Server/src/main/content/region/misthalin/dorgeshuun/quest/thelosttribe/PickaxeOnRubble.kt index 84c1061ed..62c3b392d 100644 --- a/Server/src/main/content/region/misthalin/dorgeshuun/quest/thelosttribe/PickaxeOnRubble.kt +++ b/Server/src/main/content/region/misthalin/dorgeshuun/quest/thelosttribe/PickaxeOnRubble.kt @@ -8,6 +8,7 @@ import core.game.system.task.Pulse import core.game.world.GameWorld import core.plugin.Initializable import core.plugin.Plugin +import core.api.* @Initializable /** @@ -57,7 +58,7 @@ class PickaxeOnRubble : UseWithHandler(1265,1267,1269,1271,1273,1275){ 2 -> { player.dialogueInterpreter.sendItemMessage(tool.id,"You dig a narrow tunnel through the rocks.") player.setAttribute("/save:tlt-hole-cleared",true) - player.varpManager.get(465).setVarbit(0,4).send(player) + setVarbit(player, 532, 4, true) player.unlock() return true } diff --git a/Server/src/main/content/region/misthalin/draynor/quest/anma/AvaDialogue.java b/Server/src/main/content/region/misthalin/draynor/quest/anma/AvaDialogue.java index a04139a72..ce546f229 100644 --- a/Server/src/main/content/region/misthalin/draynor/quest/anma/AvaDialogue.java +++ b/Server/src/main/content/region/misthalin/draynor/quest/anma/AvaDialogue.java @@ -12,6 +12,8 @@ import core.game.node.entity.player.link.quest.Quest; import core.game.node.item.Item; import core.game.world.GameWorld; +import static core.api.ContentAPIKt.*; + /** * Handles the ava npc dialogue. * @author Vexia @@ -339,7 +341,7 @@ public final class AvaDialogue extends DialoguePlugin { break; case 14: if (player.getInventory().remove(AnimalMagnetism.BAR_MAGNET)) { - player.getConfigManager().set(939, 150, true); + setVarp(player, 939, 150, true); quest.setStage(player, 28); end(); } diff --git a/Server/src/main/content/region/misthalin/draynor/quest/ernest/ErnestTheChickenPlugin.java b/Server/src/main/content/region/misthalin/draynor/quest/ernest/ErnestTheChickenPlugin.java index 5221f5e2f..fb009f9c8 100644 --- a/Server/src/main/content/region/misthalin/draynor/quest/ernest/ErnestTheChickenPlugin.java +++ b/Server/src/main/content/region/misthalin/draynor/quest/ernest/ErnestTheChickenPlugin.java @@ -21,6 +21,8 @@ import core.game.world.update.flag.context.Animation; import core.plugin.Initializable; import core.plugin.Plugin; +import static core.api.ContentAPIKt.*; + /** * Represents the ernest the chicken plugin to handle node interactions. * @author 'Vexia @@ -183,8 +185,8 @@ public final class ErnestTheChickenPlugin extends OptionHandler { * Method used to update the players config states. */ public final void updateConfigs() { - player.getConfigManager().set(LEVER_CONFIG, calculateLeverConfig()); - player.getConfigManager().set(DOOR_CONFIG, calculateDoorConfig()); + setVarp(player, LEVER_CONFIG, calculateLeverConfig()); + setVarp(player, DOOR_CONFIG, calculateDoorConfig()); save(); } diff --git a/Server/src/main/content/region/misthalin/edgeville/handlers/EdgevilleNodePlugin.java b/Server/src/main/content/region/misthalin/edgeville/handlers/EdgevilleNodePlugin.java index a72034698..34264e29a 100644 --- a/Server/src/main/content/region/misthalin/edgeville/handlers/EdgevilleNodePlugin.java +++ b/Server/src/main/content/region/misthalin/edgeville/handlers/EdgevilleNodePlugin.java @@ -56,9 +56,9 @@ public final class EdgevilleNodePlugin extends OptionHandler { break; case 12266: if (option.equalsIgnoreCase("open")) { - player.getConfigManager().set(680, 1<<22); + setVarp(player, 680, 1 << 22); } else if (option.equalsIgnoreCase("close")) { - player.getConfigManager().set(680, 0); + setVarp(player, 680, 0); } break; case 26933: // Edgeville Dungeon trapdoor (when closed) diff --git a/Server/src/main/content/region/misthalin/lumbridge/handlers/CulinomancerShop.kt b/Server/src/main/content/region/misthalin/lumbridge/handlers/CulinomancerShop.kt index 5417f18b8..e82bcce41 100644 --- a/Server/src/main/content/region/misthalin/lumbridge/handlers/CulinomancerShop.kt +++ b/Server/src/main/content/region/misthalin/lumbridge/handlers/CulinomancerShop.kt @@ -1,8 +1,6 @@ package content.region.misthalin.lumbridge.handlers -import core.api.LoginListener -import core.api.getAttribute -import core.api.setAttribute +import core.api.* import core.game.node.entity.player.Player import core.game.node.item.Item import core.game.system.task.Pulse @@ -17,7 +15,7 @@ class CulinomancerShop : LoginListener { //Enable the chest if the player has 18 quest points or more override fun login(player: Player) { if(player.questRepository.points >= 18){ - player.varpManager.get(678).setVarbit(0, 5).send(player) + setVarbit(player, 1850, 5) setAttribute(player, "culino-tier", player.questRepository.points / 18) //Set this, so we can check if the player has gained a tier during server runtime //Restock pulse for this player (yes, this means the chest will only restock if the player has logged in. Shop system needs work in order to do otherwise.) diff --git a/Server/src/main/content/region/misthalin/lumbridge/handlers/HamHideoutPlugin.java b/Server/src/main/content/region/misthalin/lumbridge/handlers/HamHideoutPlugin.java index 41ec22e8c..f0b482a63 100644 --- a/Server/src/main/content/region/misthalin/lumbridge/handlers/HamHideoutPlugin.java +++ b/Server/src/main/content/region/misthalin/lumbridge/handlers/HamHideoutPlugin.java @@ -14,6 +14,9 @@ import core.plugin.Plugin; import core.plugin.Initializable; import core.tools.RandomFunction; +import static core.api.ContentAPIKt.*; + + /** * Represents the ham hide out node interaction plugin. * @author 'Vexia @@ -52,22 +55,22 @@ public final class HamHideoutPlugin extends OptionHandler { case 5491: switch (option) { case "open": - if (player.getConfigManager().get(174) == 0) { + if (getVarp(player, 174) == 0) { player.getPacketDispatch().sendMessage("This trapdoor seems totally locked."); } else { - player.getConfigManager().set(346, 272731282); + setVarp(player, 346, 272731282); ClimbActionHandler.climb(player, new Animation(827), new Location(3149, 9652, 0)); GameWorld.getPulser().submit(new Pulse(2, player) { @Override public boolean pulse() { - player.getConfigManager().set(174, 0); + setVarp(player, 174, 0); return true; } }); } break; case "close": - player.getConfigManager().set(174, 0); + setVarp(player, 174, 0); break; case "climb-down": switch (id) { @@ -89,11 +92,11 @@ public final class HamHideoutPlugin extends OptionHandler { player.getPacketDispatch().sendMessage(success ? ("You pick the lock on the trap door.") : "You fail to pick the lock - your fingers get numb from fumbling with the lock."); player.unlock(); if (success) { - player.getConfigManager().set(174, 1 << 14); + setVarp(player, 174, 1 << 14); GameWorld.getPulser().submit(new Pulse(40, player) { @Override public boolean pulse() { - player.getConfigManager().set(174, 0); + setVarp(player, 174, 0); return true; } }); diff --git a/Server/src/main/content/region/misthalin/lumbridge/quest/therestlessghost/RestlessGhost.java b/Server/src/main/content/region/misthalin/lumbridge/quest/therestlessghost/RestlessGhost.java index 2ddb8d964..ccf60a649 100644 --- a/Server/src/main/content/region/misthalin/lumbridge/quest/therestlessghost/RestlessGhost.java +++ b/Server/src/main/content/region/misthalin/lumbridge/quest/therestlessghost/RestlessGhost.java @@ -8,6 +8,9 @@ import core.game.node.item.Item; import core.plugin.Initializable; import core.plugin.ClassScanner; +import static core.api.ContentAPIKt.*; + + /** * Represents the restless ghost quest. * @author Vexia @@ -107,7 +110,7 @@ public class RestlessGhost extends Quest { player.getSkills().addExperience(Skills.PRAYER, 1125); player.getInterfaceManager().closeChatbox(); player.getPacketDispatch().sendString("You have completed The Restless Ghost Quest!", 277, 2 + 2); - player.getConfigManager().set(728, 31, true); + setVarp(player, 728, 31, true); player.getGameAttributes().removeAttribute("restless-ghost:urhney"); } diff --git a/Server/src/main/content/region/misthalin/lumbridge/quest/therestlessghost/RestlessGhostPlugin.java b/Server/src/main/content/region/misthalin/lumbridge/quest/therestlessghost/RestlessGhostPlugin.java index feebbda88..15e31d74a 100644 --- a/Server/src/main/content/region/misthalin/lumbridge/quest/therestlessghost/RestlessGhostPlugin.java +++ b/Server/src/main/content/region/misthalin/lumbridge/quest/therestlessghost/RestlessGhostPlugin.java @@ -19,6 +19,8 @@ import core.game.world.update.flag.context.Animation; import core.plugin.Initializable; import core.plugin.Plugin; +import static core.api.ContentAPIKt.*; + /** * Represents the restless ghost plugin. * @author 'Vexia @@ -167,7 +169,7 @@ public final class RestlessGhostPlugin extends OptionHandler { if (!player.getInventory().add(SKULL)) { GroundItemManager.create(SKULL, player); } - player.getConfigManager().set(728, 5, true); + setVarp(player, 728, 5, true); player.getQuestRepository().getQuest(RestlessGhost.NAME).setStage(player, 40); player.getPacketDispatch().sendMessage("The skeleton in the corner suddenly comes to life!"); sendSkeleton(player); diff --git a/Server/src/main/content/region/misthalin/varrock/quest/allfiredup/AllFiredUp.kt b/Server/src/main/content/region/misthalin/varrock/quest/allfiredup/AllFiredUp.kt index b617cd913..f65ca24a2 100644 --- a/Server/src/main/content/region/misthalin/varrock/quest/allfiredup/AllFiredUp.kt +++ b/Server/src/main/content/region/misthalin/varrock/quest/allfiredup/AllFiredUp.kt @@ -7,6 +7,7 @@ import core.game.node.item.Item import core.plugin.Initializable import org.rs09.consts.Items import content.minigame.allfiredup.AFUBeacon +import core.api.* /** * Represents the "All Fired Up" quest. @@ -81,9 +82,8 @@ class AllFiredUp : Quest("All Fired Up", 157, 156, 1){ player.packetDispatch.sendItemZoomOnInterface(Items.TINDERBOX_590, 235, 277, 3 + 2) player.skills.addExperience(Skills.FIREMAKING, 5500.0) player.inventory.add(Item(995,20000)) - player.varpManager.unflagSave(1283) content.minigame.allfiredup.AFUBeacon.resetAllBeacons(player) - player.varpManager.get(1283).setVarbit(0,0).send(player) + setVarbit(player, 1283, 0) player.questRepository.syncronizeTab(player) } @@ -92,4 +92,4 @@ class AllFiredUp : Quest("All Fired Up", 157, 156, 1){ if(stage > 0) return intArrayOf(1282, 1) else return intArrayOf(1282, 0) } -} \ No newline at end of file +} diff --git a/Server/src/main/content/region/misthalin/varrock/quest/allfiredup/SquireFyreDialogue.kt b/Server/src/main/content/region/misthalin/varrock/quest/allfiredup/SquireFyreDialogue.kt index cf0145e99..bacb683b1 100644 --- a/Server/src/main/content/region/misthalin/varrock/quest/allfiredup/SquireFyreDialogue.kt +++ b/Server/src/main/content/region/misthalin/varrock/quest/allfiredup/SquireFyreDialogue.kt @@ -5,6 +5,7 @@ import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable import content.minigame.allfiredup.BeaconState +import core.api.* @Initializable class SquireFyreDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ @@ -26,8 +27,7 @@ class SquireFyreDialogue(player: Player? = null) : core.game.dialogue.DialoguePl when(stage){ 100 -> npc("Of course I can see it. I haven't spent my entire life","practising my seeing skills for nothing! I'm happy to","report that the fire near Blaze is burning brightly.").also { stage++ } 101 -> player("Terrific! Blaze has asked me to light this fire as well, so","he can see how things look from his vantage point.").also { stage++ } - 102 -> npc("Be my guest!").also { stage++; player.questRepository.getQuest("All Fired Up").setStage(player,50); player.varpManager.get(1283).setVarbit(0, - content.minigame.allfiredup.BeaconState.DYING.ordinal).send(player) } + 102 -> npc("Be my guest!").also { stage++; player.questRepository.getQuest("All Fired Up").setStage(player,50); setVarbit(player, 5146, BeaconState.DYING.ordinal) } 103 -> options("How do I light the beacon?","I suppose you don't have any logs I could have?","Okay, thanks.").also { stage++ } 104 -> when(buttonId){ 1 -> player("How do I light the beacon?").also { stage = 110 } @@ -50,4 +50,4 @@ class SquireFyreDialogue(player: Player? = null) : core.game.dialogue.DialoguePl return intArrayOf(8066) } -} \ No newline at end of file +} diff --git a/Server/src/main/content/region/misthalin/varrock/quest/demonslayer/DSlayerDrainPlugin.java b/Server/src/main/content/region/misthalin/varrock/quest/demonslayer/DSlayerDrainPlugin.java index c96b516a5..b8a37841a 100644 --- a/Server/src/main/content/region/misthalin/varrock/quest/demonslayer/DSlayerDrainPlugin.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/demonslayer/DSlayerDrainPlugin.java @@ -10,6 +10,9 @@ import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.plugin.Plugin; +import static core.api.ContentAPIKt.*; + + /** * Represents the demon slayer plugin used to handle washing the key down the drain. * @author 'Vexia @@ -69,7 +72,7 @@ public final class DSlayerDrainPlugin extends UseWithHandler { player.getDialogueInterpreter().sendDialogues(player, null, "OK, I think I've washed the key down into the sewer.", "I'd better go down and get it!"); player.getSavedData().getQuestData().getDemonSlayer()[0] = true;// poured - player.getConfigManager().set(222, 2660610, true); + setVarp(player, 222, 2660610, true); player.setAttribute("demon-slayer:just-poured", true); return true; } diff --git a/Server/src/main/content/region/misthalin/varrock/quest/demonslayer/DemonSlayerCutscene.java b/Server/src/main/content/region/misthalin/varrock/quest/demonslayer/DemonSlayerCutscene.java index 07180183d..7a90c6fd0 100644 --- a/Server/src/main/content/region/misthalin/varrock/quest/demonslayer/DemonSlayerCutscene.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/demonslayer/DemonSlayerCutscene.java @@ -29,6 +29,8 @@ import core.net.packet.context.CameraContext.CameraType; import core.net.packet.out.CameraViewPacket; import core.net.packet.out.MinimapState; +import static core.api.ContentAPIKt.*; + /** * Represents the cutscene during the combat of fighting delrith the demon. * @author Vexia @@ -419,7 +421,7 @@ public final class DemonSlayerCutscene extends CutscenePlugin { player.unlock(); cutscene.end(); cutscene.delrith.clear(); - player.getConfigManager().set(222, 5653570, true); + setVarp(player, 222, 5653570, true); player.getQuestRepository().getQuest("Demon Slayer").finish(player); end(); return true; @@ -517,7 +519,7 @@ public final class DemonSlayerCutscene extends CutscenePlugin { player.setLocation(cutscene.getBase().transform(26, 48, 0)); PacketRepository.send(CameraViewPacket.class, new CameraContext(player, CameraType.POSITION, player.getLocation().getX() - 1, player.getLocation().getY() - 3, 390, 1, 100)); PacketRepository.send(CameraViewPacket.class, new CameraContext(player, CameraType.ROTATION, player.getLocation().getX() + 30, player.getLocation().getY() - 55, 390, 1, 100)); - player.getConfigManager().set(222, 14194946, true); + setVarp(player, 222, 14194946, true); SceneryBuilder.replace(cutscene.stoneTable, cutscene.stoneTable.transform(17438)); npc("Ha ha ha! At last you are free, my demonic brother!", "Rest now, and then have your revenge on this pitiful", "city!"); stage = 2; diff --git a/Server/src/main/content/region/misthalin/varrock/quest/demonslayer/DemonSlayerPlugin.java b/Server/src/main/content/region/misthalin/varrock/quest/demonslayer/DemonSlayerPlugin.java index 4fa25dbe6..1a051a67b 100644 --- a/Server/src/main/content/region/misthalin/varrock/quest/demonslayer/DemonSlayerPlugin.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/demonslayer/DemonSlayerPlugin.java @@ -15,6 +15,9 @@ import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.plugin.Plugin; +import static core.api.ContentAPIKt.*; + + /** * Represents the demon slayer plugin used to handle relative node interactions. * @author 'Vexia @@ -87,7 +90,7 @@ public final class DemonSlayerPlugin extends OptionHandler { break; case 17429: if (quest.getStage(player) == 20 && player.getInventory().add(DemonSlayer.FIRST_KEY)) { - player.getConfigManager().set(222, 4757762, true); + setVarp(player, 222, 4757762, true); player.removeAttribute("demon-slayer:poured"); player.removeAttribute("demon-slayer:just-poured"); player.getDialogueInterpreter().sendItemMessage(DemonSlayer.FIRST_KEY.getId(), "You pick up an old rusty key."); diff --git a/Server/src/main/content/region/misthalin/varrock/quest/demonslayer/SirPyrsinDialogue.java b/Server/src/main/content/region/misthalin/varrock/quest/demonslayer/SirPyrsinDialogue.java index 166a6b54f..d4cbccda2 100644 --- a/Server/src/main/content/region/misthalin/varrock/quest/demonslayer/SirPyrsinDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/demonslayer/SirPyrsinDialogue.java @@ -9,6 +9,8 @@ import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; +import static core.api.ContentAPIKt.*; + /** * Represents the dialogue which handles the Sir Prysin NPC. * @author Vexia @@ -196,7 +198,7 @@ public class SirPyrsinDialogue extends DialoguePlugin { npc.animate(new Animation(4597)); break; case 9: - player.getConfigManager().set(222, 5653570, true); + setVarp(player, 222, 5653570, true); player.setAttribute("/save:demon-slayer:received", true); npc.animate(new Animation(4607)); break; @@ -509,4 +511,4 @@ public class SirPyrsinDialogue extends DialoguePlugin { public int[] getIds() { return new int[] { 883, 4657 }; } -} \ No newline at end of file +} diff --git a/Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/DragonSlayerCutscene.java b/Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/DragonSlayerCutscene.java index f9f2f909f..40044126c 100644 --- a/Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/DragonSlayerCutscene.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/DragonSlayerCutscene.java @@ -26,6 +26,9 @@ import core.net.packet.context.CameraContext.CameraType; import core.net.packet.out.CameraViewPacket; import core.net.packet.out.MinimapState; + +import static core.api.ContentAPIKt.*; + /** * Represents the dragon slayer cutscene. * @author Vexia @@ -102,8 +105,8 @@ public final class DragonSlayerCutscene extends CutscenePlugin { player.getDialogueInterpreter().sendDialogue("You are knocked unconscious and later awake on an ash-strewn", "beach."); player.getQuestRepository().getQuest("Dragon Slayer").setStage(player, 40); player.getSavedData().getQuestData().setDragonSlayerAttribute("repaired", false); - player.getConfigManager().set(177, 8257540); - player.getConfigManager().set(176, 8); + setVarp(player, 177, 8257540); + setVarp(player, 176, 8); player.getSavedData().getQuestData().setDragonSlayerPlanks(0); PacketRepository.send(MinimapState.class, new MinimapStateContext(player, 0)); PacketRepository.send(CameraViewPacket.class, new CameraContext(player, CameraType.RESET, player.getLocation().getX() + 13, player.getLocation().getY() - 3, 250, 1, 100)); diff --git a/Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/DragonSlayerPlugin.java b/Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/DragonSlayerPlugin.java index 0a75dab17..85af8e2ed 100644 --- a/Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/DragonSlayerPlugin.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/DragonSlayerPlugin.java @@ -24,6 +24,9 @@ import core.plugin.Plugin; import java.util.List; +import static core.api.ContentAPIKt.*; + + /** * Represents the plugin used to handle node interactions related to dragon slayer. * @@ -219,7 +222,7 @@ public final class DragonSlayerPlugin extends OptionHandler { player.getDialogueInterpreter().sendDialogue("You nail a plank over the hole, but you still need more planks to", "close the hole completely."); } else { player.getSavedData().getQuestData().setDragonSlayerAttribute("repaired", true); - player.getConfigManager().set(177, 1967876); + setVarp(player, 177, 1967876); player.getDialogueInterpreter().sendDialogue("You nail a final plank over the hole. You have successfully patched", "the hole in the ship."); } } diff --git a/Server/src/main/content/region/misthalin/varrock/quest/gertrude/GertrudesCat.java b/Server/src/main/content/region/misthalin/varrock/quest/gertrude/GertrudesCat.java index 0204158ff..0551c0b26 100644 --- a/Server/src/main/content/region/misthalin/varrock/quest/gertrude/GertrudesCat.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/gertrude/GertrudesCat.java @@ -74,7 +74,6 @@ public class GertrudesCat extends Quest { public void finish(Player player) { super.finish(player); final Item kitten = getKitten(); - player.getConfigManager().set(101, player.getQuestRepository().getPoints()); player.getPacketDispatch().sendString("1 Quest Point", 277, 8 + 2); player.getPacketDispatch().sendString("A kitten!", 277, 9 + 2); player.getPacketDispatch().sendString("1525 Cooking XP", 277, 10 + 2); diff --git a/Server/src/main/content/region/misthalin/varrock/quest/whatliesbelow/WLBelowPlugin.java b/Server/src/main/content/region/misthalin/varrock/quest/whatliesbelow/WLBelowPlugin.java index b3388e8d5..7f3b85182 100644 --- a/Server/src/main/content/region/misthalin/varrock/quest/whatliesbelow/WLBelowPlugin.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/whatliesbelow/WLBelowPlugin.java @@ -20,6 +20,8 @@ import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.plugin.Plugin; import core.plugin.ClassScanner; +import static core.api.ContentAPIKt.*; + /** * Handles the what lies below options. @@ -111,7 +113,7 @@ public class WLBelowPlugin extends OptionHandler { } else if (count == duration * 2) { quest.setStage(player, 40); player.getAnimator().reset(); - player.getConfigManager().set(992, 1 << 8, true); + setVarp(player, 992, 1 << 8, true); player.getDialogueInterpreter().open(5837, true, true, true); player.unlock(); return true; diff --git a/Server/src/main/content/region/misthalin/varrock/quest/whatliesbelow/WhatLiesBelow.java b/Server/src/main/content/region/misthalin/varrock/quest/whatliesbelow/WhatLiesBelow.java index 2bef3df02..b31d5b058 100644 --- a/Server/src/main/content/region/misthalin/varrock/quest/whatliesbelow/WhatLiesBelow.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/whatliesbelow/WhatLiesBelow.java @@ -8,6 +8,8 @@ import core.game.node.entity.player.link.quest.Quest; import core.game.node.item.Item; import core.plugin.ClassScanner; +import static core.api.ContentAPIKt.*; + /** * The what lies below quest. * @author Vexa @@ -196,7 +198,7 @@ public class WhatLiesBelow extends Quest { } else if (stage > 0 && stage < 100) { return new int[] { id, 1 }; } - player.getConfigManager().set(1181, (1 << 8) + (1 << 9), true); + setVarp(player, 1181, (1 << 8) + (1 << 9), true); return new int[] { id, 502 }; } diff --git a/Server/src/main/content/region/morytania/phas/handlers/PhasmatysZone.java b/Server/src/main/content/region/morytania/phas/handlers/PhasmatysZone.java index 199cdbd88..2d1afa663 100644 --- a/Server/src/main/content/region/morytania/phas/handlers/PhasmatysZone.java +++ b/Server/src/main/content/region/morytania/phas/handlers/PhasmatysZone.java @@ -179,7 +179,7 @@ public final class PhasmatysZone extends MapZone implements Plugin { player.getLocks().lockInteractions(2); player.debug("Using bone " + bone.getItemId() + " on grinder.. bone info:" + b); player.animate(Animation.create(1649)); - player.getConfigManager().set(408, bone.getConfigValue(true), true); + setVarp(player, 408, bone.getConfigValue(true), true); player.sendMessage("You put some bones in the grinder's hopper.", 1); player.getWalkingQueue().reset(); player.getWalkingQueue().addPath(3659, 3524, true); @@ -234,10 +234,10 @@ public final class PhasmatysZone extends MapZone implements Plugin { player.sendMessage("You need an empty pot to put the crushed bones into."); return; } - final Bones bone = Bones.forConfigValue(player.getConfigManager().get(408), false); + final Bones bone = Bones.forConfigValue(getVarp(player, 408), false); player.getLocks().lockInteractions(2); player.animate(Animation.create(1650)); - player.getConfigManager().set(408, 0, true); + setVarp(player, 408, 0, true); player.sendMessage("You fill a pot with crushed bones."); player.getInventory().replace(bone.getBoneMeal(), player.getInventory().getSlot(new Item(1931))); } @@ -249,12 +249,12 @@ public final class PhasmatysZone extends MapZone implements Plugin { * @param object the object. */ private void wind(Player player, Scenery object) { - final Bones bone = Bones.forConfigValue(player.getConfigManager().get(408), true); + final Bones bone = Bones.forConfigValue(getVarp(player, 408), true); player.getLocks().lockInteractions(3); player.animate(Animation.create(1648)); player.sendMessage("You wind the grinder handle."); if (hasBones(player, object, true)) { - player.getConfigManager().set(408, bone.getConfigValue(false), true); + setVarp(player, 408, bone.getConfigValue(false), true); player.sendMessage("Some crushed bones pour into the bin.", 3); } } @@ -268,7 +268,7 @@ public final class PhasmatysZone extends MapZone implements Plugin { * @return {@code True} if so. */ public static boolean hasBones(Player player, Scenery object, boolean inHopper) { - int value = player.getConfigManager().get(408); + int value = getVarp(player, 408); for (Bones bone : Bones.values()) { if (bone.getConfigValue(inHopper) == value) { return true; diff --git a/Server/src/main/core/api/ContentAPI.kt b/Server/src/main/core/api/ContentAPI.kt index 55cfdc5b2..9de96075b 100644 --- a/Server/src/main/core/api/ContentAPI.kt +++ b/Server/src/main/core/api/ContentAPI.kt @@ -1005,61 +1005,52 @@ fun heal(entity: Entity, amount: Int) { entity.skills.heal(amount) } -/** - * Sets the given varbit for the given player - * @param player the player to set the varbit for - * @param varpIndex the index of the VARP that contains the desired varbit. - * @param offset the offset of the desired varbit inside the varp. - * @param value the value to set the varbit to - */ -fun setVarbit(player: Player, varpIndex: Int, offset: Int, value: Int, save: Boolean = false) { - player.varpManager.get(varpIndex).setVarbit(offset, value).send(player) - if (save) player.varpManager.flagSave(varpIndex) +fun getVarp (player: Player, varpIndex: Int) : Int { + return player.varpMap[varpIndex] ?: 0 } -/** - * Sets the given varbit for the given player. - * @param player the player to set the varbit for. - * @param varbitId the ID of the varbit to set. - * @param value the value to set the varbit to. - * @param save whether or not we should save this setting (default false) - */ -fun setVarbit(player: Player, varbitId: Int, value: Int, save: Boolean = false) { - player.varpManager.setVarbit(varbitId, value) - if (save) { - val def = VarbitDefinition.forId(varbitId) - player.varpManager.flagSave(def.varpId) +fun getVarbit (player: Player, def: VarbitDefinition) : Int { + val mask = def.mask + val current = getVarp (player, def.varpId) + return (current and mask) shr def.startBit +} + +fun getVarbit (player: Player, varbitId: Int) : Int { + val def = VarbitDefinition.forId(varbitId) + return getVarbit (player, def) +} + +@JvmOverloads +fun setVarp (player: Player, varpIndex: Int, value: Int, save: Boolean = false) { + player.varpMap[varpIndex] = value + player.saveVarp[varpIndex] = save + player.packetDispatch.sendVarp(varpIndex, value) +} + +@JvmOverloads +fun setVarbit (player: Player, def: VarbitDefinition, value: Int, save: Boolean = false) { + val mask = def.mask + val current = getVarp (player, def.varpId) and mask.inv() + val newValue = (value shl def.startBit) and mask + setVarp (player, def.varpId, current or newValue, save) +} + +@JvmOverloads +fun setVarbit (player: Player, varbitId: Int, value: Int, save: Boolean = false) { + val def = VarbitDefinition.forId(varbitId) + + if (def == null) { + logWithStack (ContentAPI::class.java, Log.ERR, "Trying to setVarbit $varbitId, which doesn't seem to exist.") + return } + + setVarbit (player, def, value, save) } -/** - * Clears all bits for a given varp index - * @param player the player to clear for - * @param varpIndex the index of the varp to clear - */ -fun clearVarp(player: Player, varpIndex: Int) { - player.varpManager.get(varpIndex).clear() -} - -/** - * Gets the value of all bits collected together from a given varp - * @param player the player to get the varp for - * @param varpIndex the index of the varp to calculate the value of - * @return the value of the varp - */ -fun getVarpValue(player: Player, varpIndex: Int): Int { - return player.varpManager.get(varpIndex).getValue() -} - -/** - * Gets the value of a specific varbit - * @param player the player to get the value for - * @param varpIndex the index of th varp containinig the desired varbit - * @param offset the offset of the varbit inside the varp - * @return the value of the given varbit - */ -fun getVarbitValue(player: Player, varpIndex: Int, offset: Int): Int { - return player.varpManager.get(varpIndex).getVarbitValue(offset) ?: 0 +fun reinitVarps (player: Player) { + for ((index, value) in player.varpMap) { + setVarp(player, index, value, player.saveVarp[index] ?: false) + } } /** diff --git a/Server/src/main/core/cache/def/impl/NPCDefinition.java b/Server/src/main/core/cache/def/impl/NPCDefinition.java index cde8fa909..dbf3bdf1d 100644 --- a/Server/src/main/core/cache/def/impl/NPCDefinition.java +++ b/Server/src/main/core/cache/def/impl/NPCDefinition.java @@ -17,6 +17,8 @@ import java.nio.ByteBuffer; import java.util.HashMap; import java.util.Map; +import static core.api.ContentAPIKt.*; + /** * Debug NPC Opcodes Line 483, Uncomment */ @@ -239,7 +241,7 @@ public final class NPCDefinition extends Definition { if (configFileId != -1) { configValue = VarbitDefinition.forNPCID(configFileId).getValue(player); } else if (configId != -1) { - configValue = player.getConfigManager().get(configId); + configValue = getVarp(player, configId); } } else { configValue = 0; @@ -1114,4 +1116,4 @@ public final class NPCDefinition extends Definition { public void setRenderAnimationId(int renderAnimationId) { this.renderAnimationId = renderAnimationId; } -} \ No newline at end of file +} diff --git a/Server/src/main/core/cache/def/impl/SceneryDefinition.java b/Server/src/main/core/cache/def/impl/SceneryDefinition.java index 72ad95618..909345a9e 100644 --- a/Server/src/main/core/cache/def/impl/SceneryDefinition.java +++ b/Server/src/main/core/cache/def/impl/SceneryDefinition.java @@ -15,6 +15,7 @@ import java.util.HashMap; import java.util.Map; import static core.api.ContentAPIKt.log; +import static core.api.ContentAPIKt.getVarp; /** * Represents an object's definition. @@ -890,7 +891,7 @@ public class SceneryDefinition extends Definition { configValue = def.getValue(player); } } else if (configId != -1) { - configValue = player.getConfigManager().get(configId); + configValue = getVarp(player, configId); } } else { configValue = 0; diff --git a/Server/src/main/core/cache/def/impl/VarbitDefinition.java b/Server/src/main/core/cache/def/impl/VarbitDefinition.java index 10c20ae14..fa3d94ddc 100644 --- a/Server/src/main/core/cache/def/impl/VarbitDefinition.java +++ b/Server/src/main/core/cache/def/impl/VarbitDefinition.java @@ -7,6 +7,8 @@ import java.nio.ByteBuffer; import java.util.HashMap; import java.util.Map; +import static core.api.ContentAPIKt.*; + /** * Handles config definition reading. * @author Emperor @@ -126,12 +128,7 @@ public final class VarbitDefinition { * @return The config value. */ public int getValue(Player player) { - int size = BITS[endBit - startBit]; - int bitValue = player.varpManager.get(getVarpId()).getBitRangeValue(getStartBit(), getStartBit() + (endBit - startBit)); - if(bitValue != 0){ - return size & (bitValue >>> startBit); - } - return size & (player.getConfigManager().get(varpId) >>> startBit); + return getVarbit(player, id); } /** @@ -162,8 +159,15 @@ public final class VarbitDefinition { return endBit; } + public int getMask() { + int mask = 0; + for (int i = startBit; i <= endBit; i++) + mask |= (1 << i); + return mask; + } + @Override public String toString() { return "ConfigFileDefinition [id=" + id + ", configId=" + varpId + ", bitShift=" + startBit + ", bitSize=" + endBit + "]"; } -} \ No newline at end of file +} diff --git a/Server/src/main/core/game/container/impl/BankContainer.java b/Server/src/main/core/game/container/impl/BankContainer.java index 0e949f8b8..7c7bd1ddc 100644 --- a/Server/src/main/core/game/container/impl/BankContainer.java +++ b/Server/src/main/core/game/container/impl/BankContainer.java @@ -18,6 +18,9 @@ import core.net.packet.out.ContainerPacket; import java.nio.ByteBuffer; +import static core.api.ContentAPIKt.*; + + /** * Represents the bank container. * @author Emperor @@ -128,7 +131,7 @@ public final class BankContainer extends Container { super.refresh(); player.getInventory().getListeners().add(listener); player.getInventory().refresh(); - player.varpManager.get(1249).setVarbit(0,lastAmountX).send(player); + setVarp(player, 1249, lastAmountX); int settings = new IfaceSettingsBuilder().enableOptions(new IntRange(0, 5)).enableExamine().enableSlotSwitch().build(); player.getPacketDispatch().sendIfaceSettings(settings, 0, 763, 0, 27); player.getPacketDispatch().sendRunScript(1451, ""); @@ -156,7 +159,7 @@ public final class BankContainer extends Container { player.getInterfaceManager().openSingleTab(new Component(763)); player.getInventory().getListeners().add(player.getBank().listener); player.getInventory().refresh(); - player.varpManager.get(1249).setVarbit(0,lastAmountX).send(player); + setVarp(player, 1249, lastAmountX); player.getPacketDispatch().sendIfaceSettings(1278, 73, 762, 0, SIZE); int settings = new IfaceSettingsBuilder().enableOptions(new IntRange(0,5)).enableExamine().enableSlotSwitch().build(); player.getPacketDispatch().sendIfaceSettings(settings, 0, 763, 0, 27); @@ -316,7 +319,7 @@ public final class BankContainer extends Container { */ public void updateLastAmountX(int amount) { this.lastAmountX = amount; - player.varpManager.get(1249).setVarbit(0,amount).send(player); + setVarp(player, 1249, amount); } /** @@ -418,16 +421,16 @@ public final class BankContainer extends Container { int value = getItemsInTab(1); value += getItemsInTab(2) << 10; value += getItemsInTab(3) << 20; - player.getConfigManager().set(1246, value); + setVarp(player, 1246, value); value = getItemsInTab(4); value += getItemsInTab(5) << 10; value += getItemsInTab(6) << 20; - player.getConfigManager().set(1247, value); + setVarp(player, 1247, value); value = -2013265920; value += (134217728 * (tabIndex == 10 ? 0 : tabIndex)); value += getItemsInTab(7); value += getItemsInTab(8) << 10; - player.getConfigManager().set(1248, value); + setVarp(player, 1248, value); } /** @@ -437,16 +440,16 @@ public final class BankContainer extends Container { int value = getItemsInTab(1); value += getItemsInTab(2) << 10; value += getItemsInTab(3) << 20; - player.getConfigManager().set(1246, value); + setVarp(player, 1246, value); value = getItemsInTab(4); value += getItemsInTab(5) << 10; value += getItemsInTab(6) << 20; - player.getConfigManager().set(1247, value); + setVarp(player, 1247, value); value = -2013265920; value += (134217728 * (tabIndex == 10 ? 0 : tabIndex)); value += getItemsInTab(7); value += getItemsInTab(8) << 10; - player.getConfigManager().set(1248, value); + setVarp(player, 1248, value); } /** @@ -480,7 +483,7 @@ public final class BankContainer extends Container { * @return If items have to be noted {@code true}. */ public boolean isNoteItems() { - return player.varpManager.getVarbit(Vars.VARBIT_IFACE_BANK_NOTE_MODE) == 1; + return getVarbit(player, Vars.VARBIT_IFACE_BANK_NOTE_MODE) == 1; } /** @@ -488,8 +491,7 @@ public final class BankContainer extends Container { * @param noteItems If items have to be noted {@code true}. */ public void setNoteItems(boolean noteItems) { - player.varpManager.flagSave(Vars.VARBIT_IFACE_BANK_NOTE_MODE, true); - player.varpManager.setVarbit(Vars.VARBIT_IFACE_BANK_NOTE_MODE, noteItems ? 1 : 0); + setVarbit(player, Vars.VARBIT_IFACE_BANK_NOTE_MODE, noteItems ? 1 : 0, true); } /** @@ -528,8 +530,7 @@ public final class BankContainer extends Container { * @param insertItems The insert items value. */ public void setInsertItems(boolean insertItems) { - player.varpManager.setVarbit(Vars.VARBIT_IFACE_BANK_INSERT_MODE, insertItems ? 1 : 0); - player.varpManager.flagSave(Vars.VARBIT_IFACE_BANK_INSERT_MODE, true); + setVarbit(player, Vars.VARBIT_IFACE_BANK_INSERT_MODE, insertItems ? 1 : 0, true); } /** @@ -537,7 +538,7 @@ public final class BankContainer extends Container { * @return {@code True} if inserting items mode is enabled. */ public boolean isInsertItems() { - return player.varpManager.getVarbit(Vars.VARBIT_IFACE_BANK_INSERT_MODE) == 1; + return getVarbit(player, Vars.VARBIT_IFACE_BANK_INSERT_MODE) == 1; } /** diff --git a/Server/src/main/core/game/container/impl/EquipmentContainer.java b/Server/src/main/core/game/container/impl/EquipmentContainer.java index 70aa7b678..48b3f2e8a 100644 --- a/Server/src/main/core/game/container/impl/EquipmentContainer.java +++ b/Server/src/main/core/game/container/impl/EquipmentContainer.java @@ -19,6 +19,8 @@ import core.game.system.config.ItemConfigParser; import java.util.ArrayList; +import static core.api.ContentAPIKt.*; + /** * Represents the equipment container. * @author Emperor @@ -301,7 +303,7 @@ public final class EquipmentContainer extends Container { player.removeAttribute("dfs_spec"); player.getProperties().getCombatPulse().setHandler(null); if (!player.getSettings().isSpecialToggled()) { - player.getConfigManager().set(301, 0); + setVarp(player, 301, 0); } } player.getAppearance().setAnimations(); diff --git a/Server/src/main/core/game/node/entity/combat/equipment/WeaponInterface.java b/Server/src/main/core/game/node/entity/combat/equipment/WeaponInterface.java index b9e0de4c0..cb74f3fa6 100644 --- a/Server/src/main/core/game/node/entity/combat/equipment/WeaponInterface.java +++ b/Server/src/main/core/game/node/entity/combat/equipment/WeaponInterface.java @@ -20,6 +20,9 @@ import core.net.packet.out.StringPacket; import org.rs09.consts.Components; import core.game.system.config.ItemConfigParser; +import static core.api.ContentAPIKt.*; + + /** * Represents the weapon interface component. @@ -318,9 +321,9 @@ public final class WeaponInterface extends Component { return; } boolean defensive = slot == 3; - player.getConfigManager().set(439, defensive ? -5 : 0); + setVarp(player, 439, defensive ? -5 : 0); if (slot > 2) { - player.getConfigManager().set(43, defensive ? -1 : 3); + setVarp(player, 43, defensive ? -1 : 3); } }; @@ -729,4 +732,4 @@ public final class WeaponInterface extends Component { return specialBar; } -} \ No newline at end of file +} diff --git a/Server/src/main/core/game/node/entity/player/Player.java b/Server/src/main/core/game/node/entity/player/Player.java index 458069690..3edc198fb 100644 --- a/Server/src/main/core/game/node/entity/player/Player.java +++ b/Server/src/main/core/game/node/entity/player/Player.java @@ -115,6 +115,9 @@ public class Player extends Entity { public VarpManager varpManager = new VarpManager(this); + public HashMap varpMap = new HashMap<>(); + public HashMap saveVarp = new HashMap<>(); + public HashMap states = new HashMap<>(); public HashMap> logoutListeners = new HashMap<>(); @@ -229,11 +232,6 @@ public class Player extends Entity { */ private final FamiliarManager familiarManager = new FamiliarManager(this); - /** - * The config manager. - */ - private final ConfigurationManager configManager = new ConfigurationManager(this); - /** * The saved data. */ @@ -620,6 +618,8 @@ public class Player extends Entity { savedData = new SavedData(this); questRepository = new QuestRepository(this); varpManager = new VarpManager(this); + varpMap.clear(); + saveVarp.clear(); new PlayerSaver(this).save(); clear(); return; @@ -761,7 +761,6 @@ public class Player extends Entity { getPulseManager().clear(); getZoneMonitor().getZones().clear(); getViewport().setCurrentPlane(RegionManager.forId(66666).getPlanes()[3]); - configManager.reset(); playerFlags.setLastSceneGraph(null); playerFlags.setUpdateSceneGraph(false); playerFlags.setLastViewport(new RegionChunk[Viewport.CHUNK_SIZE][Viewport.CHUNK_SIZE]); @@ -1176,14 +1175,6 @@ public class Player extends Entity { return familiarManager; } - /** - * Gets the configManager. - * @return The configManager. - */ - public ConfigurationManager getConfigManager() { - return configManager; - } - /** * Gets the communication. * @return The communication. diff --git a/Server/src/main/core/game/node/entity/player/Varp.kt b/Server/src/main/core/game/node/entity/player/Varp.kt deleted file mode 100644 index a6c33687d..000000000 --- a/Server/src/main/core/game/node/entity/player/Varp.kt +++ /dev/null @@ -1,54 +0,0 @@ -package core.game.node.entity.player - -/** - * A class that represents Varps and aids in modifying/calculating them - * @author Ceikry - */ -class Varp(val index: Int) { - val varbits = HashMap() - var save = false - - fun setVarbit(offset: Int, value: Int): Varp { - varbits[offset] = value - return this - } - - fun getValue(): Int{ - var config = 0 - for((index,value) in varbits.entries){ - config = config or (value shl index) - } - return config - } - - fun getVarbit(offset: Int): Int { - return getVarbitValue(offset) - } - - fun getVarbitValue(offset: Int): Int { - return varbits[offset] ?: 0 - } - - fun send(player: Player){ - player.packetDispatch.sendVarp(this) - } - - fun clear(): Varp { - varbits.clear() - return this - } - - fun clearBitRange(first : Int, last : Int){ - for(i in first..last) varbits.remove(i) - } - - fun getBitRangeValue(first: Int, last: Int): Int{ - var product = 0 - for (i in first..last) - { - val value = varbits[i] ?: 0 - product = product or (value shl i) - } - return product - } -} \ No newline at end of file diff --git a/Server/src/main/core/game/node/entity/player/VarpManager.kt b/Server/src/main/core/game/node/entity/player/VarpManager.kt index 34cb5d23e..96067b1c7 100644 --- a/Server/src/main/core/game/node/entity/player/VarpManager.kt +++ b/Server/src/main/core/game/node/entity/player/VarpManager.kt @@ -12,111 +12,23 @@ import org.json.simple.JSONObject * @author Ceikry */ class VarpManager(val player: Player) { - val varps = Array(3500) { Varp(it) } - - fun get(index: Int): Varp { - return varps[index] - } - - fun send(index: Int){ - player.packetDispatch.sendVarp(get(index)) - } - - fun set(index: Int, value: Int){ - get(index).varbits.clear() - get(index).varbits[0] = value - get(index).send(player) - } - - fun setVarbit(def: VarbitDefinition, value: Int){ - get(def.varpId).setVarbit(def.startBit,value).send(player) - - player.dispatch(VarbitUpdateEvent(def.id, value)) - } - - fun setVarbit(varbitIndex: Int, value: Int){ - val def = VarbitDefinition.forId(varbitIndex) - get(def.varpId).setVarbit(def.startBit, value) - get(def.varpId).send(player) - - player.dispatch(VarbitUpdateEvent(varbitIndex, value)) - } - - fun getVarbit(varbitIndex: Int): Int{ - val def = VarbitDefinition.forId(varbitIndex) - return get(def.varpId).getVarbit(def.startBit) - } - - fun flagSave(index: Int, isVarbit: Boolean = false){ - if (isVarbit) { - val def = VarbitDefinition.forId(index) - flagSave(def.varpId, false) - } else { - get(index).save = true - } - } - - fun unflagSave(index: Int, isVarbit: Boolean = false){ - if (isVarbit) { - val def = VarbitDefinition.forId(index) - unflagSave(def.varpId, false) - } - else { - get(index).save = false - } - } - - fun sendAllVarps(){ - for(varp in varps){ - if(varp.getValue() != 0){ - player.packetDispatch.sendVarp(varp) - } - } - } - - fun getSavedVarps(): ArrayList{ - val list = ArrayList() - for(varp in varps){ - if(varp.save) list.add(varp) - } - return list - } - fun save(root: JSONObject){ - val varps = JSONArray() - for(varp in getSavedVarps()){ - val varpobj = JSONObject() - varpobj.put("index",varp.index.toString()) - val bitArray = JSONArray() - for(varbit in varp.varbits){ - val varbitobj = JSONObject() - varbitobj.put("offset",varbit.key.toString()) - varbitobj.put("value",varbit.value.toString()) - bitArray.add(varbitobj) - } - varpobj.put("bitArray",bitArray) - varps.add(varpobj) - } - root.put("varps",varps) } fun parse(data: JSONArray){ - val patch_varps = FarmingPatch.values().map { it.varpIndex }.toIntArray() - val bin_varps = FarmingPatch.values().map { it.varpIndex }.toIntArray() for(varpobj in data){ val vobj = varpobj as JSONObject val index = vobj["index"].toString().toInt() - if(patch_varps.contains(index)) continue - if(bin_varps.contains(index)) continue - val varp = get(index) val bits = vobj["bitArray"] as JSONArray + var total = 0 for(vbit in bits){ val varbit = vbit as JSONObject val offset = varbit["offset"].toString().toInt() val value = varbit["value"].toString().toInt() - varp.setVarbit(offset,value) - varp.save = true + total = total or (value shl offset) } + player.varpMap[index] = total + player.saveVarp[index] = true } } -} \ No newline at end of file +} diff --git a/Server/src/main/core/game/node/entity/player/info/login/LoginConfiguration.java b/Server/src/main/core/game/node/entity/player/info/login/LoginConfiguration.java index 0d31d81d2..534526a2f 100644 --- a/Server/src/main/core/game/node/entity/player/info/login/LoginConfiguration.java +++ b/Server/src/main/core/game/node/entity/player/info/login/LoginConfiguration.java @@ -28,8 +28,7 @@ import java.util.Random; import java.util.concurrent.TimeUnit; import java.util.stream.IntStream; -import static core.api.ContentAPIKt.log; -import static core.api.ContentAPIKt.hasRequirement; +import static core.api.ContentAPIKt.*; import static core.tools.GlobalsKt.colorize; @@ -132,7 +131,6 @@ public final class LoginConfiguration { * @param player The player. */ public static void configureGameWorld(final Player player) { - player.getConfigManager().reset(); sendGameConfiguration(player); Repository.getLobbyPlayers().remove(player); player.setPlaying(true); @@ -146,7 +144,6 @@ public final class LoginConfiguration { if(player.getGlobalData().getTestStage() == 3 && !player.getEmoteManager().isUnlocked(Emotes.SAFETY_FIRST)){ player.getEmoteManager().unlock(Emotes.SAFETY_FIRST); } - player.varpManager.sendAllVarps(); for (Item item : player.getEquipment().toArray()) { //Run equip hooks for all items equipped on login. //We should have already been doing this. @@ -177,6 +174,9 @@ public final class LoginConfiguration { player.getSpellBookManager().setSpellBook(SpellBookManager.SpellBook.MODERN); } player.getSpellBookManager().update(player); + // 1050 is checked client-side for making piety/chivalry disallowed sfx, likely due to the minigame requirement. + // Set it here unconditionally until the minigame is implemented. + setVarbit(player, 3909, 8, false); if(ServerConstants.RULES_AND_INFO_ENABLED) RulesAndInfo.openFor(player); /*if (GameWorld.getSettings().isPvp()) { @@ -249,7 +249,6 @@ public final class LoginConfiguration { player.getFamiliarManager().login(); player.getInterfaceManager().openDefaultTabs(); player.getPacketDispatch().sendString("Friends List - World " + GameWorld.getSettings().getWorldId(), 550, 3); - player.getConfigManager().init(); player.getQuestRepository().syncronizeTab(player); player.getInterfaceManager().close(); player.getEmoteManager().refresh(); diff --git a/Server/src/main/core/game/node/entity/player/info/login/LoginParser.kt b/Server/src/main/core/game/node/entity/player/info/login/LoginParser.kt index 9c28fed57..85fdf972a 100644 --- a/Server/src/main/core/game/node/entity/player/info/login/LoginParser.kt +++ b/Server/src/main/core/game/node/entity/player/info/login/LoginParser.kt @@ -1,6 +1,6 @@ package core.game.node.entity.player.info.login -import core.api.LoginListener +import core.api.* import core.game.node.entity.player.Player import core.game.node.entity.player.info.PlayerDetails import core.game.system.SystemManager @@ -45,6 +45,7 @@ class LoginParser(val details: PlayerDetails) { } else { flag(AuthResponse.Success) player.init() + reinitVarps(player) } } else { Repository.removePlayer(player) @@ -70,7 +71,7 @@ class LoginParser(val details: PlayerDetails) { player.isActive = true flag(AuthResponse.Success) player.updateSceneGraph(true) - player.configManager.init() + reinitVarps(player) LoginConfiguration.configureGameWorld(player) } @@ -99,4 +100,4 @@ class LoginParser(val details: PlayerDetails) { details.session.write(response, true) return response == AuthResponse.Success } -} \ No newline at end of file +} diff --git a/Server/src/main/core/game/node/entity/player/info/login/PlayerSaveParser.kt b/Server/src/main/core/game/node/entity/player/info/login/PlayerSaveParser.kt index 005873719..d89a67582 100644 --- a/Server/src/main/core/game/node/entity/player/info/login/PlayerSaveParser.kt +++ b/Server/src/main/core/game/node/entity/player/info/login/PlayerSaveParser.kt @@ -39,9 +39,6 @@ class PlayerSaveParser(val player: Player) { var saveFile: JSONObject? = null var read = true - val patch_varps = FarmingPatch.values().map { it.varpIndex }.toIntArray() - val bin_varps = CompostBins.values().map { it.varpIndex }.toIntArray() - init { val JSON = File(ServerConstants.PLAYER_SAVE_PATH + player.name + ".json") if(JSON.exists()) @@ -215,15 +212,13 @@ class PlayerSaveParser(val player: Player) { } fun parseConfigs() { - val configs = saveFile!!["configs"] as JSONArray + val configs = saveFile!!["configs"] as? JSONArray ?: return for (config in configs) { val c = config as JSONObject val index = (c.get("index") as String).toInt() if(index == 1048) continue - if(patch_varps.contains(index)) continue - if(bin_varps.contains(index)) continue val value = (c.get("value") as String).toInt() - player.configManager.savedConfigurations[index] = value + player.varpMap[index] = value } } @@ -303,6 +298,7 @@ class PlayerSaveParser(val player: Player) { val bBars = coreData["blastBars"] as? JSONArray val bOre = coreData["blastOre"] as? JSONArray val bCoal = coreData["blastCoal"] as? JSONArray + val varpData = coreData["varp"] as? JSONArray val location = coreData["location"] as String val bankTabData = coreData["bankTabs"] if (bankTabData != null) { @@ -335,6 +331,17 @@ class PlayerSaveParser(val player: Player) { bOre?.let{player.blastOre.parse(bOre)} bCoal?.let{player.blastCoal.parse(bCoal)} player.location = JSONUtils.parseLocation(location) + + if (varpData != null) { + for (e in varpData) { + e ?: continue + val varp = e as JSONObject + val index = varp["index"]?.toString()?.toInt() ?: continue + val value = varp["value"]?.toString()?.toInt() ?: continue + player.varpMap[index] = value + player.saveVarp[index] = true + } + } } fun parseSkills() { diff --git a/Server/src/main/core/game/node/entity/player/info/login/PlayerSaver.kt b/Server/src/main/core/game/node/entity/player/info/login/PlayerSaver.kt index 70097f229..db9e3d1f0 100644 --- a/Server/src/main/core/game/node/entity/player/info/login/PlayerSaver.kt +++ b/Server/src/main/core/game/node/entity/player/info/login/PlayerSaver.kt @@ -42,10 +42,8 @@ class PlayerSaver (val player: Player){ saveQuests(saveFile) saveAppearance(saveFile) saveSpellbook(saveFile) - saveVarps(saveFile) saveSavedData(saveFile) saveAutocast(saveFile) - saveConfigs(saveFile) savePlayerMonitor(saveFile) saveMusicPlayer(saveFile) saveFamiliarManager(saveFile) @@ -93,10 +91,6 @@ class PlayerSaver (val player: Player){ e.printStackTrace() } } - fun saveVarps(root: JSONObject){ - - player.varpManager.save(root) - } fun savePouches(root: JSONObject){ player.pouchManager.save(root) @@ -319,21 +313,6 @@ class PlayerSaver (val player: Player){ } - fun saveConfigs(root: JSONObject){ - val configs = JSONArray() - var idx = 0 - player.configManager.savedConfigurations.map { - if(it != 0){ - val config = JSONObject() - config.put("index",idx.toString()) - config.put("value",it.toString()) - configs.add(config) - } - idx++ - } - root.put("configs",configs) - } - fun saveAutocast(root: JSONObject){ player.properties.autocastSpell ?: return val spell = JSONObject() @@ -662,6 +641,15 @@ class PlayerSaver (val player: Player){ val locStr = "${loctemp.x},${loctemp.y},${loctemp.z}" coreData.put("location",locStr) + val varpData = JSONArray() + for ((index, value) in player.varpMap) { + val varpObj = JSONObject() + varpObj["index"] = index.toString() + varpObj["value"] = value.toString() + varpData.add(varpObj) + } + coreData.put("varp", varpData) + root.put("core_data",coreData) } } diff --git a/Server/src/main/core/game/node/entity/player/link/BankPinManager.java b/Server/src/main/core/game/node/entity/player/link/BankPinManager.java index 4d36a8b0e..bf8190b62 100644 --- a/Server/src/main/core/game/node/entity/player/link/BankPinManager.java +++ b/Server/src/main/core/game/node/entity/player/link/BankPinManager.java @@ -21,6 +21,9 @@ import java.util.Collections; import java.util.List; import java.util.concurrent.TimeUnit; +import static core.api.ContentAPIKt.*; + + /** * Manages the players bank pin. * @author Vexia @@ -436,8 +439,8 @@ public class BankPinManager { if (stage >= 4) { stage = stage - 4; } - player.getConfigManager().set(562, bitValue); - player.getConfigManager().set(563, digits.get(8) | digits.get(9) << 4 | stage << 26); + setVarp(player, 562, bitValue); + setVarp(player, 563, digits.get(8) | digits.get(9) << 4 | stage << 26); for (int i = 0; i < 9; i++) { int child = (i > 2 ? i + 1 : i) + 11; int positionX = 37 + ((i % 3) * 95) + RandomFunction.random(2, 45); diff --git a/Server/src/main/core/game/node/entity/player/link/ConfigurationManager.java b/Server/src/main/core/game/node/entity/player/link/ConfigurationManager.java deleted file mode 100644 index 992a61ca5..000000000 --- a/Server/src/main/core/game/node/entity/player/link/ConfigurationManager.java +++ /dev/null @@ -1,207 +0,0 @@ -package core.game.node.entity.player.link; - -import core.game.node.entity.player.Player; - -import core.game.system.task.Pulse; -import core.game.world.GameWorld; -import core.net.packet.PacketRepository; -import core.net.packet.context.ConfigContext; -import core.net.packet.out.Config; - -/** - * Manages a player's configurations. - * @author Emperor - */ -@Deprecated -public final class ConfigurationManager { - - /** - * The amount of configurations. - */ - public static final int SIZE = 3500; - - /** - * The player. - */ - private final Player player; - - /** - * The configurations. - */ - private final int[] configurations = new int[SIZE]; - - /** - * The configurations. - */ - private final int[] savedConfigurations = new int[SIZE]; - - /** - * Constructs a new {@code ConfigurationManager} {@code Object}. - * @param player The player. - */ - public ConfigurationManager(Player player) { - this.player = player; - } - - /** - * Initializes the configurations. - */ - public void init() { - for (int i = 0; i < savedConfigurations.length; i++) { - int value = savedConfigurations[i]; - if (value != 0) { - set(i, value, false); - } - } - } - - /** - * Resets the configurations. - */ - public void reset() { - for (int i = 0; i < configurations.length; i++) { - configurations[i] = 0; - } - } - - /** - * Sets a configuration. - * @param config The configuration. - * @param value The value. - */ - public void set(Configuration config, boolean value) { - set(config.id, value); - } - - /** - * Sets a configuration. - * @param id The configuration id. - * @param value The value. - */ - @Deprecated - public void set(int id, boolean value) { - - player.varpManager.get(id).setVarbit(0, value ? 1 : 0).send(player); - } - - /** - * Sets a configuration. - * @param config The configuration. - * @param value The value. - */ - @Deprecated - public void set(Configuration config, int value) { - player.varpManager.get(config.id).setVarbit(0,value).send(player); - } - - /** - * Sets the configuration. - * @param config The configuration id. - * @param value The value. - * @param saved If the configuration should be saved. - */ - public void set(Configuration config, int value, boolean saved) { - set(config.id, value, saved); - } - - /** - * Sets a configuration. - * @param id The configuration id. - * @param value The value. - */ - public void set(int id, int value) { - set(id, value, false); - } - - /** - * Sets a configuration for a set amount of time. - * @param id the id. - * @param value the value. - * @param delay the delay. - */ - @Deprecated - public void set(final int id, final int value, int delay) { - set(id, value); - player.varpManager.get(id).setVarbit(0,value).send(player); - GameWorld.getPulser().submit(new Pulse(delay, player) { - @Override - public boolean pulse() { - player.varpManager.get(id).setVarbit(0,0).send(player); - return true; - } - }); - } - - /** - * Sets a configuration. - * @param id The configuration id. - * @param value The value. - */ - @Deprecated - public void set(int id, int value, boolean saved) { - player.varpManager.get(id).setVarbit(0,value).send(player); - if (saved) { - player.varpManager.flagSave(id, false); - } - } - - public void forceSet(int id, int value, boolean saved){ - PacketRepository.send(Config.class, new ConfigContext(player,id,value)); - } - - /** - * Sends the configuration without caching. - */ - @Deprecated - public void send(int id, int value) { - PacketRepository.send(Config.class, new ConfigContext(player, id, value)); - } - - /** - * Gets the configuration value. - * @param id The config id. - * @return The value. - */ - @Deprecated - public int get(int id) { - if(player.varpManager.get(id).getValue() != 0){ - return player.varpManager.get(id).getValue(); - } - return configurations[id]; - } - - /** - * Holds the configurations. - * @author Emperor - */ - public enum Configuration { - - BRIGHTNESS(166), MUSIC_VOLUME(168), EFFECT_VOLUME(169), MOUSE_BUTTON(170), CHAT_EFFECT(171), RETALIATE(172), RUNNING(173), SPLIT_PRIVATE(287), ACCEPT_AID(427), PC_PORTALS(719), SURROUNDING_VOLUME(872), CLAN_WAR_DATA(1147), ; - - /** - * The config id. - */ - private final int id; - - /** - * Constructs a new {@code Configuration} {@code Object}. - * @param id The config id. - */ - private Configuration(int id) { - this.id = id; - } - - /** - * Gets the id. - * @return The id. - */ - public int getId() { - return id; - } - - } - - public int[] getSavedConfigurations() { - return savedConfigurations; - } -} \ No newline at end of file diff --git a/Server/src/main/core/game/node/entity/player/link/InterfaceManager.java b/Server/src/main/core/game/node/entity/player/link/InterfaceManager.java index 8da9eacf5..a1699352f 100644 --- a/Server/src/main/core/game/node/entity/player/link/InterfaceManager.java +++ b/Server/src/main/core/game/node/entity/player/link/InterfaceManager.java @@ -18,6 +18,7 @@ import content.region.misc.tutisland.handlers.TutorialStage; import core.tools.SystemLogger; import static core.api.ContentAPIKt.log; +import static core.api.ContentAPIKt.*; /** @@ -498,7 +499,7 @@ public final class InterfaceManager { PacketRepository.send(Interface.class, new InterfaceContext(player, InterfaceType.CHATBOX.getFixedPaneId(), InterfaceType.CHATBOX.getFixedChildId(), Components.CHATDEFAULT_137, true)); } chatbox = component; - player.getConfigManager().set(334, 1); + setVarp(player, 334, 1); } else { chatbox = component; if (chatbox.getDefinition().getType() != InterfaceType.DIALOGUE && chatbox.getDefinition().getType() != InterfaceType.CHATBOX && chatbox.getDefinition().getType() != InterfaceType.CS_CHATBOX) { @@ -785,4 +786,4 @@ public final class InterfaceManager { packetCount += increment; return count; } -} \ No newline at end of file +} diff --git a/Server/src/main/core/game/node/entity/player/link/PacketDispatch.java b/Server/src/main/core/game/node/entity/player/link/PacketDispatch.java index dac34f170..3a315c307 100644 --- a/Server/src/main/core/game/node/entity/player/link/PacketDispatch.java +++ b/Server/src/main/core/game/node/entity/player/link/PacketDispatch.java @@ -1,6 +1,5 @@ package core.game.node.entity.player.link; -import core.game.node.entity.player.Varp; import core.game.node.entity.player.Player; import core.game.node.scenery.Scenery; import core.tools.Log; @@ -19,6 +18,8 @@ import core.net.packet.context.DisplayModelContext.ModelType; import core.net.packet.out.*; import static core.api.ContentAPIKt.log; +import static core.api.ContentAPIKt.*; + /** * Represents the class used to dispatching packets. @@ -46,8 +47,8 @@ public final class PacketDispatch { this.context = new PlayerContext(player); } - public void sendVarp(Varp varp){ - PacketRepository.send(Config.class, new ConfigContext(player, varp.getIndex(), varp.getValue())); + public void sendVarp (int index, int value) { + PacketRepository.send(Config.class, new ConfigContext(player, index, value)); } public void sendVarcUpdate(short index, int value) { @@ -389,11 +390,11 @@ public final class PacketDispatch { } public void sendLeftShiftedVarbit(int varpIndex, int offset, int value){ - player.getConfigManager().set(varpIndex, (value << offset)); + setVarp(player, varpIndex, (value << offset)); } public void sendRightShiftedVarbit(int varpIndex, int offset, int value){ - player.getConfigManager().set(varpIndex, (value >> offset)); + setVarp(player, varpIndex, (value >> offset)); } diff --git a/Server/src/main/core/game/node/entity/player/link/Settings.java b/Server/src/main/core/game/node/entity/player/link/Settings.java index 258c018ea..a713bdfbd 100644 --- a/Server/src/main/core/game/node/entity/player/link/Settings.java +++ b/Server/src/main/core/game/node/entity/player/link/Settings.java @@ -10,6 +10,9 @@ import core.net.packet.IoBuffer; import java.nio.ByteBuffer; +import static core.api.ContentAPIKt.*; + + /** * Holds a player's settings. * @author Emperor @@ -128,20 +131,20 @@ public final class Settings { * Updates the settings. */ public void update() { - player.getConfigManager().set(ConfigurationManager.Configuration.BRIGHTNESS, brightness + 1); - player.getConfigManager().set(ConfigurationManager.Configuration.MUSIC_VOLUME, musicVolume); - player.getConfigManager().set(ConfigurationManager.Configuration.EFFECT_VOLUME, soundEffectVolume); - player.getConfigManager().set(ConfigurationManager.Configuration.SURROUNDING_VOLUME, areaSoundVolume); - player.getConfigManager().set(ConfigurationManager.Configuration.MOUSE_BUTTON, singleMouseButton); - player.getConfigManager().set(ConfigurationManager.Configuration.CHAT_EFFECT, disableChatEffects); - player.getConfigManager().set(ConfigurationManager.Configuration.SPLIT_PRIVATE, splitPrivateChat); - player.getConfigManager().set(ConfigurationManager.Configuration.ACCEPT_AID, acceptAid); - player.getConfigManager().set(ConfigurationManager.Configuration.RETALIATE, !player.getProperties().isRetaliating()); - player.getConfigManager().set(ConfigurationManager.Configuration.RUNNING, runToggled); - player.getConfigManager().set(1054, clanChatSetting); - player.getConfigManager().set(1055, assistSetting); - player.getConfigManager().set(300, specialEnergy * 10); - player.getConfigManager().set(43, attackStyleIndex); + setVarp(player, 166, brightness + 1); + setVarp(player, 168, musicVolume); + setVarp(player, 169, soundEffectVolume); + setVarp(player, 872, areaSoundVolume); + setVarp(player, 170, singleMouseButton ? 1 : 0); + setVarp(player, 171, disableChatEffects ? 1 : 0); + setVarp(player, 287, splitPrivateChat ? 1 : 0); + setVarp(player, 427, acceptAid ? 1 : 0); + setVarp(player, 172, !player.getProperties().isRetaliating() ? 1 : 0); + setVarp(player, 173, runToggled ? 1 : 0); + setVarp(player, 1054, clanChatSetting); + setVarp(player, 1055, assistSetting); + setVarp(player, 300, specialEnergy * 10); + setVarp(player, 43, attackStyleIndex); player.getPacketDispatch().sendRunEnergy(); updateChatSettings(); Pulse pulse = player.getAttribute("energy-restore", null); @@ -168,7 +171,7 @@ public final class Settings { */ public void toggleAttackStyleIndex(int index) { this.attackStyleIndex = index; - player.getConfigManager().set(43, attackStyleIndex); + setVarp(player, 43, attackStyleIndex); } /** @@ -301,7 +304,7 @@ public final class Settings { */ public void setSpecialToggled(boolean enable) { specialToggled = !specialToggled; - player.getConfigManager().set(301, specialToggled ? 1 : 0); + setVarp(player, 301, specialToggled ? 1 : 0); } /** @@ -337,7 +340,7 @@ public final class Settings { */ public void setSpecialEnergy(int value) { specialEnergy = value; - player.getConfigManager().set(300, specialEnergy * 10); + setVarp(player, 300, specialEnergy * 10); } /** @@ -353,7 +356,7 @@ public final class Settings { */ public void toggleRetaliating() { player.getProperties().setRetaliating(!player.getProperties().isRetaliating()); - player.getConfigManager().set(172, !player.getProperties().isRetaliating() ? 1 : 0); + setVarp(player, 172, !player.getProperties().isRetaliating() ? 1 : 0); } /** @@ -361,7 +364,7 @@ public final class Settings { */ public void toggleMouseButton() { singleMouseButton = !singleMouseButton; - player.getConfigManager().set(170, singleMouseButton ? 1 : 0); + setVarp(player, 170, singleMouseButton ? 1 : 0); } /** @@ -369,7 +372,7 @@ public final class Settings { */ public void toggleChatEffects() { disableChatEffects = !disableChatEffects; - player.getConfigManager().set(171, disableChatEffects ? 1 : 0); + setVarp(player, 171, disableChatEffects ? 1 : 0); } /** @@ -377,7 +380,7 @@ public final class Settings { */ public void toggleSplitPrivateChat() { splitPrivateChat = !splitPrivateChat; - player.getConfigManager().set(287, splitPrivateChat ? 1 : 0); + setVarp(player, 287, splitPrivateChat ? 1 : 0); } /** @@ -385,7 +388,7 @@ public final class Settings { */ public void toggleAcceptAid() { acceptAid = !acceptAid; - player.getConfigManager().set(427, acceptAid ? 1 : 0); + setVarp(player, 427, acceptAid ? 1 : 0); } /** @@ -401,7 +404,7 @@ public final class Settings { */ public void setRunToggled(boolean enabled) { runToggled = enabled; - player.getConfigManager().set(173, runToggled ? 1 : 0); + setVarp(player, 173, runToggled ? 1 : 0); } /** @@ -465,7 +468,7 @@ public final class Settings { */ public void setBrightness(int brightness) { this.brightness = brightness; - player.getConfigManager().set(166, brightness + 1); + setVarp(player, 166, brightness + 1); } /** @@ -482,7 +485,7 @@ public final class Settings { */ public void setMusicVolume(int musicVolume) { this.musicVolume = musicVolume; - player.getConfigManager().set(168, musicVolume); + setVarp(player, 168, musicVolume); } /** @@ -499,7 +502,7 @@ public final class Settings { */ public void setSoundEffectVolume(int soundEffectVolume) { this.soundEffectVolume = soundEffectVolume; - player.getConfigManager().set(169, soundEffectVolume); + setVarp(player, 169, soundEffectVolume); } /** @@ -516,7 +519,7 @@ public final class Settings { */ public void setAreaSoundVolume(int areaSoundVolume) { this.areaSoundVolume = areaSoundVolume; - player.getConfigManager().set(872, areaSoundVolume); + setVarp(player, 872, areaSoundVolume); } /** @@ -610,7 +613,7 @@ public final class Settings { */ public void setClanChatSetting(int clanChatSetting) { this.clanChatSetting = clanChatSetting; - player.getConfigManager().set(1054, clanChatSetting); + setVarp(player, 1054, clanChatSetting); } /** @@ -644,7 +647,7 @@ public final class Settings { */ public void setAssistSetting(int assistSetting) { this.assistSetting = assistSetting; - player.getConfigManager().set(1055, assistSetting); + setVarp(player, 1055, assistSetting); } /** @@ -677,4 +680,4 @@ public final class Settings { this.attackStyleIndex = attackStyleIndex; } -} \ No newline at end of file +} diff --git a/Server/src/main/core/game/node/entity/player/link/WarningMessages.java b/Server/src/main/core/game/node/entity/player/link/WarningMessages.java index fad53a42b..11731ff1d 100644 --- a/Server/src/main/core/game/node/entity/player/link/WarningMessages.java +++ b/Server/src/main/core/game/node/entity/player/link/WarningMessages.java @@ -8,6 +8,9 @@ import java.nio.ByteBuffer; import java.util.ArrayList; import java.util.List; +import static core.api.ContentAPIKt.*; + + /** * Handles the warning messages of a player. * @author Vexia @@ -38,7 +41,7 @@ public final class WarningMessages { * @param player the player. */ private void refresh(final Player player) { - player.getConfigManager().set(CONFIG, getConfigValue(), true); + setVarp(player, CONFIG, getConfigValue(), true); } /** diff --git a/Server/src/main/core/game/node/entity/player/link/emote/EmoteManager.java b/Server/src/main/core/game/node/entity/player/link/emote/EmoteManager.java index 7f2e691f9..e9c991d80 100644 --- a/Server/src/main/core/game/node/entity/player/link/emote/EmoteManager.java +++ b/Server/src/main/core/game/node/entity/player/link/emote/EmoteManager.java @@ -7,6 +7,8 @@ import java.nio.ByteBuffer; import java.util.ArrayList; import java.util.List; +import static core.api.ContentAPIKt.setVarp; + /** * Manages the players unlocked/locked emotes. * @author Vexia @@ -52,7 +54,7 @@ public class EmoteManager { if (isUnlocked(Emotes.SLAP_HEAD)) { value1 += 2; } - player.getConfigManager().set(802, value1); // stronghold of // security + setVarp(player, 802, value1, false); int value2 = 0; if (isUnlocked(Emotes.GLASS_BOX)) { value2 += 2; @@ -103,12 +105,12 @@ public class EmoteManager { if (isUnlocked(Emotes.GIVE_THANKS)) { value2 += 16384; } - player.getConfigManager().set(313, value2); // events emotes + setVarp(player, 313, value2, false); int value3 = 0; if (isUnlocked(Emotes.ZOMBIE_HAND)) { value3 = 12; } - player.getConfigManager().set(1085, value3);//zombie hand. + setVarp(player, 1085, value3, false); } /** diff --git a/Server/src/main/core/game/node/entity/player/link/music/MusicPlayer.java b/Server/src/main/core/game/node/entity/player/link/music/MusicPlayer.java index e72f4f2d3..f77732802 100644 --- a/Server/src/main/core/game/node/entity/player/link/music/MusicPlayer.java +++ b/Server/src/main/core/game/node/entity/player/link/music/MusicPlayer.java @@ -14,6 +14,9 @@ import java.util.HashMap; import java.util.Map; import java.util.Random; +import static core.api.ContentAPIKt.*; + + /** * Handles a music playing for a player. * @author Emperor @@ -74,7 +77,7 @@ public final class MusicPlayer { */ public void init() { refreshList(); - player.getConfigManager().set(19, looping ? 1 : 0); + setVarp(player, 19, looping ? 1 : 0); int value = 0; for (int i = 0; i < CONFIG_IDS.length; i++) { value |= 2 << i; @@ -137,7 +140,7 @@ public final class MusicPlayer { values[index] |= 1 << (listIndex - (index * 32)); } for (int i = 0; i < CONFIG_IDS.length; i++) { - player.getConfigManager().set(CONFIG_IDS[i], values[i]); + setVarp(player, CONFIG_IDS[i], values[i]); } } @@ -224,7 +227,7 @@ public final class MusicPlayer { */ public void toggleLooping() { looping = !looping; - player.getConfigManager().set(19, looping ? 1 : 0); + setVarp(player, 19, looping ? 1 : 0); } /** @@ -289,6 +292,6 @@ public final class MusicPlayer { */ public void setLooping(boolean looping) { this.looping = looping; - player.getConfigManager().set(19, looping ? 1 : 0); + setVarp(player, 19, looping ? 1 : 0); } -} \ No newline at end of file +} diff --git a/Server/src/main/core/game/node/entity/player/link/prayer/Prayer.java b/Server/src/main/core/game/node/entity/player/link/prayer/Prayer.java index a339c9382..22336a0ce 100644 --- a/Server/src/main/core/game/node/entity/player/link/prayer/Prayer.java +++ b/Server/src/main/core/game/node/entity/player/link/prayer/Prayer.java @@ -19,6 +19,9 @@ import core.game.world.GameWorld; import java.util.ArrayList; import java.util.List; +import static core.api.ContentAPIKt.setVarp; +import static core.api.ContentAPIKt.setVarbit; + /** * Represents a managing class of a players prayers. * @author Vexia @@ -43,10 +46,6 @@ public final class Prayer { */ public Prayer(Player player) { this.player = player; - - // 1050 is checked client-side for making piety/chivalry disallowed sfx, likely due to the minigame requirement. - // Set it here unconditionally until the minigame is implemented. - player.varpManager.get(1050).setVarbit(1, 8); } /** @@ -65,7 +64,7 @@ public final class Prayer { */ public void reset() { for (PrayerType type : getActive()) { - player.getConfigManager().set(type.getConfig(), 0); + setVarp(player, type.getConfig(), 0, false); } getActive().clear(); // Clear the overhead prayer icon a tick later diff --git a/Server/src/main/core/game/node/entity/player/link/prayer/PrayerType.java b/Server/src/main/core/game/node/entity/player/link/prayer/PrayerType.java index 8f4e138a3..fc64e0ccf 100644 --- a/Server/src/main/core/game/node/entity/player/link/prayer/PrayerType.java +++ b/Server/src/main/core/game/node/entity/player/link/prayer/PrayerType.java @@ -11,6 +11,9 @@ import core.tools.StringUtils; import java.util.List; +import static core.api.ContentAPIKt.*; + + /** * Represents a prayer type. * @author Vexia @@ -231,7 +234,7 @@ public enum PrayerType { * @return True if toggled. */ public boolean toggle(final Player player, final boolean on) { - player.getConfigManager().set(getConfig(), on ? 1 : 0); + setVarp(player, getConfig(), on ? 1 : 0); if (on) { flag(player, this); player.getPrayer().getActive().add(this); diff --git a/Server/src/main/core/game/node/entity/player/link/quest/Quest.java b/Server/src/main/core/game/node/entity/player/link/quest/Quest.java index 1c6aa9efa..a88d0338c 100644 --- a/Server/src/main/core/game/node/entity/player/link/quest/Quest.java +++ b/Server/src/main/core/game/node/entity/player/link/quest/Quest.java @@ -129,7 +129,6 @@ public abstract class Quest implements Plugin { player.getQuestRepository().setStage(this, 100); player.getQuestRepository().incrementPoints(getQuestPoints()); player.getQuestRepository().syncronizeTab(player); - player.getConfigManager().set(101, player.getQuestRepository().getPoints()); player.getInterfaceManager().open(new Component(277)); player.getPacketDispatch().sendString("" + player.getQuestRepository().getPoints() + "", 277, 7); player.getPacketDispatch().sendString("You have completed the " + getName() + " Quest!", 277, 4); diff --git a/Server/src/main/core/game/node/entity/player/link/quest/QuestRepository.java b/Server/src/main/core/game/node/entity/player/link/quest/QuestRepository.java index 427ec4f59..ac7ac5cee 100644 --- a/Server/src/main/core/game/node/entity/player/link/quest/QuestRepository.java +++ b/Server/src/main/core/game/node/entity/player/link/quest/QuestRepository.java @@ -12,6 +12,8 @@ import java.util.TreeMap; import java.util.Map; import static core.api.ContentAPIKt.log; +import static core.api.ContentAPIKt.*; + /** * Manages the systems/players quest repository. @@ -68,25 +70,13 @@ public final class QuestRepository { * @param player The player. */ public void syncronizeTab(Player player) { - player.getConfigManager().set(101, points); + setVarp(player, 101, points); int[] config = null; - if(!player.getAttribute("quest-varps-converted",false)) { - for (Quest quest : QUESTS.values()) { - config = quest.getConfig(player, getStage(quest)); - player.varpManager.get(config[0]).setVarbit(0,config[1]).send(player); - player.varpManager.flagSave(config[0], false); - player.setAttribute("/save:quest-varps-converted",true); - - } - } else { - for(Quest quest : QUESTS.values()){ - if(quest.getIndex() == 81 && quest.isCompleted(player)){ - player.varpManager.get(534).setVarbit(15,2).setVarbit(18,2).setVarbit(21,2).setVarbit(24,2).setVarbit(12,2).send(player); - } - config = quest.getConfig(player,getStage(quest)); - player.varpManager.get(config[0]).setVarbit(0,config[1]).send(player); - quest.updateVarps(player); - } + for(Quest quest : QUESTS.values()){ + config = quest.getConfig(player,getStage(quest)); + + setVarp(player, config[0], config[1]); + quest.updateVarps(player); } } diff --git a/Server/src/main/core/game/node/entity/player/link/request/assist/AssistSession.java b/Server/src/main/core/game/node/entity/player/link/request/assist/AssistSession.java index 9f90705b1..b35cb1013 100644 --- a/Server/src/main/core/game/node/entity/player/link/request/assist/AssistSession.java +++ b/Server/src/main/core/game/node/entity/player/link/request/assist/AssistSession.java @@ -13,6 +13,9 @@ import core.game.world.update.flag.context.Graphics; import java.util.Calendar; import java.util.Date; +import static core.api.ContentAPIKt.*; + + /** * Represents the class used to handle the assist requesting of a {@link Player} * . @@ -243,8 +246,8 @@ public final class AssistSession extends Pulse implements RequestModule { message = "You've earned the maximum XP from the Assist System within a 24-hour period. You can assist again in " + getTimeLeft() + "."; } player.getPacketDispatch().sendString(message, 301, 10); - player.getConfigManager().set(1087, value); - player.getConfigManager().set(1088, (int) totalXp * 10); + setVarp(player, 1087, value); + setVarp(player, 1088, (int) totalXp * 10); } /** @@ -466,4 +469,4 @@ public final class AssistSession extends Pulse implements RequestModule { this.partener = partener; } -} \ No newline at end of file +} diff --git a/Server/src/main/core/game/node/entity/player/link/request/trade/TradeCloseEvent.java b/Server/src/main/core/game/node/entity/player/link/request/trade/TradeCloseEvent.java index 78b1aa8b0..e2eb3a095 100644 --- a/Server/src/main/core/game/node/entity/player/link/request/trade/TradeCloseEvent.java +++ b/Server/src/main/core/game/node/entity/player/link/request/trade/TradeCloseEvent.java @@ -8,6 +8,9 @@ import core.net.packet.PacketRepository; import core.net.packet.context.ContainerContext; import core.net.packet.out.ContainerPacket; +import static core.api.ContentAPIKt.*; + + /** * Represents the close event invoked at the closing of a trade interface. * @author Vexia @@ -59,8 +62,8 @@ public final class TradeCloseEvent implements CloseEvent { * @param player the player. */ private void end(final Player player) { - player.getConfigManager().set(1043, 0); - player.getConfigManager().set(1042, 0); + setVarp(player, 1043, 0); + setVarp(player, 1042, 0); } /** @@ -76,4 +79,4 @@ public final class TradeCloseEvent implements CloseEvent { player.getInventory().addAll(module.getContainer()); } -} \ No newline at end of file +} diff --git a/Server/src/main/core/game/node/entity/player/link/request/trade/TradeModule.kt b/Server/src/main/core/game/node/entity/player/link/request/trade/TradeModule.kt index c0123e4f2..3d0c84483 100644 --- a/Server/src/main/core/game/node/entity/player/link/request/trade/TradeModule.kt +++ b/Server/src/main/core/game/node/entity/player/link/request/trade/TradeModule.kt @@ -10,6 +10,7 @@ import core.game.node.item.Item import core.game.bots.AIRepository import content.global.bots.DoublingMoney import core.game.node.entity.player.info.PlayerMonitor +import core.api.* import java.text.DecimalFormat import java.util.* @@ -166,10 +167,10 @@ class TradeModule if (stage == 0) { // Main interface if (otherModified) { - player!!.configManager[1043] = 1 + setVarp(player!!, 1043, 1) } if (isModified) { - player!!.configManager[1042] = 1 + setVarp(player!!, 1042, 1) } } else { // Accept interface @@ -511,4 +512,4 @@ class TradeModule init { container = TradeContainer(player) } -} \ No newline at end of file +} diff --git a/Server/src/main/core/game/node/entity/skill/LevelUp.java b/Server/src/main/core/game/node/entity/skill/LevelUp.java index 9d1b08351..faaf178ac 100644 --- a/Server/src/main/core/game/node/entity/skill/LevelUp.java +++ b/Server/src/main/core/game/node/entity/skill/LevelUp.java @@ -9,6 +9,9 @@ import core.net.packet.PacketRepository; import core.net.packet.context.MusicContext; import core.net.packet.out.MusicPacket; +import static core.api.ContentAPIKt.*; + + /** * Represents a leveling up reward. * @author Emperor @@ -165,7 +168,7 @@ public final class LevelUp { } value |= player.getSkills().getCombatMilestone() << 23; //Combat level milestone index. value |= player.getSkills().getSkillMilestone() << 27; //Total level milestone index - player.getConfigManager().set(1230, value); + setVarp(player, 1230, value); } /** @@ -184,7 +187,7 @@ public final class LevelUp { value |= SKILL_ICON[slot]; player.getInterfaceManager().openChatbox(new Component(740)); } - player.getConfigManager().set(1179, value); + setVarp(player, 1179, value); } /** @@ -193,4 +196,4 @@ public final class LevelUp { public static int[] getSkillcapes() { return SKILLCAPES; } -} \ No newline at end of file +} diff --git a/Server/src/main/core/game/node/scenery/Scenery.java b/Server/src/main/core/game/node/scenery/Scenery.java index 9cf2ef8e7..9594a7f26 100644 --- a/Server/src/main/core/game/node/scenery/Scenery.java +++ b/Server/src/main/core/game/node/scenery/Scenery.java @@ -14,6 +14,7 @@ import org.jetbrains.annotations.NotNull; import java.util.ArrayList; import java.util.List; +import static core.api.ContentAPIKt.*; /** * Represents a scenery. @@ -232,10 +233,10 @@ public class Scenery extends Node { if (def.getVarbitID() > -1) { VarbitDefinition config = def.getConfigFile(); if (config != null) { - player.varpManager.get(config.getVarpId()).setVarbit(config.getStartBit(),index).send(player); + setVarbit(player, def.getVarbitID(), index); } } else if (def.getConfigId() > -1) { - player.varpManager.get(def.getConfigId()).setVarbit(0,index); + setVarp(player, def.getConfigId(), index); } } diff --git a/Server/src/main/core/game/system/command/oldsys/VisualCommand.kt b/Server/src/main/core/game/system/command/oldsys/VisualCommand.kt index a395ca995..7688d9820 100644 --- a/Server/src/main/core/game/system/command/oldsys/VisualCommand.kt +++ b/Server/src/main/core/game/system/command/oldsys/VisualCommand.kt @@ -232,7 +232,7 @@ class VisualCommand : CommandPlugin() { var shift = 0 override fun pulse(): Boolean { for(i in 0..1999){ - player?.configManager?.forceSet(i, pos shl shift, false) + setVarp(player!!, i, pos shl shift) } player?.sendMessage("$pos shl $shift") if(pos++ >= 63){ @@ -246,34 +246,13 @@ class VisualCommand : CommandPlugin() { submitWorldPulse(object : Pulse(3, player) { var pos = 0 override fun pulse(): Boolean { - player?.configManager?.forceSet(cfg_index, value shl pos, false) + setVarp(player!!, cfg_index, value shl pos) player?.sendMessage("$pos") return pos++ >= 32 } }) } } - "setbit" -> { - if (args!!.size < 2) { - player!!.debug("syntax error: bit value") - return true - } - var bit = toInteger(args[0]!!) - var value = toInteger(args[1]!!) - var val2 = toInteger(args[2]!!) - player!!.debug("$value $val2") - PacketRepository.send(Varbit::class.java, VarbitContext(player, value, val2)) - return true - } - "setbits" -> { - args ?: return false - val start = toInteger(args[1]!!) - val end = toInteger(args[2]!!) - val value = toInteger(args[3]!!) - for(i in start until end){ - player?.varpManager?.setVarbit(i, value) - } - } "loop_anim_on_i" -> { var anim = toInteger(args!![1]!!) submitWorldPulse(object : Pulse(3){ @@ -342,7 +321,7 @@ class VisualCommand : CommandPlugin() { val value = toInteger(args[3]!!) var i = toInteger(args[1]!!) while (i < toInteger(args[2]!!)) { - player!!.configManager[i] = value + setVarp(player!!, i, value) i++ } return true @@ -519,4 +498,4 @@ class VisualCommand : CommandPlugin() { } return false; } -} \ No newline at end of file +} diff --git a/Server/src/main/core/game/system/command/sets/ConfigCommandSet.kt b/Server/src/main/core/game/system/command/sets/ConfigCommandSet.kt index 5f64859d9..25c5fb2e1 100644 --- a/Server/src/main/core/game/system/command/sets/ConfigCommandSet.kt +++ b/Server/src/main/core/game/system/command/sets/ConfigCommandSet.kt @@ -3,6 +3,7 @@ package core.game.system.command.sets import core.plugin.Initializable import core.game.system.command.Command import core.game.system.command.Privilege +import core.api.* @Initializable class ConfigCommandSet : CommandSet(Privilege.ADMIN){ @@ -18,7 +19,7 @@ class ConfigCommandSet : CommandSet(Privilege.ADMIN){ val idlo = args[1].toIntOrNull() ?: reject(player, "INCORRECT ID LOW") val idhi = args[2].toIntOrNull() ?: reject(player, "INCORRECT ID HIGH") for (idsend in (idlo as Int) until (idhi as Int)) { - player.configManager.set(idsend, Integer.MAX_VALUE) + setVarp(player, idsend, Integer.MAX_VALUE) notify(player,"Config: $idsend value: " + Integer.MAX_VALUE) } } @@ -33,7 +34,7 @@ class ConfigCommandSet : CommandSet(Privilege.ADMIN){ val idlo = args[1].toIntOrNull() ?: reject(player, "INCORRECT ID LOW") val idhi = args[2].toIntOrNull() ?: reject(player, "INCORRECT ID HIGH") for (idsend in (idlo as Int) until (idhi as Int)) { - player.configManager.set(idsend, 0) + setVarp(player, idsend, 0) notify(player,"Config: $idsend value: 0") } } diff --git a/Server/src/main/core/game/system/command/sets/MiscCommandSet.kt b/Server/src/main/core/game/system/command/sets/MiscCommandSet.kt index 8c0dd1a32..5532c7d72 100644 --- a/Server/src/main/core/game/system/command/sets/MiscCommandSet.kt +++ b/Server/src/main/core/game/system/command/sets/MiscCommandSet.kt @@ -456,7 +456,7 @@ class MiscCommandSet : CommandSet(Privilege.ADMIN){ } val configID = args[1].toString().toInt() val configValue = args[2].toString().toInt() - player.configManager.forceSet(configID,configValue,false) + setVarp(player, configID, configValue) } define("getobjectvarp"){player,args -> @@ -474,77 +474,7 @@ class MiscCommandSet : CommandSet(Privilege.ADMIN){ val varbitID = args[1].toInt() notify(player, "${varbitID}: ${VarbitDefinition.forId(varbitID)}") } - define("togglexp", Privilege.STANDARD){ player, args -> - val enabled = player.varpManager.get(2501).getVarbit(0) == 1 - player.varpManager.get(2501).setVarbit(0,if(enabled) 0 else 1).send(player) - notify(player, "XP drops are now " + colorize("%R" + if(!enabled) "ON." else "OFF.")) - player.varpManager.flagSave(2501) - } - define("xpconfig", Privilege.STANDARD){ player, args -> - if(args.size < 3){ - reject(player,"Usage: ::xpconfig track|mode type", - "Track types: total|recent", - "Mode types: instant|increment", - "Defaults: track - total, mode - increment") - } - - when(args[1]){ - "track" -> when(args[2]){ - "total" -> { - player.varpManager.get(2501).setVarbit(2,0).send(player) - notify(player,"You are now tracking " + colorize("%RTOTAL") + " experience.") - } - "recent" -> { - player.varpManager.get(2501).setVarbit(2,1).send(player) - notify(player,"You are now tracking the " + colorize("%RMOST RECENT") + " skill's experience.") - } - else -> { - reject(player,"Usage: ::xpconfig track|mode type") - reject(player,"Track types: total|recent") - reject(player, "Mode types: instant|increment") - reject(player,"Defaults: track - total, mode - increment") - } - } - - "mode" -> { - when(args[2]){ - "instant" -> { - player.varpManager.get(2501).setVarbit(1,1).send(player) - notify(player,"Your xp tracker now updates " + colorize("%RINSTANTLY") + ".") - } - "increment" -> { - player.varpManager.get(2501).setVarbit(1,0).send(player) - notify(player,"Your xp tracker now updates " + colorize("%RINCREMENTALLY") + ".") - } - else -> { - reject(player,"Usage: ::xpconfig track|mode type") - reject(player,"Track types: total|recent") - reject(player, "Mode types: instant|increment") - reject(player,"Defaults: track - total, mode - increment") - } - } - } - else -> { - reject(player,"Usage: ::xpconfig track|mode type") - reject(player,"Track types: total|recent") - reject(player, "Mode types: instant|increment") - reject(player,"Defaults: track - total, mode - increment") - } - } - player.varpManager.flagSave(2501) - } - - define("toggleslayer", Privilege.STANDARD){ player, _ -> - val disabled = player.varpManager.get(2502).getVarbit(0) == 1 - player.varpManager.get(2502).setVarbit(0,if(disabled) 0 else 1).send(player) - if(!disabled){ - player.varpManager.flagSave(2502) - } else { - player.varpManager.get(2502).save = false - } - notify(player,"Slayer task tracker is now " + (if(disabled) colorize("%RON") else colorize("%ROFF")) + ".") - } define("setvarbit", Privilege.ADMIN, "::setvarbit VARBIT ID VALUE", ""){ player,args -> @@ -558,7 +488,15 @@ class MiscCommandSet : CommandSet(Privilege.ADMIN){ reject(player,"Usage ::setvarbit index offset value") } - player.varpManager.setVarbit(index!!, value!!) + setVarbit(player, index!!, value!!) + } + + define("getvarbit", Privilege.ADMIN, "::getvarbit VARBIT ID", "") { + player, args -> + if (args.size != 2) + reject(player, "Usage: ::getvarbit id") + val index = args[1].toIntOrNull() ?: return@define + notify(player, "Varbit $index: Currently ${getVarbit(player, index)}") } define("setvarp", Privilege.ADMIN, "::setvarp VARP ID BIT OFFSET VALUE", "Sets the value starting at the BIT OFFSET of the varp."){ @@ -574,7 +512,7 @@ class MiscCommandSet : CommandSet(Privilege.ADMIN){ reject(player,"Usage ::setvarp index offset value") } - player.varpManager.get(index!!).setVarbit(offset!!, value!!).send(player) + setVarp(player, index!!, value!! shl offset!!) } define("setvarc", Privilege.ADMIN, "::setvarc VARC ID VALUE") { player, args -> @@ -621,15 +559,6 @@ class MiscCommandSet : CommandSet(Privilege.ADMIN){ player.details.credits += 100 } - define("resetgwdropes", Privilege.STANDARD, "", "OLD: Was used for fixing broken data."){ player, _ -> - player.varpManager.get(1048).clearBitRange(0,31) - player.varpManager.get(1048).send(player) - } - - define("resetmistag", Privilege.STANDARD, "", "OLD: Was used for fixing broken data."){ player, _ -> - player.removeAttribute("mistag-greeted") - } - define("getnpcparent"){player,args -> if(args.size < 2){ reject(player,"Usage: ::getnpcparent npcid") diff --git a/Server/src/main/core/game/system/command/sets/SlayerCommandSet.kt b/Server/src/main/core/game/system/command/sets/SlayerCommandSet.kt index 0f24a4eac..62e952d5b 100644 --- a/Server/src/main/core/game/system/command/sets/SlayerCommandSet.kt +++ b/Server/src/main/core/game/system/command/sets/SlayerCommandSet.kt @@ -7,6 +7,7 @@ import content.global.skill.slayer.Tasks import core.game.node.entity.npc.NPC import core.game.system.command.Privilege import core.plugin.Initializable +import core.api.* @Initializable class SlayerCommandSet : CommandSet(Privilege.ADMIN){ @@ -50,7 +51,7 @@ class SlayerCommandSet : CommandSet(Privilege.ADMIN){ val slayer = SlayerManager.getInstance(player) if (slayer.hasTask()) slayer.task = task else SlayerUtils.assign(player, task, Master.values().random()) if (amount != null) slayer.amount = amount - player.varpManager.get(2502).setVarbit(0, slayer.flags.taskFlags shr 4).send(player) + setVarp(player, 2502, slayer.flags.taskFlags shr 4) } } -} \ No newline at end of file +} diff --git a/Server/src/main/core/game/system/communication/CommunicationInfo.java b/Server/src/main/core/game/system/communication/CommunicationInfo.java index 6aab0821a..ea146fec3 100644 --- a/Server/src/main/core/game/system/communication/CommunicationInfo.java +++ b/Server/src/main/core/game/system/communication/CommunicationInfo.java @@ -24,6 +24,7 @@ import java.util.*; import java.util.Map.Entry; import static core.api.ContentAPIKt.log; +import static core.api.ContentAPIKt.setVarp; /** * Holds communication information. @@ -194,19 +195,19 @@ public final class CommunicationInfo { public void toggleLootshare(final Player player) { if (lootShare) { lootShare = false; - player.getConfigManager().set(1083, 0); + setVarp(player, 1083, 0); } else if (lootSharePulse != null) { lootSharePulse.stop(); lootSharePulse = null; - player.getConfigManager().set(1083, 0); + setVarp(player, 1083, 0); } else if (!lootShare) { - player.getConfigManager().set(1083, 2); + setVarp(player, 1083, 2); lootSharePulse = new Pulse(GameWorld.getSettings().isDevMode() ? 5 : 200, player) { @Override public boolean pulse() { lootShare = true; lootSharePulse = null; - player.getConfigManager().set(1083, 1); + setVarp(player, 1083, 1); return true; } }; @@ -667,4 +668,4 @@ public final class CommunicationInfo { + "," + kickRequirement.ordinal() + "," + lootRequirement.ordinal(); } -} \ No newline at end of file +} diff --git a/Server/src/main/core/net/packet/PacketRepository.java b/Server/src/main/core/net/packet/PacketRepository.java index 68177e7e4..87e28cf7e 100644 --- a/Server/src/main/core/net/packet/PacketRepository.java +++ b/Server/src/main/core/net/packet/PacketRepository.java @@ -9,6 +9,7 @@ import java.io.PrintWriter; import java.io.StringWriter; import java.util.HashMap; import java.util.Map; +import core.game.bots.AIPlayer; import static core.api.ContentAPIKt.log; @@ -85,6 +86,7 @@ public final class PacketRepository { */ @SuppressWarnings({ "rawtypes", "unchecked" }) public static void send(Class clazz, Context context) { + if(context.getPlayer() instanceof AIPlayer) return; if(context.getPlayer().getSession() == null) return; OutgoingPacket p = OUTGOING_PACKETS.get(clazz); if (p == null) {