1. package com.voxelmodpack.git.kenzierocks.pressbutton;
  2. import com.voxelmodpack.git.pressbutton.Access;
  3. import net.eq2online.macros.scripting.ScriptActionBase;
  4. import net.eq2online.macros.scripting.ScriptContext;
  5. import net.eq2online.macros.scripting.ScriptCore;
  6. import net.eq2online.macros.scripting.api.APIVersion;
  7. import net.eq2online.macros.scripting.api.IMacro;
  8. import net.eq2online.macros.scripting.api.IMacroAction;
  9. import net.eq2online.macros.scripting.api.IMacroActionContext;
  10. import net.eq2online.macros.scripting.api.IMacroActionProcessor;
  11. import net.eq2online.macros.scripting.api.IMacroActionStackEntry;
  12. import net.eq2online.macros.scripting.api.IReturnValue;
  13. import net.eq2online.macros.scripting.api.IScriptAction;
  14. import net.eq2online.macros.scripting.api.IScriptActionProvider;
  15. import net.eq2online.macros.scripting.api.ReturnValue;
  16. @APIVersion(value=16)
  17. public class ScriptActionPressButton
  18. extends ScriptActionBase {
  19. public static final int APIVERSION = 16;
  20. public static final String LOGPREFIX = "\u00a7b";
  21. public static final void logMessage(String message, IMacro macro) {
  22. ScriptActionPressButton.logMessage(message, macro.getContext().getProvider());
  23. }
  24. public static final void logMessage(String message, IScriptActionProvider loghandler) {
  25. loghandler.actionAddChatMessage("\u00a7b" + message);
  26. }
  27. public ScriptActionPressButton() {
  28. super(ScriptContext.MAIN, "pressbutton");
  29. }
  30. public boolean isThreadSafe() {
  31. return true;
  32. }
  33. public boolean isStackPushOperator() {
  34. return false;
  35. }
  36. public boolean isStackPopOperator() {
  37. return false;
  38. }
  39. public boolean canBePoppedBy(IScriptAction action) {
  40. return false;
  41. }
  42. public boolean executeStackPush(IScriptActionProvider provider, IMacro macro, IMacroAction instance, String rawParams, String[] params) {
  43. return false;
  44. }
  45. public boolean executeStackPop(IScriptActionProvider provider, IMacro macro, IMacroAction instance, String rawParams, String[] params, IMacroAction popAction) {
  46. return false;
  47. }
  48. public boolean canBreak(IMacroActionProcessor processor, IScriptActionProvider provider, IMacro macro, IMacroAction instance, IMacroAction breakAction) {
  49. return false;
  50. }
  51. public boolean isConditionalOperator() {
  52. return false;
  53. }
  54. public boolean isConditionalElseOperator(IScriptAction action) {
  55. return false;
  56. }
  57. public boolean matchesConditionalOperator(IScriptAction action) {
  58. return false;
  59. }
  60. public boolean executeConditional(IScriptActionProvider provider, IMacro macro, IMacroAction instance, String rawParams, String[] params) {
  61. return false;
  62. }
  63. public void executeConditionalElse(IScriptActionProvider provider, IMacro macro, IMacroAction instance, String rawParams, String[] params, IMacroActionStackEntry top) {
  64. }
  65. public IReturnValue execute(IScriptActionProvider provider, IMacro macro, IMacroAction instance, String rawParams, String[] params) {
  66. block6 : {
  67. if (params.length > 0) {
  68. try {
  69. bdw open;
  70. int id = Integer.parseInt(ScriptCore.parseVars((IScriptActionProvider)provider, (IMacro)macro, (String)params[0], (boolean)false).trim().replaceAll(",", ""));
  71. boolean L = false;
  72. boolean R = true;
  73. int button = 0;
  74. if (params.length > 1) {
  75. String leftOrRight = ScriptCore.parseVars((IScriptActionProvider)provider, (IMacro)macro, (String)params[1], (boolean)false);
  76. int n = button = leftOrRight.startsWith("l") ? 0 : 1;
  77. }
  78. if ((open = bao.B().n) == null) break block6;
  79. int doButtonClick = Access.doButtonClick((bdw)open, (int)id, (int)button);
  80. if (doButtonClick == Integer.MAX_VALUE) {
  81. ScriptActionPressButton.logMessage("Invalid button ID " + id, provider);
  82. break block6;
  83. }
  84. if (doButtonClick == -1) break block6;
  85. if (doButtonClick == -2) {
  86. ScriptActionPressButton.logMessage("Error in creation of reflection, please report the logs to the author", provider);
  87. break block6;
  88. }
  89. return new ReturnValue(doButtonClick == 0);
  90. }
  91. catch (NumberFormatException notInt) {
  92. ScriptActionPressButton.logMessage(params[0] + " is not an int", provider);
  93. }
  94. }
  95. }
  96. return new ReturnValue(false);
  97. }
  98. public boolean canExecuteNow(IScriptActionProvider provider, IMacro macro, IMacroAction instance, String rawParams, String[] params) {
  99. return true;
  100. }
  101. public int onTick(IScriptActionProvider provider) {
  102. return 0;
  103. }
  104. public boolean isClocked() {
  105. return true;
  106. }
  107. public boolean isPermissable() {
  108. return false;
  109. }
  110. public String getPermissionGroup() {
  111. return null;
  112. }
  113. public void registerPermissions(String actionName, String actionGroup) {
  114. }
  115. public boolean checkExecutePermission() {
  116. return true;
  117. }
  118. public boolean checkPermission(String actionName, String permission) {
  119. return true;
  120. }
  121. public void onStopped(IScriptActionProvider provider, IMacro macro, IMacroAction instance) {
  122. }
  123. public void onInit() {
  124. this.context.getCore().registerScriptAction((IScriptAction)this);
  125. }
  126. }