Merge remote-tracking branch 'upstream/master' into runelite

Also pulled out a couple of our merged apis into our own classes. Getting much easier to keep up to date with their data

# Conflicts:
#	.github/FUNDING.yml
#	.github/workflows/CI.yml
#	cache-client/pom.xml
#	cache-updater/pom.xml
#	cache/pom.xml
#	cache/src/main/java/net/runelite/cache/fs/jagex/DiskStorage.java
#	ci/build.sh
#	http-api/pom.xml
#	http-service/pom.xml
#	http-service/src/main/java/net/runelite/http/service/chat/ChatController.java
#	http-service/src/main/java/net/runelite/http/service/config/ConfigController.java
#	http-service/src/main/java/net/runelite/http/service/config/ConfigService.java
#	http-service/src/main/java/net/runelite/http/service/ge/GrandExchangeController.java
#	http-service/src/main/java/net/runelite/http/service/ge/Trade.java
#	http-service/src/test/java/net/runelite/http/service/config/ConfigServiceTest.java
#	http-service/src/test/java/net/runelite/http/service/hiscore/HiscoreServiceTest.java
#	pom.xml
#	runelite-api/pom.xml
#	runelite-api/src/main/java/net/runelite/api/Client.java
#	runelite-api/src/main/java/net/runelite/api/ObjectID.java
#	runelite-api/src/main/java/net/runelite/api/ParamHolder.java
#	runelite-api/src/main/java/net/runelite/api/ParamID.java
#	runelite-api/src/main/java/net/runelite/api/Preferences.java
#	runelite-api/src/main/java/net/runelite/api/ScriptEvent.java
#	runelite-api/src/main/java/net/runelite/api/ScriptID.java
#	runelite-api/src/main/java/net/runelite/api/SettingID.java
#	runelite-api/src/main/java/net/runelite/api/StructComposition.java
#	runelite-api/src/main/java/net/runelite/api/StructID.java
#	runelite-api/src/main/java/net/runelite/api/Varbits.java
#	runelite-api/src/main/java/net/runelite/api/events/PlayerChanged.java
#	runelite-api/src/main/java/net/runelite/api/events/PostStructComposition.java
#	runelite-api/src/main/java/net/runelite/api/events/WidgetClosed.java
#	runelite-api/src/main/java/net/runelite/api/events/WidgetHiddenChanged.java
#	runelite-api/src/main/java/net/runelite/api/events/WidgetPositioned.java
#	runelite-api/src/main/java/net/runelite/api/events/WorldChanged.java
#	runelite-api/src/main/java/net/runelite/api/widgets/Widget.java
#	runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java
#	runelite-api/src/main/java/net/runelite/api/widgets/WidgetInfo.java
#	runelite-api/src/main/java/net/runelite/api/widgets/WidgetModalMode.java
#	runelite-api/src/test/java/net/runelite/api/plugins/combatlevel/CombatLevelOverlayTest.java
#	runelite-client/pom.xml
#	runelite-client/src/main/java/net/runelite/client/RuneLiteModule.java
#	runelite-client/src/main/java/net/runelite/client/callback/Hooks.java
#	runelite-client/src/main/java/net/runelite/client/plugins/config/PluginToggleButton.java
#	runelite-client/src/main/java/net/runelite/client/plugins/customcursor/CustomCursor.java
#	runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperConfig.java
#	runelite-client/src/main/java/net/runelite/client/plugins/mta/alchemy/AlchemyRoomTimer.java
#	runelite-client/src/main/java/net/runelite/client/plugins/tearsofguthix/TearsOfGuthixOverlay.java
#	runelite-client/src/main/java/net/runelite/client/plugins/tearsofguthix/TearsOfGuthixPlugin.java
#	runelite-client/src/main/java/net/runelite/client/plugins/worldhopper/WorldTableHeader.java
#	runelite-client/src/main/java/net/runelite/client/plugins/worldhopper/WorldTableRow.java
#	runelite-client/src/main/java/net/runelite/client/ui/ClientUI.java
#	runelite-client/src/main/resources/net/runelite/client/runelite.properties
#	runelite-client/src/main/scripts/OptionsPanelZoomUpdater.hash
#	runelite-client/src/test/java/net/runelite/client/config/ConfigManagerTest.java
#	runelite-client/src/test/java/net/runelite/client/plugins/chatcommands/ChatCommandsPluginTest.java
#	runelite-client/src/test/java/net/runelite/client/plugins/chatfilter/ChatFilterPluginTest.java
#	runelite-client/src/test/java/net/runelite/client/plugins/chatnotifications/ChatNotificationsPluginTest.java
#	runelite-client/src/test/java/net/runelite/client/plugins/discord/DiscordStateTest.java
#	runelite-client/src/test/java/net/runelite/client/plugins/grandexchange/GrandExchangePluginTest.java
#	runelite-client/src/test/java/net/runelite/client/plugins/screenshot/ScreenshotPluginTest.java
#	runelite-client/src/test/java/net/runelite/client/plugins/specialcounter/SpecialCounterPluginTest.java
#	runelite-client/src/test/java/net/runelite/client/plugins/timers/TimersPluginTest.java
#	runelite-client/src/test/java/net/runelite/client/util/ColorUtilTest.java
#	runelite-script-assembler-plugin/pom.xml
This commit is contained in:
TheRealNull
2021-01-14 14:41:17 -05:00
99 changed files with 7485 additions and 1754 deletions

View File

@@ -29,37 +29,15 @@ package com.openosrs.client.plugins.openosrs;
import ch.qos.logback.classic.Logger;
import com.openosrs.client.plugins.openosrs.externals.ExternalPluginManagerPanel;
import com.openosrs.client.config.OpenOSRSConfig;
import java.awt.event.KeyEvent;
import java.awt.image.BufferedImage;
import javax.inject.Inject;
import javax.inject.Singleton;
import lombok.extern.slf4j.Slf4j;
import net.runelite.api.Client;
import static net.runelite.api.ScriptID.BANK_PIN_OP;
import net.runelite.api.events.ScriptCallbackEvent;
import net.runelite.api.widgets.WidgetID;
import static net.runelite.api.widgets.WidgetInfo.BANK_PIN_1;
import static net.runelite.api.widgets.WidgetInfo.BANK_PIN_10;
import static net.runelite.api.widgets.WidgetInfo.BANK_PIN_2;
import static net.runelite.api.widgets.WidgetInfo.BANK_PIN_3;
import static net.runelite.api.widgets.WidgetInfo.BANK_PIN_4;
import static net.runelite.api.widgets.WidgetInfo.BANK_PIN_5;
import static net.runelite.api.widgets.WidgetInfo.BANK_PIN_6;
import static net.runelite.api.widgets.WidgetInfo.BANK_PIN_7;
import static net.runelite.api.widgets.WidgetInfo.BANK_PIN_8;
import static net.runelite.api.widgets.WidgetInfo.BANK_PIN_9;
import static net.runelite.api.widgets.WidgetInfo.BANK_PIN_EXIT_BUTTON;
import static net.runelite.api.widgets.WidgetInfo.BANK_PIN_FIRST_ENTERED;
import static net.runelite.api.widgets.WidgetInfo.BANK_PIN_FORGOT_BUTTON;
import static net.runelite.api.widgets.WidgetInfo.BANK_PIN_FOURTH_ENTERED;
import static net.runelite.api.widgets.WidgetInfo.BANK_PIN_INSTRUCTION_TEXT;
import static net.runelite.api.widgets.WidgetInfo.BANK_PIN_SECOND_ENTERED;
import static net.runelite.api.widgets.WidgetInfo.BANK_PIN_THIRD_ENTERED;
import net.runelite.client.callback.ClientThread;
import net.runelite.client.config.Keybind;
import net.runelite.client.eventbus.Subscribe;
import net.runelite.client.events.ConfigChanged;
import net.runelite.client.input.KeyListener;
import net.runelite.client.input.KeyManager;
import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor;
@@ -78,8 +56,6 @@ import org.slf4j.LoggerFactory;
@Slf4j
public class OpenOSRSPlugin extends Plugin
{
private final openosrsKeyListener keyListener = new openosrsKeyListener();
@Inject
private OpenOSRSConfig config;
@@ -107,9 +83,6 @@ public class OpenOSRSPlugin extends Plugin
client.setOculusOrbNormalSpeed(detach ? 36 : 12);
}
};
private int entered = -1;
private int enterIdx;
private boolean expectInput;
private boolean detach;
private Keybind keybind;
@@ -128,9 +101,6 @@ public class OpenOSRSPlugin extends Plugin
.build();
clientToolbar.addNavigation(navButton);
entered = -1;
enterIdx = 0;
expectInput = false;
this.keybind = config.detachHotkey();
keyManager.registerKeyListener(hotkeyListener);
}
@@ -139,12 +109,6 @@ public class OpenOSRSPlugin extends Plugin
protected void shutDown()
{
clientToolbar.removeNavigation(navButton);
entered = 0;
enterIdx = 0;
expectInput = false;
keyManager.unregisterKeyListener(keyListener);
keyManager.unregisterKeyListener(hotkeyListener);
}
@Subscribe
@@ -157,14 +121,6 @@ public class OpenOSRSPlugin extends Plugin
this.keybind = config.detachHotkey();
if (!config.keyboardPin())
{
entered = 0;
enterIdx = 0;
expectInput = false;
keyManager.unregisterKeyListener(keyListener);
}
if (event.getKey().equals("shareLogs") && !config.shareLogs())
{
final Logger logger = (Logger) LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME);
@@ -172,118 +128,4 @@ public class OpenOSRSPlugin extends Plugin
}
}
@Subscribe
private void onScriptCallbackEvent(ScriptCallbackEvent e)
{
if (!config.keyboardPin())
{
return;
}
if (e.getEventName().equals("bankpin"))
{
int[] intStack = client.getIntStack();
int intStackSize = client.getIntStackSize();
// This'll be anywhere from -1 to 3
// 0 = first number, 1 second, etc
// Anything other than 0123 means the bankpin interface closes
int enterIdx = intStack[intStackSize - 1];
if (enterIdx < 0 || enterIdx > 3)
{
keyManager.unregisterKeyListener(keyListener);
this.enterIdx = 0;
this.entered = 0;
expectInput = false;
return;
}
else if (enterIdx == 0)
{
keyManager.registerKeyListener(keyListener);
}
this.enterIdx = enterIdx;
expectInput = true;
}
}
private void handleKey(char c)
{
if (client.getWidget(WidgetID.BANK_PIN_GROUP_ID, BANK_PIN_INSTRUCTION_TEXT.getChildId()) == null
|| !client.getWidget(BANK_PIN_INSTRUCTION_TEXT).getText().equals("First click the FIRST digit.")
&& !client.getWidget(BANK_PIN_INSTRUCTION_TEXT).getText().equals("Now click the SECOND digit.")
&& !client.getWidget(BANK_PIN_INSTRUCTION_TEXT).getText().equals("Time for the THIRD digit.")
&& !client.getWidget(BANK_PIN_INSTRUCTION_TEXT).getText().equals("Finally, the FOURTH digit."))
{
entered = 0;
enterIdx = 0;
expectInput = false;
keyManager.unregisterKeyListener(keyListener);
return;
}
if (!expectInput)
{
return;
}
int num = Character.getNumericValue(c);
// We gotta copy this cause enteridx changes while the script is executing
int oldEnterIdx = enterIdx;
// Script 685 will call 653, which in turn will set expectInput to true
expectInput = false;
client.runScript(BANK_PIN_OP, num, enterIdx, entered, BANK_PIN_EXIT_BUTTON.getId(), BANK_PIN_FORGOT_BUTTON.getId(), BANK_PIN_1.getId(), BANK_PIN_2.getId(), BANK_PIN_3.getId(), BANK_PIN_4.getId(), BANK_PIN_5.getId(), BANK_PIN_6.getId(), BANK_PIN_7.getId(), BANK_PIN_8.getId(), BANK_PIN_9.getId(), BANK_PIN_10.getId(), BANK_PIN_FIRST_ENTERED.getId(), BANK_PIN_SECOND_ENTERED.getId(), BANK_PIN_THIRD_ENTERED.getId(), BANK_PIN_FOURTH_ENTERED.getId(), BANK_PIN_INSTRUCTION_TEXT.getId());
if (oldEnterIdx == 0)
{
entered = num * 1000;
}
else if (oldEnterIdx == 1)
{
entered += num * 100;
}
else if (oldEnterIdx == 2)
{
entered += num * 10;
}
}
private class openosrsKeyListener implements KeyListener
{
private int lastKeyCycle;
@Override
public void keyTyped(KeyEvent keyEvent)
{
if (!Character.isDigit(keyEvent.getKeyChar()))
{
return;
}
if (client.getGameCycle() - lastKeyCycle <= 5)
{
keyEvent.consume();
return;
}
lastKeyCycle = client.getGameCycle();
clientThread.invoke(() -> handleKey(keyEvent.getKeyChar()));
keyEvent.consume();
}
@Override
public void keyPressed(KeyEvent keyEvent)
{
}
@Override
public void keyReleased(KeyEvent keyEvent)
{
}
}
}