diff --git a/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryPlugin.java b/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryPlugin.java index d9c6339..3dcf978 100644 --- a/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryPlugin.java +++ b/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryPlugin.java @@ -279,59 +279,62 @@ public class EasyGiantsFoundryPlugin extends Plugin @Subscribe public void onMenuOptionClicked(MenuOptionClicked event) { - - if (!(event.getMenuAction() == MenuAction.GAME_OBJECT_FIRST_OPTION - || event.getMenuAction() == MenuAction.GAME_OBJECT_SECOND_OPTION - || event.getMenuAction() == MenuAction.GAME_OBJECT_THIRD_OPTION - || event.getMenuAction() == MenuAction.GAME_OBJECT_FOURTH_OPTION - || event.getMenuAction() == MenuAction.GAME_OBJECT_FIFTH_OPTION - || event.getMenuAction() == MenuAction.WIDGET_TARGET_ON_GAME_OBJECT - || event.getMenuAction() == MenuAction.WALK)) + clientThread.invokeAtTickEnd(() -> { - return; - } - - if (!state.isEnabled()) return; - - if (event.getMenuTarget().contains("Crucible ")) - { - if (event.getMenuOption().equals("Pour")) + if (!(event.getMenuAction() == MenuAction.GAME_OBJECT_FIRST_OPTION + || event.getMenuAction() == MenuAction.GAME_OBJECT_SECOND_OPTION + || event.getMenuAction() == MenuAction.GAME_OBJECT_THIRD_OPTION + || event.getMenuAction() == MenuAction.GAME_OBJECT_FOURTH_OPTION + || event.getMenuAction() == MenuAction.GAME_OBJECT_FIFTH_OPTION + || event.getMenuAction() == MenuAction.WIDGET_TARGET_ON_GAME_OBJECT + || event.getMenuAction() == MenuAction.WALK)) { - if (client.getVarbitValue(VARBIT_GAME_STAGE) == 1) - { - state.setLastKnownCrucibleScore((int) state.getCrucibleScore()); - } - // add persistent game message of the alloy value so user can reference later. - client.addChatMessage(ChatMessageType.GAMEMESSAGE, "", "The score of the preform is " + ((int) state.getCrucibleScore() + state.getMouldScore()), null); + return; } - } - // Could not find a varbit to capture, so capture the menu-option directly. - // start the HeatActionStateMachine when varbit begins to update in onVarbitChanged() - if (event.getMenuOption().startsWith("Heat-preform")) - { - state.heatActionStateMachine.stop(); - state.heatActionStateMachine.setup(false, true, "heats"); - } - else if (event.getMenuOption().startsWith("Dunk-preform")) - { - state.heatActionStateMachine.stop(); - state.heatActionStateMachine.setup(true, true, "dunks"); - } - else if (event.getMenuOption().startsWith("Cool-preform")) - { - state.heatActionStateMachine.stop(); - state.heatActionStateMachine.setup(false, false, "cools"); - } - else if (event.getMenuOption().startsWith("Quench-preform")) - { - state.heatActionStateMachine.stop(); - state.heatActionStateMachine.setup(true, false, "quenches"); - } - else if (!state.heatActionStateMachine.isIdle()) // canceled heating/cooling, stop the heating state-machine - { - state.heatActionStateMachine.stop(); - } + if (!state.isEnabled()) return; + + if (event.getMenuTarget().contains("Crucible ")) + { + if (event.getMenuOption().equals("Pour")) + { + if (client.getVarbitValue(VARBIT_GAME_STAGE) == 1) + { + state.setLastKnownCrucibleScore((int) state.getCrucibleScore()); + } + // add persistent game message of the alloy value so user can reference later. + client.addChatMessage(ChatMessageType.GAMEMESSAGE, "", "The score of the preform is " + ((int) state.getCrucibleScore() + state.getMouldScore()), null); + } + } + + // Could not find a varbit to capture, so capture the menu-option directly. + // start the HeatActionStateMachine when varbit begins to update in onVarbitChanged() + if (event.getMenuOption().startsWith("Heat-preform")) + { + state.heatActionStateMachine.stop(); + state.heatActionStateMachine.setup(false, true, "heats"); + } + else if (event.getMenuOption().startsWith("Dunk-preform")) + { + state.heatActionStateMachine.stop(); + state.heatActionStateMachine.setup(true, true, "dunks"); + } + else if (event.getMenuOption().startsWith("Cool-preform")) + { + state.heatActionStateMachine.stop(); + state.heatActionStateMachine.setup(false, false, "cools"); + } + else if (event.getMenuOption().startsWith("Quench-preform")) + { + state.heatActionStateMachine.stop(); + state.heatActionStateMachine.setup(true, false, "quenches"); + } + else if (!state.heatActionStateMachine.isIdle()) // canceled heating/cooling, stop the heating state-machine + { + state.heatActionStateMachine.stop(); + } + + }); } @Subscribe