raids plugin: add option to manually broadcast layout

Closes #9541

Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
This commit is contained in:
Tomas Slusny
2019-10-27 21:08:34 +01:00
committed by Adam
parent 423d16fa8e
commit 53e56720fc
3 changed files with 22 additions and 7 deletions

View File

@@ -160,6 +160,6 @@ public interface RaidsConfig extends Config
) )
default boolean layoutMessage() default boolean layoutMessage()
{ {
return true; return false;
} }
} }

View File

@@ -30,6 +30,7 @@ import java.awt.Graphics2D;
import javax.inject.Inject; import javax.inject.Inject;
import lombok.Setter; import lombok.Setter;
import net.runelite.api.Client; import net.runelite.api.Client;
import static net.runelite.api.MenuAction.RUNELITE_OVERLAY;
import static net.runelite.api.MenuAction.RUNELITE_OVERLAY_CONFIG; import static net.runelite.api.MenuAction.RUNELITE_OVERLAY_CONFIG;
import net.runelite.client.plugins.raids.solver.Room; import net.runelite.client.plugins.raids.solver.Room;
import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.Overlay;
@@ -44,6 +45,7 @@ import net.runelite.client.ui.overlay.components.TitleComponent;
public class RaidsOverlay extends Overlay public class RaidsOverlay extends Overlay
{ {
private static final int OLM_PLANE = 0; private static final int OLM_PLANE = 0;
static final String BROADCAST_ACTION = "Broadcast layout";
private Client client; private Client client;
private RaidsPlugin plugin; private RaidsPlugin plugin;
@@ -63,6 +65,7 @@ public class RaidsOverlay extends Overlay
this.plugin = plugin; this.plugin = plugin;
this.config = config; this.config = config;
getMenuEntries().add(new OverlayMenuEntry(RUNELITE_OVERLAY_CONFIG, OPTION_CONFIGURE, "Raids overlay")); getMenuEntries().add(new OverlayMenuEntry(RUNELITE_OVERLAY_CONFIG, OPTION_CONFIGURE, "Raids overlay"));
getMenuEntries().add(new OverlayMenuEntry(RUNELITE_OVERLAY, BROADCAST_ACTION, "Raids overlay"));
} }
@Override @Override

View File

@@ -39,6 +39,7 @@ import net.runelite.api.ChatMessageType;
import net.runelite.api.Client; import net.runelite.api.Client;
import net.runelite.api.GameState; import net.runelite.api.GameState;
import net.runelite.api.InstanceTemplates; import net.runelite.api.InstanceTemplates;
import net.runelite.api.MenuAction;
import net.runelite.api.NullObjectID; import net.runelite.api.NullObjectID;
import static net.runelite.api.Perspective.SCENE_SIZE; import static net.runelite.api.Perspective.SCENE_SIZE;
import net.runelite.api.Point; import net.runelite.api.Point;
@@ -56,6 +57,7 @@ import net.runelite.client.chat.ChatMessageManager;
import net.runelite.client.chat.QueuedMessage; import net.runelite.client.chat.QueuedMessage;
import net.runelite.client.config.ConfigManager; import net.runelite.client.config.ConfigManager;
import net.runelite.client.eventbus.Subscribe; import net.runelite.client.eventbus.Subscribe;
import net.runelite.client.events.OverlayMenuClicked;
import net.runelite.client.game.SpriteManager; import net.runelite.client.game.SpriteManager;
import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginDescriptor;
@@ -253,6 +255,17 @@ public class RaidsPlugin extends Plugin
} }
} }
@Subscribe
public void onOverlayMenuClicked(final OverlayMenuClicked event)
{
if (event.getEntry().getMenuAction() == MenuAction.RUNELITE_OVERLAY &&
event.getEntry().getOption().equals(RaidsOverlay.BROADCAST_ACTION) &&
event.getOverlay() == overlay)
{
sendRaidLayoutMessage();
}
}
private void checkRaidPresence(boolean force) private void checkRaidPresence(boolean force)
{ {
if (client.getGameState() != GameState.LOGGED_IN) if (client.getGameState() != GameState.LOGGED_IN)
@@ -288,7 +301,11 @@ public class RaidsPlugin extends Plugin
raid.updateLayout(layout); raid.updateLayout(layout);
RotationSolver.solve(raid.getCombatRooms()); RotationSolver.solve(raid.getCombatRooms());
overlay.setScoutOverlayShown(true); overlay.setScoutOverlayShown(true);
sendRaidLayoutMessage();
if (config.layoutMessage())
{
sendRaidLayoutMessage();
}
} }
else if (!config.scoutOverlayAtBank()) else if (!config.scoutOverlayAtBank())
{ {
@@ -305,11 +322,6 @@ public class RaidsPlugin extends Plugin
private void sendRaidLayoutMessage() private void sendRaidLayoutMessage()
{ {
if (!config.layoutMessage())
{
return;
}
final String layout = getRaid().getLayout().toCodeString(); final String layout = getRaid().getLayout().toCodeString();
final String rooms = getRaid().toRoomString(); final String rooms = getRaid().toRoomString();
final String raidData = "[" + layout + "]: " + rooms; final String raidData = "[" + layout + "]: " + rooms;