Merge pull request #1533 from Lucwousin/wiki-ree
Wiki plugin: Generate less garbage objects
This commit is contained in:
@@ -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);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
Reference in New Issue
Block a user