project(mixins): Prevent gamecrash

This commit is contained in:
Owain van Brakel
2022-04-25 13:54:27 +02:00
parent 427e204645
commit c144740da9

View File

@@ -939,7 +939,22 @@ public abstract class RSClientMixin implements RSClient
@Override @Override
public MenuEntry[] getMenuEntries() public MenuEntry[] getMenuEntries()
{ {
return Arrays.copyOf(rl$menuEntries, client.getMenuOptionCount()); RSRuneLiteMenuEntry[] menuEntries = Arrays.copyOf(rl$menuEntries, client.getMenuOptionCount());
for (RSRuneLiteMenuEntry menuEntry : menuEntries)
{
if (menuEntry.getOption() == null)
{
menuEntry.setOption("null");
}
if (menuEntry.getTarget() == null)
{
menuEntry.setTarget("null");
}
}
return menuEntries;
} }
@Inject @Inject
@@ -1057,6 +1072,16 @@ public abstract class RSClientMixin implements RSClient
} }
else if (optionCount == tmpOptionsCount + 1) else if (optionCount == tmpOptionsCount + 1)
{ {
if (client.getMenuOptions()[tmpOptionsCount] == null)
{
client.getMenuOptions()[tmpOptionsCount] = "null";
}
if (client.getMenuTargets()[tmpOptionsCount] == null)
{
client.getMenuTargets()[tmpOptionsCount] = "null";
}
String menuOption = client.getMenuOptions()[tmpOptionsCount]; String menuOption = client.getMenuOptions()[tmpOptionsCount];
String menuTarget = client.getMenuTargets()[tmpOptionsCount]; String menuTarget = client.getMenuTargets()[tmpOptionsCount];
int menuOpcode = client.getMenuOpcodes()[tmpOptionsCount]; int menuOpcode = client.getMenuOpcodes()[tmpOptionsCount];
@@ -1073,18 +1098,6 @@ public abstract class RSClientMixin implements RSClient
rl$menuEntries[tmpOptionsCount].setConsumer(null); rl$menuEntries[tmpOptionsCount].setConsumer(null);
} }
if (menuOption == null || menuTarget == null)
{
client.getLogger().warn("We're probably about to crash: menu op {} targ {} action {} id {} p0 {} p1 {}",
menuOption,
menuTarget,
menuOpcode,
menuIdentifier,
menuArgument1,
menuArgument2
);
}
MenuEntryAdded menuEntryAdded = new MenuEntryAdded( MenuEntryAdded menuEntryAdded = new MenuEntryAdded(
menuOption, menuOption,
menuTarget, menuTarget,