Merge pull request #1533 from Lucwousin/wiki-ree

Wiki plugin: Generate less garbage objects
This commit is contained in:
Lucwousin
2019-09-04 01:42:48 +02:00
committed by GitHub
2 changed files with 34 additions and 37 deletions

View File

@@ -25,7 +25,6 @@
package net.runelite.client.plugins.wiki; package net.runelite.client.plugins.wiki;
import com.google.common.primitives.Ints; import com.google.common.primitives.Ints;
import java.util.Arrays;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import javax.inject.Inject; import javax.inject.Inject;
@@ -34,7 +33,6 @@ import javax.inject.Singleton;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import net.runelite.api.Client; import net.runelite.api.Client;
import net.runelite.api.MenuOpcode; import net.runelite.api.MenuOpcode;
import net.runelite.api.MenuEntry;
import net.runelite.api.NPC; import net.runelite.api.NPC;
import net.runelite.api.NPCDefinition; import net.runelite.api.NPCDefinition;
import net.runelite.api.ObjectDefinition; import net.runelite.api.ObjectDefinition;
@@ -77,8 +75,8 @@ public class WikiPlugin extends Plugin
static final HttpUrl WIKI_BASE = HttpUrl.parse("https://oldschool.runescape.wiki"); static final HttpUrl WIKI_BASE = HttpUrl.parse("https://oldschool.runescape.wiki");
static final HttpUrl WIKI_API = WIKI_BASE.newBuilder().addPathSegments("api.php").build(); static final HttpUrl WIKI_API = WIKI_BASE.newBuilder().addPathSegments("api.php").build();
static final String UTM_SORUCE_KEY = "utm_source"; static final String UTM_SOURCE_KEY = "utm_source";
static final String UTM_SORUCE_VALUE = "runelite"; static final String UTM_SOURCE_VALUE = "runelite";
private static final String MENUOP_GUIDE = "Guide"; private static final String MENUOP_GUIDE = "Guide";
private static final String MENUOP_QUICKGUIDE = "Quick Guide"; private static final String MENUOP_QUICKGUIDE = "Quick Guide";
@@ -268,7 +266,7 @@ public class WikiPlugin extends Plugin
.addQueryParameter("type", type) .addQueryParameter("type", type)
.addQueryParameter("id", "" + id) .addQueryParameter("id", "" + id)
.addQueryParameter("name", name) .addQueryParameter("name", name)
.addQueryParameter(UTM_SORUCE_KEY, UTM_SORUCE_VALUE); .addQueryParameter(UTM_SOURCE_KEY, UTM_SOURCE_VALUE);
if (location != null) if (location != null)
{ {
@@ -297,7 +295,7 @@ public class WikiPlugin extends Plugin
HttpUrl.Builder ub = WIKI_BASE.newBuilder() HttpUrl.Builder ub = WIKI_BASE.newBuilder()
.addPathSegment("w") .addPathSegment("w")
.addPathSegment(quest) .addPathSegment(quest)
.addQueryParameter(UTM_SORUCE_KEY, UTM_SORUCE_VALUE); .addQueryParameter(UTM_SOURCE_KEY, UTM_SOURCE_VALUE);
if (quickguide) if (quickguide)
{ {
ub.addPathSegment("Quick_guide"); ub.addPathSegment("Quick_guide");
@@ -313,7 +311,7 @@ public class WikiPlugin extends Plugin
LinkBrowser.browse(WIKI_BASE.newBuilder() LinkBrowser.browse(WIKI_BASE.newBuilder()
.addPathSegment("w") .addPathSegment("w")
.addPathSegment(skillRegex.group(1)) .addPathSegment(skillRegex.group(1))
.addQueryParameter(UTM_SORUCE_KEY, UTM_SORUCE_VALUE) .addQueryParameter(UTM_SOURCE_KEY, UTM_SOURCE_VALUE)
.build().toString()); .build().toString());
} }
else if (diaryRegex.find()) else if (diaryRegex.find())
@@ -321,7 +319,7 @@ public class WikiPlugin extends Plugin
LinkBrowser.browse(WIKI_BASE.newBuilder() LinkBrowser.browse(WIKI_BASE.newBuilder()
.addPathSegment("w") .addPathSegment("w")
.addPathSegment(diaryRegex.group(1) + " Diary") .addPathSegment(diaryRegex.group(1) + " Diary")
.addQueryParameter(UTM_SORUCE_KEY, UTM_SORUCE_VALUE) .addQueryParameter(UTM_SOURCE_KEY, UTM_SOURCE_VALUE)
.build().toString()); .build().toString());
} }
} }
@@ -338,43 +336,42 @@ public class WikiPlugin extends Plugin
{ {
int widgetIndex = event.getActionParam0(); int widgetIndex = event.getActionParam0();
int widgetID = event.getActionParam1(); int widgetID = event.getActionParam1();
MenuEntry[] menuEntries = client.getMenuEntries();
if (Ints.contains(QUESTLIST_WIDGET_IDS, widgetID) && "Read Journal:".equals(event.getOption())) if (Ints.contains(QUESTLIST_WIDGET_IDS, widgetID) && "Read Journal:".equals(event.getOption()))
{ {
menuEntries = Arrays.copyOf(menuEntries, menuEntries.length + 2); client.insertMenuItem(
MENUOP_QUICKGUIDE,
event.getTarget(),
MenuOpcode.RUNELITE.getId(),
0,
widgetIndex,
widgetID,
false
);
MenuEntry menuEntry = menuEntries[menuEntries.length - 1] = new MenuEntry(); client.insertMenuItem(
menuEntry.setTarget(event.getTarget()); MENUOP_GUIDE,
menuEntry.setOption(MENUOP_GUIDE); event.getTarget(),
menuEntry.setParam0(widgetIndex); MenuOpcode.RUNELITE.getId(),
menuEntry.setParam1(widgetID); 0,
menuEntry.setOpcode(MenuOpcode.RUNELITE.getId()); widgetIndex,
widgetID,
menuEntry = menuEntries[menuEntries.length - 2] = new MenuEntry(); false
menuEntry.setTarget(event.getTarget()); );
menuEntry.setOption(MENUOP_QUICKGUIDE);
menuEntry.setParam0(widgetIndex);
menuEntry.setParam1(widgetID);
menuEntry.setOpcode(MenuOpcode.RUNELITE.getId());
client.setMenuEntries(menuEntries);
} }
if ((WidgetInfo.TO_GROUP(widgetID) == WidgetID.SKILLS_GROUP_ID && event.getOption().startsWith("View")) if ((WidgetInfo.TO_GROUP(widgetID) == WidgetID.SKILLS_GROUP_ID && event.getOption().startsWith("View"))
|| (WidgetInfo.TO_GROUP(widgetID) == WidgetID.DIARY_GROUP_ID && event.getOption().startsWith("Open"))) || (WidgetInfo.TO_GROUP(widgetID) == WidgetID.DIARY_GROUP_ID && event.getOption().startsWith("Open")))
{ {
menuEntries = Arrays.copyOf(menuEntries, menuEntries.length + 1); client.insertMenuItem(
MENUOP_WIKI,
MenuEntry menuEntry = menuEntries[menuEntries.length - 1] = new MenuEntry(); event.getOption().replace("View ", "").replace("Open ", ""),
menuEntry.setTarget(event.getOption().replace("View ", "").replace("Open ", "")); MenuOpcode.RUNELITE.getId(),
menuEntry.setOption(MENUOP_WIKI); event.getIdentifier(),
menuEntry.setParam0(widgetIndex); widgetIndex,
menuEntry.setParam1(widgetID); widgetID,
menuEntry.setIdentifier(event.getIdentifier()); false
menuEntry.setOpcode(MenuOpcode.RUNELITE.getId()); );
client.setMenuEntries(menuEntries);
} }
} }
} }

View File

@@ -297,7 +297,7 @@ public class WikiSearchChatboxTextInput extends ChatboxTextInput
{ {
LinkBrowser.browse(WikiPlugin.WIKI_BASE.newBuilder() LinkBrowser.browse(WikiPlugin.WIKI_BASE.newBuilder()
.addQueryParameter("search", search) .addQueryParameter("search", search)
.addQueryParameter(WikiPlugin.UTM_SORUCE_KEY, WikiPlugin.UTM_SORUCE_VALUE) .addQueryParameter(WikiPlugin.UTM_SOURCE_KEY, WikiPlugin.UTM_SOURCE_VALUE)
.build() .build()
.toString()); .toString());
chatboxPanelManager.close(); chatboxPanelManager.close();