mirror of
https://gitlab.com/2009scape/2009scape.git
synced 2025-12-09 16:45:44 -07:00
Fixed issue preventing some dragonstone jewellery teleports working at level 30 wilderness
This commit is contained in:
parent
9a5f1e85e2
commit
2255238554
2 changed files with 38 additions and 7 deletions
|
|
@ -13,6 +13,9 @@ import core.game.world.map.Location;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
import org.rs09.consts.Items;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles the zones for an entity.
|
* Handles the zones for an entity.
|
||||||
|
|
@ -20,6 +23,35 @@ import java.util.List;
|
||||||
*/
|
*/
|
||||||
public final class ZoneMonitor {
|
public final class ZoneMonitor {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The set of dragonstone teleport jewellery, which allow teleporting from up to and including level 30 wildy.
|
||||||
|
* Used to check if a player can teleport from 20 < level <= 30 wildy, see canTeleportByDragonstoneJewellery.
|
||||||
|
* Note: the check is based on the nextJewellery (see EnchantedJewellery.kt), so this list should not contain the (4) items, and should contain the empty ones.
|
||||||
|
* @author Player Name
|
||||||
|
*/
|
||||||
|
static final Set<Integer> DRAGONSTONE_TELEPORT_JEWELLERY = Set.of(
|
||||||
|
Items.AMULET_OF_GLORY_1704,
|
||||||
|
Items.AMULET_OF_GLORY1_1706,
|
||||||
|
Items.AMULET_OF_GLORY2_1708,
|
||||||
|
Items.AMULET_OF_GLORY3_1710,
|
||||||
|
Items.AMULET_OF_GLORYT_10362,
|
||||||
|
Items.AMULET_OF_GLORYT1_10360,
|
||||||
|
Items.AMULET_OF_GLORYT2_10358,
|
||||||
|
Items.AMULET_OF_GLORYT3_10356,
|
||||||
|
Items.SKILLS_NECKLACE_11113,
|
||||||
|
Items.SKILLS_NECKLACE1_11111,
|
||||||
|
Items.SKILLS_NECKLACE2_11109,
|
||||||
|
Items.SKILLS_NECKLACE3_11107,
|
||||||
|
Items.COMBAT_BRACELET_11126,
|
||||||
|
Items.COMBAT_BRACELET1_11124,
|
||||||
|
Items.COMBAT_BRACELET2_11122,
|
||||||
|
Items.COMBAT_BRACELET3_11120,
|
||||||
|
Items.RING_OF_WEALTH_14638,
|
||||||
|
Items.RING_OF_WEALTH1_14640,
|
||||||
|
Items.RING_OF_WEALTH2_14642,
|
||||||
|
Items.RING_OF_WEALTH3_14644
|
||||||
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The entity.
|
* The entity.
|
||||||
*/
|
*/
|
||||||
|
|
@ -203,7 +235,7 @@ public final class ZoneMonitor {
|
||||||
* @return {@code True} if so.
|
* @return {@code True} if so.
|
||||||
*/
|
*/
|
||||||
public boolean teleport(int type, Node node) {
|
public boolean teleport(int type, Node node) {
|
||||||
if (type != -1 && entity.isTeleBlocked() && !canTeleportByGlory(type, node)) {
|
if (type != -1 && entity.isTeleBlocked() && !canTeleportByDragonstoneJewellery(type, node)) {
|
||||||
if (entity.isPlayer()) {
|
if (entity.isPlayer()) {
|
||||||
entity.asPlayer().sendMessage("A magical force has stopped you from teleporting.");
|
entity.asPlayer().sendMessage("A magical force has stopped you from teleporting.");
|
||||||
}
|
}
|
||||||
|
|
@ -218,14 +250,13 @@ public final class ZoneMonitor {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks if a player can teleport with a glory in >= 1 <= 30 wilderness level
|
* Checks if a player can teleport with a dragonstone jewellery piece in >= 1 <= 30 wilderness level
|
||||||
* @return {@code True} if so.
|
* @return {@code True} if so.
|
||||||
*/
|
*/
|
||||||
private boolean canTeleportByGlory(int type, Node node) {
|
private boolean canTeleportByDragonstoneJewellery(int type, Node node) {
|
||||||
if (type != 1 || !node.asItem().getName().contains("Amulet of glory")) {
|
if (type != 1 || !DRAGONSTONE_TELEPORT_JEWELLERY.contains(node.asItem().getId())) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (entity.timers.getTimer("teleblock") != null)
|
if (entity.timers.getTimer("teleblock") != null)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ import org.junit.jupiter.api.Test
|
||||||
|
|
||||||
class ZoneMonitorTests {
|
class ZoneMonitorTests {
|
||||||
|
|
||||||
val GLORIES = intArrayOf(1710, 1708, 1706, 1712)
|
val GLORIES = intArrayOf(1710, 1708, 1706, 1704)
|
||||||
|
|
||||||
init {
|
init {
|
||||||
TestUtils.preTestSetup()
|
TestUtils.preTestSetup()
|
||||||
|
|
@ -91,4 +91,4 @@ class ZoneMonitorTests {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue