From 534fda881ef7887181c12b634f92fb632eeb3d37 Mon Sep 17 00:00:00 2001 From: Adam Date: Sat, 18 Aug 2018 09:31:59 -0400 Subject: [PATCH] pest control plugin: cleanup & lombokize --- .../client/plugins/pestcontrol/Game.java | 68 +++++++------------ .../pestcontrol/PestControlOverlay.java | 12 +--- .../pestcontrol/PestControlPlugin.java | 19 ++---- .../client/plugins/pestcontrol/Portal.java | 36 ++-------- .../plugins/pestcontrol/PortalContext.java | 39 +++-------- .../client/plugins/pestcontrol/Rotation.java | 4 +- 6 files changed, 50 insertions(+), 128 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/pestcontrol/Game.java b/runelite-client/src/main/java/net/runelite/client/plugins/pestcontrol/Game.java index 0b04b687c3..db9659994f 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/pestcontrol/Game.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/pestcontrol/Game.java @@ -27,6 +27,7 @@ package net.runelite.client.plugins.pestcontrol; import java.util.ArrayList; import java.util.Collection; import java.util.List; +import lombok.Getter; import lombok.extern.slf4j.Slf4j; import static net.runelite.client.plugins.pestcontrol.Portal.BLUE; import static net.runelite.client.plugins.pestcontrol.Portal.PURPLE; @@ -34,39 +35,42 @@ import static net.runelite.client.plugins.pestcontrol.Portal.RED; import static net.runelite.client.plugins.pestcontrol.Portal.YELLOW; @Slf4j -public class Game +class Game { // Game starts with all possible rotations private Rotation[] possibleRotations = Rotation.values(); // Number of shields dropped private int shieldsDropped; + @Getter private final PortalContext purple = new PortalContext(PURPLE); + @Getter private final PortalContext blue = new PortalContext(BLUE); + @Getter private final PortalContext yellow = new PortalContext(YELLOW); + @Getter private final PortalContext red = new PortalContext(RED); - public void fall(String color) + void fall(String color) { - if (color.equalsIgnoreCase("purple")) + switch (color.toLowerCase()) { - fall(purple); - } - else if (color.equalsIgnoreCase("red")) - { - fall(red); - } - else if (color.equalsIgnoreCase("yellow")) - { - fall(yellow); - } - else if (color.equalsIgnoreCase("blue")) - { - fall(blue); + case "purple": + fall(purple); + break; + case "red": + fall(red); + break; + case "yellow": + fall(yellow); + break; + case "blue": + fall(blue); + break; } } - public void fall(PortalContext portal) + private void fall(PortalContext portal) { if (!portal.isShielded()) { @@ -75,7 +79,7 @@ public class Game log.debug("Shield dropped for {}", portal.getPortal()); - portal.setIsShielded(false); + portal.setShielded(false); int shieldDrop = shieldsDropped++; // Remove impossible rotations @@ -92,19 +96,19 @@ public class Game possibleRotations = rotations.toArray(new Rotation[rotations.size()]); } - public void die(PortalContext portal) + void die(PortalContext portal) { - if (portal.isIsDead()) + if (portal.isDead()) { return; } log.debug("Portal {} died", portal.getPortal()); - portal.setIsDead(true); + portal.setDead(true); } - public Collection getNextPortals() + Collection getNextPortals() { List portals = new ArrayList<>(); @@ -120,24 +124,4 @@ public class Game return portals; } - - public PortalContext getPurple() - { - return purple; - } - - public PortalContext getBlue() - { - return blue; - } - - public PortalContext getYellow() - { - return yellow; - } - - public PortalContext getRed() - { - return red; - } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/pestcontrol/PestControlOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/pestcontrol/PestControlOverlay.java index 2eaffefdd5..4158e0df3a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/pestcontrol/PestControlOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/pestcontrol/PestControlOverlay.java @@ -109,21 +109,11 @@ public class PestControlOverlay extends Overlay PortalContext yellow = game.getYellow(); PortalContext red = game.getRed(); - Widget purpleShield = client.getWidget(PURPLE.getShield()); - Widget blueShield = client.getWidget(BLUE.getShield()); - Widget yellowShield = client.getWidget(YELLOW.getShield()); - Widget redShield = client.getWidget(RED.getShield()); - Widget purpleHealth = client.getWidget(PURPLE.getHitpoints()); Widget blueHealth = client.getWidget(BLUE.getHitpoints()); Widget yellowHealth = client.getWidget(YELLOW.getHitpoints()); Widget redHealth = client.getWidget(RED.getHitpoints()); - assert purpleShield != null; - assert blueShield != null; - assert yellowShield != null; - assert redShield != null; - // Check for dead portals if (isZero(purpleHealth)) { @@ -227,7 +217,7 @@ public class PestControlOverlay extends Overlay private void renderAttack(Graphics2D graphics, PortalContext portal) { - if (portal.isShielded() || portal.isIsDead()) + if (portal.isShielded() || portal.isDead()) { return; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/pestcontrol/PestControlPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/pestcontrol/PestControlPlugin.java index f919405c75..fd3b980c70 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/pestcontrol/PestControlPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/pestcontrol/PestControlPlugin.java @@ -30,8 +30,7 @@ import java.util.regex.Pattern; import javax.inject.Inject; import net.runelite.api.ChatMessageType; import net.runelite.api.Client; -import net.runelite.api.GameState; -import net.runelite.api.events.SetMessage; +import net.runelite.api.events.ChatMessage; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.overlay.OverlayManager; @@ -43,6 +42,8 @@ import net.runelite.client.ui.overlay.OverlayManager; ) public class PestControlPlugin extends Plugin { + private final Pattern SHIELD_DROP = Pattern.compile("The ([a-z]+), [^ ]+ portal shield has dropped!", Pattern.CASE_INSENSITIVE); + @Inject private OverlayManager overlayManager; @@ -52,8 +53,6 @@ public class PestControlPlugin extends Plugin @Inject private PestControlOverlay overlay; - private Pattern pattern = Pattern.compile("The ([a-z]+), [^ ]+ portal shield has dropped!", Pattern.CASE_INSENSITIVE); - @Override protected void startUp() throws Exception { @@ -66,18 +65,12 @@ public class PestControlPlugin extends Plugin overlayManager.remove(overlay); } - @Subscribe - private void onSetMessage(SetMessage setMessage) + public void onChatMessage(ChatMessage chatMessage) { - if (client.getGameState() != GameState.LOADING && client.getGameState() != GameState.LOGGED_IN) + if (overlay.getGame() != null && chatMessage.getType() == ChatMessageType.SERVER) { - return; - } - - if (overlay.getGame() != null && setMessage.getType() == ChatMessageType.SERVER) - { - Matcher matcher = pattern.matcher(setMessage.getValue()); + Matcher matcher = SHIELD_DROP.matcher(chatMessage.getMessage()); if (matcher.lookingAt()) { overlay.getGame().fall(matcher.group(1)); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/pestcontrol/Portal.java b/runelite-client/src/main/java/net/runelite/client/plugins/pestcontrol/Portal.java index 8b5578478e..2807ff9fcb 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/pestcontrol/Portal.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/pestcontrol/Portal.java @@ -23,9 +23,15 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ package net.runelite.client.plugins.pestcontrol; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.ToString; import net.runelite.api.widgets.WidgetInfo; -public enum Portal +@AllArgsConstructor +@Getter +@ToString +enum Portal { PURPLE(WidgetInfo.PEST_CONTROL_PURPLE_SHIELD, WidgetInfo.PEST_CONTROL_PURPLE_HEALTH, WidgetInfo.PEST_CONTROL_PURPLE_ICON), BLUE(WidgetInfo.PEST_CONTROL_BLUE_SHIELD, WidgetInfo.PEST_CONTROL_BLUE_HEALTH, WidgetInfo.PEST_CONTROL_BLUE_ICON), @@ -35,32 +41,4 @@ public enum Portal private final WidgetInfo shield; private final WidgetInfo hitpoints; private final WidgetInfo icon; - - private Portal(WidgetInfo shield, WidgetInfo hitpoints, WidgetInfo icon) - { - this.shield = shield; - this.hitpoints = hitpoints; - this.icon = icon; - } - - @Override - public String toString() - { - return "Portal(" + name() + ")"; - } - - public WidgetInfo getShield() - { - return shield; - } - - public WidgetInfo getHitpoints() - { - return hitpoints; - } - - public WidgetInfo getIcon() - { - return icon; - } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/pestcontrol/PortalContext.java b/runelite-client/src/main/java/net/runelite/client/plugins/pestcontrol/PortalContext.java index acbe9038ee..6ad91ea6e3 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/pestcontrol/PortalContext.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/pestcontrol/PortalContext.java @@ -24,39 +24,16 @@ */ package net.runelite.client.plugins.pestcontrol; -public class PortalContext +import lombok.Getter; +import lombok.RequiredArgsConstructor; +import lombok.Setter; + +@RequiredArgsConstructor +@Getter +@Setter +class PortalContext { private final Portal portal; private boolean isShielded = true; private boolean isDead; - - public PortalContext(Portal portal) - { - this.portal = portal; - } - - public Portal getPortal() - { - return portal; - } - - public boolean isShielded() - { - return isShielded; - } - - public void setIsShielded(boolean isShielded) - { - this.isShielded = isShielded; - } - - public boolean isIsDead() - { - return isDead; - } - - public void setIsDead(boolean isDead) - { - this.isDead = isDead; - } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/pestcontrol/Rotation.java b/runelite-client/src/main/java/net/runelite/client/plugins/pestcontrol/Rotation.java index 119ea616d9..e761edf383 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/pestcontrol/Rotation.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/pestcontrol/Rotation.java @@ -29,7 +29,7 @@ import static net.runelite.client.plugins.pestcontrol.Portal.PURPLE; import static net.runelite.client.plugins.pestcontrol.Portal.RED; import static net.runelite.client.plugins.pestcontrol.Portal.YELLOW; -public enum Rotation +enum Rotation { PBYR(PURPLE, BLUE, YELLOW, RED), PYBR(PURPLE, YELLOW, BLUE, RED), @@ -40,7 +40,7 @@ public enum Rotation private final Portal[] portals; - private Rotation(Portal first, Portal second, Portal third, Portal fourth) + Rotation(Portal first, Portal second, Portal third, Portal fourth) { portals = new Portal[] {