From 2086ead41b6041f6b8a49765f16a27eaf8105693 Mon Sep 17 00:00:00 2001 From: "Alex \"mcmonkey\" Goodwin" Date: Tue, 18 Jan 2022 18:07:16 -0800 Subject: [PATCH] update mythickeys --- Docs/BukkitPlugins.md | 1 + lib | 2 +- pom.xml | 2 +- .../bukkit/bridges/MythicKeysBridge.java | 2 + .../bukkit/bridges/PlaceholderAPIBridge.java | 1 - .../bukkit/bridges/SentinelBridge.java | 2 +- .../PlayerBalanceChangeScriptEvent.java | 3 +- .../MythicKeysKeyPressScriptEvent.java | 12 +-- .../MythicKeysKeyReleaseScriptEvent.java | 78 +++++++++++++++++++ 9 files changed, 88 insertions(+), 15 deletions(-) create mode 100644 src/main/java/com/denizenscript/depenizen/bukkit/events/mythickeys/MythicKeysKeyReleaseScriptEvent.java diff --git a/Docs/BukkitPlugins.md b/Docs/BukkitPlugins.md index 0996ee8d0..d30ccae83 100644 --- a/Docs/BukkitPlugins.md +++ b/Docs/BukkitPlugins.md @@ -17,6 +17,7 @@ Supported Plugins: (And the sources we acquired Jar files from.) - MagicSpells (https://github.com/TheComputerGeek2/MagicSpells/releases) - mcMMO (https://ci.mcmmo.org/job/mcMMO/job/mcMMO/) - MobArena (http://dev.bukkit.org/bukkit-plugins/mobarena/) +- MythicKeys (https://www.spigotmc.org/resources/mythickeysplugin-custom-keybinds-api.98893/) - MythicMobs (https://www.spigotmc.org/resources/mythicmobs.5702/) - NoCheatPlus (http://ci.md-5.net/job/NoCheatPlus/) - NoteBlockAPI (https://www.spigotmc.org/resources/noteblockapi.19287/) diff --git a/lib b/lib index 300c4a6c6..644f74d9f 160000 --- a/lib +++ b/lib @@ -1 +1 @@ -Subproject commit 300c4a6c62370e08cd42b2bf86fee8f16859b788 +Subproject commit 644f74d9f3173fcde28676b13f74d9ceea8169f0 diff --git a/pom.xml b/pom.xml index 39e60e79e..8412a2e48 100644 --- a/pom.xml +++ b/pom.xml @@ -195,7 +195,7 @@ eu.asangarin mythickeys - 1.2 + 1.3 system ${basedir}/lib/mythickeysplugin.jar diff --git a/src/main/java/com/denizenscript/depenizen/bukkit/bridges/MythicKeysBridge.java b/src/main/java/com/denizenscript/depenizen/bukkit/bridges/MythicKeysBridge.java index 2d26e439d..6d85608bc 100644 --- a/src/main/java/com/denizenscript/depenizen/bukkit/bridges/MythicKeysBridge.java +++ b/src/main/java/com/denizenscript/depenizen/bukkit/bridges/MythicKeysBridge.java @@ -3,11 +3,13 @@ import com.denizenscript.denizencore.events.ScriptEvent; import com.denizenscript.depenizen.bukkit.Bridge; import com.denizenscript.depenizen.bukkit.events.mythickeys.MythicKeysKeyPressScriptEvent; +import com.denizenscript.depenizen.bukkit.events.mythickeys.MythicKeysKeyReleaseScriptEvent; public class MythicKeysBridge extends Bridge { @Override public void init() { ScriptEvent.registerScriptEvent(MythicKeysKeyPressScriptEvent.class); + ScriptEvent.registerScriptEvent(MythicKeysKeyReleaseScriptEvent.class); } } diff --git a/src/main/java/com/denizenscript/depenizen/bukkit/bridges/PlaceholderAPIBridge.java b/src/main/java/com/denizenscript/depenizen/bukkit/bridges/PlaceholderAPIBridge.java index 2ea7b4c4e..c70b8d3ee 100644 --- a/src/main/java/com/denizenscript/depenizen/bukkit/bridges/PlaceholderAPIBridge.java +++ b/src/main/java/com/denizenscript/depenizen/bukkit/bridges/PlaceholderAPIBridge.java @@ -13,7 +13,6 @@ import com.denizenscript.denizencore.utilities.CoreUtilities; import com.denizenscript.denizencore.utilities.debugging.Debug; import org.bukkit.OfflinePlayer; -import org.bukkit.entity.Player; public class PlaceholderAPIBridge extends Bridge { diff --git a/src/main/java/com/denizenscript/depenizen/bukkit/bridges/SentinelBridge.java b/src/main/java/com/denizenscript/depenizen/bukkit/bridges/SentinelBridge.java index cefd78422..11be15530 100644 --- a/src/main/java/com/denizenscript/depenizen/bukkit/bridges/SentinelBridge.java +++ b/src/main/java/com/denizenscript/depenizen/bukkit/bridges/SentinelBridge.java @@ -33,7 +33,7 @@ public void init() { PropertyParser.registerProperty(SentinelNPCProperties.class, NPCTag.class); } - public class DenizenSentinelTargets extends SentinelIntegration { + public static class DenizenSentinelTargets extends SentinelIntegration { @Override public String getTargetHelp() { diff --git a/src/main/java/com/denizenscript/depenizen/bukkit/events/essentials/PlayerBalanceChangeScriptEvent.java b/src/main/java/com/denizenscript/depenizen/bukkit/events/essentials/PlayerBalanceChangeScriptEvent.java index 0fb0aaf64..e9185523b 100644 --- a/src/main/java/com/denizenscript/depenizen/bukkit/events/essentials/PlayerBalanceChangeScriptEvent.java +++ b/src/main/java/com/denizenscript/depenizen/bukkit/events/essentials/PlayerBalanceChangeScriptEvent.java @@ -2,7 +2,6 @@ import com.denizenscript.denizen.utilities.implementation.BukkitScriptEntryData; import com.denizenscript.denizen.events.BukkitScriptEvent; -import com.denizenscript.denizen.objects.PlayerTag; import com.denizenscript.denizencore.objects.ObjectTag; import com.denizenscript.denizencore.scripts.ScriptEntryData; import com.denizenscript.denizencore.objects.core.ElementTag; @@ -62,7 +61,7 @@ public String getName() { @Override public ScriptEntryData getScriptEntryData() { - return new BukkitScriptEntryData(PlayerTag.mirrorBukkitPlayer(event.getPlayer()), null); + return new BukkitScriptEntryData(event.getPlayer()); } @Override diff --git a/src/main/java/com/denizenscript/depenizen/bukkit/events/mythickeys/MythicKeysKeyPressScriptEvent.java b/src/main/java/com/denizenscript/depenizen/bukkit/events/mythickeys/MythicKeysKeyPressScriptEvent.java index 933262c20..4aca2a1e7 100644 --- a/src/main/java/com/denizenscript/depenizen/bukkit/events/mythickeys/MythicKeysKeyPressScriptEvent.java +++ b/src/main/java/com/denizenscript/depenizen/bukkit/events/mythickeys/MythicKeysKeyPressScriptEvent.java @@ -18,13 +18,11 @@ public class MythicKeysKeyPressScriptEvent extends BukkitScriptEvent implements // @Location true // // @Switch id: to only process the event if the key ID matches the given text matcher. - // @Switch held: to only process the event for the given 'held' state. If 'false', only fires once per press. If 'true', fires continually after being pressed except the first tick. If left off, fires continually until released. // - // @Triggers every tick in which a key is being held by a client running MythicKeys, if that key is in the MythicKeys config. + // @Triggers When a key is pressed by a client running MythicKeys, if that key is in the MythicKeys config. // // @Context - // Returns the ID of the key tha twas pressed according to the MythicKeys config, as a namespaced key. - // returns true if the key is being held, false if this is the first tick the button has been pressed for. + // Returns the ID of the key that was pressed according to the MythicKeys config, as a namespaced key. // // @Player Always. // @@ -37,7 +35,7 @@ public class MythicKeysKeyPressScriptEvent extends BukkitScriptEvent implements public MythicKeysKeyPressScriptEvent() { instance = this; registerCouldMatcher("mythickeys key pressed"); - registerSwitches("id", "held"); + registerSwitches("id"); } public static MythicKeysKeyPressScriptEvent instance; @@ -48,9 +46,6 @@ public boolean matches(ScriptPath path) { if (!runGenericSwitchCheck(path, "id", String.valueOf(event.getId()))) { return false; } - if (!runGenericSwitchCheck(path, "held", String.valueOf(event.isHeld()))) { - return false; - } if (!runInCheck(path, event.getPlayer().getLocation())) { return false; } @@ -71,7 +66,6 @@ public ScriptEntryData getScriptEntryData() { public ObjectTag getContext(String name) { switch (name) { case "id": return new ElementTag(event.getId().toString()); - case "held": return new ElementTag(event.isHeld()); } return super.getContext(name); } diff --git a/src/main/java/com/denizenscript/depenizen/bukkit/events/mythickeys/MythicKeysKeyReleaseScriptEvent.java b/src/main/java/com/denizenscript/depenizen/bukkit/events/mythickeys/MythicKeysKeyReleaseScriptEvent.java new file mode 100644 index 000000000..844c50d22 --- /dev/null +++ b/src/main/java/com/denizenscript/depenizen/bukkit/events/mythickeys/MythicKeysKeyReleaseScriptEvent.java @@ -0,0 +1,78 @@ +package com.denizenscript.depenizen.bukkit.events.mythickeys; + +import com.denizenscript.denizen.events.BukkitScriptEvent; +import com.denizenscript.denizen.utilities.implementation.BukkitScriptEntryData; +import com.denizenscript.denizencore.objects.ObjectTag; +import com.denizenscript.denizencore.objects.core.ElementTag; +import com.denizenscript.denizencore.scripts.ScriptEntryData; +import eu.asangarin.mythickeys.api.MythicKeyReleaseEvent; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; + +public class MythicKeysKeyReleaseScriptEvent extends BukkitScriptEvent implements Listener { + + // <--[event] + // @Events + // mythickeys key released + // + // @Location true + // + // @Switch id: to only process the event if the key ID matches the given text matcher. + // + // @Triggers When a key stops being pressed by a client running MythicKeys, if that key is in the MythicKeys config. + // + // @Context + // Returns the ID of the key that was released according to the MythicKeys config, as a namespaced key. + // + // @Player Always. + // + // @Plugin Depenizen, MythicKeys + // + // @Group Depenizen + // + // --> + + public MythicKeysKeyReleaseScriptEvent() { + instance = this; + registerCouldMatcher("mythickeys key released"); + registerSwitches("id"); + } + + public static MythicKeysKeyReleaseScriptEvent instance; + public MythicKeyReleaseEvent event; + + @Override + public boolean matches(ScriptPath path) { + if (!runGenericSwitchCheck(path, "id", String.valueOf(event.getId()))) { + return false; + } + if (!runInCheck(path, event.getPlayer().getLocation())) { + return false; + } + return super.matches(path); + } + + @Override + public String getName() { + return "MythicKeysKeyReleased"; + } + + @Override + public ScriptEntryData getScriptEntryData() { + return new BukkitScriptEntryData(event.getPlayer()); + } + + @Override + public ObjectTag getContext(String name) { + switch (name) { + case "id": return new ElementTag(event.getId().toString()); + } + return super.getContext(name); + } + + @EventHandler + public void onKeyRelease(MythicKeyReleaseEvent event) { + this.event = event; + fire(event); + } +}