Search in sources :

Example 11 with Client

use of net.runelite.api.Client in project runelite by runelite.

the class MenuManager method onMenuEntryAdded.

@Subscribe
public void onMenuEntryAdded(MenuEntryAdded event) {
    int widgetId = event.getActionParam1();
    Collection<WidgetMenuOption> options = managedMenuOptions.get(widgetId);
    Client client = clientProvider.get();
    if (client == null) {
        return;
    }
    for (WidgetMenuOption currentMenu : options) {
        if (// Don't add if we have already added it to this widget
        !menuContainsCustomMenu(currentMenu)) {
            MenuEntry[] menuEntries = client.getMenuEntries();
            menuEntries = Arrays.copyOf(menuEntries, menuEntries.length + 1);
            MenuEntry menuEntry = menuEntries[menuEntries.length - 1] = new MenuEntry();
            menuEntry.setOption(currentMenu.getMenuOption());
            menuEntry.setParam1(widgetId);
            menuEntry.setTarget(currentMenu.getMenuTarget());
            menuEntry.setType(MenuAction.RUNELITE.getId());
            client.setMenuEntries(menuEntries);
        }
    }
}
Also used : MenuEntry(net.runelite.api.MenuEntry) Client(net.runelite.api.Client) Subscribe(com.google.common.eventbus.Subscribe)

Example 12 with Client

use of net.runelite.api.Client in project runelite by runelite.

the class ClanManager method loadClanChatIcons.

private void loadClanChatIcons() {
    try {
        final Client client = clientProvider.get();
        final IndexedSprite[] modIcons = client.getModIcons();
        final IndexedSprite[] newModIcons = Arrays.copyOf(modIcons, modIcons.length + CLANCHAT_IMAGES.length);
        int curPosition = newModIcons.length - CLANCHAT_IMAGES.length;
        for (BufferedImage image : clanChatImages) {
            IndexedSprite sprite = createIndexedSprite(client, image);
            newModIcons[curPosition++] = sprite;
        }
        client.setModIcons(newModIcons);
        modIconsLength = newModIcons.length;
    } catch (IOException e) {
        log.warn("Failed loading of clan chat icons", e);
    }
}
Also used : IndexedSprite(net.runelite.api.IndexedSprite) IOException(java.io.IOException) Client(net.runelite.api.Client) BufferedImage(java.awt.image.BufferedImage)

Example 13 with Client

use of net.runelite.api.Client in project runelite by runelite.

the class ChatMessageManager method refreshAll.

public void refreshAll() {
    final Client client = clientProvider.get();
    executor.submit(() -> {
        client.getChatLineMap().values().stream().filter(Objects::nonNull).flatMap(clb -> Arrays.stream(clb.getLines())).filter(Objects::nonNull).forEach(this::update);
        client.refreshChat();
    });
}
Also used : Client(net.runelite.api.Client)

Example 14 with Client

use of net.runelite.api.Client in project runelite by runelite.

the class InfoBoxOverlay method render.

@Override
public Dimension render(Graphics2D graphics) {
    List<InfoBox> infoBoxes = infoboxManager.getInfoBoxes();
    if (infoBoxes.isEmpty()) {
        return null;
    }
    int width = infoBoxes.size() * (BOXSIZE + SEPARATOR);
    int x = 0;
    for (InfoBox box : infoBoxes) {
        if (!box.render()) {
            continue;
        }
        final InfoBoxComponent infoBoxComponent = new InfoBoxComponent();
        infoBoxComponent.setColor(box.getTextColor());
        infoBoxComponent.setImage(box.getImage());
        infoBoxComponent.setText(box.getText());
        infoBoxComponent.setPosition(new Point(x, 0));
        final Dimension infoBoxBounds = infoBoxComponent.render(graphics);
        if (!Strings.isNullOrEmpty(box.getTooltip())) {
            final Rectangle intersectionRectangle = new Rectangle(infoBoxBounds);
            intersectionRectangle.setLocation(getBounds().getLocation());
            intersectionRectangle.translate(x, 0);
            final Point transformed = OverlayUtil.transformPosition(getPosition(), intersectionRectangle.getSize());
            intersectionRectangle.translate(transformed.x, transformed.y);
            final Client client = clientProvider.get();
            if (client != null && intersectionRectangle.contains(new Point(client.getMouseCanvasPosition().getX(), client.getMouseCanvasPosition().getY()))) {
                tooltipManager.add(new Tooltip(box.getTooltip()));
            }
        }
        x += BOXSIZE + SEPARATOR;
    }
    return new Dimension(width, BOXSIZE);
}
Also used : InfoBoxComponent(net.runelite.client.ui.overlay.components.InfoBoxComponent) Tooltip(net.runelite.client.ui.overlay.tooltip.Tooltip) Rectangle(java.awt.Rectangle) Point(java.awt.Point) Dimension(java.awt.Dimension) Client(net.runelite.api.Client) Point(java.awt.Point)

Example 15 with Client

use of net.runelite.api.Client in project runelite by runelite.

the class RegionTileManager method forEachTile.

/**
 * Iterates over each tile in current region if player is logged in
 * @param consumer consumer accepting tile as parameter
 */
public void forEachTile(Consumer<Tile> consumer) {
    final Client client = clientProvider.get();
    if (client == null || client.getGameState() != GameState.LOGGED_IN) {
        return;
    }
    final Region region = client.getRegion();
    final Tile[][][] tiles = region.getTiles();
    int z = client.getPlane();
    for (int x = 0; x < REGION_SIZE; ++x) {
        for (int y = 0; y < REGION_SIZE; ++y) {
            Tile tile = tiles[z][x][y];
            if (tile == null) {
                continue;
            }
            consumer.accept(tile);
        }
    }
}
Also used : Region(net.runelite.api.Region) Tile(net.runelite.api.Tile) Client(net.runelite.api.Client)

Aggregations

Client (net.runelite.api.Client)23 Dimension (java.awt.Dimension)6 Rectangle (java.awt.Rectangle)6 Point (java.awt.Point)5 Color (java.awt.Color)3 Subscribe (com.google.common.eventbus.Subscribe)2 Graphics2D (java.awt.Graphics2D)2 BufferedImage (java.awt.image.BufferedImage)2 List (java.util.List)2 Objects (java.util.Objects)2 Collectors (java.util.stream.Collectors)2 Stream (java.util.stream.Stream)2 MenuEntry (net.runelite.api.MenuEntry)2 NPC (net.runelite.api.NPC)2 NPCComposition (net.runelite.api.NPCComposition)2 InfoBoxOverlay (net.runelite.client.ui.overlay.infobox.InfoBoxOverlay)2 TooltipOverlay (net.runelite.client.ui.overlay.tooltip.TooltipOverlay)2 MoreObjects (com.google.common.base.MoreObjects)1 Inject (com.google.inject.Inject)1 Applet (java.applet.Applet)1