Implemented a new Teleport zone restriction and added a check to the teleport manager to see if the player is teleport zone restricted

The firemaking cape will no longer be deleted when logging out in a darkzone
The Stronghold of Security Gift of Peace, Grain of Plenty, and Box of Health will now add coins to already existing stack of coins if inventory is full
The Cradle of Life will now unlock emotes from all previous Stronghold of Security levels if completed (This was added for older accounts which have completed the stronghold of security but are missing the emotes)
Implemented an Entrana allowed item check
If skillcape perks are active then the player is allowed to bring the runecrafting cape(s) to entrana
The teleport block in fishing trawler now only applies while on the boat and is cleared upon logout/leave
Fixed an issue where you could teleport out of the sunk fishing trawler
Fixed an issue where a logout listener was not being removed after failing the fishing trawler causing the player to be teleported to port khazard after their next login
Added a check to to see if the player has items banned on entrana
Blue dragon scales have had their respawn timer corrected to 18 seconds
Fixed the warriors guild cyclops room logout listener to properly be removed when leaving
Players will no longer get stuck if logging out during agility obstacles
Enchanted jewellery teleports now close any open interface
Players can no longer complete the Falador medium diary goal of pickpocketing a guard without 40 thieving
This commit is contained in:
Zerken
2023-08-31 08:23:39 +00:00
committed by Ryan
parent 8116cae7df
commit 2747eb61ec
16 changed files with 71 additions and 57 deletions
@@ -176,7 +176,7 @@ class WildernessCourse
val fail = AgilityHandler.hasFailed(player, 1, 0.3)
val origLoc = player.location
registerLogoutListener(player, "steppingstone"){p ->
teleport(p, origLoc)
player.location = origLoc
}
submitWorldPulse(object : Pulse(2, player){
var counter = 0
@@ -10,9 +10,10 @@ import core.game.world.map.zone.impl.DarkZone
import core.plugin.Initializable
import core.game.world.GameWorld
import content.global.skill.farming.*
import core.api.getAttribute
import core.api.sendDialogue
import core.api.hasRequirement
import core.api.*
import core.cache.def.impl.ItemDefinition
import org.rs09.consts.Items
import org.rs09.consts.Sounds
enum class SkillcapePerks(val attribute: String, val effect: ((Player) -> Unit)? = null) {
BAREFISTED_SMITHING("cape_perks:barefisted-smithing"),
@@ -257,12 +258,13 @@ enum class SkillcapePerks(val attribute: String, val effect: ((Player) -> Unit)?
fun sendAltar(player: Player,altar: Altar){
end()
if (altar == Altar.DEATH && !hasRequirement(player, "Mourning's End Part II"))
return
else if (altar == Altar.ASTRAL && !hasRequirement(player, "Lunar Diplomacy"))
return
else if (altar == Altar.BLOOD && !hasRequirement(player, "Legacy of Seergaze"))
if (altar == Altar.DEATH && !hasRequirement(player, "Mourning's End Part II")) return
if (altar == Altar.ASTRAL && !hasRequirement(player, "Lunar Diplomacy")) return
if (altar == Altar.BLOOD && !hasRequirement(player, "Legacy of Seergaze")) return
if (altar == Altar.LAW && !ItemDefinition.canEnterEntrana(player)) {
sendItemDialogue(player, Items.SARADOMIN_SYMBOL_8055, "No weapons or armour are permitted on holy Entrana.")
return
}
var endLoc = if (altar == Altar.ASTRAL) Location.create(2151, 3864, 0) else altar.ruin.end