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()
{
return true;
return false;
}
}

View File

@@ -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

View File

@@ -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;