Client: menu changes (#1553)

* Remove sortMenuEntries as it is called before it would be used anyway

* Modify the menuentries in MenuOpened rather than setting twice

* menus: Corp, Devtools, Friend notes/tags, Grand exchange

* menus: Manager, ground items
This commit is contained in:
Lucwousin
2019-09-05 23:42:43 +02:00
committed by GitHub
parent 5bbae89a70
commit 7d4eebd8bc
15 changed files with 177 additions and 254 deletions

View File

@@ -1743,12 +1743,6 @@ public interface Client extends GameShell
*/
void setUnhiddenCasts(Set<String> casts);
/**
* Sorts the current menu entries in the same way the client does this.
* The last entry will be the left click one after this.
*/
void sortMenuEntries();
/**
* Add player to friendlist
*/

View File

@@ -33,6 +33,13 @@ import lombok.Data;
@Data
public class MenuOpened implements Event
{
/**
* This should be set to true if anything about the menu
* in menuEntries is changed, so the changes can be
* propagated through to the client.
*/
private boolean modified;
/**
* The menu entries in the newly opened menu.
* <p>

View File

@@ -240,7 +240,7 @@ public class MenuManager
// Need to set the event entries to prevent conflicts
event.setMenuEntries(arrayEntries);
client.setMenuEntries(arrayEntries);
event.setModified(true);
}
private void onMenuEntryAdded(MenuEntryAdded event)
@@ -256,21 +256,20 @@ public class MenuManager
int widgetId = event.getActionParam1();
Collection<WidgetMenuOption> options = managedMenuOptions.get(widgetId);
MenuEntry[] menuEntries = client.getMenuEntries();
for (WidgetMenuOption currentMenu : options)
{
if (!menuContainsCustomMenu(currentMenu))//Don't add if we have already added it to this widget
{
menuEntries = Arrays.copyOf(menuEntries, menuEntries.length + 1);
MenuEntry menuEntry = menuEntries[menuEntries.length - 1] = new MenuEntry();
menuEntry.setOption(currentMenu.getMenuOption());
menuEntry.setParam1(widgetId);
menuEntry.setTarget(currentMenu.getMenuTarget());
menuEntry.setOpcode(MenuOpcode.RUNELITE.getId());
client.setMenuEntries(menuEntries);
client.insertMenuItem(
currentMenu.getMenuOption(),
currentMenu.getMenuTarget(),
MenuOpcode.RUNELITE.getId(),
0,
0,
widgetId,
false
);
}
}
}
@@ -293,8 +292,6 @@ public class MenuManager
return null;
}
client.sortMenuEntries();
firstEntry = null;
MenuEntry[] entries = new MenuEntry[menuOptionCount + priorityEntries.size()];
System.arraycopy(client.getMenuEntries(), 0, entries, 0, menuOptionCount);
@@ -873,7 +870,6 @@ public class MenuManager
// Backwards so we swap with the otherwise highest one
// Count - 2 so we don't compare the entry against itself
outer:
for (int i = menuOptionCount - 2; i > 0; i--)
{
final MenuEntry entry = entries[i];
@@ -887,7 +883,7 @@ public class MenuManager
entries[i] = first;
entries[menuOptionCount - 1] = entry;
firstEntry = entry;
break outer;
return;
}
}
}

View File

@@ -35,9 +35,8 @@ import net.runelite.api.Actor;
import net.runelite.api.ChatMessageType;
import net.runelite.api.Client;
import net.runelite.api.GameState;
import net.runelite.api.MenuOpcode;
import static net.runelite.api.MenuOpcode.MENU_ACTION_DEPRIORITIZE_OFFSET;
import net.runelite.api.MenuEntry;
import static net.runelite.api.MenuOpcode.NPC_SECOND_OPTION;
import net.runelite.api.NPC;
import net.runelite.api.NpcID;
import net.runelite.api.Varbits;
@@ -66,7 +65,6 @@ import net.runelite.client.ui.overlay.OverlayManager;
@Slf4j
public class CorpPlugin extends Plugin
{
private static final int NPC_SECTION_ACTION = MenuOpcode.NPC_SECOND_OPTION.getId();
private static final String ATTACK = "Attack";
private static final String DARK_ENERGY_CORE = "Dark energy core";
@@ -244,27 +242,23 @@ public class CorpPlugin extends Plugin
players.add(source);
}
private void onMenuEntryAdded(MenuEntryAdded menuEntryAdded)
private void onMenuEntryAdded(MenuEntryAdded event)
{
if (menuEntryAdded.getType() != NPC_SECTION_ACTION
|| !this.leftClickCore || !menuEntryAdded.getOption().equals(ATTACK))
if (event.getType() != NPC_SECOND_OPTION.getId()
|| !this.leftClickCore || !event.getOption().equals(ATTACK))
{
return;
}
final int npcIndex = menuEntryAdded.getIdentifier();
final int npcIndex = event.getIdentifier();
final NPC npc = client.getCachedNPCs()[npcIndex];
if (npc == null || !npc.getName().equals(DARK_ENERGY_CORE))
{
return;
}
// since this is the menu entry add event, this is the last menu entry
MenuEntry[] menuEntries = client.getMenuEntries();
MenuEntry menuEntry = menuEntries[menuEntries.length - 1];
menuEntry.setOpcode(NPC_SECTION_ACTION + MENU_ACTION_DEPRIORITIZE_OFFSET);
client.setMenuEntries(menuEntries);
event.getMenuEntry().setOpcode(NPC_SECOND_OPTION.getId() + MENU_ACTION_DEPRIORITIZE_OFFSET);
event.setWasModified(true);
}
private void onConfigChanged(ConfigChanged configChanged)

View File

@@ -388,8 +388,7 @@ public class DevToolsPlugin extends Plugin
if (EXAMINE_MENU_ACTIONS.contains(action))
{
MenuEntry[] entries = client.getMenuEntries();
MenuEntry entry = entries[entries.length - 1];
final MenuEntry entry = event.getMenuEntry();
final int identifier = event.getIdentifier();
String info = "ID: ";
@@ -411,7 +410,7 @@ public class DevToolsPlugin extends Plugin
}
entry.setTarget(entry.getTarget() + " " + ColorUtil.prependColorTag("(" + info + ")", JagexColors.MENU_TARGET));
client.setMenuEntries(entries);
event.setWasModified(true);
}
}

View File

@@ -28,7 +28,6 @@
package net.runelite.client.plugins.friendnotes;
import com.google.common.base.Strings;
import com.google.common.collect.ObjectArrays;
import java.awt.Color;
import javax.annotation.Nullable;
import javax.inject.Inject;
@@ -38,7 +37,6 @@ import lombok.extern.slf4j.Slf4j;
import net.runelite.api.Client;
import net.runelite.api.Friend;
import net.runelite.api.MenuOpcode;
import net.runelite.api.MenuEntry;
import net.runelite.api.Nameable;
import net.runelite.api.events.MenuEntryAdded;
import net.runelite.api.events.MenuOptionClicked;
@@ -185,16 +183,16 @@ public class FriendNotesPlugin extends Plugin
setHoveredFriend(Text.toJagexName(Text.removeTags(event.getTarget())));
// Build "Add Note" or "Edit Note" menu entry
final MenuEntry addNote = new MenuEntry();
addNote.setOption(hoveredFriend == null || hoveredFriend.getNote() == null ? ADD_NOTE : EDIT_NOTE);
addNote.setOpcode(MenuOpcode.RUNELITE.getId());
addNote.setTarget(event.getTarget()); //Preserve color codes here
addNote.setParam0(event.getActionParam0());
addNote.setParam1(event.getActionParam1());
// Add menu entry
final MenuEntry[] menuEntries = ObjectArrays.concat(client.getMenuEntries(), addNote);
client.setMenuEntries(menuEntries);
client.insertMenuItem(
hoveredFriend == null || hoveredFriend.getNote() == null ? ADD_NOTE : EDIT_NOTE,
event.getTarget(),
MenuOpcode.RUNELITE.getId(),
0,
event.getActionParam0(),
event.getActionParam1(),
false
);
}
else if (hoveredFriend != null)
{

View File

@@ -10,7 +10,6 @@
package net.runelite.client.plugins.friendtagging;
import com.google.common.base.Strings;
import com.google.common.collect.ObjectArrays;
import java.awt.Toolkit;
import java.awt.datatransfer.StringSelection;
import java.util.Arrays;
@@ -25,7 +24,6 @@ import net.runelite.api.Client;
import net.runelite.api.Friend;
import net.runelite.api.Ignore;
import net.runelite.api.MenuOpcode;
import net.runelite.api.MenuEntry;
import net.runelite.api.Nameable;
import net.runelite.api.events.MenuEntryAdded;
import net.runelite.api.events.MenuOptionClicked;
@@ -129,16 +127,17 @@ public class FriendTaggingPlugin extends Plugin
String friendName = Text.removeTags(event.getTarget());
// Build "Add Note" or "Edit Note" menu entry
final MenuEntry entry = new MenuEntry();
entry.setOption(friendName == null || getTag(friendName) == null ? ADD_TAG : DELETE_TAG);
entry.setOpcode(MenuOpcode.RUNELITE.getId());
entry.setTarget(event.getTarget()); //Preserve color codes here
entry.setParam0(event.getActionParam0());
entry.setParam1(event.getActionParam1());
client.insertMenuItem(
friendName == null || getTag(friendName) == null ? ADD_TAG : DELETE_TAG,
event.getTarget(),
MenuOpcode.RUNELITE.getId(),
0,
event.getActionParam0(),
event.getActionParam1(),
false
);
// Add menu entry
final MenuEntry[] menuEntries = ObjectArrays.concat(client.getMenuEntries(), entry);
client.setMenuEntries(menuEntries);
// jk it is already added
}
}

View File

@@ -431,8 +431,7 @@ public class GrandExchangePlugin extends Plugin
return;
}
final MenuEntry[] entries = client.getMenuEntries();
final MenuEntry menuEntry = entries[entries.length - 1];
final MenuEntry menuEntry = event.getMenuEntry();
final int widgetId = menuEntry.getParam1();
final int groupId = WidgetInfo.TO_GROUP(widgetId);
@@ -450,7 +449,7 @@ public class GrandExchangePlugin extends Plugin
case WidgetID.SHOP_INVENTORY_GROUP_ID:
menuEntry.setOption(SEARCH_GRAND_EXCHANGE);
menuEntry.setOpcode(MenuOpcode.RUNELITE.getId());
client.setMenuEntries(entries);
event.setWasModified(true);
}
}

View File

@@ -951,8 +951,7 @@ public class GroundItemsPlugin extends Plugin
return;
}
MenuEntry[] menuEntries = client.getMenuEntries();
MenuEntry lastEntry = menuEntries[menuEntries.length - 1];
final MenuEntry lastEntry = event.getMenuEntry();
int quantity = 1;
Node current = tileItemPile.getBottom();
@@ -986,6 +985,7 @@ public class GroundItemsPlugin extends Plugin
{
final String optionText = telegrabEntry ? "Cast" : "Take";
lastEntry.setOption(ColorUtil.prependColorTag(optionText, color));
event.setWasModified(true);
}
if (mode == BOTH || mode == NAME)
@@ -1005,43 +1005,20 @@ public class GroundItemsPlugin extends Plugin
}
lastEntry.setTarget(target);
event.setWasModified(true);
}
}
if (this.showMenuItemQuantities && itemComposition.isStackable() && quantity > 1)
{
lastEntry.setTarget(lastEntry.getTarget() + " (" + quantity + ")");
event.setWasModified(true);
}
if (this.removeIgnored && event.getOption().equals("Take") && hiddenItemList.contains(Text.removeTags(event.getTarget())))
{
menuEntries = removeOption(event.getOption(), event.getTarget());
client.setMenuOptionCount(client.getMenuOptionCount() - 1);
}
client.setMenuEntries(menuEntries);
}
}
private MenuEntry[] removeOption(String option, String target)
{
MenuEntry[] entries = client.getMenuEntries();
int j = 0;
if (entries.length > 1)
{
MenuEntry[] newEntries = new MenuEntry[entries.length - 1];
for (MenuEntry entry : entries)
{
if (!(entry.getOption().equals(option) && entry.getTarget().equals(target)))
{
newEntries[j++] = entry;
}
}
return newEntries;
}
else
{
return entries;
}
}

View File

@@ -31,7 +31,6 @@ import java.awt.Color;
import java.util.List;
import javax.inject.Inject;
import javax.inject.Singleton;
import net.runelite.api.Client;
import net.runelite.api.MenuOpcode;
import net.runelite.api.MenuEntry;
import net.runelite.api.events.ConfigChanged;
@@ -92,9 +91,6 @@ public class InventoryTagsPlugin extends Plugin
private static final List<String> GROUPS = ImmutableList.of(SETNAME_GROUP_8, SETNAME_GROUP_7, SETNAME_GROUP_6,
SETNAME_GROUP_5, SETNAME_GROUP_4, SETNAME_GROUP_3, SETNAME_GROUP_2, SETNAME_GROUP_1);
@Inject
private Client client;
@Inject
private ConfigManager configManager;
@@ -254,7 +250,7 @@ public class InventoryTagsPlugin extends Plugin
// Need to set the event entries to prevent conflicts
event.setMenuEntries(menuList);
client.setMenuEntries(menuList);
event.setModified(true);
}
}

View File

@@ -424,6 +424,7 @@ public class MenuEntrySwapperPlugin extends Plugin
return;
}
// TODO: Remove this? This makes everything here only work in wildy lol
if (!(MiscUtils.getWildernessLevelFrom(client, localPlayer.getWorldLocation()) >= 0))
{
return;
@@ -508,9 +509,8 @@ public class MenuEntrySwapperPlugin extends Plugin
menu_entries.add(entry);
}
MenuEntry[] updated_menu_entries = new MenuEntry[menu_entries.size()];
updated_menu_entries = menu_entries.toArray(updated_menu_entries);
client.setMenuEntries(updated_menu_entries);
event.setMenuEntries(menu_entries.toArray(new MenuEntry[0]));
event.setModified(true);
}
public void onMenuEntryAdded(MenuEntryAdded event)

View File

@@ -109,47 +109,4 @@ public abstract class MenuMixin implements RSClient
}
}
}
@Inject
@Override
public void sortMenuEntries()
{
int count = getMenuOptionCount() - 1;
int[] menuOpcodes = getMenuOpcodes();
String[] menuTargetNames = getMenuTargets();
String[] menuActions = getMenuOptions();
int[] menuArguments0 = getMenuIdentifiers();
int[] menuArguments1 = getMenuArguments1();
int[] menuArguments2 = getMenuArguments2();
boolean[] menuShiftClick = getMenuForceLeftClick();
int tmp;
for (int i = 0; i < count; ++i)
{
if (menuOpcodes[i] < 1000 && menuOpcodes[i + 1] > 1000)
{
String var3 = menuTargetNames[i];
menuTargetNames[i] = menuTargetNames[i + 1];
menuTargetNames[i + 1] = var3;
String var4 = menuActions[i];
menuActions[i] = menuActions[i + 1];
menuActions[i + 1] = var4;
tmp = menuOpcodes[i];
menuOpcodes[i] = menuOpcodes[i + 1];
menuOpcodes[i + 1] = tmp;
tmp = menuArguments1[i];
menuArguments1[i] = menuArguments1[i + 1];
menuArguments1[i + 1] = tmp;
tmp = menuArguments2[i];
menuArguments2[i] = menuArguments2[i + 1];
menuArguments2[i + 1] = tmp;
tmp = menuArguments0[i];
menuArguments0[i] = menuArguments0[i + 1];
menuArguments0[i + 1] = tmp;
boolean var6 = menuShiftClick[i];
menuShiftClick[i] = menuShiftClick[i + 1];
menuShiftClick[i + 1] = var6;
}
}
}
}

View File

@@ -1419,10 +1419,14 @@ public abstract class RSClientMixin implements RSClient
@MethodHook("openMenu")
public void menuOpened(int x, int y)
{
sortMenuEntries();
final MenuOpened event = new MenuOpened();
event.setMenuEntries(getMenuEntries());
callbacks.post(MenuOpened.class, event);
if (event.isModified())
{
setMenuEntries(event.getMenuEntries());
}
}
@Inject

View File

@@ -5411,131 +5411,133 @@ public final class Client extends GameShell implements Usernamed {
garbageValue = "1"
)
final void method1293() {
WorldMapID.method537();
if (class188.dragInventoryWidget == null) {
if (clickedWidget == null) {
int var2;
int var4;
int var5;
int var10;
int var19;
label274: {
int var1 = MouseHandler.MouseHandler_lastButton;
int var3;
int var6;
int var8;
if (isMenuOpen) {
if (var1 != 1 && (FriendSystem.mouseCam || var1 != 4)) {
var2 = MouseHandler.MouseHandler_x;
var3 = MouseHandler.MouseHandler_y;
if (var2 < MilliClock.menuX - 10 || var2 > World.menuWidth + MilliClock.menuX + 10 || var3 < class96.menuY - 10 || var3 > class1.menuHeight + class96.menuY + 10) {
isMenuOpen = false;
FloorDecoration.method2786(MilliClock.menuX, class96.menuY, World.menuWidth, class1.menuHeight);
}
}
WorldMapID.sortMenuEntries();
if (class188.dragInventoryWidget != null) {
return;
}
if (clickedWidget != null) {
return;
}
int var2;
int var4;
int var5;
int var10;
int var19;
label274: {
int var1 = MouseHandler.MouseHandler_lastButton;
int var3;
int var6;
int var8;
if (isMenuOpen) {
if (var1 != 1 && (FriendSystem.mouseCam || var1 != 4)) {
var2 = MouseHandler.MouseHandler_x;
var3 = MouseHandler.MouseHandler_y;
if (var2 < MilliClock.menuX - 10 || var2 > World.menuWidth + MilliClock.menuX + 10 || var3 < class96.menuY - 10 || var3 > class1.menuHeight + class96.menuY + 10) {
isMenuOpen = false;
FloorDecoration.method2786(MilliClock.menuX, class96.menuY, World.menuWidth, class1.menuHeight);
}
}
if (var1 == 1 || !FriendSystem.mouseCam && var1 == 4) {
var2 = MilliClock.menuX;
var3 = class96.menuY;
var4 = World.menuWidth;
var5 = MouseHandler.MouseHandler_lastPressedX;
var6 = MouseHandler.MouseHandler_lastPressedY;
int var18 = -1;
if (var1 == 1 || !FriendSystem.mouseCam && var1 == 4) {
var2 = MilliClock.menuX;
var3 = class96.menuY;
var4 = World.menuWidth;
var5 = MouseHandler.MouseHandler_lastPressedX;
var6 = MouseHandler.MouseHandler_lastPressedY;
int var18 = -1;
for (var8 = 0; var8 < menuOptionsCount; ++var8) {
var19 = var3 + (menuOptionsCount - 1 - var8) * 15 + 31;
if (var5 > var2 && var5 < var4 + var2 && var6 > var19 - 13 && var6 < var19 + 3) {
var18 = var8;
}
}
if (var18 != -1 && var18 >= 0) {
var8 = menuArguments1[var18];
var19 = menuArguments2[var18];
var10 = menuOpcodes[var18];
int var17 = menuIdentifiers[var18];
String var12 = menuActions[var18];
String var13 = menuTargets[var18];
SecureRandomFuture.menuAction(var8, var19, var10, var17, var12, var13, MouseHandler.MouseHandler_lastPressedX, MouseHandler.MouseHandler_lastPressedY);
}
isMenuOpen = false;
FloorDecoration.method2786(MilliClock.menuX, class96.menuY, World.menuWidth, class1.menuHeight);
}
} else {
var2 = Player.getNewestMenuIdx();
if ((var1 == 1 || !FriendSystem.mouseCam && var1 == 4) && var2 >= 0) {
var3 = menuOpcodes[var2];
if (var3 == 39 || var3 == 40 || var3 == 41 || var3 == 42 || var3 == 43 || var3 == 33 || var3 == 34 || var3 == 35 || var3 == 36 || var3 == 37 || var3 == 38 || var3 == 1005) {
var4 = menuArguments1[var2];
var5 = menuArguments2[var2];
Widget var14 = WorldMapElement.getWidget(var5);
var8 = ParamDefinition.getWidgetClickMask(var14);
boolean var7 = (var8 >> 28 & 1) != 0;
if (var7) {
break label274;
}
var10 = ParamDefinition.getWidgetClickMask(var14);
boolean var9 = (var10 >> 29 & 1) != 0;
if (var9) {
break label274;
}
}
}
if ((var1 == 1 || !FriendSystem.mouseCam && var1 == 4) && this.shouldLeftClickOpenMenu()) {
var1 = 2;
}
if ((var1 == 1 || !FriendSystem.mouseCam && var1 == 4) && menuOptionsCount > 0 && var2 >= 0) {
var3 = menuArguments1[var2];
var4 = menuArguments2[var2];
var5 = menuOpcodes[var2];
var6 = menuIdentifiers[var2];
String var15 = menuActions[var2];
String var16 = menuTargets[var2];
SecureRandomFuture.menuAction(var3, var4, var5, var6, var15, var16, MouseHandler.MouseHandler_lastPressedX, MouseHandler.MouseHandler_lastPressedY);
}
if (var1 == 2 && menuOptionsCount > 0) {
this.openMenu(MouseHandler.MouseHandler_lastPressedX, MouseHandler.MouseHandler_lastPressedY);
for (var8 = 0; var8 < menuOptionsCount; ++var8) {
var19 = var3 + (menuOptionsCount - 1 - var8) * 15 + 31;
if (var5 > var2 && var5 < var4 + var2 && var6 > var19 - 13 && var6 < var19 + 3) {
var18 = var8;
}
}
return;
if (var18 != -1 && var18 >= 0) {
var8 = menuArguments1[var18];
var19 = menuArguments2[var18];
var10 = menuOpcodes[var18];
int var17 = menuIdentifiers[var18];
String var12 = menuActions[var18];
String var13 = menuTargets[var18];
SecureRandomFuture.menuAction(var8, var19, var10, var17, var12, var13, MouseHandler.MouseHandler_lastPressedX, MouseHandler.MouseHandler_lastPressedY);
}
isMenuOpen = false;
FloorDecoration.method2786(MilliClock.menuX, class96.menuY, World.menuWidth, class1.menuHeight);
}
} else {
var2 = Player.getNewestMenuIdx();
if ((var1 == 1 || !FriendSystem.mouseCam && var1 == 4) && var2 >= 0) {
var3 = menuOpcodes[var2];
if (var3 == 39 || var3 == 40 || var3 == 41 || var3 == 42 || var3 == 43 || var3 == 33 || var3 == 34 || var3 == 35 || var3 == 36 || var3 == 37 || var3 == 38 || var3 == 1005) {
var4 = menuArguments1[var2];
var5 = menuArguments2[var2];
Widget var14 = WorldMapElement.getWidget(var5);
var8 = ParamDefinition.getWidgetClickMask(var14);
boolean var7 = (var8 >> 28 & 1) != 0;
if (var7) {
break label274;
}
var10 = ParamDefinition.getWidgetClickMask(var14);
boolean var9 = (var10 >> 29 & 1) != 0;
if (var9) {
break label274;
}
}
}
if (class188.dragInventoryWidget != null && !field867 && menuOptionsCount > 0 && !this.shouldLeftClickOpenMenu()) {
var19 = field732;
var10 = field744;
MenuAction var11 = class1.tempMenuAction;
SecureRandomFuture.menuAction(var11.argument1, var11.argument2, var11.opcode, var11.argument0, var11.action, var11.action, var19, var10);
class1.tempMenuAction = null;
if ((var1 == 1 || !FriendSystem.mouseCam && var1 == 4) && this.shouldLeftClickOpenMenu()) {
var1 = 2;
}
field867 = false;
itemDragDuration = 0;
if (class188.dragInventoryWidget != null) {
FriendSystem.invalidateWidget(class188.dragInventoryWidget);
if ((var1 == 1 || !FriendSystem.mouseCam && var1 == 4) && menuOptionsCount > 0 && var2 >= 0) {
var3 = menuArguments1[var2];
var4 = menuArguments2[var2];
var5 = menuOpcodes[var2];
var6 = menuIdentifiers[var2];
String var15 = menuActions[var2];
String var16 = menuTargets[var2];
SecureRandomFuture.menuAction(var3, var4, var5, var6, var15, var16, MouseHandler.MouseHandler_lastPressedX, MouseHandler.MouseHandler_lastPressedY);
}
class188.dragInventoryWidget = WorldMapElement.getWidget(var5);
dragItemSlotSource = var4;
field732 = MouseHandler.MouseHandler_lastPressedX;
field744 = MouseHandler.MouseHandler_lastPressedY;
if (var2 >= 0) {
class1.tempMenuAction = new MenuAction();
class1.tempMenuAction.argument1 = menuArguments1[var2];
class1.tempMenuAction.argument2 = menuArguments2[var2];
class1.tempMenuAction.opcode = menuOpcodes[var2];
class1.tempMenuAction.argument0 = menuIdentifiers[var2];
class1.tempMenuAction.action = menuActions[var2];
if (var1 == 2 && menuOptionsCount > 0) {
this.openMenu(MouseHandler.MouseHandler_lastPressedX, MouseHandler.MouseHandler_lastPressedY);
}
FriendSystem.invalidateWidget(class188.dragInventoryWidget);
}
return;
}
if (class188.dragInventoryWidget != null && !field867 && menuOptionsCount > 0 && !this.shouldLeftClickOpenMenu()) {
var19 = field732;
var10 = field744;
MenuAction var11 = class1.tempMenuAction;
SecureRandomFuture.menuAction(var11.argument1, var11.argument2, var11.opcode, var11.argument0, var11.action, var11.action, var19, var10);
class1.tempMenuAction = null;
}
field867 = false;
itemDragDuration = 0;
if (class188.dragInventoryWidget != null) {
FriendSystem.invalidateWidget(class188.dragInventoryWidget);
}
class188.dragInventoryWidget = WorldMapElement.getWidget(var5);
dragItemSlotSource = var4;
field732 = MouseHandler.MouseHandler_lastPressedX;
field744 = MouseHandler.MouseHandler_lastPressedY;
if (var2 >= 0) {
class1.tempMenuAction = new MenuAction();
class1.tempMenuAction.argument1 = menuArguments1[var2];
class1.tempMenuAction.argument2 = menuArguments2[var2];
class1.tempMenuAction.opcode = menuOpcodes[var2];
class1.tempMenuAction.argument0 = menuIdentifiers[var2];
class1.tempMenuAction.action = menuActions[var2];
}
FriendSystem.invalidateWidget(class188.dragInventoryWidget);
}
@ObfuscatedName("hf")

View File

@@ -60,7 +60,8 @@ public class WorldMapID {
signature = "(S)V",
garbageValue = "-6260"
)
static final void method537() {
@Export("sortMenuEntries")
static final void sortMenuEntries() {
boolean var0 = false;
while (!var0) {