Merge pull request #961 from deathbeam/fix-indicators-array-allocation

Fix NPEs on startup from PlayerIndicators
This commit is contained in:
Adam
2018-03-14 15:25:10 -04:00
committed by GitHub
5 changed files with 27 additions and 23 deletions

View File

@@ -28,6 +28,8 @@ import java.awt.Color;
import java.awt.Dimension; import java.awt.Dimension;
import java.awt.Graphics2D; import java.awt.Graphics2D;
import java.awt.Point; import java.awt.Point;
import javax.inject.Inject;
import javax.inject.Singleton;
import net.runelite.api.Player; import net.runelite.api.Player;
import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.Overlay;
import net.runelite.client.ui.overlay.OverlayLayer; import net.runelite.client.ui.overlay.OverlayLayer;
@@ -35,12 +37,14 @@ import net.runelite.client.ui.overlay.OverlayPosition;
import net.runelite.client.ui.overlay.OverlayPriority; import net.runelite.client.ui.overlay.OverlayPriority;
import net.runelite.client.ui.overlay.OverlayUtil; import net.runelite.client.ui.overlay.OverlayUtil;
@Singleton
public class PlayerIndicatorsMinimapOverlay extends Overlay public class PlayerIndicatorsMinimapOverlay extends Overlay
{ {
private final PlayerIndicatorsService playerIndicatorsService; private final PlayerIndicatorsService playerIndicatorsService;
private final PlayerIndicatorsConfig config; private final PlayerIndicatorsConfig config;
PlayerIndicatorsMinimapOverlay(PlayerIndicatorsConfig config, PlayerIndicatorsService playerIndicatorsService) @Inject
private PlayerIndicatorsMinimapOverlay(PlayerIndicatorsConfig config, PlayerIndicatorsService playerIndicatorsService)
{ {
this.config = config; this.config = config;
this.playerIndicatorsService = playerIndicatorsService; this.playerIndicatorsService = playerIndicatorsService;

View File

@@ -29,18 +29,22 @@ import java.awt.Dimension;
import java.awt.Graphics2D; import java.awt.Graphics2D;
import java.awt.Point; import java.awt.Point;
import java.awt.Polygon; import java.awt.Polygon;
import javax.inject.Inject;
import javax.inject.Singleton;
import net.runelite.api.Player; import net.runelite.api.Player;
import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.Overlay;
import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayPosition;
import net.runelite.client.ui.overlay.OverlayPriority; import net.runelite.client.ui.overlay.OverlayPriority;
import net.runelite.client.ui.overlay.OverlayUtil; import net.runelite.client.ui.overlay.OverlayUtil;
@Singleton
public class PlayerIndicatorsOverlay extends Overlay public class PlayerIndicatorsOverlay extends Overlay
{ {
private final PlayerIndicatorsService playerIndicatorsService; private final PlayerIndicatorsService playerIndicatorsService;
private final PlayerIndicatorsConfig config; private final PlayerIndicatorsConfig config;
PlayerIndicatorsOverlay(PlayerIndicatorsConfig config, PlayerIndicatorsService playerIndicatorsService) @Inject
private PlayerIndicatorsOverlay(PlayerIndicatorsConfig config, PlayerIndicatorsService playerIndicatorsService)
{ {
this.config = config; this.config = config;
this.playerIndicatorsService = playerIndicatorsService; this.playerIndicatorsService = playerIndicatorsService;

View File

@@ -28,7 +28,6 @@ import com.google.common.collect.Sets;
import com.google.inject.Provides; import com.google.inject.Provides;
import java.util.Collection; import java.util.Collection;
import javax.inject.Inject; import javax.inject.Inject;
import net.runelite.api.Client;
import net.runelite.client.config.ConfigManager; import net.runelite.client.config.ConfigManager;
import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginDescriptor;
@@ -40,12 +39,10 @@ import net.runelite.client.ui.overlay.Overlay;
public class PlayerIndicatorsPlugin extends Plugin public class PlayerIndicatorsPlugin extends Plugin
{ {
@Inject @Inject
private Client client; private PlayerIndicatorsOverlay playerIndicatorsOverlay;
@Inject @Inject
private PlayerIndicatorsConfig config; private PlayerIndicatorsMinimapOverlay playerIndicatorsMinimapOverlay;
private Collection<Overlay> overlays;
@Provides @Provides
PlayerIndicatorsConfig provideConfig(ConfigManager configManager) PlayerIndicatorsConfig provideConfig(ConfigManager configManager)
@@ -53,22 +50,9 @@ public class PlayerIndicatorsPlugin extends Plugin
return configManager.getConfig(PlayerIndicatorsConfig.class); return configManager.getConfig(PlayerIndicatorsConfig.class);
} }
@Override
protected void startUp() throws Exception
{
final PlayerIndicatorsService playerIndicatorsService =
new PlayerIndicatorsService(client, config);
final PlayerIndicatorsOverlay playerIndicatorsOverlay =
new PlayerIndicatorsOverlay(config, playerIndicatorsService);
final PlayerIndicatorsMinimapOverlay playerIndicatorsMinimapOverlay =
new PlayerIndicatorsMinimapOverlay(config, playerIndicatorsService);
overlays = Sets.newHashSet(playerIndicatorsOverlay, playerIndicatorsMinimapOverlay);
}
@Override @Override
public Collection<Overlay> getOverlays() public Collection<Overlay> getOverlays()
{ {
return overlays; return Sets.newHashSet(playerIndicatorsOverlay, playerIndicatorsMinimapOverlay);
} }
} }

View File

@@ -26,15 +26,19 @@ package net.runelite.client.plugins.playerindicators;
import java.awt.Color; import java.awt.Color;
import java.util.function.BiConsumer; import java.util.function.BiConsumer;
import javax.inject.Inject;
import javax.inject.Singleton;
import net.runelite.api.Client; import net.runelite.api.Client;
import net.runelite.api.Player; import net.runelite.api.Player;
@Singleton
public class PlayerIndicatorsService public class PlayerIndicatorsService
{ {
private final Client client; private final Client client;
private final PlayerIndicatorsConfig config; private final PlayerIndicatorsConfig config;
PlayerIndicatorsService(Client client, PlayerIndicatorsConfig config) @Inject
private PlayerIndicatorsService(Client client, PlayerIndicatorsConfig config)
{ {
this.config = config; this.config = config;
this.client = client; this.client = client;

View File

@@ -36,6 +36,7 @@ import net.runelite.api.mixins.Inject;
import net.runelite.api.mixins.Mixin; import net.runelite.api.mixins.Mixin;
import net.runelite.api.mixins.Shadow; import net.runelite.api.mixins.Shadow;
import net.runelite.rs.api.RSClient; import net.runelite.rs.api.RSClient;
import net.runelite.rs.api.RSName;
import net.runelite.rs.api.RSPlayer; import net.runelite.rs.api.RSPlayer;
@Mixin(RSPlayer.class) @Mixin(RSPlayer.class)
@@ -48,7 +49,14 @@ public abstract class RSPlayerMixin implements RSPlayer
@Override @Override
public String getName() public String getName()
{ {
String name = getRsName().getName(); final RSName rsName = getRsName();
if (rsName == null)
{
return null;
}
String name = rsName.getName();
if (name == null) if (name == null)
{ {