From cd8a40807df455486e84c33ecfa9ec36c4f8136a Mon Sep 17 00:00:00 2001 From: Matthew C Date: Sun, 13 Sep 2020 16:26:09 +0900 Subject: [PATCH] runecraft: cleanup, refactor AbyssRifts, updateRifts() --- .../client/plugins/runecraft/AbyssRifts.java | 42 +++++------ .../plugins/runecraft/RunecraftConfig.java | 4 +- .../plugins/runecraft/RunecraftPlugin.java | 75 ++----------------- 3 files changed, 29 insertions(+), 92 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/runecraft/AbyssRifts.java b/runelite-client/src/main/java/net/runelite/client/plugins/runecraft/AbyssRifts.java index 1ecedafe00..dae33bdb84 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/runecraft/AbyssRifts.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/runecraft/AbyssRifts.java @@ -26,6 +26,8 @@ package net.runelite.client.plugins.runecraft; import com.google.common.collect.ImmutableMap; import java.util.Map; +import java.util.function.Predicate; +import lombok.AllArgsConstructor; import lombok.Getter; import static net.runelite.api.ItemID.AIR_RUNE; import static net.runelite.api.ItemID.BLOOD_RUNE; @@ -42,21 +44,22 @@ import static net.runelite.api.ItemID.SOUL_RUNE; import static net.runelite.api.ItemID.WATER_RUNE; import net.runelite.api.ObjectID; -public enum AbyssRifts +@AllArgsConstructor +enum AbyssRifts { - AIR_RIFT(ObjectID.AIR_RIFT, AIR_RUNE), - BLOOD_RIFT(ObjectID.BLOOD_RIFT, BLOOD_RUNE), - BODY_RIFT(ObjectID.BODY_RIFT, BODY_RUNE), - CHAOS_RIFT(ObjectID.CHAOS_RIFT, CHAOS_RUNE), - COSMIC_RIFT(ObjectID.COSMIC_RIFT, COSMIC_RUNE), - DEATH_RIFT(ObjectID.DEATH_RIFT, DEATH_RUNE), - EARTH_RIFT(ObjectID.EARTH_RIFT, EARTH_RUNE), - FIRE_RIFT(ObjectID.FIRE_RIFT, FIRE_RUNE), - LAW_RIFT(ObjectID.LAW_RIFT, LAW_RUNE), - MIND_RIFT(ObjectID.MIND_RIFT, MIND_RUNE), - NATURE_RIFT(ObjectID.NATURE_RIFT, NATURE_RUNE), - SOUL_RIFT(ObjectID.SOUL_RIFT, SOUL_RUNE), - WATER_RIFT(ObjectID.WATER_RIFT, WATER_RUNE); + AIR_RIFT(ObjectID.AIR_RIFT, AIR_RUNE, RunecraftConfig::showAir), + BLOOD_RIFT(ObjectID.BLOOD_RIFT, BLOOD_RUNE, RunecraftConfig::showBlood), + BODY_RIFT(ObjectID.BODY_RIFT, BODY_RUNE, RunecraftConfig::showBody), + CHAOS_RIFT(ObjectID.CHAOS_RIFT, CHAOS_RUNE, RunecraftConfig::showChaos), + COSMIC_RIFT(ObjectID.COSMIC_RIFT, COSMIC_RUNE, RunecraftConfig::showCosmic), + DEATH_RIFT(ObjectID.DEATH_RIFT, DEATH_RUNE, RunecraftConfig::showDeath), + EARTH_RIFT(ObjectID.EARTH_RIFT, EARTH_RUNE, RunecraftConfig::showEarth), + FIRE_RIFT(ObjectID.FIRE_RIFT, FIRE_RUNE, RunecraftConfig::showFire), + LAW_RIFT(ObjectID.LAW_RIFT, LAW_RUNE, RunecraftConfig::showLaw), + MIND_RIFT(ObjectID.MIND_RIFT, MIND_RUNE, RunecraftConfig::showMind), + NATURE_RIFT(ObjectID.NATURE_RIFT, NATURE_RUNE, RunecraftConfig::showNature), + SOUL_RIFT(ObjectID.SOUL_RIFT, SOUL_RUNE, RunecraftConfig::showSoul), + WATER_RIFT(ObjectID.WATER_RIFT, WATER_RUNE, RunecraftConfig::showWater); @Getter private final int objectId; @@ -64,6 +67,9 @@ public enum AbyssRifts @Getter private final int itemId; + @Getter + private final Predicate configEnabled; + private static final Map rifts; static @@ -78,13 +84,7 @@ public enum AbyssRifts rifts = builder.build(); } - AbyssRifts(int objectId, int itemId) - { - this.objectId = objectId; - this.itemId = itemId; - } - - public static AbyssRifts getRift(int id) + static AbyssRifts getRift(int id) { return rifts.get(id); } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/runecraft/RunecraftConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/runecraft/RunecraftConfig.java index fee0ae86ff..cddc8da594 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/runecraft/RunecraftConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/runecraft/RunecraftConfig.java @@ -30,9 +30,11 @@ import net.runelite.client.config.ConfigGroup; import net.runelite.client.config.ConfigItem; import net.runelite.client.config.ConfigSection; -@ConfigGroup("runecraft") +@ConfigGroup(RunecraftConfig.GROUP) public interface RunecraftConfig extends Config { + String GROUP = "runecraft"; + @ConfigSection( name = "Rift Settings", description = "Abyss rift overlay settings", diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/runecraft/RunecraftPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/runecraft/RunecraftPlugin.java index 64d73b8a18..0aeb45da57 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/runecraft/RunecraftPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/runecraft/RunecraftPlugin.java @@ -26,6 +26,7 @@ package net.runelite.client.plugins.runecraft; import com.google.common.collect.ImmutableList; import com.google.inject.Provides; +import java.util.Arrays; import java.util.HashSet; import java.util.List; import java.util.Set; @@ -34,7 +35,6 @@ import javax.inject.Inject; import lombok.AccessLevel; import lombok.Getter; import net.runelite.api.ChatMessageType; -import net.runelite.api.Client; import net.runelite.api.DecorativeObject; import net.runelite.api.GameState; import net.runelite.api.InventoryID; @@ -55,19 +55,6 @@ import net.runelite.client.eventbus.Subscribe; import net.runelite.client.events.ConfigChanged; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; -import static net.runelite.client.plugins.runecraft.AbyssRifts.AIR_RIFT; -import static net.runelite.client.plugins.runecraft.AbyssRifts.BLOOD_RIFT; -import static net.runelite.client.plugins.runecraft.AbyssRifts.BODY_RIFT; -import static net.runelite.client.plugins.runecraft.AbyssRifts.CHAOS_RIFT; -import static net.runelite.client.plugins.runecraft.AbyssRifts.COSMIC_RIFT; -import static net.runelite.client.plugins.runecraft.AbyssRifts.DEATH_RIFT; -import static net.runelite.client.plugins.runecraft.AbyssRifts.EARTH_RIFT; -import static net.runelite.client.plugins.runecraft.AbyssRifts.FIRE_RIFT; -import static net.runelite.client.plugins.runecraft.AbyssRifts.LAW_RIFT; -import static net.runelite.client.plugins.runecraft.AbyssRifts.MIND_RIFT; -import static net.runelite.client.plugins.runecraft.AbyssRifts.NATURE_RIFT; -import static net.runelite.client.plugins.runecraft.AbyssRifts.SOUL_RIFT; -import static net.runelite.client.plugins.runecraft.AbyssRifts.WATER_RIFT; import net.runelite.client.ui.overlay.OverlayManager; @PluginDescriptor( @@ -97,9 +84,6 @@ public class RunecraftPlugin extends Plugin @Getter(AccessLevel.PACKAGE) private NPC darkMage; - @Inject - private Client client; - @Inject private OverlayManager overlayManager; @@ -142,7 +126,7 @@ public class RunecraftPlugin extends Plugin @Subscribe public void onConfigChanged(ConfigChanged event) { - if (event.getGroup().equals("runecraft")) + if (event.getGroup().equals(RunecraftConfig.GROUP)) { updateRifts(); } @@ -234,57 +218,8 @@ public class RunecraftPlugin extends Plugin private void updateRifts() { rifts.clear(); - if (config.showAir()) - { - rifts.add(AIR_RIFT); - } - if (config.showBlood()) - { - rifts.add(BLOOD_RIFT); - } - if (config.showBody()) - { - rifts.add(BODY_RIFT); - } - if (config.showChaos()) - { - rifts.add(CHAOS_RIFT); - } - if (config.showCosmic()) - { - rifts.add(COSMIC_RIFT); - } - if (config.showDeath()) - { - rifts.add(DEATH_RIFT); - } - if (config.showEarth()) - { - rifts.add(EARTH_RIFT); - } - if (config.showFire()) - { - rifts.add(FIRE_RIFT); - } - if (config.showLaw()) - { - rifts.add(LAW_RIFT); - } - if (config.showMind()) - { - rifts.add(MIND_RIFT); - } - if (config.showNature()) - { - rifts.add(NATURE_RIFT); - } - if (config.showSoul()) - { - rifts.add(SOUL_RIFT); - } - if (config.showWater()) - { - rifts.add(WATER_RIFT); - } + Arrays.stream(AbyssRifts.values()) + .filter(r -> r.getConfigEnabled().test(config)) + .forEach(rifts::add); } }