From ccae0c2c48c99bac5fb90bdb0e944f45f94dce33 Mon Sep 17 00:00:00 2001 From: Adam Date: Sat, 19 Jan 2019 15:23:36 -0500 Subject: [PATCH] api: mark getCollisionMaps as nullable --- runelite-api/src/main/java/net/runelite/api/Client.java | 1 + .../src/main/java/net/runelite/api/coords/WorldArea.java | 5 +++++ .../src/main/java/net/runelite/mixins/RSTileMixin.java | 9 +++++++-- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/runelite-api/src/main/java/net/runelite/api/Client.java b/runelite-api/src/main/java/net/runelite/api/Client.java index 421d7041b0..2b58fb180f 100644 --- a/runelite-api/src/main/java/net/runelite/api/Client.java +++ b/runelite-api/src/main/java/net/runelite/api/Client.java @@ -1425,6 +1425,7 @@ public interface Client extends GameEngine * * @return the collision data */ + @Nullable CollisionData[] getCollisionMaps(); @VisibleForDevtools diff --git a/runelite-api/src/main/java/net/runelite/api/coords/WorldArea.java b/runelite-api/src/main/java/net/runelite/api/coords/WorldArea.java index 5e727ebf91..ea96884f72 100644 --- a/runelite-api/src/main/java/net/runelite/api/coords/WorldArea.java +++ b/runelite-api/src/main/java/net/runelite/api/coords/WorldArea.java @@ -295,6 +295,11 @@ public class WorldArea } CollisionData[] collisionData = client.getCollisionMaps(); + if (collisionData == null) + { + return false; + } + int[][] collisionDataFlags = collisionData[plane].getFlags(); if (dx != 0) diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSTileMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSTileMixin.java index 402de9a79c..b186ff454a 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSTileMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSTileMixin.java @@ -27,6 +27,7 @@ package net.runelite.mixins; import java.util.ArrayList; import java.util.List; import net.runelite.api.Actor; +import net.runelite.api.CollisionData; import net.runelite.api.CollisionDataFlag; import net.runelite.api.Constants; import net.runelite.api.DecorativeObject; @@ -59,7 +60,6 @@ import net.runelite.api.mixins.Inject; import net.runelite.api.mixins.Mixin; import net.runelite.api.mixins.Shadow; import net.runelite.rs.api.RSClient; -import net.runelite.rs.api.RSCollisionData; import net.runelite.rs.api.RSDeque; import net.runelite.rs.api.RSGameObject; import net.runelite.rs.api.RSItem; @@ -394,7 +394,12 @@ public abstract class RSTileMixin implements RSTile return false; } - RSCollisionData[] collisionData = client.getCollisionMaps(); + CollisionData[] collisionData = client.getCollisionMaps(); + if (collisionData == null) + { + return false; + } + int z = this.getPlane(); int[][] collisionDataFlags = collisionData[z].getFlags();