runecraft: cleanup, refactor AbyssRifts, updateRifts()

This commit is contained in:
Matthew C
2020-09-13 16:26:09 +09:00
committed by Adam
parent ca8f78281d
commit cd8a40807d
3 changed files with 29 additions and 92 deletions

View File

@@ -26,6 +26,8 @@ package net.runelite.client.plugins.runecraft;
import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableMap;
import java.util.Map; import java.util.Map;
import java.util.function.Predicate;
import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
import static net.runelite.api.ItemID.AIR_RUNE; import static net.runelite.api.ItemID.AIR_RUNE;
import static net.runelite.api.ItemID.BLOOD_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 static net.runelite.api.ItemID.WATER_RUNE;
import net.runelite.api.ObjectID; import net.runelite.api.ObjectID;
public enum AbyssRifts @AllArgsConstructor
enum AbyssRifts
{ {
AIR_RIFT(ObjectID.AIR_RIFT, AIR_RUNE), AIR_RIFT(ObjectID.AIR_RIFT, AIR_RUNE, RunecraftConfig::showAir),
BLOOD_RIFT(ObjectID.BLOOD_RIFT, BLOOD_RUNE), BLOOD_RIFT(ObjectID.BLOOD_RIFT, BLOOD_RUNE, RunecraftConfig::showBlood),
BODY_RIFT(ObjectID.BODY_RIFT, BODY_RUNE), BODY_RIFT(ObjectID.BODY_RIFT, BODY_RUNE, RunecraftConfig::showBody),
CHAOS_RIFT(ObjectID.CHAOS_RIFT, CHAOS_RUNE), CHAOS_RIFT(ObjectID.CHAOS_RIFT, CHAOS_RUNE, RunecraftConfig::showChaos),
COSMIC_RIFT(ObjectID.COSMIC_RIFT, COSMIC_RUNE), COSMIC_RIFT(ObjectID.COSMIC_RIFT, COSMIC_RUNE, RunecraftConfig::showCosmic),
DEATH_RIFT(ObjectID.DEATH_RIFT, DEATH_RUNE), DEATH_RIFT(ObjectID.DEATH_RIFT, DEATH_RUNE, RunecraftConfig::showDeath),
EARTH_RIFT(ObjectID.EARTH_RIFT, EARTH_RUNE), EARTH_RIFT(ObjectID.EARTH_RIFT, EARTH_RUNE, RunecraftConfig::showEarth),
FIRE_RIFT(ObjectID.FIRE_RIFT, FIRE_RUNE), FIRE_RIFT(ObjectID.FIRE_RIFT, FIRE_RUNE, RunecraftConfig::showFire),
LAW_RIFT(ObjectID.LAW_RIFT, LAW_RUNE), LAW_RIFT(ObjectID.LAW_RIFT, LAW_RUNE, RunecraftConfig::showLaw),
MIND_RIFT(ObjectID.MIND_RIFT, MIND_RUNE), MIND_RIFT(ObjectID.MIND_RIFT, MIND_RUNE, RunecraftConfig::showMind),
NATURE_RIFT(ObjectID.NATURE_RIFT, NATURE_RUNE), NATURE_RIFT(ObjectID.NATURE_RIFT, NATURE_RUNE, RunecraftConfig::showNature),
SOUL_RIFT(ObjectID.SOUL_RIFT, SOUL_RUNE), SOUL_RIFT(ObjectID.SOUL_RIFT, SOUL_RUNE, RunecraftConfig::showSoul),
WATER_RIFT(ObjectID.WATER_RIFT, WATER_RUNE); WATER_RIFT(ObjectID.WATER_RIFT, WATER_RUNE, RunecraftConfig::showWater);
@Getter @Getter
private final int objectId; private final int objectId;
@@ -64,6 +67,9 @@ public enum AbyssRifts
@Getter @Getter
private final int itemId; private final int itemId;
@Getter
private final Predicate<RunecraftConfig> configEnabled;
private static final Map<Integer, AbyssRifts> rifts; private static final Map<Integer, AbyssRifts> rifts;
static static
@@ -78,13 +84,7 @@ public enum AbyssRifts
rifts = builder.build(); rifts = builder.build();
} }
AbyssRifts(int objectId, int itemId) static AbyssRifts getRift(int id)
{
this.objectId = objectId;
this.itemId = itemId;
}
public static AbyssRifts getRift(int id)
{ {
return rifts.get(id); return rifts.get(id);
} }

View File

@@ -30,9 +30,11 @@ import net.runelite.client.config.ConfigGroup;
import net.runelite.client.config.ConfigItem; import net.runelite.client.config.ConfigItem;
import net.runelite.client.config.ConfigSection; import net.runelite.client.config.ConfigSection;
@ConfigGroup("runecraft") @ConfigGroup(RunecraftConfig.GROUP)
public interface RunecraftConfig extends Config public interface RunecraftConfig extends Config
{ {
String GROUP = "runecraft";
@ConfigSection( @ConfigSection(
name = "Rift Settings", name = "Rift Settings",
description = "Abyss rift overlay settings", description = "Abyss rift overlay settings",

View File

@@ -26,6 +26,7 @@ package net.runelite.client.plugins.runecraft;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import com.google.inject.Provides; import com.google.inject.Provides;
import java.util.Arrays;
import java.util.HashSet; import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
@@ -34,7 +35,6 @@ import javax.inject.Inject;
import lombok.AccessLevel; import lombok.AccessLevel;
import lombok.Getter; import lombok.Getter;
import net.runelite.api.ChatMessageType; import net.runelite.api.ChatMessageType;
import net.runelite.api.Client;
import net.runelite.api.DecorativeObject; import net.runelite.api.DecorativeObject;
import net.runelite.api.GameState; import net.runelite.api.GameState;
import net.runelite.api.InventoryID; 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.events.ConfigChanged;
import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor; 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; import net.runelite.client.ui.overlay.OverlayManager;
@PluginDescriptor( @PluginDescriptor(
@@ -97,9 +84,6 @@ public class RunecraftPlugin extends Plugin
@Getter(AccessLevel.PACKAGE) @Getter(AccessLevel.PACKAGE)
private NPC darkMage; private NPC darkMage;
@Inject
private Client client;
@Inject @Inject
private OverlayManager overlayManager; private OverlayManager overlayManager;
@@ -142,7 +126,7 @@ public class RunecraftPlugin extends Plugin
@Subscribe @Subscribe
public void onConfigChanged(ConfigChanged event) public void onConfigChanged(ConfigChanged event)
{ {
if (event.getGroup().equals("runecraft")) if (event.getGroup().equals(RunecraftConfig.GROUP))
{ {
updateRifts(); updateRifts();
} }
@@ -234,57 +218,8 @@ public class RunecraftPlugin extends Plugin
private void updateRifts() private void updateRifts()
{ {
rifts.clear(); rifts.clear();
if (config.showAir()) Arrays.stream(AbyssRifts.values())
{ .filter(r -> r.getConfigEnabled().test(config))
rifts.add(AIR_RIFT); .forEach(rifts::add);
}
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);
}
} }
} }