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()
|
default boolean layoutMessage()
|
||||||
{
|
{
|
||||||
return true;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user