raids plugin: add option to manually broadcast layout
Closes #9541 Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
This commit is contained in:
@@ -160,6 +160,6 @@ public interface RaidsConfig extends Config
|
||||
)
|
||||
default boolean layoutMessage()
|
||||
{
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,6 +30,7 @@ import java.awt.Graphics2D;
|
||||
import javax.inject.Inject;
|
||||
import lombok.Setter;
|
||||
import net.runelite.api.Client;
|
||||
import static net.runelite.api.MenuAction.RUNELITE_OVERLAY;
|
||||
import static net.runelite.api.MenuAction.RUNELITE_OVERLAY_CONFIG;
|
||||
import net.runelite.client.plugins.raids.solver.Room;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
@@ -44,6 +45,7 @@ import net.runelite.client.ui.overlay.components.TitleComponent;
|
||||
public class RaidsOverlay extends Overlay
|
||||
{
|
||||
private static final int OLM_PLANE = 0;
|
||||
static final String BROADCAST_ACTION = "Broadcast layout";
|
||||
|
||||
private Client client;
|
||||
private RaidsPlugin plugin;
|
||||
@@ -63,6 +65,7 @@ public class RaidsOverlay extends Overlay
|
||||
this.plugin = plugin;
|
||||
this.config = config;
|
||||
getMenuEntries().add(new OverlayMenuEntry(RUNELITE_OVERLAY_CONFIG, OPTION_CONFIGURE, "Raids overlay"));
|
||||
getMenuEntries().add(new OverlayMenuEntry(RUNELITE_OVERLAY, BROADCAST_ACTION, "Raids overlay"));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -39,6 +39,7 @@ import net.runelite.api.ChatMessageType;
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.api.GameState;
|
||||
import net.runelite.api.InstanceTemplates;
|
||||
import net.runelite.api.MenuAction;
|
||||
import net.runelite.api.NullObjectID;
|
||||
import static net.runelite.api.Perspective.SCENE_SIZE;
|
||||
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.config.ConfigManager;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.events.OverlayMenuClicked;
|
||||
import net.runelite.client.game.SpriteManager;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
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)
|
||||
{
|
||||
if (client.getGameState() != GameState.LOGGED_IN)
|
||||
@@ -288,7 +301,11 @@ public class RaidsPlugin extends Plugin
|
||||
raid.updateLayout(layout);
|
||||
RotationSolver.solve(raid.getCombatRooms());
|
||||
overlay.setScoutOverlayShown(true);
|
||||
sendRaidLayoutMessage();
|
||||
|
||||
if (config.layoutMessage())
|
||||
{
|
||||
sendRaidLayoutMessage();
|
||||
}
|
||||
}
|
||||
else if (!config.scoutOverlayAtBank())
|
||||
{
|
||||
@@ -305,11 +322,6 @@ public class RaidsPlugin extends Plugin
|
||||
|
||||
private void sendRaidLayoutMessage()
|
||||
{
|
||||
if (!config.layoutMessage())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final String layout = getRaid().getLayout().toCodeString();
|
||||
final String rooms = getRaid().toRoomString();
|
||||
final String raidData = "[" + layout + "]: " + rooms;
|
||||
|
||||
Reference in New Issue
Block a user