Merge pull request #2891 from open-osrs/loose-ends
project: wrap up loose ends in api, upstream to fix the broken things
This commit is contained in:
@@ -2071,4 +2071,8 @@ public interface Client extends GameShell
|
|||||||
Widget getWidget(int param1);
|
Widget getWidget(int param1);
|
||||||
|
|
||||||
Widget getScriptActiveWidget();
|
Widget getScriptActiveWidget();
|
||||||
|
|
||||||
|
ScriptEvent createScriptEvent(Object[] args);
|
||||||
|
|
||||||
|
int getViewportColor();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -40,13 +40,19 @@ public interface ScriptEvent
|
|||||||
String NAME = "event_opbase";
|
String NAME = "event_opbase";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the widget of the event.
|
* Gets the widget the {@link #WIDGET_ID} and {@link #WIDGET_INDEX} args
|
||||||
*
|
* are substituted with
|
||||||
* @return the widget
|
|
||||||
* @see Widget
|
|
||||||
*/
|
*/
|
||||||
Widget getSource();
|
Widget getSource();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the widget the {@link #WIDGET_ID} and {@link #WIDGET_INDEX} args
|
||||||
|
* are substituted with. This is useful for running widget listeners
|
||||||
|
*
|
||||||
|
* @see Widget#getOnLoadListener()
|
||||||
|
*/
|
||||||
|
ScriptEvent setSource(Widget widget);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the menu index of the event
|
* Gets the menu index of the event
|
||||||
*
|
*
|
||||||
@@ -80,4 +86,11 @@ public interface ScriptEvent
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
int getTypedKeyChar();
|
int getTypedKeyChar();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Executes a cs2 script specified by this event
|
||||||
|
*
|
||||||
|
* This method must be ran on the client thread and is not reentrant
|
||||||
|
*/
|
||||||
|
void run();
|
||||||
}
|
}
|
||||||
@@ -25,15 +25,16 @@
|
|||||||
package net.runelite.api.events;
|
package net.runelite.api.events;
|
||||||
|
|
||||||
import lombok.Value;
|
import lombok.Value;
|
||||||
|
import net.runelite.api.Nameable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An event where a request to remove a friend is sent to the server.
|
* An event trigger when a player is removed from the friend or ignore list.
|
||||||
*/
|
*/
|
||||||
@Value
|
@Value
|
||||||
public class RemovedFriend implements Event
|
public class RemovedFriend
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* The name of the removed friend.
|
* The removed friend or ignore entry
|
||||||
*/
|
*/
|
||||||
String name;
|
private final Nameable nameable;
|
||||||
}
|
}
|
||||||
@@ -85,6 +85,7 @@ import net.runelite.api.Player;
|
|||||||
import net.runelite.api.coords.WorldPoint;
|
import net.runelite.api.coords.WorldPoint;
|
||||||
import net.runelite.api.events.PlayerChanged;
|
import net.runelite.api.events.PlayerChanged;
|
||||||
import net.runelite.api.events.UsernameChanged;
|
import net.runelite.api.events.UsernameChanged;
|
||||||
|
import net.runelite.api.events.WorldChanged;
|
||||||
import net.runelite.client.RuneLite;
|
import net.runelite.client.RuneLite;
|
||||||
import net.runelite.client.account.AccountSession;
|
import net.runelite.client.account.AccountSession;
|
||||||
import net.runelite.client.eventbus.EventBus;
|
import net.runelite.client.eventbus.EventBus;
|
||||||
@@ -1042,6 +1043,12 @@ public class ConfigManager
|
|||||||
updateRSProfile();
|
updateRSProfile();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Subscribe
|
||||||
|
private void onWorldChanged(WorldChanged ev)
|
||||||
|
{
|
||||||
|
updateRSProfile();
|
||||||
|
}
|
||||||
|
|
||||||
@Subscribe
|
@Subscribe
|
||||||
private void onPlayerChanged(PlayerChanged ev)
|
private void onPlayerChanged(PlayerChanged ev)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -69,7 +69,6 @@ public class ExternalPluginClient
|
|||||||
.newBuilder()
|
.newBuilder()
|
||||||
.addPathSegments("manifest.js")
|
.addPathSegments("manifest.js")
|
||||||
.build();
|
.build();
|
||||||
System.out.println(manifest.uri());
|
|
||||||
try (Response res = okHttpClient.newCall(new Request.Builder().url(manifest).build()).execute())
|
try (Response res = okHttpClient.newCall(new Request.Builder().url(manifest).build()).execute())
|
||||||
{
|
{
|
||||||
if (res.code() != 200)
|
if (res.code() != 200)
|
||||||
|
|||||||
@@ -132,6 +132,14 @@ public class CameraPlugin extends Plugin implements KeyListener, MouseListener
|
|||||||
{
|
{
|
||||||
addZoomTooltip(sideSlider);
|
addZoomTooltip(sideSlider);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Widget settingsInit = client.getWidget(WidgetInfo.SETTINGS_INIT);
|
||||||
|
if (settingsInit != null)
|
||||||
|
{
|
||||||
|
client.createScriptEvent(settingsInit.getOnLoadListener())
|
||||||
|
.setSource(settingsInit)
|
||||||
|
.run();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -152,6 +160,14 @@ public class CameraPlugin extends Plugin implements KeyListener, MouseListener
|
|||||||
{
|
{
|
||||||
sideSlider.setOnMouseRepeatListener((Object[]) null);
|
sideSlider.setOnMouseRepeatListener((Object[]) null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Widget settingsInit = client.getWidget(WidgetInfo.SETTINGS_INIT);
|
||||||
|
if (settingsInit != null)
|
||||||
|
{
|
||||||
|
client.createScriptEvent(settingsInit.getOnLoadListener())
|
||||||
|
.setSource(settingsInit)
|
||||||
|
.run();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -327,7 +327,7 @@ public class FriendNotesPlugin extends Plugin
|
|||||||
public void onRemovedFriend(RemovedFriend event)
|
public void onRemovedFriend(RemovedFriend event)
|
||||||
{
|
{
|
||||||
// Delete a friend's note if they are removed
|
// Delete a friend's note if they are removed
|
||||||
final String displayName = Text.toJagexName(event.getName());
|
final String displayName = Text.toJagexName(event.getNameable().getName());
|
||||||
log.debug("Remove friend: '{}'", displayName);
|
log.debug("Remove friend: '{}'", displayName);
|
||||||
setFriendNote(displayName, null);
|
setFriendNote(displayName, null);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -234,6 +234,9 @@ public abstract class RSClientMixin implements RSClient
|
|||||||
@Inject
|
@Inject
|
||||||
private static boolean allWidgetsAreOpTargetable = false;
|
private static boolean allWidgetsAreOpTargetable = false;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
public static int viewportColor;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private static Set<String> unhiddenCasts = new HashSet<String>();
|
private static Set<String> unhiddenCasts = new HashSet<String>();
|
||||||
|
|
||||||
@@ -1557,27 +1560,27 @@ public abstract class RSClientMixin implements RSClient
|
|||||||
|
|
||||||
if (widget.getContentType() == WidgetType.VIEWPORT)
|
if (widget.getContentType() == WidgetType.VIEWPORT)
|
||||||
{
|
{
|
||||||
client.setViewportColor(0);
|
viewportColor = 0;
|
||||||
}
|
}
|
||||||
else if (widget.getContentType() == WidgetType.RECTANGLE)
|
else if (widget.getContentType() == WidgetType.RECTANGLE)
|
||||||
{
|
{
|
||||||
if (renderX == client.getViewportXOffset() && renderY == client.getViewportYOffset()
|
if (renderX == client.getViewportXOffset() && renderY == client.getViewportYOffset()
|
||||||
&& widget.getWidth() == client.getViewportWidth() && widget.getHeight() == client.getViewportHeight()
|
&& widget.getWidth() == client.getViewportWidth() && widget.getHeight() == client.getViewportHeight()
|
||||||
&& widget.getOpacity() > 0 && widget.isFilled() && client.isGpu())
|
&& widget.getOpacity() > 0 && widget.isFilled() && client.isGpu())
|
||||||
{
|
{
|
||||||
int textColor = widget.getTextColor();
|
int tc = widget.getTextColor();
|
||||||
int alpha = widget.getOpacity() & 0xFF;
|
int alpha = widget.getOpacity() & 0xFF;
|
||||||
int inverseAlpha = 256 - alpha;
|
int inverseAlpha = 256 - alpha;
|
||||||
int viewportColor = client.getViewportColor();
|
int vpc = viewportColor;
|
||||||
int c1 = (alpha * (textColor & 0xff00ff) >> 8 & 0xFF00FF) + (alpha * (textColor & 0x00FF00) >> 8 & 0x00FF00);
|
int c1 = (alpha * (tc & 0xff00ff) >> 8 & 0xFF00FF) + (alpha * (tc & 0x00FF00) >> 8 & 0x00FF00);
|
||||||
int c2 = (inverseAlpha * (viewportColor & 0xff00ff) >> 8 & 0xFF00FF) + (inverseAlpha * (viewportColor & 0x00FF00) >> 8 & 0x00FF00);
|
int c2 = (inverseAlpha * (vpc & 0xff00ff) >> 8 & 0xFF00FF) + (inverseAlpha * (vpc & 0x00FF00) >> 8 & 0x00FF00);
|
||||||
int outAlpha = alpha + ((viewportColor >>> 24) * (255 - alpha) * 0x8081 >>> 23);
|
int outAlpha = alpha + ((vpc >>> 24) * (255 - alpha) * 0x8081 >>> 23);
|
||||||
client.setViewportColor(outAlpha << 24 | c1 + c2);
|
viewportColor = outAlpha << 24 | c1 + c2;
|
||||||
widget.setHidden(true);
|
widget.setHidden(true);
|
||||||
hiddenWidgets.add(widget);
|
hiddenWidgets.add(widget);
|
||||||
continue;
|
continue;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
WidgetNode childNode = componentTable.get(widget.getId());
|
WidgetNode childNode = componentTable.get(widget.getId());
|
||||||
@@ -1678,11 +1681,11 @@ public abstract class RSClientMixin implements RSClient
|
|||||||
for (int i = hiddenWidgets.size() - 1; i >= 0; i--)
|
for (int i = hiddenWidgets.size() - 1; i >= 0; i--)
|
||||||
{
|
{
|
||||||
Widget widget = hiddenWidgets.get(i);
|
Widget widget = hiddenWidgets.get(i);
|
||||||
if (WidgetInfo.TO_GROUP(widget.getId()) == group)
|
if (WidgetInfo.TO_GROUP(widget.getId()) == group)
|
||||||
{
|
{
|
||||||
widget.setHidden(false);
|
widget.setHidden(false);
|
||||||
hiddenWidgets.remove(i);
|
hiddenWidgets.remove(i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2072,7 +2075,9 @@ public abstract class RSClientMixin implements RSClient
|
|||||||
public void setOutdatedScript(String outdatedScript)
|
public void setOutdatedScript(String outdatedScript)
|
||||||
{
|
{
|
||||||
if (!outdatedScripts.contains(outdatedScript))
|
if (!outdatedScripts.contains(outdatedScript))
|
||||||
|
{
|
||||||
outdatedScripts.add(outdatedScript);
|
outdatedScripts.add(outdatedScript);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
@@ -2107,5 +2112,12 @@ public abstract class RSClientMixin implements RSClient
|
|||||||
{
|
{
|
||||||
return getVarbitDefinition(id);
|
return getVarbitDefinition(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
@Override
|
||||||
|
public int getViewportColor()
|
||||||
|
{
|
||||||
|
return viewportColor;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ public abstract class RSFriendSystemMixin implements RSFriendSystem
|
|||||||
@Inject
|
@Inject
|
||||||
public void rl$removeFriend(String friendName)
|
public void rl$removeFriend(String friendName)
|
||||||
{
|
{
|
||||||
RemovedFriend removedFriend = new RemovedFriend(friendName);
|
RemovedFriend removedFriend = new RemovedFriend(client.getFriendManager().getFriendContainer().findByName(friendName));
|
||||||
client.getCallbacks().post(removedFriend);
|
client.getCallbacks().post(removedFriend);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1309,12 +1309,6 @@ public interface RSClient extends RSGameShell, Client
|
|||||||
@Import("pcmSampleLength")
|
@Import("pcmSampleLength")
|
||||||
void setPcmSampleLength(int var0);
|
void setPcmSampleLength(int var0);
|
||||||
|
|
||||||
@Import("viewportColor")
|
|
||||||
int getViewportColor();
|
|
||||||
|
|
||||||
@Import("viewportColor")
|
|
||||||
void setViewportColor(int i);
|
|
||||||
|
|
||||||
@Import("changedVarps")
|
@Import("changedVarps")
|
||||||
int[] getChangedVarps();
|
int[] getChangedVarps();
|
||||||
|
|
||||||
|
|||||||
@@ -931,8 +931,7 @@ public final class Client extends GameShell implements Usernamed {
|
|||||||
@ObfuscatedGetter(
|
@ObfuscatedGetter(
|
||||||
intValue = -380994417
|
intValue = -380994417
|
||||||
)
|
)
|
||||||
@Export("viewportColor")
|
public static int field730;
|
||||||
public static int viewportColor;
|
|
||||||
@ObfuscatedName("il")
|
@ObfuscatedName("il")
|
||||||
static boolean field649;
|
static boolean field649;
|
||||||
@ObfuscatedName("im")
|
@ObfuscatedName("im")
|
||||||
@@ -1369,7 +1368,7 @@ public final class Client extends GameShell implements Usernamed {
|
|||||||
field788 = 0; // L: 374
|
field788 = 0; // L: 374
|
||||||
oculusOrbNormalSpeed = 12; // L: 376
|
oculusOrbNormalSpeed = 12; // L: 376
|
||||||
oculusOrbSlowedSpeed = 6; // L: 377
|
oculusOrbSlowedSpeed = 6; // L: 377
|
||||||
viewportColor = 0; // L: 378
|
field730 = 0; // L: 378
|
||||||
field649 = false; // L: 379
|
field649 = false; // L: 379
|
||||||
field732 = 0; // L: 380
|
field732 = 0; // L: 380
|
||||||
field843 = false; // L: 381
|
field843 = false; // L: 381
|
||||||
@@ -5625,8 +5624,8 @@ public final class Client extends GameShell implements Usernamed {
|
|||||||
|
|
||||||
if (ServerPacket.field2146 == var1.serverPacket) { // L: 6617
|
if (ServerPacket.field2146 == var1.serverPacket) { // L: 6617
|
||||||
var16 = var3.readInt(); // L: 6618
|
var16 = var3.readInt(); // L: 6618
|
||||||
if (var16 != viewportColor) { // L: 6619
|
if (var16 != field730) { // L: 6619
|
||||||
viewportColor = var16; // L: 6620
|
field730 = var16; // L: 6620
|
||||||
WorldMapCacheName.method664(); // L: 6621
|
WorldMapCacheName.method664(); // L: 6621
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -202,7 +202,7 @@ public class SecureRandomFuture {
|
|||||||
var17 = (Decimator.oculusOrbFocalPointY >> 7) + class41.baseY; // L: 4384
|
var17 = (Decimator.oculusOrbFocalPointY >> 7) + class41.baseY; // L: 4384
|
||||||
PacketBufferNode var18 = ItemContainer.getPacketBufferNode(ClientPacket.field2269, Client.packetWriter.isaacCipher); // L: 4387
|
PacketBufferNode var18 = ItemContainer.getPacketBufferNode(ClientPacket.field2269, Client.packetWriter.isaacCipher); // L: 4387
|
||||||
var18.packetBuffer.method5578(var16); // L: 4388
|
var18.packetBuffer.method5578(var16); // L: 4388
|
||||||
var18.packetBuffer.method5587(Client.viewportColor); // L: 4389
|
var18.packetBuffer.method5587(Client.field730); // L: 4389
|
||||||
var18.packetBuffer.method5739(var17); // L: 4390
|
var18.packetBuffer.method5739(var17); // L: 4390
|
||||||
var18.packetBuffer.writeByte(var15); // L: 4391
|
var18.packetBuffer.writeByte(var15); // L: 4391
|
||||||
Client.packetWriter.addNode(var18); // L: 4392
|
Client.packetWriter.addNode(var18); // L: 4392
|
||||||
|
|||||||
Reference in New Issue
Block a user